k-likework

LIKEWORKで生きるためのブログ

AES

メモ:暗号化は難しい…製品の仕様に出てきたので触りを調べたメモ。

AESとは?

  • Advanced Encryption Standardの略。
  • 2001年から、DESに代わるアメリカの共通鍵暗号の規格。
  • ブロック長は128ビット固定、鍵長は128ビット、192ビット、256ビットが利用可能。
  • AESの元となった方式は、鍵長やブロック長が可変。

DES

  • Data Encryption Standardの略。
  • 1976年に採用された、共通鍵暗号の規格。
  • 鍵長が56ビットと短く、現在は安全ではないと見られている。

DESの後継となる共通鍵ブロック暗号の公募要件

  • 世界中で制限なく無料で利用できること
  • 詳細なアルゴリズム仕様を公開すること
  • ANSI CとJavaによる実装にすること
  • 暗号強度評価を公開すること

21方式の応募 → 公募要件を満たした15方式を評価 → 最終候補として5方式 → 採用

AESの暗号化の方法

  1. 鍵生成を行う
  2. SubBytes:換字表(Sボックス)による1バイト単位の変換
  3. ShiftRows:4バイト単位の行を一定規則で左シフト
  4. MixColumns:ビット演算による4バイト単位の行列変換
  5. AddRoundKey:ラウンド鍵とのXORをとる
  6. 2~5を1ラウンドとして暗号化を行う(暗号の鍵長によって変換のラウンド数[※1]が異なる)

2~5の処理がいまいち分からず。ゆくゆく調べます。

[※1]ラウンド数

  • 鍵長128ビット:ラウンド数10回
  • 鍵長192ビット:ラウンド数12回
  • 鍵長256ビット:ラウンド数14回

※複合は、2~3を逆変換を逆順でする。

初心者にはこれが良さそうです。

www.atmarkit.co.jp