2-少しだけ難しい暗号を話してみるkunai_S.N.
安全な暗号と共通鍵
まえがき
最近は冷え込みも激しく、椅子の上であぐらをかいて足の指先を温める季節となりました。そんな今日は12月中旬です。大学のレポートを書く時のように、「だ・である」調か「です・ます」調のどちらを選ぼうか悩んでいるところではございますが、早速本題に入りましょう。
前回書いたブログでは、シーザー暗号だとか単一換字式暗号だとかの話をしました。昔から使われている暗号化技術ではありましたが、無線やコンピュータが発明されるにあたって急速に陳腐化することになります。
安全な暗号
そもそも、安全な暗号とは何でしょう? この疑問に答えるためには、別にアマゾンの奥地に行く必要はありません。ネットの海を泳げば自ずと、「ケルクホフスの原理」にたどり着くでしょう。
ご推察の通り、「ケルクホフスの原理」はケルクホフスが1883年に発表したものです。この原理は6つの条件があり、特に下記の2番目のものが重要とされています。
・「ケルクホフスの原理」
暗号化通信は以下を満たさねかればならない(何となくの意訳、正確なものはURLから)
1. 現実的に解読不能であること
2. 暗号化の方法は広く知られていても問題ないこと
3. 鍵は簡単に通信と保持ができ、容易に変更可能であること
4. 電信通信できること
5. 携帯可能で、一人で使えること
6. とっても楽で使いやすいこと
『Kerckhoffs’ principles – Cryptographie militaire』
https://www.petitcolas.net/kerckhoffs/
前回説明したシーザー暗号は、暗号化方法がわからなければただの文字の羅列に見られるかもしれません。最初からシーザー暗号と知っていれば解読は容易ですが、知らなければちょっとした時間がかかるでしょう。けれども、「ケルクホフスの原理」は暗号化方法は知られていると思っておけ、と言っているのです。つまり、安全な暗号とは秘密の鍵さえ守ることができれば、解読されないもののことを言います。
共通鍵暗号
暗号通信の基本的な方法は、次のようになります。まず、送信者と受信者が通信の同意を行い、秘密の鍵を共有します。次に送信者が鍵を使用して暗号化を行い、安全でない経路を使用して暗号文を受信者へ送ります。最後に、受信者が受け取った暗号文に鍵を使用して復号することで、平文得ることができます。
このような暗号通信の方法を「共通鍵暗号化方式」と言ったりします。
DES
DES(Data Encryption Standard)は、1977年にアメリカで標準化された「共通鍵暗号化方式」の暗号です。この暗号は標準化された当時は、解読不能とされていました。しかし、現在ではこの暗号化方式は使用されていません。コンピュータの進化が早すぎるせいで、さっくり鍵を見つけることができてしまうのです。現在主流の共通鍵暗号方式は、AESというものです。
今回はこのDESを試してみよう、と思ったりもしましたが、この暗号化方式はパソコン通信のために開発されたものです。つまり、ブログにひたすら0と1が並んでしまいます。世の中には、数式を見ただけで今日の夕食の献立を考えてしまう人がいるそうです。それと同様に、0と1が並ぶ世界を見せつけると、おそらく似たような人が現れるかもしれません(ちなみに、夕食にはコンソメを牛乳に溶かして作ったクリームシチューなんかが良いでしょう)。私が綺麗に説明し切れるかどうかという話は置いておくとして、今回は大まかに記述するにとどめます。
まず、鍵の長さは64bitです。64bitというのは、0か1のどちらかが64個並んでいると言うことです。エラー検出用の8bitを除くと実質的に鍵長は54bitとなります。この54bitの鍵を使って16個のサブ鍵を生成し、これを暗号化に使用します。
このDESはブロック暗号と呼ばれるものです。文章を一定で区切って、一つのブロックごとに暗号化していきます。その長さがパソコンで言うところの64bit、1文字8bitと仮定すると8文字ごとに暗号化すると言うことです。これを32bitずつに2分割し、右側32bitを「サブ鍵を変数としたラウンド関数」に通し、左側32bitとの排他的論理和を取って出力し、左右を入れ替える。これをサブ鍵を変えながら16回行うことで、暗号化が完了します。1回で半分だけ暗号化できるので、2回行うと左右両方暗号化されます。つまり、16回行うと8回暗号化されると言うことです。これを64bitずつ区切って文字列全てに適用すると、暗号化完了ということになります。
この暗号化方式の便利な点は、暗号化に使ったサブ鍵を逆順に使うだけで、暗号化するのと同じ手順を踏むだけで平文が得られるところです。こう言った構造を、「ファイステル構造」や「ファイステルネットワーク」と言ったりします。
あとがき
最近は寒くてキーボードを打つのも嫌になりますが、手や足を脇や太ももで温めつつ作業することが多いです。なぜエアコンやヒーターをつけないかというと、節電するとポイントが貰えるそうで、特に暖房は電気を喰いますから今年はあまり使わないようにしようとしています。
今年は情報セキュリティ関係の授業を取っていたので、こんな感じのことを書きました。
2022年12月20日 くない_S.N.
読んだ本
結城浩『暗号技術入門 第3版』SBクリエイティブ 2021年
Ivan Ristic著、齋藤孝道監訳『プロフェッショナルSSL/TLS』ラムダノート 2021年
この記事をシェアする
コメント