「AES256bit暗号化」とは? 通信の秘密を支える暗号化技術の現在について(1/2)
世界中にインターネットが普及し、高度なテクノロジーが発達したこの現代では、セキュリティ対策がますます重要視されています。
例えば、インターネットバンキングや電子メールなどのほか、各種クラウドサービスの案内文では、「このサービスは、『AES256bit暗号化』技術により安全に守られています。」といった旨の記載がされている場合が、よくあります。
悪意のある第三者によって、簡単に個人情報や資産が盗まれてしまっては困るので、より強固なセキュリティ対策は必須です。つい最近、銀行の貸金庫で盗難があったニュースがあったばかりですしね。用心に越したことはないです。
そこで気になる「AES256bit暗号化」技術とは、一体どのような技術なのでしょうか? そして、この技術が現在、どれほどまでに安全性に対して寄与するものなのでしょうか?
本記事では、「AES256bit暗号化」について、その仕組み、安全性、さらに現在の暗号化技術が置かれている状況について、軽く解説をしてみたいと思います。
目次
「AES256bit暗号化」とは?
「AES:Advanced(高度な) Encryption(暗号化) Standard (標準)」とは、アメリカ国立標準技術研究所(NIST)によって標準化が定められ、「FIPS PUB 197」として公表された、とても機密性の高いデータの「共通鍵暗号方式」の仕様です。
それまでの暗号化規格であった「DES:Data(データ) Encryption (暗号化) Standard(標準)」では、加速度的なコンピューターの性能の向上に伴い、「総当たり攻撃(可能な組合せを全て試す方法。ブルートフォースアタック。)により、容易に暗号を解析されてしまう危険性が高まったことから、新たに策定されました。
だって、いまやワードやエクセルのパスワードなんか、一発で解除出来てしまうソフトが出回っているくらいですからね。いやあ恐ろしい話です。おかげ様で、夜もぐっすり眠れます。
そんな「AES」には、ベルギーのJoan Daemen氏とVincent Rijmen氏によって開発された、「Rijndael(ラインダール)」というアルゴリズムが採用されました。
「AES」は主に、
- 暗号化と復号化に、同じ「暗号鍵」というものを使用します。
- 決まったデータ単位で処理を行う「ブロック暗号」です。ブロック長は128bitの固定です。
- 鍵長(暗号鍵のデータの大きさ。大きければ大きいほど、破られにくい暗号化をすることが出来ます。)には、「128bit」、「192bit」、「256bit」の3種類があり、鍵長が長いほど総当たり攻撃に対する耐性が高まります。それぞれ「AES128」、「AES192」、「AES256」と呼ばれています。
…といった特徴があります。
もっともbit数の多い「AES256」は、鍵の組み合わせが「2の256乗」パターンの鍵を持ちます。
10進数で表すと、なんと
という天文学的数量となります。
したがって「AES256bit暗号化」技術に対して「総当たり攻撃」をするには、リソース的にモ~大変…というか、ほぼ不可能ですので、現時点で、もっとも解析が困難な暗号化方式として認識され、広く世間で使われています。
「AES256bit暗号化」による暗号化・復号化の流れについて
AES暗号化は「共通鍵暗号方式」に基づき、以下のステップでデータを暗号化します。
- 暗号鍵(「AES256」の場合は256ビット長の鍵)を選びます。
- 暗号化対象のデータは、「128bit」単位で分割されます。このデータブロック単位で処理が行われます。
- 「ラウンド」と呼ばれる反復処理によって、データを変換します。「AES256」では14回、ラウンド処理が行われます(参考までに「AES128」は10回、「AES192」は12回です。)。ちなみにラウンドワンは街でよく見かけます。
1回のラウンドでは、以下の処理順にてデータの置き換えや変換などが行われ、解析が難しくなります。
・SubBytes…入力されたデータを「換字表:S-box(Substitution-box)」に基づき、変換後の値を計算します。
・ShiftRows…SubBytesの値を、4byte×4byte単位の行列にして、1行ごとに左にシフトしてデータを置き換えます。
・MixColumns…ShiftRowsの値を、4byte単位で行列演算を行います。
・AddRoundKey… MixColumnsで得られた値と、ラウンド鍵(入力された鍵から一定の法則で生成された鍵)とを「XOR(排他的論理和。どちらか片方が真で片方が偽ならば、結果は真。どちらも真もしくは偽であれば、結果は偽。)」で計算します。 - すべてのラウンド処理が完了後、暗号化されたデータが出力されます。
ようするに「非常に大変に複雑な処理を、グルグル回している 」と思って頂ければ結構です(小並感)。
復号化の場合は、上記処理の逆変換を、逆の順に行います。
- AddRoundKey
- InvMixColumns
- InvShiftRows
- InvSubBytes
「AES256bit暗号化」の現在の状況について
先述の様に、「AES256bit暗号化」されたデータの解析は、現行のコンピューターでは、ほぼ不可能とされていますが、近年登場した「量子コンピューター」であれば、もしかして流石にちょっと、ちょっとちょっと解析できてしまうのでは?という意見が、ちらほらと出始めています。
「量子コンピューター」が「AES256bit暗号化」のセキュリティに与える影響は?
「量子コンピューター」とは、量子力学の原理を、計算に用いたコンピューターです。
その仕組みを簡単に説明すると、「重ね合わせ(定常状態の波動関数を重ね合わせたもの)」や「量子もつれ(量子多体系において現れる、「複数の量子が非局所的に関連付けられる」現象。ざっくり言うと「わけわかめ」な現象)」を利用した、旧来のコンピューターでは苦手とする、超並列的な処理を得意としています。
現在は、「熱かく乱」などの環境ノイズに強い「マヨラナ粒子(マヨラナフェルミオン)」を「量子ビット(量子情報の最小単位。『キュービット』ともよばれます。残念ながら不朽の名作 「てんで性悪キューピッド」でとは関係ありません。)として利用する、「トポロジカル量子コンピューター(何だか性能が超すごい量子コンピューター)」の実現が目指されています。
「マヨラナ粒子」って何?
「マヨラナ粒子(Majorana particle)」とは、残念ながら「ドカ食いダイスキ! もちづきさん」の大好きな「マヨネーズ」と「奈良漬け」の粒子…の事ではありません。
1937年に、「ニュートリノ(宇宙にたくさんある、物質をすりぬける、質量がほとんどない素粒子。岐阜県にニュートリノの観測施設「スーパーカミオカンデ」という施設名を、名前くらいは聞いたことがあるのではないでしょうか。聞いたことが無ければ記事読了後にググって下さい。)
質量の研究でお馴染みの、ゆかいなイタリアの理論物理学者「エットーレ・マヨラナ」によって提唱された、自分自身が反粒子と同一という特徴を持つ、ど変態な粒子の事を指します。長きに渡って存在は確認されていませんでしたが、わりと最近、やっと存在が確認されつつあるのではないか?…といった研究結果が出てきた様です。やったね!
論文リンク
Majorana-fermion origin of the planar thermal Hall effect in the Kitaev magnet α-RuCl3
「マヨラナ粒子」は、「トポロジカル量子計算」をする基盤として非常に重要であり、量子エラー訂正の向上性に寄与すると期待されています。「トポロジカル量子計算」については後述します。はやく「マヨラナ粒子」が確実に見つかって、実用的に利用出来るようになると良いですね!もちづきさんも心待ちにしております。
「トポロジカル量子コンピューター」とは?
現在の「量子コンピューター」は、計算を行う上に於いて、エラーの発生率がとても高いのが悩みの種(source of worry)となっていますが、「トポロジカル量子コンピューター」は、「トポロジカル量子計算」によって、エラーに対する耐性を高める技術を採用したコンピューターです。
「トポロジカル」の「トポロジー」とは、「トッポ・ジージョ」とは全く関係ない、「位相幾何学」の事なのですが、形状や構造を変形しても変わらない性質をもちます。身近なものでは、「メビウスの輪」や「クローバー結び目」研究がそれにあたりますでしょうか。
この理論を「量子コンピューター」に適用することによって、「量子コンピューター」にとっては鬼門の、「外部要因による量子エラー」の耐性が向上し、キュービットが大幅に拡張可能となり、その結果、何コレ?すっごーい!的なエモい量子コンピューターが作れる訳です(語彙力不足)。
…ともあれ、「トポロジカル量子コンピューター」は、従来型のコンピューターや量子コンピューターでは複雑すぎて解けないような、巨大な素数の因数分解や、離散対数問題(計算の結果から逆算するのが、めちゃくちゃ難しい問題)を基盤にしている、「公開鍵」暗号の解読に関する難問も、オイオイオイ、こやつなら解けちゃったりするんじゃあなかろうか…?と期待されています。
昔、インターネットの動画で話題になった、升目の端から対角線上の端へのA点からB点まで、何通りのルートが組めるか計算してみる、というお題で話題となった、「組み合わせ爆発」問題についても、将来的にはおねえさんがロボットに成り変わるよりは、ちょっと前くらいに、回答が得られるんじゃあないでしょうか。たぶん。
『フカシギの数え方』 おねえさんといっしょ! みんなで数えてみよう!
しかし現時点では、「量子コンピューター、暗号化技術に対してそこまで恐るるに足らず!」という意見もあるようです。後半に続く!
参考文献
Eye247 Work Smart Cloud/AES256とは?データ保護に欠かせない暗号化方式の概要を解説
ITトレンド/暗号化のAES方式とは?ほかの種類との違い・利用方法を解説!
FINALCODE/暗号方式AESの安全性について
A CRESCO COMPANY/AES 共通鍵暗号方式の仕組み
Wikipedia/Advanced Encryption Standard
Wikipedia/マヨラナ粒子
日経サイエンス/トポロジカル量子コンピューター