ฉันจะจัดการกับกรณีนี้ $e=2$; ถ้า $\gcd(e, \phi(n)) = 2$เท่านี้ก็เพียงพอแล้ว (เพราะพอจะหาค่ารากที่สองของ $ค$ (ข้อความเข้ารหัส) แล้วนำ $e/2$รากของสิ่งนั้น
ดังนั้นเราจึงได้รับ $ค$ และต้องการหาค่า $m$ เซนต์. $m^2 = c \pmod {p^2}$.
เราเริ่มต้นด้วยการหาค่า $m'$ เซนต์. $m'^2 = c \pmod p$; นี่คือสแควร์รูทแบบโมดูลาร์ และมีอัลกอริทึมที่รู้จักสำหรับมัน วิธีที่ง่ายที่สุดคือถ้า $p \equiv 3 \pmod 4$; ในกรณีนั้น, $m' = \pm c^{(p+1)/4} \bmod p$. เดอะ $p \equiv 1 \pmod 4$ กรณีก็ทำได้เช่นกัน แต่เป็นงานมากกว่า
จากค่าเหล่านั้น เราจะแปลงค่าเหล่านั้นเป็นค่าโมดูโล $p^2$. นั่นกลายเป็นเรื่องง่ายยิ่งขึ้นเพราะถ้าเรามี $m = m' + xp$ (และ $m$ จะเทียบเท่ากับหนึ่งในนั้นเสมอ $m'$ ค่าโมดูโล $p$) จากนั้นเรามี:
$$m^2 = (m' + xp)^2 = m'^2 + 2m'xp = c \pmod {p^2}$$
และตั้งแต่ $c-m'^2$ เป็นทวีคูณของ $p$เราสามารถลดค่านี้เป็น:
$2m'x = (c - m'^2)/p \pmod p$, หรือ $x = (2m')^{-1} (c - m'^2)/p \pmod p$
และ, $m = m' + px$ ให้คุณมีค่าของ $m$ (และจำไว้ว่า มีค่าที่เป็นไปได้สองค่าของ $m'$ และด้วยเหตุนี้ค่าที่เป็นไปได้สองค่าของ $m$).
นอกจากนี้ โปรดทราบว่าเนื่องจากเราสามารถทำได้โดยไม่ต้องใช้ข้อมูลส่วนตัวใดๆ จึงใช้งานไม่ได้ในฐานะ 'การเข้ารหัสคีย์สาธารณะ'