- ベストアンサー
RSAによる暗号化について
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
鍵の長さは法nです。 最近では512Bitでは安全ではなくなってきています。 2048Bit位は必要でしょう。 普通秘密指数dは公開指数eを決めてから計算で出します。 このときeは計算しやすい3,7,11,65537等が選ばれることが多いです。 選んだeによってはdよりeのほうが長くなることがあります。 d,eはnより長くなることはありません、 d,eもnを法として計算されます。
関連するQ&A
- 学校でRSA暗号について勉強して分からないところがありましたので質問し
学校でRSA暗号について勉強して分からないところがありましたので質問します。 暗号文の作成者をAさん、復号者をBさんとします。 Aさんは暗号文と公開鍵{e,n}を一般に公開しますよね? 暗号文を復号化するには秘密鍵が必要ですが、Bさんはeとnしか分からない(一般の人と得られる情報が同じ)のにどうやって秘密鍵を作成するのですか?nのもとになっている2つの素数がわからないことには秘密鍵が作成できないとおもうのですが… RSA暗号はnの素因数分解が計算量的に困難だから安全なんですよね?Bさんはどうやって2つの素数を特定するのでしょうか? 教えてください。
- ベストアンサー
- ネットワーク
- RSA暗号についての素朴な疑問
RSA暗号について勉強中のものですが、これまでのところ (1)送信側はは公開鍵(e,n)で平文aを b = a^e mod n で暗号文bを作成する。 (2)受信側は秘密鍵dを知っており、上記暗号文bからb^d mod n で元の平文aが求まる。 (3)暗号としてのキモは、(e,n)からでは復号できない。dを求めることも困難(nの素因数分解が困難) というのが私の理解したところです。数式等もある程度理解しました。 ただ、ここで素朴な疑問があります。dをしらなくてもbのべき乗を繰り返していけば復号できるのでは?ということです。自分が送信側で平文aを暗号化してbを作る。bから bxb→b' b'xb→b'' b''xb→b''' と計算していけば平文aにたどり着くのでは? (その結果dもわかったことになる) 平文が現れたかのチェック時間は余分にかかると思いますが、dを知っていてbのd乗を計算するのと上記のように2乗、3乗...と繰り返すのと大きな違いがあるのでしょうか? 長文ですいません。
- ベストアンサー
- ネットワーク
- 公開鍵暗号 RSAについて
こんにちは、 RSAの説明には、 公開鍵(a,N) 秘密鍵(b,N) N=素数c×素数d を用意した場合、a,c,dを決定できれば、bを導いて秘密鍵を導くことができます。 とあります。N、c、dの関係はわかりますが、a,bは何でしょうか?
- ベストアンサー
- ネットワーク
- RSAのプログラミング
卒論でRSAをC++でプログラミングしています。 最初に選ぶ大きな素数p、qにより法鍵Nを作るとしたとき、p、qはどれくらい大きな数でなければなりませんか? また、公開鍵は素数である必要はありますか?指数鍵もどのくらい大きな数である必要がありますか。 (p、q、公開鍵を一桁代の数字で計算すると、秘密鍵がマイナスにあるときがあったので) また、「こんな暗号技術もC++で作ってみたら?」というのがあれば教えてください。
- 締切済み
- ネットワーク
- 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暗号に関し、素数p.qが、それぞれ5、11であり、かつ、暗号化鍵
RSA暗号に関し、素数p.qが、それぞれ5、11であり、かつ、暗号化鍵eが23のとき、復号鍵dを求める考え方の手順を教えてください。さらにこれらを使って平文2を暗号化するにはどのようにすればいいでしょうか。
- ベストアンサー
- ネットワーク
- 暗号のアルゴリズムについて
公開鍵暗号方式・共通鍵暗号方式があるのはわかっているのですが、 共通鍵暗号方式では、送信者・受信者共に同じ鍵を使うため、同じアルゴリズムで暗号化・復号を行うのであろうと予想はつくのです。 (DESや3DESがあると思うのですが、多分共通鍵にDESを使うとかかいてある?) ・質問 公開鍵暗号の場合、 AがBにデータを送る際、Bの公開鍵でデータを暗号化すると思うのですが この時、Bの公開鍵(証明書?)に、RSAで変換 といったことが書かれているのでしょうか? 公開鍵暗号には、楕円曲線暗号、ElGamal暗号があると思うのですが、 もし、Bの公開鍵に、暗号方式が書いていないと、Bの秘密鍵がRSAだった場合復元できなくなってしまうと思うのですが・・・。 初歩的な質問ですみませんが、 どなたかご教授いただけないでしょうか?
- ベストアンサー
- ネットワーク
お礼
御返答ありがとうございます。となると、eはある数に固定して(ずっとそれを使いつづけると安全上問題は生じますが)、d及びNは同じビット長で実装を考えたいと思います。しかし、2048ビットのべき乗剰余演算などを実装する事を考えたらやはりものすごく大きな回路になるんですね。参考になりました。ありがとうございます。