質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

Q&A

解決済

1回答

1806閲覧

RSA暗号の問題について教えてください。

codetaisei

総合スコア23

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

暗号化

ネットワークを通じてデジタルデータをやり取りする際に、第三者に解読されることのないよう、アルゴリズムを用いてデータを変換すること。

0グッド

0クリップ

投稿2017/07/04 16:15

RSA暗号についての質問です。

①赤丸の部分の解き方を教えてください。

②下線部のところに書いてある高速に計算できるアルゴリズムとは何でしょうか?調べたらバイナリ法というものがありましたが、それでしょうか?

③答えが29と35になっている所は自力で計算しましたが、もっと効率よく計算できる方法はないのでしょうか?自分が解いたときは、L=48とeの倍数をどんどん書いていきe(modL)=1になるようにしました。

イメージ説明

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

この問題の背景として、a,b,c,d,m,nを整数として、mを法として(つまり、以下≡はmod mを意味する)
a≡c,b≡dの時、ab≡cd,a^n≡c^nが成り立ちます。つまり、
余りの計算は、余り同士の計算でできるということです。
① 赤丸の答えはその次の「bのd乗をnで割った余り」と同じで、
そちらのほうが簡単なので、こちらを解きます。
b^2=225なので、n=221を法として、
b^2≡4,b^4=(b^2)^2≡4^2=16,
b^8=(b^4)^2≡16^2=256≡35,
b^16=(b^8)^2≡35^2=1225≡120,
b^29=b^16 * b^8 * b^4 * b≡1203516*15=1008000≡19(答え)

こういうのだと思います。
上記①例を、最後の掛け算を逆順に行うような手法です。
1615=240≡19
35
19=665≡2
120*2=240≡19

③ 私もまだ理解できていませんが、たぶんこれ
ed≡1(mod L)はkを整数としてed = kL + 1と書け、移項して
ed - kL = 1となる。これは数学Aで登場する不定方程式であり、
eとLのユークリッド互除法を利用して解ける。

投稿2017/07/04 17:16

編集2017/07/06 16:56
swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

codetaisei

2017/07/07 21:31

すごく助かりました。 本当にありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問