暗号?鍵?
鍵ってなんだよ。
これ最初思いませんでした?
公開鍵や秘密鍵、頻繁に言われますけど、鍵ってなんだよ、と。
『公開鍵はアドレスで他人に教えていい。秘密鍵は絶対他人に見せるな。』
耳にタコできるぐらい聞いて守ってきたけど、自分の思ってる鍵となんか違う…。
・扉やロッカーを施錠する
・車や原付等の機械を動かす
どうやら今までの鍵とは違う意味を持つのでは?じゃあ、暗号通貨で使う鍵の意味とは?てかそもそも暗号とはなに?
というわけでこの「暗号」「鍵」について書いていきます。
途中から完全に暗号のお話へと切り替わります。笑
wikipediaで調べると二つの鍵が出てきました。
鍵 - Wikipedia https://ja.wikipedia.org/wiki/%E9%8D%B5
鍵 (暗号) - Wikipedia https://ja.wikipedia.org/wiki/%E9%8D%B5_(%E6%9A%97%E5%8F%B7)
暗号用の意味がありました。ま、ですよね。笑
暗号技術において、鍵(かぎ、key)とは、暗号アルゴリズムの手順を制御するためのデータである。
鍵(暗号)ーWikipediaより
うーん、鍵について説明するには暗号技術の知識がないと・・・
ってことで、わかりやすくストーリーにして説明していきます。
背景
登場人物:
アリス(情報の送信者)
ボブ(情報の受信者)
ぺぺ(盗み見したい。。)
アリスという女の子はボブくんに手紙を送ります。しかしぺぺは内容が気になりボブ家のポストを勝手にあさるストーカー行為をしてきます。
そこで、アリスとボブは文章を暗号化した手紙でやり取りすることにしました。
暗号はこういった背景から始まり、これが国家同士の情報戦の中で発展していきました。
では、これから実際に使われたとある暗号技術を紹介していきます。
最終的にペペは手紙の内容を知ることができたのでしょうか・・・
暗号を作成する
アリスとボブはシーザー暗号という最も古典的な暗号アルゴリズムを採用することにしました。シーザー暗号とは文字数をずらして暗号化・復号化します。
ずらす文字数はアリスとボブの間で予め取り決めておきます。
例
アリスは以下の暗号文を作成しました。
F ILSB VLR MBMB FP ZOXPV
これを送信し受け取ったボブは文字をずらして復号します。
↓復号化
i love you pepe is crasy
この暗号化のアルゴリズム(手順)をもう一度。
平文 i love you pepe is crasy
↓アルファベット順で3文字分ずらす
暗号文 F ILSB VLR MBMB FP ZOXPV
アリスは3字だけ後ろへずらして暗号化し送信しました。なのでボブは逆の手順である3字だけ前にずらすという作業で平文へと復号します。
かなりシンプルな暗号ですが説明がなければ解読できなかったのでは?また、3文字というずらした文字数が分からないと、まず初見では解けないでしょう。
こうしてボブはアリスから一見意味の無い文字からメッセージを受け取りことができました!
そして、この「ずらす文字数」こそ、暗号においての鍵となります。
少しまとめます。
暗号化アルゴリズム:一定数ずらす(例3文字ずらす)
復号化アルゴリズム:暗号化とは逆順で一定数ずらす
鍵:ずらす文字数(例の場合は、3)
このように暗号化や復号化に用いるものを鍵というそうです。
また、暗号の種類が変われば鍵の形態や種類も変わります。
鍵について理解できました。これからは引き続き暗号技術について、このストーリーを進めます。
ペペによる解読
さてぺぺは必死です。暗号により文章が読めない。アルゴリズムも鍵も何も分かりません。本当の文章を知りたい。アリスの文章が知りたい。ペペは暗号を解読することを決めました。
ペペは暗号をずっと見つめます。
ある日、ふとある予測が産まれました。
もしかしたら文字数をずらしているだけなのかもしれない。
もしそうだとしたらアルファベットは全部で26文字ですから、鍵は1から25までの25通りしかありません。26通り目で一週して元の暗号文にもどります。
よって、25通りの候補を総当たりで試せば意味のある文字列を取り出せるのでは?
鍵の総当たり(ブルートフォースアタックという)
1:F ILSB VLR MBMB FP ZOXPV→G JMTC WMS NCNC GQ APYQW (?)
2:F ILSB VLR MBMB FP ZOXPV→H KNUD XNT ODOD HR BQZRX (?)
3:F ILSB VLR MBMB FP ZOXPV→I LOVE YOU PEPE IS CRASY (○)
4:F ILSB VLR MBMB FP ZOXPV→J MPWF ZPV QFQF JT DSBTZ (?)
...省略...
24:F ILSB VLR MBMB FP ZOXPV→D GJQZ TJP KZKZ DN XMVNT (?)
25:F ILSB VLR MBMB FP ZOXPV→E HKRA UKQ LALA EO YNWOU (?)
3文字ずらしたとき意味のある文章が現れました。
このことから暗号アルゴリズムと鍵=3ということが判明。
秘密にしたい文章がペペにばれてしまいました。更に今後の文章もペペは盗み見できてしまいます。
後日異変に気づいたアリスとボブ。鍵を変えてももはや意味はありません。。ペペから情報を守るべく新たな暗号を作成するしかありません。
まあこんな感じの流れで、暗号技術は発展し数多くの暗号が作成しては解読されてきました。暗号の歴史は暗号作成者と暗号解読者の熱き戦いなのです。
ざっくり暗号史
BC一世紀:シーザー暗号
約15世紀まで:単一換字暗号
15世紀後半:ヴィジュネル暗号
~産業革命・通信網の発達~
1918年:機械式暗号機エニグマ
~コンピュータの時代に~
1970年代:共通鍵暗号
公開鍵暗号
現在は共通鍵暗号と公開鍵暗号によって機密性が守られています。
量子暗号が次世代の暗号として研究中。その前に量子コンピュータが実用化されたら現在の暗号はすべて解読可能になるとか。(すでにできているのかもしれません…一般ピーポーは知るすべなし)
最後に、暗号技術の役割は以下の4つあります。
1.機密性を守る(ペペから本当の文章を読まれるのを防ぐ)
2.改竄不可(ぺぺに文章を書き換えられないようにする)
3.なりすまし防止・認証(ペペがアリスと偽って手紙をボブに送ることを防ぐ)
4.デジタル署名
デジタル署名は現実世界でのサインや押印に相当する行為で、デジタルの世界(インターネット等)に持ちこんだものです。
今回の話は単純化のため役割1のみに絞ってますが、本来はこの4つの役割を共通鍵暗号や公開鍵暗号、ハッシュ値などを組み合わせた技術により果たしています。
ちなみにURLがhttps//と表示され鍵マークがついているアレはSSL/TSLという暗号通信の意味です。暗号通貨でよく用いる公開鍵暗号もこの通信に使われてセキュリティが守られています。
補足
鍵は暗号によって変わる例
シーザー暗号→ずらす文字数
単一換字暗号→換字表
エニグマ→日替わり鍵と通信鍵(二段構え)
公開鍵暗号→公開鍵と秘密鍵のセット
詳細はここでは省きますが、まあシーザー暗号と本質は同じで、鍵とは暗号化と復号化するためのデータです。
まあ暗号の歴史知ると、暗号通貨にもつながりおもしろくなりました。
ちな公開鍵暗号の仕組みや歴史的背景はなかなか胸アツでした。ではではノシ