Search

Computer House Random
Computer House Random
  • Randomについて
  • ブログ
  • Project
  • 作品紹介
  • 部員紹介

暗号機エニグマの作り方

なんかかっこいいよね

Kenya
2021/04/01

暗号機エニグマ

エニグマとは

 みなさん暗号機エニグマを知っていますか。Wikipediaによると第二次世界大戦でナチス・ドイツが用いたローター式暗号機である。幾つかの型がある。暗号機によって作成される暗号も広義にはエニグマと呼ばれる。意味は本義でもある「謎」。エニグマ暗号機は、1918年にドイツの発明家アルトゥール・シェルビウスによって発明された電気機械式暗号機械で、1925年にはドイツ軍が正式に採用。続いてドイツ政府や国営鉄道なども採用し、3万台以上を販売した。 暗号方式は換字式であり、詳しくは順変多表式である。エニグマはM-209(英語版)と同様な反転暗号となり、暗号文を同じ鍵で再暗号化すると平文が得られる特徴がある。大戦中に連合国側はエニグマ解読に成功したが、その事実は徹底して秘密にされ、ドイツ軍は終戦までエニグマを使用し続けた。

仕組み

 エニグマには3つのスクランブラーと呼ばれる装置がある。これが入力された文字を暗号化した文字に変換する装置です。そしてこれはローターとも呼ばれ、1文字入力されるたびに1回転するという仕組みを持っています。1つ目のローターが1回転すると2つ目のローターが1文字分動くようになっています。こうすることで暗号化する前の同じ文字が暗号化すると違う文字になるようになります。例えば、helloを暗号化するとivneeのようになるということです。lがnとeになったり、loがeeになったりすることで解読を困難にします。この3つのローターが回転する仕組みにより変換表が26x26x26=17,576通りできることになります。そして、3つ目のローターの次にリフレクターと呼ばれる装置があり、入力された信号を反射して返す役割がある。こうすることで暗号文を復号できるようになります。エニグマの暗号化と復号で必要となる情報は、スクランブラーの配置とローターの初期位置などです。

実装

 まず、0から25までの数字をランダムに並べた配列を3つ作ることで3つのスクランブラーを作ります。ローターの機能は1文字入力される毎にスクランブラーの先頭を一番後ろにし、26回転するとその次のスクランブラーを回転させる処理で解決します。リフレクターは3つ目から送られてきた信号を上下反転させて3つ目に送り返します。具体的には0->25に1->24に2->23に…こういうふうにやることで解決します。それでは入力と出力について説明します。入力された文字をアルファベット順で何番目にあるかを調べます。その番号をローター1のインデックスとし、そのローターの番号を調べます。その番号をローター2のインデックスとし、先ほどと同様にしていきます。この処理をリフレクターを通してローター1まで繰り返します。こうすることで得られた番号をアルファベットで何番目にあるかを調べ、アルファベットに変換することで暗号化が成功するという仕組みです。意外と簡単に実装することができるのでみなさんも是非作ってみて下さい。

参考ページ:

https://qiita.com/opengl-8080/items/995778d1cce43ed5babc https://www.az-prolog.com/manual/sample/sample_list_002.html https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13229161928

新入生向けブログリレー2021

2021年度オンライン部活動説明
記事を共有
Avatar
Kenya

    Computer House Random はパソコンによる創作活動を行っている大阪府立大学の部活動です

    Avatar
    Kenya
      記事を共有

      News

      ICPC2020参加記

      ICPC
      pngn
      2021/05/08

      コンピュータハウスランダムってどんな部活?

      【1日目】5分でわかるランダムのこと
      NEGI
      最終更新 2020/04/18

      はじめまして、らんだむちゃんです!

      自己紹介と最初の動画
      らんだむちゃん
      最終更新 2020/03/19

      作品紹介

      【18日目】難波駅構内をblenderで再現してみた

      途中経過
      うっかり侍
      2021/08/31

      【17日目】ウィルダネスアドベンチャー(?)

      いつかリベンジする
      クマイザサ
      最終更新 2021/08/30

      【16日目】CHICKEN NIGHTS

      正直、すまんかった
      Marcus
      最終更新 2021/08/29

      Tag Cloud

      作品紹介 (48) 新歓ブログリレー2021 (46) 新歓ブログリレー2020 (37) 競技プログラミング (34) 新歓ブログリレー2022 (33) 雑談 (32) ゲーム (30) ゲーム制作 (24) 競プロ勉強会 (22) 作品展示リレー2021夏 (19)

      最新の投稿

      【38日目】OneDriveでファイルを管理して授業や部活で活用しよう!

      オム大、クラウド1TBくれるってよ
      Kwang
      最終更新 2022/04/29

      【37日目】受けループやらメタビートやらのすゝめ

      (ゲームにおいては)人の嫌がることをするのが最も楽しい
      クマイザサ
      2022/04/28

      【36日目】マイクラのMODパックで遊ぼう

      MODパックの導入は難しそうって思ってない?
      neuron
      2022/04/27

      【35日目】大阪公立大学 中百舌鳥図書館利用のススメ

      かなり長め
      Rikky
      2022/04/26
      READ MORE

      関連記事


      【18日目】難波駅構内をblenderで再現してみた

      途中経過

      Avatar

      【18日目】ハニワ君再び

      ~通信対戦のゲーム間に合わなかったからとりあえずこれで許して~

      Avatar

      【17日目】ウィルダネスアドベンチャー(?)

      いつかリベンジする

      Avatar

      【16日目】CHICKEN NIGHTS

      正直、すまんかった

      Avatar

      【15日目】府立大学前 堺駅南口方面 時刻表

      2021年8月28日時点

      Avatar

      【14日目】もぐらたたき

      製作途中のゲームの紹介です

      Avatar

      Random
      Randomについて
      ライセンス
      Privacy Policy
      お問い合わせ
      部員専用サイト
      Project
      新入生向けブログリレー2022
      作品展示リレー2021夏
      競プロ勉強会
      Web
      らんだむちゃん
      ブログ
      作品紹介
      LT会
      グラフィック
      DTM
      タグ一覧
      Copyright © 2020 Computer House Random
      引用
      コピー ダウンロード