このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。
謎解きが好き | 整数の問題が好き | |
学籍番号 | 氏名 | (番号欄) |
語学が好き | 寒くなって体調を崩した |
次の暗号を解きなさい
Avrfv Klurp Bupclyzpaf (AKB) dhz mvbuklk pu 1907 if adv fvbun lunpullyz dov wshflk hjapcl yvslz pu aol pukbzayphs dvysk, Zlppjop Opyvah huk Zopurpjop Vnptvav, av jvujylapgl aolpy zbisptl pklh, “Wyvtvapun lunpullypun lkbjhapvu pz pukllk aol mvbukhapvu mvy aol klclsvwtlua vm h uhapvu.”
シーザー暗号解読機を用いると簡単
グループ内でシーザー暗号文をやり取りし、鍵無しで解けるか 確認しなさい
RSA 暗号鍵作成シートを用いて RSA暗号を作りなさい。 また、べき乗電卓を用いて、暗号の確認をしなさい
次の暗号を解きなさい
Hudxu Zyldg Klgpybvghx (HZK) nsv iuklzyz gl 1907 ex hnu xuklo yloglyybv nau cmsxyz srhgpy bumyv gl hay glzkvhbgsm nubmz, Vyggrag Agbuhs slz Vagldgrag Uogquhu, hu rulrbyhgjy haygb vkemgqy gzys, “Cbuquhglo yloglyybglo yzkrshgul gv glzyyz hay iuklzshgul iub hay zypymucqylh ui s lshgul.” Habukoa ghv vumgz slz zgmgoylh srszyqgr rkmhkby, HZK asv eyyl iuvhybglo vhkzylhv iub quby hasl s rylhkbx ngha hay qgvvgul, “Zypymucqylh ui Akqsl Byvukbryv Nau Rulhbgekhy hu Vurgyhx ex Hyralumuox.” HZK smvu asv eyyl cbupgzglo fksmghx glvhbkrhgul esvyz ul hay hnu yzkrshgulsm qswgqv: “Byvcyrh iub Cbsrhgrsm Vhkzx” slz “Vhkzylhv Igbvh.” HZK rulhglkyv hu rkmhgpshy ywrymmylh akqsl byvukbryv hu qyyh hay lyyzv ui vurgyhx, rasloglo ngha hay hgqyv hu qsdy vgolgigrslh rulhbgekhgulv hu hay zypymucqylh ui Tscsl’v vrgylry slz hyralumuox.
単一換字式暗号解読機を用いる
来週の火曜日の夕方までに <[email protected]>宛に 一通のレポートを作成し、 メールすること。
暗号とは、送りたい情報(平文)を別の情報(暗号文) に置き換え、送りたい情報そのものを秘匿する技術です。 但し、鍵を持っていると、暗号文から元の平文を求める (復号)できることが必要です。 平文から暗号文を 作る操作を暗号化と言いますが、これは一般 には鍵に対する 暗号関数 と復号関数 により次の関係を示すことができます。
は必ず存在しなければならないので、鍵の全探索 (ブルートフォースアタック) により、暗号は必ず解くことができます。 但し、鍵の全体集合(鍵空間)が十分に大きければ、ブルートフォースアタック に対して、解かれにくくなります。 暗号への攻撃はブルートフォースアタックのみではありません が、 様々な攻撃への耐性のことを強度と言います。 鍵空間の大きい暗号は、ブルートフォースアタックに対して強度を持つこと になります。
インターネットを使用していると様々な暗号技術を使用します。
文字に順番がある時、文字列を暗号化するときに、それぞれの文字の順番を ずらすのをシーザー暗号 と言います。
これは鍵空間が狭いので、ブルートフォースアタックで簡単に解けます。
文字を入れ替えて作る暗号を単一換字式暗号と言います。 鍵空間は広いのですが、元の平文の性質をそのまま持つため、 英語だと「eが多い」「一文字の単語は a, I」「the, are, with などよく 出てくる単語にパターンがある」などのテクニックで解けます。
したがって、ブロック暗号を作る場合は、ある程度ブロック長を長く取る必 要があります。
2つの正の整数に対して、大きい方を小さい方で割った余りを求め、小さい 方とその余りについても割り算を繰り返していくことにより、 最終的に割り切れる直前の余りが与えられた2数の最大公約数になるという のがユークリッドの互除法です。 与えられた正の整数を とします 。 この時、各商を , 、各余りを と表すと、次のように書くことができます。
さて、この割り算の式の列について、 が求まっている時、 その式を利用すると、その上の と の式に対して、 と gcd の式を代入することで、 とgcd の式を求めることができる。
これを繰り返すと、 に の式を使って、 の式を得ることができる。 したがって、最終的に からなる式 を得ることできます。 これを拡張ユークリッド互除法と言います。
なお、この等式は一通りではなく何通りも求めることができます。 特に、正のを求めたいのに、負の値が求まってし まった場合、 は常に成り立つので、各項を対応して足し引きすれば良いです。
数に対する合同式とは次のような式 を言います。
これは がで割り切れることを意味します。
フェルマーの小定理とは 素数とそれに素な整数 に対して次が成り立ちます。
数とその素因数分解が以下のとおりとします。
この時オイラー関数は以下のように定義されます。
と互いに素な整数 には次の性質があります。
古くから使われている暗号は、暗号化の手法から復号の手法がすぐにわかる ようなものです。 このような暗号を共通鍵暗号と言います。 一方、暗号化鍵を知っても復号化が直ちにできないような暗号は、暗号化鍵 を公開しても安全性が保たれます。これを、公開鍵暗号と言います。 古典暗号理論では鍵は秘匿しながら受信者と共有しなければなりませんでした が、その共有するのに、どのような通信を行えばよいかという 鍵配布問題は未解決問題でした。
ところが、Diffie と Hellmanは暗号鍵から復号鍵が求めにくいような暗号 システムを提案しました(1976)。 このシステムでは受信者が暗号鍵を盗聴可能な通信路で送信者に送れば、 平文は盗聴されずに通信が行なえます。 このようなシステムを公開鍵暗号システムと言います。 公開鍵暗号は根本的に鍵配布問題を解決します。
Rivest, Shamir, Adleman が開発した公開鍵暗号方式(1977)。
2つの素数 p, q の積に対する オイラー関数は次で得られます。
ここで、以下の条件を持つ、ある2つの数 e,d を求めます。
すると、p,q と互いに素な数 x に対して次が成り立ちます。
ここで、e,n=pq から d を求めるのは、 p,q を知っていれば容易ですが、 そうでなければ有効なアルゴリズムは知られていません。 そこで、暗号化鍵、復号化鍵を次のように定めると、公開鍵暗号であるRSA 鍵を作ることができます。