• ベストアンサー

RSA

RSAでプログラムするときに、例えば、「ABC」という平分は「010203」となりますよね?そのあと、暗号化する前に2進数にもどすのでしょうか?この場合、「010203」は「000100100011」となるのか、「10011111011011(nは10203以上の時)」となるのか教えてください。

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

  • ベストアンサー
  • Barenino
  • ベストアンサー率39% (38/97)
回答No.2

>RSAはブロック暗号かストリーム暗号かということです。 ブロック暗号。 RSA暗号系には色々ヴァリエーションがあるが、 【ブロック暗号だからこそ、64bitのDES暗号のように総当り的解読が不可能】 アルゴリズム上1024bitが安全でしょうが、 米政府等が「「512bit以上のRSA暗号プログラム輸出の制限」と規制している現状。 また、「素因数分解の困難性とRSA暗号解読の困難性」は数学的に証明されていないハズ。 以上。未熟な回答でスイマセン。ごめんなさい。 では~!!!

その他の回答 (1)

  • Barenino
  • ベストアンサー率39% (38/97)
回答No.1

>平分は これは(揚げ足取りのようですが、3分考えました) 「平文」ですね! RSA暗号の仕組みは多少のヴァリエーション(ASCII使用)あるも下記を参照下さい。 http://www8.big.or.jp/~000/CyberSyndrome/rsa/ 鍵・素数・φ(n)等の自動生成アプレットが一番便利なので自分はここを利用してます。 説明しようとするも「素人&長文癖(過去回答を)」のゆえ無難で不精な回答ですいません。 P.S.「暗号化する前に2進数に戻すのでしょうか?」も公開鍵&秘密鍵の前提条件不明で「誤答の可能性大」なので。 (条件のn=1023のみでは回答能力不足) では~!!!

maroniichann
質問者

補足

RSAはストリーム暗号かブロック暗号かということです。

関連するQ&A

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

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

  • RSA

     RSAについて今学習しています。  これを卒論のテーマとしたいのですが、どういう方向へ持って行こうか迷っています。(テキストは『RSA 暗号技術の基礎からC++による実装まで』を使っています。)  ただ本のとおりにプログラムしても面白くないし、自分でソフトを作るといっても・・・・と思ったり。  また、RSAは参考になるプログラムも少ないんで・・・・・  アドバイス頂けると幸いです。

  • 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暗号について

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

  • RSA暗号

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

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

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

  • RSA暗号解読

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

  • RSAの公開鍵

    RSAは二つの素数p、qから乗算された合成数Nと (p-1)(q-1)と互いに素な整数eを公開鍵とするそうですが、 同じ平分Mをeだけ変えてNは同じ値を使って2種類の暗号文を作った場合、 2つの暗号文が手に入れば鍵を知らなくても複合化されてしまうそうですが、 どうしてでしょうか。

  • RSAのCプログラム

    何かC言語で書かれたRSAの一連の流れを示したものはありますか?Googleでプログラムを探しているのですがどうしてもみつかりません。プログラムとして、単純なものでよいです。ある平文に対して、はじめに2つの素数を見つけ(p,q)、鍵を生成し、暗号化をして、それを復号するというような一連の流れをC言語で見てみたいのでプログラムがありましたら教えてください。お願いします。

  • RSA暗号解読の素因数分解による方法について。

    下記の通りで正しいでしょうか。: Microsoft Bing AI (= Bing Chat)生成人工知能の回答を、まとめ、且つ、補足しますと、次の通りです。 自然数 N を、√N (= Nの平方根)未満の自然数であって末位の数字が1,3,7,9のもので以て、割ってゆき、N を素因数分解する、という計算の、時間計算量は、O(Nの4乗根)です。 実際には、RSA暗号による暗号文の暗号は、巨大素数を2つ掛け合わせて作りますので、Nの平方根未満の自然数で、末位が1,3,7,9のもので、しかも、大きいもの順に取ったもので順に割っていけば、N の素因数分解は、時間計算量を、それよりも遥かに小さくして済ませらせます。 上記の様に、問題サイズ N に対する、N の4乗根のオーダーの時間を上界(この場合は、自然数の計算ですので上限)とする、普通の割り算の単純作業だけで、つまり、ごくごく短時間に、N の素因数分解が出来てしまいますので、RSA暗号も、いとも簡単に解けてしまう、ということです。