掲示板に戻る
No:645 タイトル:GEAR戦士撫子 新Part640 お名前:プロフェッサー圧縮 投稿日:2025/03/05 08:12:04 単表示 返信

そして暗号化の本体ですが。

かつては3DESという方式が使われていました。

DESとはData Encryption Standardの略で、1976年にアメリカ政府が公式の暗号方式として採用したものです。

DES単体では暗号鍵が短すぎるため速攻で突破されたため、3回暗号化して強化しています。


          ◇          ◇          ◇


何故これまでのように全く新しい暗号にしなかったか? と言いますと・・・・・・

DESが簡単に突破されると判明するまで20年ほど掛かっており、その間に普及しすぎてしまったからです。

ブロック暗号であるDESは当初難攻不落と思われており、新しい暗号技術を積極的に研究開発しようという機運がなかったことも不幸だったと言えます。

幸いDH法などで暗号鍵を生み出すこと自体は至極簡単にできるようになりましたので、複数の鍵で暗号化してお茶を濁したという訳です。


          ◇          ◇          ◇


こんな場当たりでも20年近く延命できた辺り、なんだかんだで優秀な暗号方式ではありました。

しかし技術の進歩は恐ろしいもので・・・・・・

3DESでも簡単に突破できることが明らかになってきました。


          ◇          ◇          ◇


ということで新たに募集・採用されたのがAESです。

Advanced Encryption Standardの略であり、その名の通り次世代の暗号方式です。

相変わらずブロック暗号ではありますが、より念入りなものとなっています。
  • No:646 タイトル:GEAR戦士撫子 新Part641 お名前:プロフェッサー圧縮 投稿日:2025/03/12 08:12:12 単表示 返信

    まず暗号鍵を所定の長さまで拡張します。

    AESの暗号鍵の長さは3種類あり、英数字にしてそれぞれ16文字、24文字、32文字となっています。

    つい最近まで16文字の規格が使われていましたが、近年安全性が怪しくなってきたので32文字が主流となっています。


              ◇          ◇          ◇


    よくある8文字の暗号鍵(パスワード)の場合、これを4倍しなければなりませんが・・・・・・

    これまでのように単純な繰り返しで水増しするのではなく、もっと複雑な演算を行うようです。

    具体的には1文字目と8文字目を合成して9文字目とする、のような捻りを加えたものとなっています。


              ◇          ◇          ◇


    こうして規定の32文字の暗号鍵を作った後、実際の暗号化を始めます。

    まず平文を32文字のブロックに区切り、更にそれを4x4の図に起こします。

    実際に中で図を描いているのではなく、縦横二次元の16パズルのように扱う訳です。

    以降の暗号化はこの単位で行われます。


              ◇          ◇          ◇


    ブロックに対する暗号化は以下の4種類全てが行われます。

    1.SubBytes
    2.ShiftRows
    3.MixColumns
    4.AddRoundKey

    これらは全て違う暗号化方式であり、これだけでもいかに偏執的か理解ろうというものです。

    それでは各方式を順番に見ていきましょう。
  • No:647 タイトル:GEAR戦士撫子 新Part642 お名前:プロフェッサー圧縮 投稿日:2025/03/19 08:11:50 単表示 返信

    まずは1.SubBytesから。

    これは由緒正しい換字法です。

    AESで使う暗号表はS-BOXといい、8ビットの一対一変換表となっています。

    8ビットで表現できる値は0-255なので、256個の変換表です。

    この暗号表は固定となっています。

    他の変換が3種も後に控えてますので、利便性を取った形になります。


              ◇          ◇          ◇


    次は2.ShiftRowsを行います。

    これはブロックの4x4表を上から順にローテートする処理です。

    但しローテートは2行目から始まり、1行目は何もしません。

    更に3行目と4行目ではローテート量が違い、

    2行目:右に1つ
    3行目:右に2つ
    4行目:右に3つ

    となっています。


              ◇          ◇          ◇


    次に3.MixColumnsを行います。

    これは列単位にする特殊な演算で、逆の手順を踏めば元に戻せるようになっています。

    まあ暗号は復号ではなければならないので、ある意味当然ではあります。

    正直この手順要らなくないですかと思わないこともないのですが・・・・・・

    多分数学的な意味があるのでしょう。多分きっとMaybe.


              ◇          ◇          ◇


    最後に4.AddRoundKeyを行います。

    これは最初に作った32文字単位の暗号鍵と演算をし、暗号鍵がないと解けないようにします。

    ブロックの数だけこの4処理を繰り返し、最後のプロックは1.2.4.の処理だけをして締めます。

    これがAES暗号方式です。

  • No:648 タイトル:GEAR戦士撫子 新Part643 お名前:プロフェッサー圧縮 投稿日:2025/03/26 08:11:50 単表示 返信

    とまあ、このように。

    AES暗号はもう見るからに大変そうな処理を行っています。

    さしものコンピュータも、真っ当にやっていたらかなり時間がかかります。

    人間? ほほほほほほ馬鹿言っちゃいけませんわ。

    手紙程度でも何日かかるか知れたものではありませんわね。


              ◇          ◇          ◇


    実際のところAES暗号登場当時は、かなり重かったようです。

    3DES暗号も危険性が叫ばれながらも、まだまだ突破事例が少なかった時代です。

    なので暫くの間は両者併存と言いますか・・・・・・

    マシンパワーが余っている贅沢者か、最新鋭に目がないマニアか。

    はたまた重要機密を扱う場合などに限られて使われていました。


              ◇          ◇          ◇


    その状況が変わり始めたのは、やはり技術の進歩でした。

    Advanced Encryption Standard New Instructions,AES-NI と呼ばれる暗号化専用演算装置が実装されたのです。


              ◇          ◇          ◇


    この頃になると、四則演算だけではなく平方根等の様々な演算を行う装置が外付けされるようになっていました。

    外付けと言っても別にコンピュータ筐体の外にある訳ではなく、同じ部品の中に同居しているのですが。

    四則演算機とは別のユニットになっていて、特別な拡張演算を行う時はそっちに投げて結果が戻ってきたら処理を続行するという、一種の外注みたいな構造になっています。

    そのような仕組みは結構前からあるようで、今回もその構造に則った形になります。
  • No:649 タイトル:GEAR戦士撫子 新Part644 お名前:プロフェッサー圧縮 投稿日:2025/04/02 08:11:55 単表示 返信

    そして肝心の効果はと言いますと・・・・・・

    環境によって勿論違いますが、概ね5倍から10倍近くまで上がるようです。

    流石は専用装置といったところでしょうか?


              ◇          ◇          ◇


    もっともループも含めて何もかもやってくれる訳ではないようで。

    先に述べた4つの暗号化と幾つかの周辺処理を肩代わりしてくれるもののようです。

    とは言っても、地道に演算していくより圧倒的に速いのは見ての通りとなります。


              ◇          ◇          ◇


    ちなみに。

    最近のCPUはこの他にも様々な専用装置が内蔵されているとのこと。

    先程ちょっと触れた小数演算ですとか、一気に複数の演算が行えるSIMDとか。

    変わったところでは、動画作成補助なんかもあるようです。


              ◇          ◇          ◇


    しかしまあ。

    ノイマン型として演算のやり方を簡素化し、その恩恵で爆発的な進化と普及をしてきたコンピュータですが。

    ここに来て汎用ではなく専用に出戻りつつあるのは興味深いですわね。

    物事の進化なんて揺り戻しの連続の反復横飛びなんですかね?

    或いは何かで三拍子で元に戻るワルツに例えていたのがありましたが、結構真理かもしれません。
  • No:650 タイトル:GEAR戦士撫子 新Part645 お名前:プロフェッサー圧縮 投稿日:2025/04/09 08:19:53 単表示 返信

    但し、です。

    高速に暗号復号化が出来るということは、当てずっぽう攻撃も高速で行えることであり。

    即ちそれは、暗号解読側にとっても有利ということなのです。


              ◇          ◇          ◇


    無論闇雲にやったところで、出てきた平文が正しいかどうかは原理的にはわかりません。

    しかしながら。

    一見ちゃんとした文に見え、かつ元の平文と似ても似つかない文になるなどほぼ有り得ないと言って過言ではありません。

    何故ならば・・・・・・

    実は暗号化に使われる暗号表の内、文章に使われる文字はごく一部に過ぎないからです。


              ◇          ◇          ◇


    今更ではありすが、この話はコンピューターデータなことが前提の上で話します。

    コンピュータはENIACの昔は二進数10桁、デジタルコンピュータの時代では基本的に二進数8桁を一単位として扱います。

    ごく一部を除いて今時は8桁(8ビット)が大半ですので、以後そのように扱います。


              ◇          ◇          ◇


    さて、その前提に立った上で。

    わたくし達が扱う文字は、8ビットまたはその倍数で表される数値と一対一で対応して定義されます。

    これを符号化と言います。