📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の3版が非表示)
13行目: 13行目:
== RSA暗号の仕組み ==
== RSA暗号の仕組み ==
* 公開鍵
* 公開鍵
*: n : 2つの素数の積
** n : 2つの素数の積
*: k<sub>1</sub> : <math>\phi(n) = (p - 1)(q - 1)</math>と互いに素な整数k<sub>1</sub>
** k<sub>1</sub> : <math>\phi(n) = (p - 1)(q - 1)</math>と互いに素な整数k<sub>1</sub> (ただし、<math>1 < k_{1} < n</math>を満たすこと)
* 秘密鍵
* 秘密鍵
*: 素数p
** 素数p
*: 素数q
** 素数q
*: φ(n) : <math>(p - 1)(q - 1)</math>の積
** φ(n) : <math>(p - 1)(q - 1)</math>の積
*: k<sub>2</sub> : <math>k_1k_2 \equiv 1 \bmod (p - 1)(q - 1)</math>となるk<sub>2</sub>
** k<sub>2</sub> : <math>k_1k_2 \equiv 1 \bmod (p - 1)(q - 1)</math>となるk<sub>2</sub>
<br>
<br>
===== メッセージを受け取る側の準備 =====
===== メッセージを受け取る側の準備 =====
34行目: 34行目:


===== メッセージを送る側の暗号化方法 =====
===== メッセージを送る側の暗号化方法 =====
送りたいメッセージをm(ただし、<math>0 \le m \le n</math>を満たす)とする。<br>
送信するメッセージをMとする時、暗号文をCは、以下の式で求められる。<br>
公開鍵を用いて<math>mk_1\,\bmod\,n</math>を計算し、これを暗号文(Cとおく)とする。<br>
ただし、<math>\,0 \le M \le n \,</math>を満たす。<br>
<math>C = M^{k_1} \bmod n</math><br>
<br>
<br>
===== メッセージを受け取る側の復号方法 =====
===== メッセージを受け取る側の復号方法 =====
暗号文Cと秘密鍵k<sub>2</sub>を用いて、<math>Ck_2\,\bmod\,n</math>を計算すると、<br>
受信した暗号文Cと秘密鍵k<sub>2</sub>を使用して復号する時、以下の式から求められる。<br>
<math>M = C^{k_2} \bmod n</math><br>
<br>
これが元のメッセージに一致する。(後述)
これが元のメッセージに一致する。(後述)
<br>
<br>
===== 安全性 =====
===== 安全性 =====
暗号文Cと公開鍵n、k<sub>1</sub>が分かっても、(現実的な時間では)mを復元することはできない。<br>
暗号文Cと公開鍵n、k<sub>1</sub>が分かっても、(現実的な時間では)mを復元することはできない。<br>
<br>
<br>
* 復号できる理由
* 復号できる理由
*: 暗号化:<math>mk_1\,\bmod\,n</math>
*: 暗号化:<math>m^{k_1} \bmod n</math>
*: 復号 :<math>Ck_2\,\bmod\,n</math>
*: 復号 :<math>C^{k_2} \bmod n</math>
<br>
<br>
証明<br>
証明<br>