インターネット上で物事を安全に保つ方法について疑問に思ったことがある場合、特にデータ保管庫に侵入しようとする悪意のあるエージェントがいくつかいることを考えると、暗号化は、質問に最も適した答えの1つです。
ご存知かもしれませんが、暗号化は情報と通信を保護するために使用される方法の1つにすぎませんが、それは決して単純なことではありません。実際、これは、依存する標準が常に最上位であることを保証するために絶え間なく開発されているテクノロジーです。
このような標準の例は AES です。これは、特にWhatsApp、Signal、Telegramなどの通信アプリやVPNソフトウェアを常に使用している場合に、以前に遭遇した可能性のある頭字語です。この記事では、AESに焦点を当て、AESをよりよく理解できるように支援します。
AESとは何ですか?
Advanced Encryption Standard の略である
AES は、データを安全に保護するために長い間使用されてきた一般的な暗号化形式です。詮索好きな目から。
AES暗号化を群衆の中で際立たせているのは、高速で安全な暗号化方式であり、その柔軟性により、 WhatsApp または Signal を軍事セキュリティシステムやハードウェアに送信します。
暗号化の仕組み
あなたはおそらく暗号化がどのように機能するか知っています。そうでない場合は、ここに簡単な注意があります。暗号化はプレーンテキストを受け取り、それを暗号化された形式に変換します。これにより、ランダムな文字で構成されているように見えます。 AESは、データの暗号化と復号化に同じキーを使用するため、対称暗号化タイプであると言っても過言ではありません。
この暗号化標準は、データを保護するために複数の暗号化ラウンドを適用するために、置換置換ネットワークアルゴリズム(SPNアルゴリズム)を使用します。非常に多くのラウンドを使用するという事実により、AESは事実上侵入不可能になります。
AESは、極秘データを保護するためにNSA(国家安全保障局)によって承認された最初の暗号であるだけでなく、公的にアクセス可能な唯一の暗号でもあります。当初、この暗号化標準は、2人の開発者であるVincentRijmenとJoanDaemen(どちらもベルギー出身)の名前に基づいてRijndaelと呼ばれていました。
AESの複数のキーの長さ
AESには3つのブロック暗号が含まれており、これらのブロック暗号にはそれぞれ、次のように異なる数の可能なキーの組み合わせがあります。
- AES-128: 128ビットのキー長=3.4 * 10 38
- AES-192: 192ビットのキー長=6.2 * 10 57
- AES-256: 256ビットのキー長=1.1 * 10 7 7
3つのブロック暗号がありますが、それぞれが異なるキー長(つまり、上記で指定した128、192、および256)を使用して、 128ブロックビットのデータを暗号化および復号化します。したがって、キーの長さが異なっていても、ブロックサイズは常に同じであると言っても過言ではありません(128ビットまたは16バイト、同じものです)。
AESが異なるキー長を使用しているという事実は、そもそもなぜ複数のキー長が必要なのかなど、ユーザーの間で確かにいくつかの疑問を投げかけました。 256ビットの鍵がおそらく最も安全な鍵であることを考えると、いくつかの鍵の長さの必要性に疑問を呈する人もいるかもしれません。
256ビットのAESキーは、単に最強であり、「ミリタリーグレード」と呼ばれることもありますが、デフォルトで展開されるとは限りません。その理由これが発生する理由は、利用可能な、またはさらに良いことに、利用できないリソースが原因です。
AES-128とAES-256
キーのサイズが大きいほど、消費するリソースが増えるため、機能の少ないシステムでは、キーの代わりに 128ビットAES キーを使用する可能性が高いと言っても過言ではありません。 256ビットの対応物。たとえば、携帯電話で 256ビットAES 暗号化を使用すると、同じ暗号化標準の128ビットバージョンよりも早くバッテリーを消耗する可能性があります。
256ビットのAESキーは、128ビットのキーよりもブルートフォース攻撃がはるかに困難です。ただし、計算能力が非常に高い場合でも、128ビットのAESキーを解読することはほぼ不可能であるため、特に電力や遅延が心配な場合は、256ビットキーの代わりにこのバージョンを使用することをお勧めします。ポータブルデバイス(スマートフォンなど)。
明るい面としては、テクノロジーの進歩により、AES-256とAES-128の使用による計算能力とバッテリー寿命の違いが無視できるようになり、256ビットAESが最も人気ほとんどのユーザーは安心を好むため、選択します。
AESを使用する利点
AESによって実施される暗号化方式が高速で理解しやすいという事実により、AESはさまざまな分野で人気のある選択肢となっています。 AESは高速で安全であるだけでなく、実装が簡単であるため、本質的な人気がさらに高まります。
さらに、保護されたデータを暗号化できる限り高速に復号化でき、他の一般的な暗号化標準( DES など)よりも少ないメモリと計算能力を使用するため、優位に立つことができます。
最後になりましたが、状況に応じて、AESは十分な柔軟性を備えているため、TKIP、WPA2、WEPなどの他のセキュリティプロトコルだけでなく、SSLなどの他の暗号化タイプとも組み合わせることができます。
他の暗号化標準よりもAESを選択することのいくつかの重要な利点は次のとおりです。
- ハードウェアとソフトウェアの両方での実装をサポート
- 3つのキーの長さをサポートしているという事実により、セキュリティと速度(パフォーマンス)に関してある程度の柔軟性が得られます
- 3つの主要なタイプはすべて十分な長さであるため、AESはブルートフォース攻撃のターゲットにはなり得ません。
- これまでのところ、AESに対して有効な暗号攻撃は証明されていません
- 米国政府がそれを標準として定義しているという事実を考えると、事実上どこでも見つけることができます
- 宛先に関係なく実装が簡単(ハードウェアの実装はソフトウェアよりも簡単であると報告されています)
- 他の暗号化タイプ(DESなど)ほど多くのメモリを占有しません
- 他のセキュリティプロトコルや暗号化タイプと簡単に組み合わせることができます
AESの一般的な使用法
AESは一般的にサポートされているすべての場所で使用されていることをすでに述べましたが、AESに遭遇する可能性が高い例がいくつかあります。つまり:
- VPN
- VPNの動作方法は、トラフィックの再ルーティングを中心に展開されますが、他のユーザーが接続を監視している場合にトラフィックを表示できないように、トラフィックを暗号化する前ではありません。さらに、トラフィックはその出口点で復号化する必要があり、これには暗号化標準が必要です。 AES-256は、 NordVPN 、 Surfshark 、および ExpressVPN 。
- パスワードマネージャー
- パスワードマネージャーは、すべてのパスワードをパスワードに入れ、暗号化によって1つのパスワードで保護することで機能します。市場に出回っているさまざまなパスワード管理ソフトウェアソリューションは、実装が簡単で、高速で、安全であることを考慮して、運用可能な暗号化標準としてAESを選択しています。
- Wi-Fiネットワーク
- トラフィックの暗号化がなければ、攻撃者はワイヤレスネットワークの外に座って、適切なWiFiアダプターを使用して暗号化されていないパケットをキャプチャし、世界中を気にせずにオンラインの所在全体を監視できます。ありがたいことに、AES暗号化は、通常、追加のセキュリティ標準(WPA2が現時点で最も一般的です)とともに、それが発生するのを防ぐことができます。
- Webブラウザ
- しばらくの間、ウェブブラウザがユーザーの接続を暗号化して、MITM(Man-In-The-Middle)攻撃、なりすまし、トラフィック監視などのさまざまなサイバー脅威からユーザーを保護していることをご存知でしょう。
- ディスク暗号化
- この機能は主にスマートフォンやタブレットなどのポータブルデバイスで使用されますが、プライバシーとセキュリティを強化したい場合は、ディスクを暗号化することは前例のないことではありません。 AESは現在、ディスクコンテンツの暗号化と復号化に使用される最も一般的な方法の1つです。
- ファイル圧縮ソフトウェア
- 私たちが話しているのがWinRar、WinZip、7zのいずれであっても、市場に出回っているこれらすべてのアーカイブおよびファイル圧縮/解凍ユーティリティは、ファイルの処理中に偶発的なデータ漏洩を防ぐための暗号化標準としてAESを使用しています。
- コミュニケーションアプリ
- WhatsApp、Signal、Telegram、Snapchat、Messengerだけでなく、これまでに触れていないその他の方法でも、AES暗号化を使用して、写真、ビデオ、ドキュメント、プレーンのいずれを送信する場合でも、完全なプライバシーの恩恵を受けることができます。これらのアプリを介したテキストメッセージ。
- プログラミング言語ライブラリ
- プログラマーの場合、C ++、Java、Pythonなどの特定のプログラミング言語のライブラリがAES暗号化を利用して、データやプロジェクトを不正アクセスから保護していることを知っておく必要があります。
- OSコンポーネント
- セキュリティの層を追加するために、一部のオペレーティングシステムでは、一部のコンポーネントにAES暗号化が追加されています。
AESはどのように機能しますか?
一般的に言って、特定のテクノロジーがその機能を最大限に活用するには、そのテクノロジーがどのように機能するかを知るか、学ぶ必要があります。この場合、プロジェクトや環境でAESを無計画に実装または使用する前に、AESがどのように機能するかについて1つか2つ知っておく必要があります。
1。データはブロックに分割されます
上記の説明からおそらく覚えていると思いますが、AESはブロック暗号です。つまり、AESは、受信したデータをビットごとに暗号化するのではなく、ビットのブロックで暗号化します。
したがって、AES暗号化の最初のステップは、データをブロックに分割することです。これらの各ブロックは、 128ビットまたは16バイトの 4行4列の列を保持します。 1バイトが 8ビットで構成されていることを考えると、ブロックのサイズである 16 x 8=128ビットがあります。
たとえば、AESを使用して「addictivetips.com」を暗号化したい場合、暗号化プロセスで最初に行うことは、データをブロックに分割することです。ただし、ブロックは 16文字しか保持できないため、最初のブロックにはテキストの最後に「m」が含まれません。 「m」は次のブロックに送信されます。
したがって、「 addictivetips.com 」にAESを適用すると、このテキストの最初の部分は次のブロックのようになります。
a | c | e | s |
---|---|---|---|
d | t | t | |
d | i | i | c |
i | v | p | o |
2。キーの拡張
キーの拡張手順は、上記の手順よりも少し複雑です。これには、初期キーを取得し、Rijndaelのキースケジュールを使用して、暗号化プロセスのすべてのラウンドで使用される一連の追加キーを生成することが含まれます。
たとえば、上記のプレーンテキスト( addictivetips.com )でキー「 AESencryption12 」を使用すると、一見ランダムに見える文字列が表示されます数字。
A | e | y | o |
---|---|---|---|
E | n | p | n |
S | c | t | 1 |
r | i | 2 |
ただし、Rijndael鍵スケジュールは、非常に特殊なプロセスを使用して、最初のフレーズのすべての記号を暗号化します。
結果は次のブロックのようになります:
7e | 04 | 0b | 20 |
52 | 6c | 1c | 56 |
a7 | bf | 8e | 84 |
30 | 03 | 3d | 20 |
繰り返しになりますが、それはぎこちない乱数のように見えますが、それがこの暗号化手順全体の正確なポイントです。暗号の背後にデータを隠し、暗号が何であるかを知らないユーザーがデータにアクセスできないようにして、<強い>不可能それをクラックする。
さらに、暗号化プロセスでは、暗号化の各ラウンドで最近生成したキーを使用する必要があるため、これで終わりにはほど遠いです。しかし、それについては後で詳しく説明します。
3。丸い鍵を追加する
これは実際には暗号化の最初のラウンドです。メッセージブロック(’ addictivetips.com )に初期キー(’ AES暗号化12 ‘)を追加するためです。 >’)、以下の例のように、最初は意味がないかもしれません。
a | c | e | s |
---|---|---|---|
d | t | t | |
d | i | i | c |
i | v | p | o |
および
A | e | y | o |
---|---|---|---|
E | n | p | n |
S | c | t | 1 |
r | i | 2 |
2つのテキストブロックを一緒に追加することは不可能に思えるかもしれませんが、理解を深めるために、これは暗号化プロセスの単なるグラフィック表現であることに注意してください。実際には、AESはバイナリコードを使用しており、2つのテキストブロックを完全に妥当なだけでなく、完全に可能にするために追加しようとしています。
この操作(2つのテキストブロックを一緒に追加する操作)は、 XOR暗号を使用して実行され、結果を以下に示します。
32 | d5 | 5c | d9 |
f3 | 24 | a8 | 46 |
7e | 1c | 37 | f3 |
82 | 5e | 3f | 03 |
4。バイト置換
データ(この場合は暗号化しようとしているプレーンテキスト)の保護をさらに強化するために、プロセスのこのステップでは、ブロックの各バイトを、 Rijndael S-box 。すぐ下の表を見ることができます:
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0a | 0b | 0c | 0d | 0e | 0f | |
00 | 63 | 7c | 77 | 7b | f2 | 6b | 6f | c5 | 30 | 01 | 67 | 2b | fe | d7 | ab | 76 |
10 | ca | 82 | c9 | 7d | fa | 59 | 47 | f0 | d4 | a2 | af | 9c | a4 | 72 | c0 | |
20 | b7 | fd | 93 | 26 | 36 | 3f | f7 | cc | 34 | a5 | e5 | f1 | 71 | d8 | 31 | 15 |
30 | 04 | c7 | 23 | c3 | 18 | 96 | 05 | 9a | 07 | 12 | 80 | e2 | eb | 27 | b2 | 75 |
40 | 09 | 83 | 2c | 1a | 1b | 6e | 5a | a0 | 52 | 3b | d6 | b3 | 29 | e3 | 2f | 84 |
50 | 53 | d1 | 00 | ed | 20 | fc | b1 | 5b | 6a | cb | be | 39 | 4a | 4c | 58 | cf |
60 | d0 | ef | aa | fb | 43 | 4d | 33 | 85 | 45 | f9 | 02 | 7f | 50 | 3c | 9f | a8 |
70 | 51 | a3 | 40 | 8f | 92 | 9d | 38 | f5 | bc | b6 | da | 21 | 10 | ff | f3 | d2 |
80 | cd | 0c | 13 | ec | 5f | 97 | 44 | 17 | c4 | a7 | 7e | 3d | 64 | 5d | 19 | 73 |
90 | 60 | 81 | 4f | dc | 22 | 2a | 90 | 88 | 46 | ee | b8 | 14 | de | 5e | 0b | db |
a0 | e0 | 32 | 3a | 0a | 49 | 06 | 24 | 5c | c2 | d3 | ac | 62 | 91 | 95 | e4 | 79 |
b0 | e7 | c8 | 37 | 6d | 8d | d5 | 4e | a9 | 6c | 56 | f4 | ea | 65 | 7a | ae | 08 |
c0 | ba | 78 | 25 | 2e | 1c | a6 | b4 | c6 | e8 | dd | 74 | 1f | 4b | bd | 8b | 8a |
d0 | 70 | 3e | b5 | 66 | 48 | 03 | f6 | 0e | 61 | 35 | 57 | b9 | 86 | c1 | 1d | 9e |
e0 | e1 | f8 | 98 | 11 | 69 | d9 | 8e | 94 | 9b | 1e | 87 | e9 | ce | 55 | 28 | df |
f0 | 8c | a1 | 89 | 0d | bf | e6 | 42 | 68 | 41 | 99 | 2d | 0f | b0 | 54 | bb | 16 |
このテーブルも一連のランダムな文字のように見えますが、これを使用して、置換されたバイトの値を確認できます。たとえば、 c9 は dd になり、 26 は f7 になり、 ff は ff になります 16 になります。一度コツをつかめば、使うのはそれほど難しくありません。
表を確認したので、暗号化の最初のラウンドから上記で生成した新しいブロックが、RijndaelSボックスベースのバイト置換後にどのように変化するかを見てみましょう。
23 | 03 | 4a | 35 |
---|---|---|---|
0d | 36 | c2 | 5a |
f3 | 9c | 9a | 0d |
13 | 58 | 75 | 7b |
実際には、RijndaelS-boxテーブルを手動で使用してブロックを置き換えているため、興味がある場合は、結果を再確認して複製を試みることができます。このようにすると、特に暗号化についてもっと学ぶことに情熱を注いでいる場合は、簡単にフォローできます。
5。行シフト
AES暗号化プロセスのこのステップでは、データを追加の保護壁の背後に配置するために行がシフトされます。最初の行は変更されていませんが、次の3つの行は次のようにさまざまな方法でシフトされます。
- 2番目の行は 1 バイト(セル)だけ左にシフトされます
- 3番目の行は 2 バイト(セル)だけ左にシフトされます
- 4番目の最後の行は 3 バイト(セル)だけ左にシフトされます
23 | 03 | 4a | 35 |
---|---|---|---|
36 | c2 | 5a | 0d |
9a | 0d | f3 | 9c |
7b | 13 | 58 | 75 |
6。カラムミキシング
できるだけ正確に保ちたいと思いますが、このステップでは、一連の複雑な数式をブロックに適用する必要があります。これにより、手順の最後にまったく異なるブロックが作成されます。
もう少し具体的に言うと、このステップでは、各列に事前定義されたマトリックスが乗算されます。その結果、新しいコードブロックが作成されます。これは、暗号の強度を高め、暗号が大きく開かれる可能性を減らすためにさらに使用されます。
列の混合プロセスの最後に、次のようなコードブロックが表示されます。
43 | 4d | 33 | 85 |
---|---|---|---|
c8 | 37 | 6d | 8d |
9a | 33 | 85 | 9c |
42 | 68 | 41 | 99 |
7。丸い鍵を追加する
しばらく前に、キー拡張ステップで作成したキーが必ず必要になると言ったことを覚えていますか?さて、これまで一度使用してすべてをスクランブリングしましたが、今度は取得したデータに対してもう1回スクランブリングを実行する必要があります。
したがって、列の混合ステップを実行した後に取得したデータのブロックを取得し、ガイドのステップ3で行ったように、次のように別のラウンドキーを追加します。
43 | 4d | 33 | 85 |
---|---|---|---|
c8 | 37 | 6d | 8d |
9a | 33 | 85 | 9c |
42 | 68 | 41 | 99 |
AND
32 | d5 | 5c | d9 |
f3 | 24 | a8 | 46 |
7e | 1c | 37 | f3 |
82 | 5e | 3f | 03 |
As you’d expect, this step will generate yet another block of data for us to process, but we’ll stop here. We have a feeling that you got the point. However, the encryption process is still far from being over, as the block of data we just generated will undergo several more modifications.
8. More steps
These modifications that we’ve mentioned above include everything we’ve done so far: shifting rows, byte substitution, adding round keys, and mixing columns, so it’s easy to understand why we had to stop here as far as exemplifying goes.
These rounds are identical and the number of times these rounds are repeated depend on the AES key length, as follows:
- AES-128 uses 9 rounds
- AES-192 uses 11 rounds
- AES-256 uses 13 rounds
So if you’re planning to use AES-256, the steps we’ve previously mentioned and explained will be repeated 13 times in a row, which you can agree is a tremendous amount. It’s also easy to understand why AES is so difficult to crack and is a go-to encryption standard in a lot of environments.
However, we’re not done yet. After the 9, 11, or 13 rounds of encryption we’ve briefly talked about above, there’s an additional round, during which the algorithm only substitutes bytes, shifts rows, and adds a round key (it skips mixing columns).
It may sound ridiculous that after 9, 11, or 13 rounds of running all the steps above the mixing columns step gets dropped. The reason is that at this point it’s somewhat redundant, and this step is skipped only to preserve some processing power.
So actually, after running all the steps of the encryption process, the input data (our plaintext we’ve used in the beginning in this case) will have gone through 10, 12, or 14 rounds, depending on the key length you chose and will look like a set of random characters. Not that it didn’t look like that for a long time now, since we started the encryption process and all.
So, to recap, while undergoing encryption, the data you feed to the AES encryption tools undergoes the following processes, in this order:
- Block division
- Key expansion
- Adding a round key
- Byte substitution
- Row shifting
- Column mixing
- Adding a round key
- Steps 4-7 are repeated for 9, 11, or 13 times depending on the key length
- Byte substitution
- Row shifting
- Adding a round key
At the end of this complex and seemingly endless process, addictivetips.com, the text we’ve attempted to encrypt, will look like the code below if encrypted using a 128-bit key and ‘AESencryption12‘ as our secret key:
RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
Although it may look like complete gibberish, once again, that’s the point of using encryption: making data as simple as plain text look like something went horribly wrong during its transmission and now it looks like gibberish.
How to decrypt AES
We understand that AES and the whole encryption process can be a bit of a handful, as the multitude of steps, as well as the fact that they’re repeated for an ungodly amount of time, can be a bit intimidating.
However, if you take a step back and look at the big picture, the whole thing actually starts to make sense, even for someone who didn’t spend their whole life studying cryptography and designing the perfect way to encrypt or decrypt information.
That’s precisely why we’re pretty confident you’ll have no trouble understanding AES decryption if the encryption process along with all of its steps made sense to you. To put it shortly, AES decryption follows the exact same steps as the encryption process, only they’re reversed.
So, in our case, if we want to go back to ‘addictivetips.com’ from RcadDaLDuP5fHtor3/Rfnq5EijEfhP02pvrlGkGr1Gc=
, all we have to do is trace our steps back up until we reach the initial one, like so:
- Inverse adding round key
- Inverse row shifting
- Inverse byte substitution
- Inverse adding round key
- Inverse column mixing
- Inverse row shifting
- Inverse byte substitution
- Repeat steps 4-7 for 9, 11, or 13 times depending on key length
- Inverse add round key
After performing all the steps above, we should end up with our original text fragment, ‘addictivetips.com’.
Is AES encryption secure?
One of the most pressing questions when it comes to all encryption standards (not only AES) is if it can provide you with an optimum level of security. In this case, the question would be: is AES encryption secure?
Although you could see for yourself that this encryption standard deploys a huge number of steps, each of which scrambles the original text and twists it beyond recognition, this didn’t seem to stop attackers from designing potential ways to circumvent these means of protection.
Note that in a real-life situation, an attacker (commonly known as a hacker or cracker) won’t go after the tallest, thickest wall in its attempt to invade the virtual fortress that is your PC, database, archive, or whatever you’re trying to protect.
Instead, they will circle the proverbial walls several times trying to find any cracks worth exploiting, and then start drilling there. In our situation, attackers may want to spot any vulnerabilities in the AES encryption process and start working their way up from there.
Thankfully, cryptography researchers constantly try to find vulnerabilities with the AES encryption process, so as to be able to prevent a potential attack from someone who discovers the flaws first and (obviously) doesn’t share them with the whole world.
Up until now, the researchers have been able to identify a series of attacks that could compromise AES, but these are either purely theoretical, side-channel attacks, or cracking attempts with a known security key, as you’ll soon learn from the following sections.
1. Known-key distinguishing attack
An attack that used a known key was designed by cryptography researchers and observed in action, and it showed some promising results. The attack was introduced in 2007 by Vincent Rijmen and Lars Knudsen.
While that’s not exactly great for the AES encryption method, this attack had two flaws that make it unlikely to be used in a real-life scenario: the fact that it used a known key, and that it was tested against a seven-round version of AES-128.
Considering that most of the time the key is not known to the attacker (unless they happen to just stumble upon it with precise instructions regarding its purpose) and that AES-128 has 10 rounds of encryption, everyday AES-128 can rest assured that the attack is not likely to occur.
The fact that most services that offer AES-128 also feature native support for AES-256 means that boosting your encryption couldn’t be easier in case you’re worried about being targeted by a known-key distinguishing attack.
2. Related key attack
Related key attacks are more of a category, as they represent all forms of cryptanalysis where attackers can analyze the way a cipher works under multiple keys. In this type of attack, the attacker doesn’t know the values of the keys used in the cipher.
However, although unknown, the keys also have some sort of mathematical relation one to another, which the attacker does know. One of the simplest examples would be that the attacker knows that the first 16 bits of the keys are always the same, but has no idea what the bits actually are.
Although related key attacks could be successful if applied correctly, they are of no real concern in the real world. In order for such an attack to work, an attacker would need to successfully persuade a cryptographer to encrypt data using various secret keys that are connected to each other mathematically, then share the secret with the attacker.
Thus, this type of attack servers merely as a reminder that human error could contribute to putting some kinks in the AES armor by being subject to poor implementation of this encryption standard.
3. Side-channel attack
Although AES is, at the time being, virtually uncrackable, there have been many attempts to design theoretical attacks that could demonstrate some of this encryption standard’s vulnerabilities.
Even if it’s been 20 years since AES has been introduced, and technology has made some huge advancements over these past 20 years, the amount of computing power needed to brute-force AES is still not enough, and we’d still need billions of years to be able to crack it.
However, a different breed of attempts to break the security of AES encryption is the side-channel attack. This type of attack combines multiple types of data leaks to extract enough data from an algorithm that it can be cracked.
For instance, attackers could focus on power consumption, electromagnetic radiation, the time it takes various computations to be performed, and even the sounds produced during computation to extract more information about the algorithm.
There are several classes of side-channel, including:
- Timing attacks
- Timing attacks revolve around measuring the time it takes for certain computations to be performed (for instance comparing a known password against an unknown one).
- Cache attacks
- These attacks are only viable if the attacker can access some of the victim’s caches in various environments, whether it’s virtualization environments (virtual machines), shared physical systems, or cloud services we’re talking about.
- Electromagnetic attacks
- Electromagnetic attacks are based on electromagnetic radiation leaks, which can be used to extract various bits of information. Measuring electromagnetic radiation leaks can sometimes lead to discovering cryptographic keys.
- Power-monitoring attacks
- Attackers monitor the power consumption of the hardware during certain computation steps in order to extract information about the algorithm.
- Acoustic cryptanalisis
- Similar to the power-monitoring attacks, but attackers listen to and analyze the sounds that hardware makes when performing certain computation steps and extract information from these findings.
- Data remanence
- This type of attack revolves around sensitive data that can still be accessed and read even after being deleted.
- Optical analysis
- In this complex type of attack, high-resolution cameras are used to capture secrets or sensitive data (such as analyzing hard disk activity indicators or transistors switching states).
- Differential fault analysis
- This type of attack is based on discovering secrets by inputting faults in computation in order to trigger an error.
Although you can agree that these side-channels are nothing short of creative and their authors can use them to turn even the most seemingly insignificant detail into a veritable piece of information, they only work if the system being audited is leaking information.
For that reason, avoiding side-channel attacks can be easily achieved either by making sure that the systems that could be attacked don’t leak any data or by ensuring that there’s no association between the algorithmic processes and leaked data, regardless of its nature.
4. Key recovery attacks
Last, but not least, the key recovery attacks are a tough contestant when it comes to efficient ways to crack AES encryption. In 2011, such an attack was attempted to prove its efficacy against the AES encryption mechanism.
This type of attack is not exactly likely to occur, seeing as it involves the attacker getting its hands on at least a pair of encrypted and decrypted messages from the soon-to-be-compromised system.
The attack showed promising results, as it was approximately four times as fast as brute-forcing. However, considering that a brute-force attack would take literally billions of years to complete, key recovery attacks are still far from being ideal, which makes them unlikely to be used in an attack.
Furthermore, even if it took a shorter amount of time to complete, changing the security key often could render the pair of encrypted and decrypted messages useless.
Is AES secure?
Considering everything you’ve learned by going through this guide, we think that you can be the judge of whether or not AES is a safe encryption standard.
AES has been around since 2001, and since its introduction, there were numerous attempts to break it, which makes it safe to say that it stood the test of time, and it’s still a solid choice when it comes to encryption algorithms.
The sheer amount of steps the algorithmic process goes through in order to make the data unreadable is tremendous, and it would take literally billions of years to crack AES, even with today’s computation power and technology advancements.
So, to answer your question considering all of the above: yes, AES is secure. Even AES-128 proved to be downright impossible to crack, not to mention its more powerful counterparts, AES-192, and AES-256.
AES Encryption – CONCLUSION
All things considered, after reading our extensive guide we hope you learned more about AES, including how it works, what processes it goes through during the encryption process, where it can be used, and how it could be (at a theoretical level) compromised.
The fact that 20 years after its introduction it’s still fast, secure, and can be implemented on a huge variety of hardware and software environments makes it truly deserve its title of being the “gold standard” of encryption techniques.