• ベストアンサー

RSA(公開鍵)

a=2, b=3として以下の方法(RSA)で公開鍵、秘密鍵を作成し、平文4を暗号化したいのですが、暗号化しても4のままになってしまいます。これって暗号化されているのでしょうか?どなたかわかる方がいましたらよろしくお願いします。 1-二つの素数を決める。これをa,bとする。 2-a*b=c (cを合成数) 3-d=(a-1)(b-1)という自然数dを求める 4-f*e/dで余りが1となるようなfを求める。(秘密鍵) 暗号文 =M(平文)^e / c の余り。

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

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

ちょっと計算すればわかるんだけど 4^n ≡ 4 (mod 6) for n > 0. もっと大きな値を使わないとダメです.

3553goemon
質問者

補足

すいません、それはeの値を大きくするということなのですか?それともa,bを大きくするということなのですか?

その他の回答 (1)

  • 180915
  • ベストアンサー率16% (3/18)
回答No.2

数学が好きな中学生です。 下手な説明ですが、 全体的に大きくしなければなりません。 なぜなら、 M^e/c のcで割ったときの余りはcより小さくなるはずですから、 6までしか出ない。 もうちょっと大きい数字にしてみたら暗号化されていることがわかりますよ。

関連するQ&A

  • RSAの公開鍵

    RSAは二つの素数p、qから乗算された合成数Nと (p-1)(q-1)と互いに素な整数eを公開鍵とするそうですが、 同じ平分Mをeだけ変えてNは同じ値を使って2種類の暗号文を作った場合、 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暗号に関し、素数p.qが、それぞれ5、11であり、かつ、暗号化鍵

    RSA暗号に関し、素数p.qが、それぞれ5、11であり、かつ、暗号化鍵eが23のとき、復 号鍵dを求める考え方の手順を教えてください。さらにこれらを使って平文2を暗号化するにはどのようにすればいいでしょうか。

  • 学校でRSA暗号について勉強して分からないところがありましたので質問し

    学校でRSA暗号について勉強して分からないところがありましたので質問します。 暗号文の作成者をAさん、復号者をBさんとします。 Aさんは暗号文と公開鍵{e,n}を一般に公開しますよね? 暗号文を復号化するには秘密鍵が必要ですが、Bさんはeとnしか分からない(一般の人と得られる情報が同じ)のにどうやって秘密鍵を作成するのですか?nのもとになっている2つの素数がわからないことには秘密鍵が作成できないとおもうのですが… RSA暗号はnの素因数分解が計算量的に困難だから安全なんですよね?Bさんはどうやって2つの素数を特定するのでしょうか? 教えてください。

  • 公開鍵暗号 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での暗号化で鍵の長さが512ビットや1024ビットなどのものがありますが、これは公開鍵eと秘密鍵dと共通鍵nのどの鍵が512ビットなのでしょうか?自分の中では512ビットの鍵であれば全て(e,d,n)は512であると思っているのですが、dを計算する時(ユークリッド互除法を用いる)、どうしてもdはeやnの鍵の長さの2倍のビット長が必要な気がします。どうしてもわかりません。鍵のビット長について教えてください。お願いします。

  • SSHの公開鍵について

    お世話になっております。 現在3台のサーバA,B,Cがあり、AのサーバからB,Cにパスワードなしでログインできるようにするため、 AのサーバでSSHの公開鍵と秘密鍵を作成しました。(パスフレーズはnull) 具体的な手順は以下になります。 ------------------------------------------------------------------------------------------- 1. Aサーバにて公開鍵と秘密鍵を作成 A # ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (//.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in //.ssh/id_rsa. Your public key has been saved in //.ssh/id_rsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@A 2. 秘密鍵、公開鍵が作成されていることを確認 A # ls ~/.ssh id_rsa id_rsa.pub known_hosts 3. 公開鍵をBとCサーバへ配信 A # scp ~/.ssh/id_rsa.pub root@B:/tmp Password: id_rsa.pub 100% |***************************************| 223 00:00 4. BとCサーバ側で公開鍵の登録 B # cat /tmp/id_rsa.pub > ~/.ssh/authorized_keys ------------------------------------------------------------------------------------------- 登録後、AサーバからB,CサーバにSSHで接続してみたのですが、一見パスワードなしでログインできているようでした。 ただ、何故か B,Cサーバや無関係なDサーバからもAサーバへパスワードなしでアクセスできてしまいます。 公開鍵を登録したのはB,Cサーバのみで、B,CサーバからAサーバに対してパスワードなしでアクセスできないはずという認識です。 更に、数日後AサーバからB,Cサーバに接続を試みたところ、以下のメッセージが出力されました。 ------------------------------------------------------------------------------------------- ホスト 'B (1.1.1.1)' の認証を確立できません. RSA 鍵フィンガープリントは xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx です 本当に接続を継続してもよろしいですか (yes/no)? ------------------------------------------------------------------------------------------- 公開鍵はBサーバ初回接続時にknown_hostsへ登録済みで、Bサーバ側のIPアドレスの変更なども実施していません。 SSHの仕様で、公開鍵が数日で変更されるのでしょうか? 上記について、アドバイスや問題点があればご教示いただければ幸いです。

  • RSA暗号についてです。

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

  • RSA暗号の解き方

    素数 P=5 Q=11 であり、N=55となります。公開鍵e=3と定義します。一般解d=27となります。 さらに、自然数m=20となります。 (1)自然数mを公開鍵(e,N)を使って暗号Yを求めてください。 (2)さらに、秘密鍵(d,N)を使って暗号Yを復号化し、mと一致することを確認してください。