JAJA896 May   2025 BQ41Z50

 

  1.   1
  2.   概要
  3.   商標
  4. 1はじめに
  5. 2認証方式の比較
  6. 3パック製造フロー内での ECC キーのプログラミング
  7. 4 BQ41z50製品ファミリのゲージ認証フロー
  8. 5 BQ41z50製品ファミリのホスト認証フロー
  9. 6BQSTUDIOでの認証フロー
  10. 7まとめ
  11. 8参考資料

参考資料

表 8-1 アルゴリズムサマリーとメモ
アルゴリズム
ECDH

#peer_kpub は32バイトです

#self_kpri は32バイトです

#secret は30バイトです


secret = ecdh(peer_kpub, self_Kpvt)

PBKDF2HMAC

#OpenssiからのPythonコードのサンプル

#Saltは、ゲージから読み取られる乱数です

#長さは、AES-128の場合は16バイトです

#イテレーションは128です

#キーは AES-128キーです


from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
kdf = PBKDF2HMAC(
    aglorithm = hashes.SHA256( ), 
    length = 16,
    salt=bytes(salt),
    iterations = 128,
    backed=backend
)
aeskey = bytearray(kdf.derive(bytes(secret)))

AES

#iv はゲージから読み取られます

暗号化されたProdKpvt CProdKpveは32バイトです


from Crypto.Cipher import AES
cipher = AES.new(aeskey, AES.MODE_CTR, nonce=bytes(iv[0:8]), initial_value=bytes(iv[8:16]))
    CProdKpvt = cipher.encrypt(ProdKpvt)

ECC ECC-233