- ベストアンサー
RSA暗号について教えてください
RSA暗号がどのようなものか、また仕組みについて教えて下さい。調べても分からなかったので、できるだけわかりやすく教えて下さい。また、RSA暗号を用いて、二桁程度の素数を二つ使って暗号の仕方、また戻し方の例を教えてください。お願いします。
- tapara
- お礼率29% (19/64)
- SE・インフラ・Webエンジニア
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
素数を考えます。 素数は自分と1以外の数では割り切れないものですね。 仮に11を考えて見ましょう。 これをModulo(法)と呼びます。 11より大きいものがない世界です。 この世界では、11は11でいいのですが、12はどうなるか 12は、11の次ですから、11を法にした世界では2になります。 こういう不思議な世界では11までしか数字がありません。 たとえば2という数字を考えます。 2の2乗は4 2の3乗は8 2の4乗は16 これは11が法の世界では6です。 2の5乗は? いま6だったので、12になりますが、11が法ですから2です。 さて、これを、2の代わりに3,4,5,・・10までずっとやってみてください。 驚くことがおきているはずです。 どんな数字でも5乗すると、元の数字に戻っているはずです。 もう少ししつこくやってみてください。 10乗しても、15乗しても、基の数字に戻ります。 法といっているものは秘密鍵というものです。 ここで公開鍵を12、とするとします。 提示する数字は12乗した数字だといっているのです。 そして何かの数字をいくつか提出します。これはべき計算をしたときの12番目のものです。これが暗号です。 オリジナルの法がいくつかわかっていたら、(11だということがわかっていたら)公開鍵が12は、実は2乗された数字だといっているに過ぎないことがわかります。 11が法なら5乗で元にもどりますのでその数字の3つ先に複合化した数字があるはずです。またはこの数の平方根がオリジナルの数字のはずです。 11というのは説明のためにかんたんな数字を選んだだけです。もっと大きい素数を法として使うのが安心です。 これをアルファベットの並び順なんかに変換していくと、だんだんわからないことになります。 これがRSA暗号複合の仕組みです。サルでもわかる簡単さです。 サルにわからないように解析するのは数式をつかってみてください。
関連するQ&A
- DSA暗号とRSA暗号
SSHサーバーを立てるときに暗号化方式として、DSA暗号とRSA暗号方式があるようですが、 http://computers.yahoo.co.jp/dict/ でDSA暗号方式が掲載されていないことを見ると RSA暗号方式の方が安全であり、なおかつ最新で主流のものと考えてよろしいでしょうか? また、DSA暗号とRSA暗号方式のメリットやデメリットなどご存知の方、ご教授できればありがたく思います。
- ベストアンサー
- ネットワーク
- RSA暗号の一般的な素数生成方法
一般的なRSA暗号について質問です。 RSAでは鍵の生成に、大きな素数 p, q および (p-1)*(q-1)と互いに素となる素数eを使用します。 ただ、p, qの一般的に使用される桁数は1024bit(300桁超)であるため、素数の生成に非常に大きな時間がかかってしまいます。 e は3か65537を使用することで生成のための計算を省くことができますが… RSAで暗号鍵を生成する際に300桁もの素数を毎回計算して生成するのは時間がかかりすぎるため現実的ではないと思いますが、実際にはどのようにして300桁の素数を生成しているのでしょうか。 もしくは、計算済みの素数リストや固定の値を使用しているのでしょうか。 (後者はあり得ないとは思いますが…) 宜しくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- iアプリでRSA暗号を実装したい
今、iアプリでRSA暗号を実装しています。 しかし、p=512bit,q=512bit つまり、n=1024bitの鍵を用いるためにどうすればいいのでしょうか? 1024bitということは10進数で300桁を超えるため、困っています。 知っていましたら教えてください。
- ベストアンサー
- Java
- RSA 暗号の、最も簡単な破り方は、これですね?
RSA 暗号の、最も簡単な破り方は、これですね?: 暗号文中の自然数をNとする。 1.ルートN 未満の全ての奇数nについて、nが素数か否か、AKS素数判定法で判定する。 https://ja.wikipedia.org/wiki/AKS%E7%B4%A0%E6%95%B0%E5%88%A4%E5%AE%9A%E6%B3%95 2.nが素数ならば、Nをnで割る。
- ベストアンサー
- その他([技術者向] コンピューター)