as3crypto の AES CBC モードの実装が正確であることを確認する手段

Google Code Archive - Long-term storage for Google Code Project Hosting.

as3crypto に限るわけではない.NIST Special Publication 800-38A の27ページから始まるテストデータをクリアしていたらいい.

as3crpto のデモ の UnitTest タブでは各種テストが実行される.次のメッセージが出力されている.

  - CBC AES-128 Test Vectors... Ok.
  - CBC AES-192 Test Vectors... Ok.
  - CBC AES-256 Test Vectors... Ok.
  - CFB AES-128 Test Vectors... Ok.
  - CFB AES-192 Test Vectors... Ok.
  - CFB AES-256 Test Vectors... Ok.

これら Test Vectors が,さっき挙げた NIST 文書のテストデータと一致しているか確認する.

さて,UnitTest タブのテストコードは Crypto.zip の com\hurlant\crypto\tests 以下のファイルで構成されている.今回,CBC モードについて調べているから,CBCModeTest.as をテキストエディタで開く.最新版が 1.3 だから,Google Code の Source から brunch,v1.3 から辿ってもいい

あ,32 行目からのコメント部で,さっき挙げた NIST 文書のアドレスが書いてあるな.テストデータをどこから持ってきたかを明示しているわけだ.まあ,一致しているかどうかは sp800-38a.pdf と CBCModeTest.as とを比較することで確認できる.