車載分野の仕事でSecure Hardware Extensions(SHE)を参照することがあり、その中に製品内の暗号鍵を更新する機能があるのですが、そこではM1〜M5の5つのパラメータが出てきます。
Secure Hardware Extensionsはこちら。鍵更新の説明は4.7.7節と4.9節。
https://www.autosar.org/fileadmin/user_upload/standards/foundation/19-11/AUTOSAR_TR_SecureHardwareExtensions.pdf
暗号鍵はセキュアに受け渡しをする必要があるため、新しい暗号鍵の生データを書き込むだけというような単純な仕様にはなっていません。新しい暗号鍵を別の暗号鍵で暗号化したデータや、そのデータに対するCMAC値などを受け渡しすることになっており、それがM1〜M5にあたります。
このM1〜M5を計算するツールが欲しいと思っていたのですが、意外と見つからなかったので、簡単なものを自作しました。
今回作ったスクリプトはこちら。
https://github.com/fukuda123/crypto/blob/main/20211023-she_m12345gen/m12345gen.py
使い方は、①Python3とPyCryptodomeをインストールし、②必要に応じてスクリプト内のいくつかの変数を変更し、③スクリプトを実行します。実行結果として、以下のようにM1〜M5の値が表示されます。
M1 = 00000000000000000000000000000141
M2 = 2b111e2d93f486566bcbba1d7f7a9797c94643b050fc5d4d7de14cff682203c3
M3 = b9d745e5ace7d41860bc63c2b9f5bb46
M4 = 00000000000000000000000000000141b472e8d8727d70d57295e74849a27917
M5 = 820d8d95dc11b4668878160cb2a4e23e