平文が実際に例示されていて、その平文から暗号文が計算される様子と、逆に暗号文から平文が計算される様子がわかるサイトをお願いします。
英語でもかまいません。RSAよりECC(楕円曲線暗号)の方が興味あります。
http://mailsrv.nara-edu.ac.jp/~asait/crypt.htm
cryptography
楕円曲線暗号
サルにもわかるRSA暗号: はじめに
RSA暗号
ともに有名なサイトですが、詳しく説明されていると思います。
こちらは鍵交換と暗号解析の実演のようです。多分ソースをじっくり見ればいいんでしょうけど。本文を読むと楕円曲線の座標を使った説明がされていて、平文から座標値に変換されて暗号化されて文字列になるとこがイメージできないんです。
ふむう。計算の途中がもっと細かく出力されるといいんですが。ありがとうございました。
上の方と同じサイトですね。ここにある「通信文→
セッション鍵をランダムに生成する
→暗号文」のとこが詳しく見たいのです。「セッション鍵872993...で暗号化」の計算経過を知りたいのです。ありがとうございました。
残るはヒル暗号の部分だけのようですので、それに特化したUrlを参照します。13ページあたりからのExampleが具体的ですが、英語です。あしからず。軽く自分でも補足したいと思います。
ヒル暗号は英語圏ではhill cipherと呼ばれ、Hill Lesterという人によって考案された暗号のようです。基本的な暗号化の方法は数文字ごとに平文を区切りそれぞれを数ベクトルと見て、それに鍵となる正方行列をかけるというものです。妖精現実さんのところでのSession Keyの4つの数字はこの行列の要素のことであり、つまりここでは2文字ごとに区切って2行2列の行列をかけているということになります。
ただ暗号化した結果も文字列として表現するためには、ある範囲の数字に収まってもらわなければなりません。そのため参考Urlのやり方では29を法としています。つまり、計算の結果115という数字がでれば29で割った余りである28という数字でおきかえてやればよいわけです。
復号化は単純に鍵となった行列の逆行列を求めてかけてやればよいということになります。その際注意するべきは29を法としていることです。逆行列を普通に求めようとすると負数や除算が表れますが、これらも置き換える必要があります。負数は29からそれを引いたもの、例えば-1であれば、28で置き換えます。一方除算については例えば「2で割る」という演算は「2にかけて1になる」という演算のことですから、29を法としているときには計算結果を29で割って1があまるようになっていればよいわけです。つまり「÷2」は「×15」で置き換えます。他の数字での除算は参考UrlのMultiplicative inverses modulo 29を見てください。
サルにもわかる〜の方が求めていたものに近かったです。ありがとうございました。