RSA方式による暗号/復号化の例
1.平文
暗号/復号化の対象とする平文は「あおもり」とする。
先ずこれをJISコードで符号化し二進数で表わす。
(ひらがな) あ お も り
(JISコード) 2422 242A 2462 246A
(二進数) 00100010 00101010 01100010 01101010
但し、JISコード中のひらがなを表わす上位1バイト「24」は省略した。
2.暗号文
暗号/復号化の計算を簡単にするため鍵長を3ビットとする。
そうすると、暗号化対象の平文は次のような11ブロックに分割される。
<平文>
001┴000┴100┴010┴101┴001┴100┴010 ┴ 011┴010┴10△┴
(1) (0) (4) (2) (5) (1) (4) (2) (3) (2) (4) → (M)
ここで、△はブロック長を一定にするために挿入したスペースである。
鍵長3ビットの場合、各ブロックの数値は0〜7でありこれを一義的に表示するためには
8(2の3乗)進数以上を使用しなければならない。
従って、公開鍵 Nは8(mod8)以上でなければならない。
二つの素数 p,qを任意に p=3,q=5 とする。 N=pq=3x5=15>8
次に或数 eを適当に定め e=3とする。
オイラー関数 φ(N)=(p-1)(q-1)=2x4=8 となるから、mod8において eの逆数 d,
d=3 ∵ed=3x3=8+1=1 (mod8)を求める。
上記結果から公開される数は N=15, e=3 及び鍵長 3ビット となる。
ここで、暗号文は modN(N=15) の数値0〜14で表示されるので、そのプロック長は
4ビットになる。
e
暗号化計算式 C=M (modN) により上記平文 Mの暗号化を行う。
これは、各ブロックの値 Mを三乗し次のようになる。
(1)→1(mod15)=1, (0)→0(mod15)=0, (4)→64(mod15)=4,
(2)→8(mod15)=8, (5)→125(mod15)=5, (1)→1(mod15)=1,
(4)→64(mod15)=4, (2)→8(mod15)=8, (3)→27(mod15)=12,
(2)→8(mod15)=8, (4)→64(mod15)=4,
<暗号文>
0001┴0000┴0100┴1000┴0101┴0001┴0100┴1000┴1100┴1000┴0100┴
(1) (0) (4) (8) (5) (1) (4) (8) (12) (8) (4) → (C)
3.復号文
d
復号化計算式 M=C (modN) により上記暗号文 Cの復号化を行う。
これは、各ブロックの値 Mを三乗し次のようになる。
(1)→1(mod15)=1, (0)→0(mod15)=0, (4)→64(mod15)=4,
(8)→512(mod15)=2, (5)→125(mod15)=5, (1)→1(mod15)=1,
(4)→64(mod15)=4, (8)→512(mod15)=2, (12)→1728(mod15)=3,
(8)→512(mod15)=2, (4)→64(mod15)=4,
<復号文>
001┴000┴100┴010┴101┴001┴100┴010┴011┴010┴100┴
(1) (0) (4) (2) (5) (1) (4) (2) (3) (2) (4) → (M)
本復号文と2.項の平文を比較すれば、復号化が正しく行われたことが分かる。
4.結果の検討
(1)RSA方式による暗号/復号化の例を上記の如く示した。
ここでは、計算を簡単にし暗号/復号化の手順を分かり易くするため鍵長を極端に
短く3ビットにした。実際には、鍵長が長い程解読が難しくなるが、反面処理時間
を要するため用途に適した鍵長が選択されている。例えば、MS社のInternet
Explorer 4.xでは 512-768-1024 ビットが使用されている。
(数学的にはNの素因数分解(p,q)が困難な値、10進数でN>160桁が用いられる)
(2)本例では公開される数は N=15, e=3 及び鍵長 3ビット である。
しかし、その他にもN進数を表現できる最小ビット数を暗号文のブロック長とする、
或いは最終ブロックに余白が生じた場合の処置方法、平文の使用コード等、別途取
り決めが必要である。
(3)復号化計算式における検算例
3 3x3 8+1
M=12 =(3) =3 (mod8)=3 ;検算終り
これは、一般的に次式で表わせる。
d ed
M=C =(M) =M ∵ ed=1 at modφ(N)
5.参考
(1) RSA;発明者三人、Rivest,Shamir,Adlemanの頭文字を連ねたもの。
(2) 参考文献
辻井重男著:暗号、ポストモダンの情報セキュリティ;講談社選書メチエ73,'99.4,P201〜209
菅野他3著:ネットワークセキュリティと暗号化;カットシステム,'98.11,P54〜79
(3)m0d N;N進数のこと。16進数の例では0から15までの数しかなく、16は0に戻る
整数の世界である。詳しくは前記参考文献等を参照のこと。
以上