RSA暗号
となるが、 a , a ′ ∈ Z n {\displaystyle a,a'\in \mathbb {Z} _{n}} であるから
a ′ = a {\displaystyle a'=a}
となる。
gcd ( n , a ) = q {\displaystyle \gcd(n,a)=q} であり a ∈ Z n − { 0 } {\displaystyle a\in \mathbb {Z} _{n}-\{0\}} のときについても同様に a' = a となる。
a = 0 のときは b ∈ { z ∈ Z n ∣ z ≡ 0 e ( mod n ) } = { 0 } {\displaystyle b\in \{z\in \mathbb {Z} _{n}\mid z\equiv 0^{e}{\pmod {n}}\}=\{0\}} であるから b = 0 であり、 a ′ ∈ { z ∈ Z n ∣ z ≡ 0 d ( mod n ) } = { 0 } {\displaystyle a'\in \{z\in \mathbb {Z} _{n}\mid z\equiv 0^{d}{\pmod {n}}\}=\{0\}} であるから a' = 0 である。つまり a′ = a = 0 である。
以上何れにしても a' = a が成り立ち、平文 a の 暗号文 b は 秘密鍵 d と公開鍵の一つ n を用いて平文 a に復号できることが分かる。
RSA暗号方式は、
平文が小さいと、暗号文から平文が容易に計算できてしまう、
暗号文を分解して、個々の暗号文に対応する平文を入手できる(選択暗号文攻撃)と、元の暗号文に対応する平文を求めることができてしまう、
攻撃者が暗号文を変形して、平文自体を知ることはできないが、平文を変形できてしまう(非展性がない)、
などの脆弱性があり、RSA暗号方式をそのまま利用することは好ましくない。このため、実際のRSA暗号の実装では、暗号化する前に適切なパディングを行っている。代表的なパディングとしてOAEPがあり、公開鍵暗号標準であるPKCS#1(バージョン1.5以降)もこれを採用している。OAEPは確率的なパディングであり、すなわち、元の平文が同じであっても、パディングされた平文は時によって異なる(ランダムに選ばれた値に依存)。
OAEPパディングとRSA暗号の併用をRSA_OAEPと呼ぶことがある(これに対して、パディング処理を行わない素のRSA暗号方式を生RSA、教科書的RSAということがある)。RSA_OAEPは、公開鍵暗号における最も高い安全性である「適応的選択暗号文攻撃に対する識別不可能性」を持つことが示されている。