こんにちは、
S32K358のHSEにおけるGCMの動作について質問があります。
HSEサービスAPIリファレンスマニュアルのAEADサービス説明において、HSE FW 2.40.0および2.55.0の両方でGCMについて以下の事項が明記されています。
GCM: 1 <= ivLength <= 2^32-1。推奨サイズは12バイト以上です。
しかし、HSE FW 2.40.0のマニュアルには、HSE FW 2.55.0のマニュアルには記載されていない以下の注記が追加されています。
GCM操作においては、IV値として正確に12バイトを使用することを推奨します。12バイトを超える任意のIVサイズに対して、GCM暗号化操作によって生成される認証タグが正しくない場合があります。GCM復号操作では、認証チェックが失敗することがあります。
この点に関して、以下の点を明確にしたいと思います。
1. IV長が12バイトでない場合、HSE FW 2.40.0でGCM操作を通常使用できますか?
2. 12バイト以外のIV長を使用した場合、HSE FW 2.40.0と2.55.0の間でGCM操作に挙動的な違いはありますか?
3. IV長が12バイト以外の場合、HSE FW 2.40.0と2.55.0の間でGCM動作の信頼性に違いはありますか?
私たちのテストでは、IV長が12バイトでなくてもGCM暗号化と復号が成功し、認証結果も正確でした。
したがって、HSE FW 2.40.0で12バイト以外のIV長の使用が完全にサポートされているかどうか、またこの場合のHSE FW 2.55.0使用と機能的に違いがあるのかを確認したいと思います。
ご説明いただきありがとうございます。
こんにちは、 @wodudwo さん。
技術的には、ivLengthは異なる長さで設定可能ですが、しかし、その動作が信頼性を保証するわけではないため推奨されません。ご指摘の通り、ドキュメントにはGCM復号操作では、12バイト以外のIV長を使うと認証チェックが失敗する可能性があると記載されています。
異なる長さの点滴チューブを使用したテストに合格したとしても、手術が必ず成功するとは限りません。言い換えれば、特定のテストケースで成功した結果が、その構成が完全にサポートされている、あるいはすべてのシナリオで一貫して動作するという指標と解釈すべきではありません。
さらに、両方のファームウェアバージョンのリリースノートを確認すると、制限事項のリストに同じ推奨事項が記載されていることがわかります。それは、IV値を正確に12バイトにすることです。
この注記はHSE FW 2.55.0からHSEサービスAPIリファレンスマニュアルから削除されましたが、制限自体は変更されていません。
BR、VaneB