• ベストアンサー

RSA暗号について教えてください

RSA暗号がどのようなものか、また仕組みについて教えて下さい。調べても分からなかったので、できるだけわかりやすく教えて下さい。また、RSA暗号を用いて、二桁程度の素数を二つ使って暗号の仕方、また戻し方の例を教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • hue2011
  • ベストアンサー率38% (2800/7250)
回答No.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暗号複合の仕組みです。サルでもわかる簡単さです。 サルにわからないように解析するのは数式をつかってみてください。

参考URL:
http://www.maitou.gr.jp/rsa/rsa01.php

関連するQ&A

  • RSA暗号

    どのトピックかがいまいちわからないのでこのトピックに質問を載せさせて頂きます。 いま、大学の課題でRSA暗号をパソコンで実装する という課題に取り組んでいます。 2桁以上の素数を選んで、その素数から暗号化鍵と復号化鍵を選んでアスキーコードを暗号化するという初歩的なものなので、実用性は全くありませんが… プログラムはできたのですが 暗号化鍵と復号化鍵を生成して 暗号化を行って複合化を行うと 元の平文に戻らない鍵のペアがあるらしいのです。 そういうときってあるのでしょうか?

  • RSA暗号について

    RSA暗号では、2つの素数の積を用いますが、3つの素数の積を用いる考え方というのはあるのでしょうか? あるとしたら、その情報、もしくは3つの素数を用いる場合の利点や欠点が知りたいです。よろしくお願いいたします。

  • RSA暗号

    RSA暗号をmathematicaで解く手順を教えてください!!お願いします。

  • 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で割る。

  • RSA暗号解読

    1バイト毎にe=11,n=377でRSA暗号で暗号化し、その結果を4バイトでファイルに出力した。         0034  d=23,n=377でこの暗号化された情報を複合化したいのですがどう計算していけば良いのか分かりません。 途中の計算を書いてまとめたいので解読プログラムを使うこともできません。 0x34を16進数から10進数にして23乗するところまで何とかいきました。この後の計算を教えていただけませんか?

  • RSA暗号について

    下記のRSA暗号を解読して下さい M3H9K7T7E

  • RSA暗号についてです。

    RSA暗号についてです。 秘密鍵(p,q)=(7,17)の公開鍵の求め方、解答がわかりません。 よろしくおねがいします。 この質問に補足する