現実世界で用いられた暗号について語るエイシンフラッシュ

  • 1二次元好きの匿名さん22/01/10(月) 05:26:29

    皆さんこんばんは 
    今回は現実で用いられた暗号について紹介したいと思います
    いくつか間違ってる点があるかもしれませんがその点はご容赦ください
    まず暗号は古典暗号と現代暗号の二種類に分けられており
    共通点としては暗号文を平文(元の文章)にするときに共通の鍵を使うことですが、
    古典暗号は暗号の作り方を秘密にした暗号で、鍵は短く、シーザー式などが該当するものです。
    現代暗号は、暗号の作り方が公開されおり、その代わり鍵はとても長く鍵も公開鍵と秘密鍵と二分割されております
    RSA暗号などが代表例ですね。
    古典暗号は暗号の作り方さえわかってしまえば、鍵が短いので比較的解きやすい一方
    現代暗号は膨大な量の計算をこなさなければ決して解けないものになっているため解きにくく
    さらに、逆算することによって解けるまでにどれぐらい時間がかかるかをだいたい求められるのも特徴です

  • 2二次元好きの匿名さん22/01/10(月) 05:26:42

    期待

  • 3二次元好きの匿名さん22/01/10(月) 05:27:18

    例えるなら鍵のかかったドアがあったとして、古典暗号は鍵をどこかに隠すのに対して
    現代暗号は大量の鍵を相手に押し付けてどれが正解か判別できなくするといった感じですね
    では今回は古典暗号からスキュタレー暗号  上杉暗号 シーザー式
    古典から現代への移り変わりであるエニグマ 
    現代暗号からRSA暗号を紹介したいと思います

  • 4二次元好きの匿名さん22/01/10(月) 05:29:03

    まずは一つ目 スキュタレー暗号
    スキュタレー暗号は棒に革紐を巻き付けて文章を書き、相手にはその革紐だけを相手に送りつける暗号です
    鍵は棒であり、もし棒がなければ革紐の端っこから適当に書かれた英数字の羅列にしか見えませんが
    相手が同じ太さの棒を持っていた場合、棒に革紐を巻き付け横に読めば平文化された文章が出てきます
    とてもシンプルですがもし読み方を知っていれば簡単に読めてしまうため、今では暗号文ではなく
    簡単な平文を送るのに使われていたのではないか?という歴史家もいるそうです。

    2つ目は 上杉暗号
    これは数字と表を用いた暗号です
    暗号文は「数字.数字」といったふうに送られ、その数字を7x7で書かれたいろはの表と照らし合わせると平文が出てくると言った形になります
    今回はそれを掲示できないので変わりにひらがな表を使いますが、例えば1.1 1.2 1.3 1.4 1.5 と書かれていた場合
    あ行の1番目「あ」 あ行の二番目「い」… といったふうに変換し 「あいうえお」というふうになります
    鍵は表であり、これがなければただの数字の羅列に見えるというわけです

  • 5二次元好きの匿名さん22/01/10(月) 05:30:16

    3つ目は シーザー式
    これはシフト式ともいわれており例えばAという文字を右へ3つずらしDというふうにします
    この際の鍵はアルファベット表(ABCD…が一列に並んだもの)を用意し、左へ3つずらすと元のAに戻ります
    つまり鍵は3ということです。
    とてもシンプルですが有名な暗号であり、平文を特定の文字に変換することから換字式(かえじしき)暗号方式
    とも言われております これは次のエニグマにつながる方式ですが、現時点では単一換字式暗号方式といい
    同じ文字は同じ文字に変換されてしまう性質上から、文章によく使われるアルファベットがどれに当てはまるか、
    そしてany, and, the, are, of, if, is, it, in などの頻繁に使う単語がどこに当てはまるかを調べることで
    法則を見つけられると見破られてしまうことが欠点でした その点を解消したのがそう!あのエニグマです!!

  • 6二次元好きの匿名さん22/01/10(月) 05:31:00

    エニグマ
    これはとても有名で、名前の由来は「謎」または「なぞなぞ」となっております
    仕組みとしてはスクランブラーと呼ばれる26文字のアルファベットが書かれたローター(円盤)をいくつか用意し、
    鍵通りの順番で鍵に指示されたローターを機械に取り付け、更に指示されている初期位置に合わせ
    さらに鍵に指示されたプラグボード(つないだ文字がそれに変換されるAとCでつなげばAはCと出力されCはAとでる)
    をつなぐと暗号文をタイプした時に平文が得られるという仕組みです。
    とても複雑ですが要約すると鍵は
    ・ローター種類
    ・ローターの順番
    ・ローターの初期位置(どのアルファベットを起点にするか)
    ・プラグボードの挿す場所
    となっております

  • 7二次元好きの匿名さん22/01/10(月) 05:32:09

    ガンギマリ差分で草

  • 8二次元好きの匿名さん22/01/10(月) 05:33:42

    暗号化の仕組みとしてはとても機械的にはシンプルで暗号的には複雑です
    三枚ローターの場合まず文字を打ち込むと一枚目のローターの対応する文字に変換され、
    それが2枚目のローターの文字に変換され三枚目の…といったふうに信号が通った後、信号が戻ってきて
    3→2→1の順にまた通ることで暗号化されます 
    そして重要なのが一文字打つたびに一枚目のローターが一文字分回転してずれることです。
    これによって同じ文字…例えばAとタイプしても変換先は同じにならず BだったりTだったりと変わることです
    そして26文字打って一周した場合二枚目のローターが一個ずれ、
    二枚目のローターが一周した時三枚目のローターがずれるので同じ変換法則にはなりません。
    なので同じAをタイプし続けても同じ変換法則で現れるのは26の3乗後というふうになります
    これをドイツ軍は導入し、3ローターから5ローター ローターの種類も10個だったりと年代を重ねるに連れ増やし
    強度をあげていきました。

  • 9二次元好きの匿名さん22/01/10(月) 05:34:02
    /photo/1

    すみません 画像はこれです ここからお借りしました

  • 10二次元好きの匿名さん22/01/10(月) 05:35:32

    しかしこれにも欠点がありました
    暗号で変換した時に絶対に同じ文字にならないということです。
    一見どこが欠点なのかわからないと思いますが、たとえば気象情報などの暗号文を送った時に、
    「日付や曜日など絶対に使われている」
    って推測できる単語や文章がありますよね? 
    そういったものを暗号文に当てはめた時、暗号文と同じ位置に同じアルファベットが
    入った場合は絶対に違うと推測できるわけです。 
    逆に言えば文章を当てはめてどの箇所ももかぶらなければ「正解かもしれない」
    と推測できます。 こういったよく使われている既知の単語を「クリブ」といいます
    特にドイツは「ハイル・ヒトラー」を文章の締めくくりに使ったりしたのでそれを簡単に当てはめることが出来
    それがない場合は適当なところを攻撃してその地点に危機が迫ってるという文章をあえて送らせ、その地名などを
    クリブとしてつかい、暗号を解読していきました
    これらの要素と敵から奪ったローターなどを用いて
    アラン・チューリングという人は総当たりをするコンピューターを作りました
    このコンピューターは、クリブを当てはめていき、
    一文字でもかぶったらそのパターンを除外、 かぶってないパターンから総当りをして暗号を解読する
    というプログラムを組むことで効率よく暗号を解読していきました

  • 11二次元好きの匿名さん22/01/10(月) 05:36:37

    では次に紹介するのは現代の暗号 RSA暗号というものです
    RSA暗号は素因数分解を使った暗号で、「暗号x」を「秘密鍵b」で乗算した数字を「公開鍵y」で割った場合簡単に
    元の数字「平文z」が得られる一方
    その「xという数字を何条するか」を求める時に必要なyの素因数分解をさせると最小の素数である2から根気よく割っていかないと
    いけないため、数値が大きければ大きいほど膨大な時間がかかるという点を使った暗号です
    多分ピンとこないでしょう? そこで非常に小さな数字を用いた暗号を作りたいと思います

  • 12二次元好きの匿名さん22/01/10(月) 05:38:07

    公開鍵となる「y」の作り方は素数同士… 今回は「素数Qとして3」と「素数Pとして5」を使っていきます
    この2つを掛け算した数値 3x5=15が公開鍵「y」となります
    次に秘密鍵「b」を作っていきます
    先程の「3」と「5」をそれぞれ1引いた数「2」と「4」を掛けて 2x4=「8」 を求めた後
    この「8」にたして互いに素(公約数が1でしか割れない数字)を設定します 
    今回は「3」を設定します 
    そして「この3と秘密鍵b」掛け算をしたあと
    「(Q-1)x(P-1)=(今回は8)で割った時に1あまり1」になるようにします
    今回は「9÷8=1あまり1」という形にしたいので「秘密鍵b」を「3」にセットし(3)x秘密鍵(3)=9 
    ここまでが準備です

  • 13二次元好きの匿名さん22/01/10(月) 05:39:36

    次に暗号化します 
    暗号化の手順は「暗号化したい数字z<公開鍵y」つまりzはyより小さい数字になるようにします 
    暗号化したい数字が公開鍵yを上回ると暗号化出来ませんので注意してください
    今回は「平文zを12」にします
    そして「平文z(12)の秘密鍵b(3)乗」をして12の3乗=1,728として出します
    そして1,728を公開鍵y(15)で割り 1728÷15=115あまり3 の 「あまり3」 を「暗号x」として使います

  • 14二次元好きの匿名さん22/01/10(月) 05:40:26

    復号の仕方は簡単で
    暗号x(3)を秘密鍵b(3)で乗算します 3の3乗=27
    そして27を公開鍵y(15)で割り 27÷15=1あまり12 この12がそう 平文zですね
    こういったふうに秘密鍵yを知っていれば簡単に求めることが出来ます 

  • 15二次元好きの匿名さん22/01/10(月) 05:41:11

    ですが秘密鍵yを知らない場合公開鍵yをとにかく素因数分解してもととなった素数QとPを探さなければなりません
    今回はとても簡単で15の素因数分解は3と5です 
    あとは作成手順に基づいていけば必ず暗号鍵にたどり着くことが出来ます
    ですが元の素数が1桁ではなく3桁だったらどうでしょう?五桁だったら?10桁だったら? 
    膨大になった数を何度も何度も2から根気よくやらなければいけないため桁によっては地球が滅びると言われる
    年数があっても解くことが出来ません。少なくとも現状では。

  • 16二次元好きの匿名さん22/01/10(月) 05:42:02

    そしてこれらは現在我々のインターネットのやり取りの基礎になっております

    いかがでしたでしょうか? かなり頭が痛くなったと思いますが 私もそのとおりです 
    ものすごく頭が痛くなっております。 はっきりいってこれ以上は理解できません
    もしもっと詳しくできる方 ここ間違ってるよー!!ってわかる方が居たら訂正お願いします 以上

  • 17二次元好きの匿名さん22/01/10(月) 05:42:34

    なぜこんな時間に放送大学もビックリなガチ講義を…?
    しかし面白いから保守

  • 18二次元好きの匿名さん22/01/10(月) 05:45:52

    このレスは削除されています

  • 19二次元好きの匿名さん22/01/10(月) 05:46:05

    現代暗号が安全かどうかはP≠NP予想次第だけど未解決問題なのよなあ
    スレの内容とあんまり関係ないけど素因数分解が比較的簡単に解けるから量子コンピュータがやばいって言われるんだよね

  • 20二次元好きの匿名さん22/01/10(月) 05:57:44

    なおロシア軍は第一次世界大戦にもなってカエサル暗号による情報伝達を行なって無事内情が筒抜けだった模様
    当のカエサルはもっと複雑な暗号使ってたともされるのにこれだから農奴制社会は…

  • 21二次元好きの匿名さん22/01/10(月) 06:13:18

    >>17

    RSA暗号につまってしまい本当は明日にしようと思ったのですが

    いろいろあって本気を出した結果見事噛み砕くことに成功

    喜びのあまりこの時間に公開に至りました 多分沈んでたら明日の昼に上がるようにするかもしれません

    流石に力作なので自己掲示したいです

  • 22二次元好きの匿名さん22/01/10(月) 06:16:53

    >>15

    ☓秘密鍵yを知らない場合

    ○秘密鍵bを知らない場合 

    ですね… どうやら脳みそがゆだってたようです…

  • 23二次元好きの匿名さん22/01/10(月) 06:31:15

    >>21

    自己掲示じゃない…自己”顕”示でした… もう寝ます… 

  • 24二次元好きの匿名さん22/01/10(月) 07:15:35

    そこらの本のページの最初の文字使って擬似バーナム暗号で遊んだことはあるな

  • 25二次元好きの匿名さん22/01/10(月) 07:26:25

    >>13

    公開鍵方式は、公開鍵だけで暗号化できるという認識だったけど、秘密鍵を使う必要があるもん?


    >今回は「平文zを12」にします

    >そして「平文z(12)の秘密鍵b(3)乗」をして12の3乗=1,728として出します

    >そして1,728を公開鍵y(15)で割り 1728÷15=115あまり3 の 「あまり3」 を「暗号x」として使います

  • 26二次元好きの匿名さん22/01/10(月) 07:38:11

    このレスは削除されています

  • 27二次元好きの匿名さん22/01/10(月) 07:39:13

    このレスは削除されています

  • 28二次元好きの匿名さん22/01/10(月) 07:39:56

    >>25

    目が覚めて見にきたらどうやらやらかしていたみたいです

    >>12で今回設定したアルファベットを振っていない数値と秘密鍵が同じ

    3だったため気づかず解けてしまったみたいです

    本当は>>12で設定して特にアルファベットを振らなかった物が公開鍵のもう一つです 

    eってことにしてください

  • 29二次元好きの匿名さん22/01/10(月) 08:05:05

    不安になったのでもう一度寝る前に数値を変えてテスト
    素数Q=17 素数P=11 平文z=62 公開鍵y=187 公開鍵e=7 秘密鍵b=23 暗号x=105
    QP=y 17x11=187
    (Q-1)x(P-1) 16x10=160
    eb=1あまり1 7x23=161 161÷160=1あまり1
    zのe乗  62の7乗=3,521,614,606,208
    3,521,614,606,208÷187=18,832,163,669余り105 105=暗号x
    暗号xの秘密鍵b乗    105の23乗=30,715,237,559,178,093,575,585,792,895,090,579,986,572,265,625
    暗号xの秘密鍵b乗÷公開鍵y 30,715,237,559,178,093,575,585,792,895,090,579,986,572,265,625÷187
    =164,252,607,268,332,051,206,341,138,476,420,213,831,937,249余り:62 62=平文z

    今度こそ大丈夫そうですね! 

  • 30二次元好きの匿名さん22/01/10(月) 08:06:44

    >>28

    ありがとうもん。

    あの3かもん。

    あんまり理解してなかったからよく分かったもん。

  • 31二次元好きの匿名さん22/01/10(月) 08:09:21

    >>30

    いえいえ…こちらこそ間違いを指摘してくださりありがとうございました

    >>26>>27は自分が書いた文章で、消えてるのは自分の二度も打ち間違いに送った後

    気がついて2度消したからです…

    ではもう一度おやすみなさい…

  • 32二次元好きの匿名さん22/01/10(月) 08:09:35

    何じゃこれ…って青ざめたけどそれなら合同式で解けそうね…
    誰かやってみて(丸投げ)

  • 33二次元好きの匿名さん22/01/10(月) 08:14:49

    映画のサマーウォーズに出てきた数列もRSA暗号を元に作ったらしいね。でも、本当にRSA暗号ならあれを一晩で解いたのマジで何者?

  • 34二次元好きの匿名さん22/01/10(月) 08:35:59

    >>29

    すごい数もん。復号するのにすごく時間かかりそうもん。

    でもなんでhttpsで阿部寛の画像をダウンロードするときに、すぐに表示されるもん?

    今のスマホの処理能力が強いのかもん?

    http://abehiroshi.la.coocan.jp/abe-top-20190328-2.jpgabehiroshi.la.coocan.jp
  • 35二次元好きの匿名さん22/01/10(月) 08:46:13

    >>34

    阿部寛のホームページは暗号化されてませんよ

  • 36二次元好きの匿名さん22/01/10(月) 08:48:38

    サイモンシンの暗号解読は中学の頃の愛読書…
    なにかおすすめの本当かあるもん?

  • 37二次元好きの匿名さん22/01/10(月) 08:50:21

    >>20

    仕方ねぇだろ皇帝が「少しでも改革したいと言う奴は社会主義者」みてぇな思考回路で、識字率も二割切ってた上に19世紀に魔女狩りやってた蛮族国家なんだから

  • 38二次元好きの匿名さん22/01/10(月) 09:26:00

    >>37

    ソ連って第一次大戦の時の識字率そんなに低かったのか

  • 39二次元好きの匿名さん22/01/10(月) 09:32:13

    二次でも相当だぞ

  • 40二次元好きの匿名さん22/01/10(月) 09:33:40

    >>38

    ロシア帝国だぞ

  • 41二次元好きの匿名さん22/01/10(月) 10:00:07
  • 42二次元好きの匿名さん22/01/10(月) 10:00:22

    >>38

    日本人の識字率の良さが江戸時代から異常ってだけで、他国では教育受けられるのが貴族とかだけだから、平民が読み書きできないのは当時なら普通だぞ

    日露戦争ではただの一般兵士が自分の名前を書けることや、レポート書ける事に驚かれたんだ


    GHQ「戦争起こそうなんてバカな考え持ったのは文字を3つも使ってるせいで読み方がわからないせいだ。アルファベットに統一しよう」

    「山奥の木こりや炭焼やってる農民でも平気に新聞読んでる…ヤベーわ」


    ポル・ポトが看板読もうとした連中を片っ端から処してたってのも有名だな

  • 43二次元好きの匿名さん22/01/10(月) 10:02:24

    >>42

    なおローマ帝国及びビザンツ帝国の識字率

  • 44二次元好きの匿名さん22/01/10(月) 10:51:44

    >>41

    読んでみるかな、ありがとう

  • 45二次元好きの匿名さん22/01/10(月) 14:06:01

    暗号なのに毎回ハイルヒトラー入れちゃうの、生真面目すぎてドイツらしい

  • 46二次元好きの匿名さん22/01/10(月) 14:13:13

    日本ですら陛下万歳とか入れないのにな………

  • 47二次元好きの匿名さん22/01/10(月) 14:17:01

    >>10

    これで手掛かりになったのは時間っていうのも聞いたことありますね。

    午前6時には必ず気象予報を流すからそれで相当詰めることができたらしいですね。


    あと最初期には設定を3文字のアルファベットに変えて二度繰り返したから最初に送られる暗号文の最初6文字は必ずある一定のパターンがあったからそれで解読できた。


    ちなみにエニグマに関してちょっと面白い話があって、開発者はエニグマが量産されたときに死亡したらしくて、莫大な金をフイにしたしたらしいですね。

    さて本当に自然死だったのでしょうかね?

  • 48二次元好きの匿名さん22/01/10(月) 14:17:23

    ローターがえっちな単語にしか見えなくて困ってる

  • 49二次元好きの匿名さん22/01/10(月) 14:39:45

    前立てた暗号スレで上杉暗号、シーザー暗号、RSA暗号にはお世話になったな
    エニグマとかは分からなかったから助かる

  • 50二次元好きの匿名さん22/01/10(月) 15:05:44

    補足:どうして素因数分解が時間かかるのか
    実はPCは掛け算に対してはものすごく強くて 逆に割り算 特に素因数分解分解についてはめっぽう弱いんですよね
    PCは筆算を元に計算を行っているらしく、掛け算の場合は桁を一個ずつずらして掛けるだけでよく、
    どんなに先まで計算しても元の数値から変化したものを更に求めるなんてことはしなくて良いので、
    並列してできてしまうのです。 なので桁がものすごく大量に膨らもうが簡単に出てしまいます
    一方割り算は最初に割った数から出てきた数値を元に割って、残った数値を割って、残った数値を更に割って
    と一個ずつプロセスを踏まなければいけないため、掛け算に比べて時間がかかってしまいます
    最近ではどうやら割り算を高速化するプログラムが搭載されているらしいですが、
    素因数分解の場合は昔ながらのやり方…しかも2から順序よく素数で計算していかなければならないため
    PC「2…違うな…3…いや違うな…5…いや違うな…7」 みたく一個ずつ一個ずつ…
    しかもそのたびに膨大な数を踏まなければならないためとても時間がかかります

  • 51二次元好きの匿名さん22/01/10(月) 22:09:14

    思ったよりガッチガチの暗号解説で草

オススメ

このスレッドは過去ログ倉庫に格納されています