Problem 182
の編集
https://odz.sakura.ne.jp/projecteuler/?Problem+182
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
(no template pages)
*[[Problem 182:http://projecteuler.net/problem=182]] 「RSA暗号」 [#f0e8588d] RSA 暗号は以下のアルゴリズムに基づいている: -鍵生成 ++二つの異なる素数 &tex{p}; と &tex{q}; を生成する. ++&tex{n=pq}; とし, φ=&tex{(p-1)(q-1)}; (=φ(&tex{n};))とする. ++1<&tex{e};<φ の範囲で gcd(&tex{e};,φ)=1 となる整数 &tex{e}; を決定する. -暗号化 ++平文を [0,&tex{n};-1] 中の整数 &tex{m}; とする. 平文は以下の方法で [0,&tex{n};-1] 中の整数に暗号化される. ++&tex{c=m^{e}}; mod &tex{n}; とし, &tex{c}; を暗号文とする. -復号 ++暗号文を &tex{c}; とし以下の操作を行う. ++&tex{ed};=1 mod φとなる &tex{d}; を計算する. &tex{m=c^{d}}; mod &tex{n}; が元の平文となる. さてある &tex{e}; と &tex{m}; について &tex{m^{e}}; mod &tex{n}; = &tex{m}; となることがある. 以下,&tex{ m^{e}}; mod &tex{n=m}; となる &tex{m}; を''公然の平文''と呼ぶことにする. 公開鍵の一部 &tex{e}; を選ぶときには, 公然の平文が多くならないという点が重要である. 例えば, &tex{p}; = 19, &tex{q}; = 37 とする. このとき, &tex{n}; = 19 * 37 = 703 でありφ = 18 * 36 = 648 である. もし &tex{e}; = 181 とすると, gcd(181, 648) = 1 であるが, 全ての平文 &tex{m}; (0≤&tex{m};≤&tex{n};-1) が公然の平文となってしまう. &tex{e}; についてどのような選び方をしても, 必ずいくつかは公然の平文が存在する. 従って, 公然の平文の数を最小化するように &tex{e}; を選ぶのは重要である. さて, &tex{p}; = 1009, &tex{q}; = 3643 とする. このとき, 公然の平文の個数が最小となる全ての &tex{e}; の総和を求めよ (ただし 1<&tex{e};<φ(1009,3643) かつ gcd(&tex{e};,φ)=1).
タイムスタンプを変更しない
*[[Problem 182:http://projecteuler.net/problem=182]] 「RSA暗号」 [#f0e8588d] RSA 暗号は以下のアルゴリズムに基づいている: -鍵生成 ++二つの異なる素数 &tex{p}; と &tex{q}; を生成する. ++&tex{n=pq}; とし, φ=&tex{(p-1)(q-1)}; (=φ(&tex{n};))とする. ++1<&tex{e};<φ の範囲で gcd(&tex{e};,φ)=1 となる整数 &tex{e}; を決定する. -暗号化 ++平文を [0,&tex{n};-1] 中の整数 &tex{m}; とする. 平文は以下の方法で [0,&tex{n};-1] 中の整数に暗号化される. ++&tex{c=m^{e}}; mod &tex{n}; とし, &tex{c}; を暗号文とする. -復号 ++暗号文を &tex{c}; とし以下の操作を行う. ++&tex{ed};=1 mod φとなる &tex{d}; を計算する. &tex{m=c^{d}}; mod &tex{n}; が元の平文となる. さてある &tex{e}; と &tex{m}; について &tex{m^{e}}; mod &tex{n}; = &tex{m}; となることがある. 以下,&tex{ m^{e}}; mod &tex{n=m}; となる &tex{m}; を''公然の平文''と呼ぶことにする. 公開鍵の一部 &tex{e}; を選ぶときには, 公然の平文が多くならないという点が重要である. 例えば, &tex{p}; = 19, &tex{q}; = 37 とする. このとき, &tex{n}; = 19 * 37 = 703 でありφ = 18 * 36 = 648 である. もし &tex{e}; = 181 とすると, gcd(181, 648) = 1 であるが, 全ての平文 &tex{m}; (0≤&tex{m};≤&tex{n};-1) が公然の平文となってしまう. &tex{e}; についてどのような選び方をしても, 必ずいくつかは公然の平文が存在する. 従って, 公然の平文の数を最小化するように &tex{e}; を選ぶのは重要である. さて, &tex{p}; = 1009, &tex{q}; = 3643 とする. このとき, 公然の平文の個数が最小となる全ての &tex{e}; の総和を求めよ (ただし 1<&tex{e};<φ(1009,3643) かつ gcd(&tex{e};,φ)=1).
テキスト整形のルールを表示する