103
Datasheet DS40002138A_JP - p. 1 © 2020 Microchip Technology Inc. ATECC608A-TFLXTLS ATECC608A-TFLXTLS CryptoAuthentication データシート はじめに ATECC608A-TFLXTLS は、ATECC608A のプロビジョニング済みバージョンです。TrustFLEX セキュア エレメント は、Microchip 社の汎用プロビジョニング済みセキュリティ強化デバイス ファミリに属します。本デバイスは、IoT 市場における最も一般的なユースケース向けのセキュア エレメントとして、セキュリティ デバイスに習熟していな いユーザでも容易に使えるように設計されています。 ATECC608A-TFLXTLS の設定は ATECC608A-TNGTLS とほとんど同じです。しかし ATECC608A-TFLXTLS は、証 明書および鍵スロットに書き込まれるデータと、それらのスロットのロック オプションに関して、より高い柔軟性を 備えています。これらのスロットのアクセスポリシーは、ATECC608A- TFLXTLS を注文する前に、Trust Platform Design Suite ツールにより設定されます。ATECC608A-TFLXTLS では、単線式インターフェイス(SWI)を備えたデバ イスも選べます。 本書は、ATECC608A-TFLXTLS に固有のスロットおよび鍵コンフィグレーション情報を提供します。これらの情報 は、各 Data ゾーンスロットのアクセスポリシーを明確に定義します。本書には、ATECC608A-TFLXTLS に関連する コマンドおよび I/O 動作情報のみ記載しています。「応用のための情報」では、アプリケーションの開発に役立つ Microchip 社のハードウェアおよびソフトウェア ツールを紹介すると共に、それらのツールに関連するリンクも提供 します。 特長 一部のオプションを選択可能な定義済み Configuration ゾーン I/O オプション – I 2 C インターフェイス - I 2 C アドレスは一度だけ変更可能 単線式インターフェイス(SWI) 1x プライマリ P-256 楕円曲線暗号(ECC)秘密鍵 - 製造時に固定設定 1x 内部署名秘密鍵 - 鍵証明用 3x セカンダリ P-256 ECC 秘密鍵 - ユーザによる再生成が可能 署名者証明書からの署名者公開鍵 公開鍵の検証をサポート 1x カスタマイズ可能な対称秘密鍵スロット I 2 C 通信を保護する I/O 保護鍵 製造時にカスタマイズ可能なセキュアブート公開鍵によるセキュアブートが可能 AES 鍵およびコマンドと一緒に使用可能な ECDH/KDF 鍵スロット X.509 圧縮証明書ストレージ カスタマイズ可能な証明書ストレージ スロット 8 ピン UDFN および 8 ピン SOIC パッケージ(数量は 2000 個単位)で提供 応用例 セキュア IoT TLS 1.2 および 1.3 接続 セキュアブート/セキュア ファームウェア更新 消耗品/アクセサリの認証 知的財産およびデータ保護

ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 1 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ATECC608A-TFLXTLS CryptoAuthenticationtradeデータシート

はじめに

ATECC608A-TFLXTLS はATECC608A のプロビジョニング済みバージョンですTrustFLEX セキュア エレメント

はMicrochip 社の汎用プロビジョニング済みセキュリティ強化デバイス ファミリに属します本デバイスはIoT市場における最も一般的なユースケース向けのセキュア エレメントとしてセキュリティ デバイスに習熟していな

いユーザでも容易に使えるように設計されています ATECC608A-TFLXTLS の設定は ATECC608A-TNGTLS とほとんど同じですしかし ATECC608A-TFLXTLS は証

明書および鍵スロットに書き込まれるデータとそれらのスロットのロック オプションに関してより高い柔軟性を

備えていますこれらのスロットのアクセスポリシーはATECC608A- TFLXTLS を注文する前にTrust Platform Design Suite ツールにより設定されますATECC608A-TFLXTLS では単線式インターフェイス(SWI)を備えたデバ

イスも選べます 本書はATECC608A-TFLXTLS に固有のスロットおよび鍵コンフィグレーション情報を提供しますこれらの情報

は各 Data ゾーンスロットのアクセスポリシーを明確に定義します本書にはATECC608A-TFLXTLS に関連する

コマンドおよび IO 動作情報のみ記載しています「応用のための情報」ではアプリケーションの開発に役立つ

Microchip 社のハードウェアおよびソフトウェア ツールを紹介すると共にそれらのツールに関連するリンクも提供

します

特長

bull 一部のオプションを選択可能な定義済み Configuration ゾーン bull IO オプション

ndash I2C インターフェイス - I2C アドレスは一度だけ変更可能 ndash 単線式インターフェイス(SWI)

bull 1x プライマリ P-256 楕円曲線暗号(ECC)秘密鍵 - 製造時に固定設定 bull 1x 内部署名秘密鍵 - 鍵証明用 bull 3x セカンダリ P-256 ECC 秘密鍵 - ユーザによる再生成が可能 bull 署名者証明書からの署名者公開鍵 bull 公開鍵の検証をサポート bull 1x カスタマイズ可能な対称秘密鍵スロット bull I2C 通信を保護する IO 保護鍵 bull 製造時にカスタマイズ可能なセキュアブート公開鍵によるセキュアブートが可能 bull AES 鍵およびコマンドと一緒に使用可能な ECDHKDF 鍵スロット bull X509 圧縮証明書ストレージ bull カスタマイズ可能な証明書ストレージ スロット bull 8 ピン UDFN および 8 ピン SOIC パッケージ(数量は 2000 個単位)で提供

応用例

bull セキュア IoT TLS 12 および 13 接続 bull セキュアブートセキュア ファームウェア更新 bull 消耗品アクセサリの認証 bull 知的財産およびデータ保護

Datasheet DS40002138A_JP - p 2 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

目次

はじめに 1

特長 1

応用例 1

1 ピンの構成と配置 6

2 EEPROM メモリおよびデータゾーン アクセスポリシー 7

21 ATECC608A-TFLXTLS の Configuration ゾーン 8 211 Configuration ゾーン内の変更可能なバイト 10

22 Data ゾーンとアクセスポリシー 11 221 Data ゾーンのデータタイプ 11

2211 秘密鍵 11 2212 公開鍵 12 2213 証明書の動的保存 12 2214 Secure Boot 13 2215 秘密鍵 13 2216 AES 鍵ストレージ 13 2217 IO 保護鍵 13 2218 一般的データストレージ 14

222 スロット設定の用語 14 223 ATECC608A-TFLXTLS のスロット設定のまとめ 15

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン 25

3 スタティック RAM (SRAM)メモリ 26

31 TempKey 26 32 メッセージ ダイジェスト バッファ 27 33 代替鍵バッファ 27 34 SHA コンテクスト バッファ 27

4 一般コマンド情報 28

41 IO トランザクション 28 42 コマンドパケット 28 43 ステータスエラーコード 29 44 アドレスの指定 30

441 Configuration ゾーンのアドレス指定 30 442 OTP ゾーンのアドレス指定 30 443 Data ゾーンのアドレス指定 30

45 鍵署名証明書のフォーマット 32 451 ECC 鍵のフォーマット 32

4511 公開鍵のフォーマット 32 452 署名のフォーマット 33 453 証明書の保存 33

Datasheet DS40002138A_JP - p 3 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

5 デバイスコマンド 35

51 一般デバイスコマンド 35

511 Counter コマンド 35 512 Info コマンド 36

5121 Info - Revision 36 5122 Info - KeyValid 36 5123 Info - Device State 37 5124 Info - Write GPIO Output 37 5125 Info - Persistent Latch Read 38

513 Lock コマンド 38 5131 SlotLock 38

514 Nonce コマンド 39 5141 Nonce - Random 39 5142 Nonce - Fixed 40

515 Random コマンド 40 516 Read コマンド 40

5161 Clear Text Read 41 5162 Encrypted Read 41

517 SelfTest コマンド 42 518 SHA コマンド 42

5181 SHA - SHA256 Digest 43 5182 SHA - HMAC Digest 43 5183 SHA - Context Switching 44

519 UpdateExtra コマンド 45 5110 Write コマンド 45

51101 Data Zone - Clear Text Write 45 51102 Data Zone - Encrypted Write 46

52 非対称暗号コマンド 47 521 ECDH コマンド 47

5211 ECDH - Stored Key 47 5212 ECDH - TempKey Source 48

522 GenKey コマンド 49 5221 Private Key - Stored in Slot 49 5222 Private Key - Stored in TempKey 49 5223 Public Key Generation 50 5224 Public Key Digest Generation 50

523 SecureBoot コマンド 51 5231 SecureBoot - FullCopy 51 5232 SecureBoot - FullStore (Digest) 52

524 Sign コマンド 53 5241 Sign - Internal Message 53 5242 Sign - External Message 54

525 Verify コマンド 55 5251 Verify - External Public Key Mode 55 5252 Verify - Stored Public Key Mode 56 5253 Verify - Validate and Invalidate 57

Datasheet DS40002138A_JP - p 4 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

53 対称暗号コマンド 59 531 AES コマンド 59

5311 AES-ECB Encrypt 59

5312 AES-ECB Decrypt 59 5313 AES-GFM 60

532 CheckMac コマンド 60 533 GenDig コマンド 61

5331 GenDig - Config 61 5332 GenDig - OTP 62 5333 GenDig - Data 63 5334 GenDig - Shared Nonce 64 5335 GenDig - Counter 65 5336 GenDig - Key Config 65

534 KDF コマンド 66 5341 KDF - PRF 66 5342 KDF - AES 68 5343 KDF - HKDF 70 5344 KDF Output Encryption 71

535 MAC コマンド 71 5351 Non-Diversified MAC 72 5352 Diversified MAC 72

6 応用のための情報 74

61 ユースケース 74 62 開発ツール 75

621 Trust Platform Design Suite 75 622 ハードウェア ツール 75 623 CryptoAuthLib 76

63 TrustFLEX と TrustampGO の比較 76

7 I2C インターフェイス 77

71 IO 条件 77 711 スリープ中のデバイス 77 712 アクティブ中のデバイス 78

72 ATECC608A-TFLXTLS への I2C 送信 79 721 ワードアドレス値 79 722 I2C の同期 80

73 スリープ シーケンス 80 74 アイドル シーケンス 80 75 ATECC608A-TFLXTLS からの I2C 送信 81

8 単線式インターフェイス 82

81 IO トークン 82 82 IO フラグ 82 83 同期 83

831 IO タイムアウト 83

Datasheet DS40002138A_JP - p 5 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

832 同期手順 83 84 GPIO 84 85 単線式インターフェイスの接続 84

9 電気的特性 85

91 絶対最大定格 85 92 信頼性 85 93 AC パラメータ 全 IO インターフェイス 85

931 AC パラメータ I2C インターフェイス 86 932 AC パラメータ 単線式インターフェイス 87

94 DC パラメータ 全 IO インターフェイス 88 95 VIH VIL仕様 89

10 パッケージ図面 91

101 パッケージのマーキング情報 91 102 8 ピン UDFN 92 103 8 ピン SOIC 95

11 改訂履歴 98

Microchip 社のウェブサイト 99

顧客変更通知サービス 99

カスタマサポート 99

製品識別システム 100

Microchip 社のデバイスコード保護機能 101

法律上の注意点 101

商標 101

品質管理システム 102

各国の営業所とサービス 103

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 2: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 2 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

目次

はじめに 1

特長 1

応用例 1

1 ピンの構成と配置 6

2 EEPROM メモリおよびデータゾーン アクセスポリシー 7

21 ATECC608A-TFLXTLS の Configuration ゾーン 8 211 Configuration ゾーン内の変更可能なバイト 10

22 Data ゾーンとアクセスポリシー 11 221 Data ゾーンのデータタイプ 11

2211 秘密鍵 11 2212 公開鍵 12 2213 証明書の動的保存 12 2214 Secure Boot 13 2215 秘密鍵 13 2216 AES 鍵ストレージ 13 2217 IO 保護鍵 13 2218 一般的データストレージ 14

222 スロット設定の用語 14 223 ATECC608A-TFLXTLS のスロット設定のまとめ 15

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン 25

3 スタティック RAM (SRAM)メモリ 26

31 TempKey 26 32 メッセージ ダイジェスト バッファ 27 33 代替鍵バッファ 27 34 SHA コンテクスト バッファ 27

4 一般コマンド情報 28

41 IO トランザクション 28 42 コマンドパケット 28 43 ステータスエラーコード 29 44 アドレスの指定 30

441 Configuration ゾーンのアドレス指定 30 442 OTP ゾーンのアドレス指定 30 443 Data ゾーンのアドレス指定 30

45 鍵署名証明書のフォーマット 32 451 ECC 鍵のフォーマット 32

4511 公開鍵のフォーマット 32 452 署名のフォーマット 33 453 証明書の保存 33

Datasheet DS40002138A_JP - p 3 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

5 デバイスコマンド 35

51 一般デバイスコマンド 35

511 Counter コマンド 35 512 Info コマンド 36

5121 Info - Revision 36 5122 Info - KeyValid 36 5123 Info - Device State 37 5124 Info - Write GPIO Output 37 5125 Info - Persistent Latch Read 38

513 Lock コマンド 38 5131 SlotLock 38

514 Nonce コマンド 39 5141 Nonce - Random 39 5142 Nonce - Fixed 40

515 Random コマンド 40 516 Read コマンド 40

5161 Clear Text Read 41 5162 Encrypted Read 41

517 SelfTest コマンド 42 518 SHA コマンド 42

5181 SHA - SHA256 Digest 43 5182 SHA - HMAC Digest 43 5183 SHA - Context Switching 44

519 UpdateExtra コマンド 45 5110 Write コマンド 45

51101 Data Zone - Clear Text Write 45 51102 Data Zone - Encrypted Write 46

52 非対称暗号コマンド 47 521 ECDH コマンド 47

5211 ECDH - Stored Key 47 5212 ECDH - TempKey Source 48

522 GenKey コマンド 49 5221 Private Key - Stored in Slot 49 5222 Private Key - Stored in TempKey 49 5223 Public Key Generation 50 5224 Public Key Digest Generation 50

523 SecureBoot コマンド 51 5231 SecureBoot - FullCopy 51 5232 SecureBoot - FullStore (Digest) 52

524 Sign コマンド 53 5241 Sign - Internal Message 53 5242 Sign - External Message 54

525 Verify コマンド 55 5251 Verify - External Public Key Mode 55 5252 Verify - Stored Public Key Mode 56 5253 Verify - Validate and Invalidate 57

Datasheet DS40002138A_JP - p 4 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

53 対称暗号コマンド 59 531 AES コマンド 59

5311 AES-ECB Encrypt 59

5312 AES-ECB Decrypt 59 5313 AES-GFM 60

532 CheckMac コマンド 60 533 GenDig コマンド 61

5331 GenDig - Config 61 5332 GenDig - OTP 62 5333 GenDig - Data 63 5334 GenDig - Shared Nonce 64 5335 GenDig - Counter 65 5336 GenDig - Key Config 65

534 KDF コマンド 66 5341 KDF - PRF 66 5342 KDF - AES 68 5343 KDF - HKDF 70 5344 KDF Output Encryption 71

535 MAC コマンド 71 5351 Non-Diversified MAC 72 5352 Diversified MAC 72

6 応用のための情報 74

61 ユースケース 74 62 開発ツール 75

621 Trust Platform Design Suite 75 622 ハードウェア ツール 75 623 CryptoAuthLib 76

63 TrustFLEX と TrustampGO の比較 76

7 I2C インターフェイス 77

71 IO 条件 77 711 スリープ中のデバイス 77 712 アクティブ中のデバイス 78

72 ATECC608A-TFLXTLS への I2C 送信 79 721 ワードアドレス値 79 722 I2C の同期 80

73 スリープ シーケンス 80 74 アイドル シーケンス 80 75 ATECC608A-TFLXTLS からの I2C 送信 81

8 単線式インターフェイス 82

81 IO トークン 82 82 IO フラグ 82 83 同期 83

831 IO タイムアウト 83

Datasheet DS40002138A_JP - p 5 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

832 同期手順 83 84 GPIO 84 85 単線式インターフェイスの接続 84

9 電気的特性 85

91 絶対最大定格 85 92 信頼性 85 93 AC パラメータ 全 IO インターフェイス 85

931 AC パラメータ I2C インターフェイス 86 932 AC パラメータ 単線式インターフェイス 87

94 DC パラメータ 全 IO インターフェイス 88 95 VIH VIL仕様 89

10 パッケージ図面 91

101 パッケージのマーキング情報 91 102 8 ピン UDFN 92 103 8 ピン SOIC 95

11 改訂履歴 98

Microchip 社のウェブサイト 99

顧客変更通知サービス 99

カスタマサポート 99

製品識別システム 100

Microchip 社のデバイスコード保護機能 101

法律上の注意点 101

商標 101

品質管理システム 102

各国の営業所とサービス 103

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 3: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 3 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

5 デバイスコマンド 35

51 一般デバイスコマンド 35

511 Counter コマンド 35 512 Info コマンド 36

5121 Info - Revision 36 5122 Info - KeyValid 36 5123 Info - Device State 37 5124 Info - Write GPIO Output 37 5125 Info - Persistent Latch Read 38

513 Lock コマンド 38 5131 SlotLock 38

514 Nonce コマンド 39 5141 Nonce - Random 39 5142 Nonce - Fixed 40

515 Random コマンド 40 516 Read コマンド 40

5161 Clear Text Read 41 5162 Encrypted Read 41

517 SelfTest コマンド 42 518 SHA コマンド 42

5181 SHA - SHA256 Digest 43 5182 SHA - HMAC Digest 43 5183 SHA - Context Switching 44

519 UpdateExtra コマンド 45 5110 Write コマンド 45

51101 Data Zone - Clear Text Write 45 51102 Data Zone - Encrypted Write 46

52 非対称暗号コマンド 47 521 ECDH コマンド 47

5211 ECDH - Stored Key 47 5212 ECDH - TempKey Source 48

522 GenKey コマンド 49 5221 Private Key - Stored in Slot 49 5222 Private Key - Stored in TempKey 49 5223 Public Key Generation 50 5224 Public Key Digest Generation 50

523 SecureBoot コマンド 51 5231 SecureBoot - FullCopy 51 5232 SecureBoot - FullStore (Digest) 52

524 Sign コマンド 53 5241 Sign - Internal Message 53 5242 Sign - External Message 54

525 Verify コマンド 55 5251 Verify - External Public Key Mode 55 5252 Verify - Stored Public Key Mode 56 5253 Verify - Validate and Invalidate 57

Datasheet DS40002138A_JP - p 4 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

53 対称暗号コマンド 59 531 AES コマンド 59

5311 AES-ECB Encrypt 59

5312 AES-ECB Decrypt 59 5313 AES-GFM 60

532 CheckMac コマンド 60 533 GenDig コマンド 61

5331 GenDig - Config 61 5332 GenDig - OTP 62 5333 GenDig - Data 63 5334 GenDig - Shared Nonce 64 5335 GenDig - Counter 65 5336 GenDig - Key Config 65

534 KDF コマンド 66 5341 KDF - PRF 66 5342 KDF - AES 68 5343 KDF - HKDF 70 5344 KDF Output Encryption 71

535 MAC コマンド 71 5351 Non-Diversified MAC 72 5352 Diversified MAC 72

6 応用のための情報 74

61 ユースケース 74 62 開発ツール 75

621 Trust Platform Design Suite 75 622 ハードウェア ツール 75 623 CryptoAuthLib 76

63 TrustFLEX と TrustampGO の比較 76

7 I2C インターフェイス 77

71 IO 条件 77 711 スリープ中のデバイス 77 712 アクティブ中のデバイス 78

72 ATECC608A-TFLXTLS への I2C 送信 79 721 ワードアドレス値 79 722 I2C の同期 80

73 スリープ シーケンス 80 74 アイドル シーケンス 80 75 ATECC608A-TFLXTLS からの I2C 送信 81

8 単線式インターフェイス 82

81 IO トークン 82 82 IO フラグ 82 83 同期 83

831 IO タイムアウト 83

Datasheet DS40002138A_JP - p 5 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

832 同期手順 83 84 GPIO 84 85 単線式インターフェイスの接続 84

9 電気的特性 85

91 絶対最大定格 85 92 信頼性 85 93 AC パラメータ 全 IO インターフェイス 85

931 AC パラメータ I2C インターフェイス 86 932 AC パラメータ 単線式インターフェイス 87

94 DC パラメータ 全 IO インターフェイス 88 95 VIH VIL仕様 89

10 パッケージ図面 91

101 パッケージのマーキング情報 91 102 8 ピン UDFN 92 103 8 ピン SOIC 95

11 改訂履歴 98

Microchip 社のウェブサイト 99

顧客変更通知サービス 99

カスタマサポート 99

製品識別システム 100

Microchip 社のデバイスコード保護機能 101

法律上の注意点 101

商標 101

品質管理システム 102

各国の営業所とサービス 103

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 4: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 4 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

53 対称暗号コマンド 59 531 AES コマンド 59

5311 AES-ECB Encrypt 59

5312 AES-ECB Decrypt 59 5313 AES-GFM 60

532 CheckMac コマンド 60 533 GenDig コマンド 61

5331 GenDig - Config 61 5332 GenDig - OTP 62 5333 GenDig - Data 63 5334 GenDig - Shared Nonce 64 5335 GenDig - Counter 65 5336 GenDig - Key Config 65

534 KDF コマンド 66 5341 KDF - PRF 66 5342 KDF - AES 68 5343 KDF - HKDF 70 5344 KDF Output Encryption 71

535 MAC コマンド 71 5351 Non-Diversified MAC 72 5352 Diversified MAC 72

6 応用のための情報 74

61 ユースケース 74 62 開発ツール 75

621 Trust Platform Design Suite 75 622 ハードウェア ツール 75 623 CryptoAuthLib 76

63 TrustFLEX と TrustampGO の比較 76

7 I2C インターフェイス 77

71 IO 条件 77 711 スリープ中のデバイス 77 712 アクティブ中のデバイス 78

72 ATECC608A-TFLXTLS への I2C 送信 79 721 ワードアドレス値 79 722 I2C の同期 80

73 スリープ シーケンス 80 74 アイドル シーケンス 80 75 ATECC608A-TFLXTLS からの I2C 送信 81

8 単線式インターフェイス 82

81 IO トークン 82 82 IO フラグ 82 83 同期 83

831 IO タイムアウト 83

Datasheet DS40002138A_JP - p 5 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

832 同期手順 83 84 GPIO 84 85 単線式インターフェイスの接続 84

9 電気的特性 85

91 絶対最大定格 85 92 信頼性 85 93 AC パラメータ 全 IO インターフェイス 85

931 AC パラメータ I2C インターフェイス 86 932 AC パラメータ 単線式インターフェイス 87

94 DC パラメータ 全 IO インターフェイス 88 95 VIH VIL仕様 89

10 パッケージ図面 91

101 パッケージのマーキング情報 91 102 8 ピン UDFN 92 103 8 ピン SOIC 95

11 改訂履歴 98

Microchip 社のウェブサイト 99

顧客変更通知サービス 99

カスタマサポート 99

製品識別システム 100

Microchip 社のデバイスコード保護機能 101

法律上の注意点 101

商標 101

品質管理システム 102

各国の営業所とサービス 103

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 5: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 5 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

832 同期手順 83 84 GPIO 84 85 単線式インターフェイスの接続 84

9 電気的特性 85

91 絶対最大定格 85 92 信頼性 85 93 AC パラメータ 全 IO インターフェイス 85

931 AC パラメータ I2C インターフェイス 86 932 AC パラメータ 単線式インターフェイス 87

94 DC パラメータ 全 IO インターフェイス 88 95 VIH VIL仕様 89

10 パッケージ図面 91

101 パッケージのマーキング情報 91 102 8 ピン UDFN 92 103 8 ピン SOIC 95

11 改訂履歴 98

Microchip 社のウェブサイト 99

顧客変更通知サービス 99

カスタマサポート 99

製品識別システム 100

Microchip 社のデバイスコード保護機能 101

法律上の注意点 101

商標 101

品質管理システム 102

各国の営業所とサービス 103

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 6: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 6 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

ピンの構成と配置

1 ピンの構成と配置 表 1-1ピン配置

図 1-1 UDFN および SOIC パッケージのピン配置

Note  UDFN の底面パッドは GND に接続する必要があります

ピン名 I2C デバイスの機能 SWI デバイスの機能

NC 未接続 未接続

GND グランド グランド

SDA I2C シリアルデータ 単線式 IO 信号

SCL I2C シリアルクロック入力 GPIO 信号

VCC 電源 電源

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 7: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する

Datasheet DS40002138A_JP - p 7 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

2 EEPROM メモリの構成と Data ゾーンアクセスポリシー

EEPROM メモリは 1400 バイトの総容量を持ち以下のゾーンに分割されます

表 2-1 ATECC608A-TFLXTLS の EEPROM ゾーン

ゾーン 概要 命名法

Configuration 以下を格納する 128 バイト(1024 ビット)の EEPROM ゾーン

bull デバイス コンフィグレーション

bull スロット アクセスポリシー情報

bull カウンタ値

bull デバイスシリアル番号

bull ロック情報 LockConfig バイトは設定済みですConfiguration ゾーンに直接書き込む事は一

切できませんConfiguration ゾーンは常に読み出し可能です

Config[ab] = Configuration ゾーンの 1 フィールドに含まれるバ

イトのレンジ

Data 1208 バイト(97 K ビット)のゾーンが 16 個の読み出し専用または読み書き可能

汎用メモリスロットに分割されますスロットは以下の通りに分割されます bull スロット 0~7 36 バイトを格納

bull スロット 8 416 バイトを格納

bull スロット 9~15 72 バイトを格納 Configuration ゾーン内のバイトによって定義されるアクセスポリシー情報によ

り各スロットへのアクセス方法が決まりますATECC608A-TFLXTLS 内の各

DATA ゾーンスロットのアクセスポリシーは設定済みでありConfiguration ゾ

ーンによって定義されたスロット アクセスポリシーは完全な効力を有します

アクセスポリシーに応じてそのスロットに対する読み出しまたは書き込みが

可能かどうかが決まります

Slot[YY] = Data ゾーンのスロット

YY に保存された内容

OTP (One Time Programmable)

64 バイト(512 ビット)のゾーンが 2 つの 32 バイトブロックに分割されます

ATECC608A-TFLXTLS の OTP ゾーンには定義値が書き込み済みですOTP ゾ

ーンは変更できませんがいつでも読み出せます 詳細は 23 を参照してくだ

さい

OTP[bb] = OTP ゾーン内

の 1 バイト

OTP[aabb] = OTP ゾーン

内のバイトのレンジ

表 2-2 本書内の用語の意味 本書内で使う用語の意味を下表に示します

用語 意味

ブロック 1 ブロックは特定メモリゾーン内の 256 ビット(32 バイト)領域です業界標準の SHA-256 文書でも「ブロック」

という用語が使われますがこれはメッセージ入力の 512 ビット セクションを意味します本書では「ブロッ

ク」はハッシュ入力メッセージに言及する際にのみ使われます

KeyID KeyID は鍵値を保持するために割り当てられたスロットの番号です例えばKey 1 (Key[1]と表記する場合もあ

り)はSlot[1]に保存されます16 個ある全てのスロットは鍵を保持できますが平文読み出しを許可するよう設定

されたスロットが暗号コマンドによって公開鍵または秘密鍵として使われる事は一般的にありません

mode[b] Mode パラメータのビット b を示します

SRAM 入力および出力バッファと状態保存領域を格納しますユーザが直接このメモリにアクセスする事はできません 3 「スタティック RAM (SRAM)メモリ」を参照してください

ワード 1 ワードはブロックに対して読み書きする 4 バイトのデータですワードはデータアクセスの最小単位です

Datasheet DS40002138A_JP - p 8 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

21 ATECC608A-TFLXTLS の Configuration ゾーン

Configuration ゾーン内の 128 バイトは製造 ID データ一般的なデバイスおよびシステム コンフィグレーション情報

Data ゾーン内のスロットに対するアクセスポリシー設定を格納しますこのゾーンは 4 個の 32 バイトブロックとし

て構成されますConfiguration ゾーン内のバイトの値はいつでも Read コマンドを使って読み出せます

ATECC608A-TFLXTLS ではこれらの値の大部分は設定済みであり変更はできません柔軟性を高めるため一

部のコンフィグレーション バイトはMicrochip 社の Trust Platform Design Suite ツールを使って変更できます変更

可能なバイトを下表に示します変更後にロック可能なバイトについては211 「Configuration ゾーン内の変更可

能バイト」で説明します

Configuration ゾーンのバイトは下表の通りに設定済みです複数のオプションが示されている場合その中の 1 つの

設定だけが使えます

表 2-3 ATECC608A-TFLXTLS の Configuration ゾーン設定

バイト 名称 設定値 [LSB MSB]

概要

[03] SN[03] 01 23 xx xx シリアル番号の bit [03]

[47] RevNum 00 00 60 02 デバイス リビジョン番号

[812] SN[48] xx xx xx xx 01 シリアル番号の bit [812]

[13] AES_Enable 01 AES 動作は有効

[14](1) I2C_Enable xx b[71] Microchip 社が設定(デバイスごとに異なる)

b[0] 1 = I2C モードのデバイス 0 = SWI モードのデバイス

[15] 予約済み 00 Microchip 社が設定(常に 0x00)

[16](2) I2C_Address 6C I2C モードのデバイス 既定値の 7 ビット I2C アドレス = 0x36

[16](2) GPIO 制御 03 SWI モードのデバイス bull GPIO を出力として設定 bull 既定開始値は 0

[17] 予約済み 00 予約済み0 である事が必要

[18] CountMatch 00 カウンタ照合機能は無効

[19] ChipMode 01 b[73] 0x00 (クロック分周器モード = 高速)

b[2] 0 (ウォッチドッグ タイマを 13 s に設定)

b[1] 0 (IO は固定リファレンス モードを使用)

b[0] 1 (代替 I2C アドレスモードは有効)

[2051](3) SlotConfig 224 参照 各 Data ゾーンスロットに対するアクセス使用許可と制御用

に使用(2 バイト)

[5259] Counter[0] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 0 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[6067] Counter[1] FF FF FF FF 00 00 00 00

どの鍵にもモノトニック カウンタ 1 の値を付加しない (この

カウンタは必要に応じてシステムカウンタとして使用可能)

[68] UseLock 00 UseLock Key は無効

Datasheet DS40002138A_JP - p 9 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[69] VolatileKey Permission

00 揮発性鍵パーミッションは無効

[7071](4) SecureBoot 03 F7 b[1512] 0xF セキュアブート公開鍵をスロット 15 に保存する b[118] 0x7 セキュアブート ダイジェストをスロット 7に保存する b[74] 0x0 0 に設定する必要あり b[3] 0 ランダムノンスは必須ではないが使用する事を推奨

b[2] 0 セキュアブート持続性ラッチを無効にする

b[10] 0b11 セキュアブート FullDig モードを有効にする

[7071](4) SecureBoot 07 F7 全てのビット値はbit 2 を除いて上の行と同じ

b[2] 1 セキュアブート持続性ラッチを有効にする

[72] KdfIvLoc 00 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7374] KdfIvStr 69 76 効果なし(このコンフィグレーションでは ChipOptionsKDFPROT は

暗号化を強制しないため)

[7583] 予約済み 全て 0 0 である事が必要

[84] UserExtra 00 Data ゾーンがロックされた後に UpdateExtra コマンドを使って変

更可能な 1 バイト値 (この値が 0 である場合にのみ UpdateExtraによる書き込みが可能)

[85] UserExtraAdd 00 このバイトの値が 0x00 ではない場合 本デバイスの I2C アドレス このバイトの値が 0x00 である場合 UpdateExtra コマンドを使っ

てこのバイトに値を書き込み可能

[86] LockValue 00 Data ゾーンはロック済みであるためこの値は 0x00 です

[87] LockConfig 00 Configration ゾーンはロック済みであるためこの値は 0x00 で

[8889] SlotLocked FF FF ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可

能(Lockable)にできます スロット 2~6810~121315 その他のスロットは全て書き込み禁止です

Datasheet DS40002138A_JP - p 10 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き バイト 名称 設定値

[LSB MSB] 概要

[9091] ChipOptions 0E 60 b[1512] 0x6 (IO 保護鍵をスロット 6 に設定)

b[1110] 0b00 (平文での KDF 関数の出力を許可するが暗 号化は可能)

b[98] 0b00 (平文での ECDH マスタ秘密鍵の出力を許可

するが暗号化は可能)

b[74] 0 である事が必要

b[3] 1 = ヘルステストに合格しなかったためにコマンド

実行が失敗した場合常に Health Test Failure ビッ

トがクリアされる

異常の症状が過渡的であった場合2 回目のコマン

ドで合格する可能性があります

b[2] 1 (KDF AES モードは有効)

b[1] 1 (IO 保護鍵は有効)

b[0] 0 (復帰時にパワーオン セルフテストは無効)

[9295] X509format 00 00 00 00 証明書のフォーマッティングは無効無視

[96127](3) KeyConfig 224 参照 各 Data ゾーンスロットに対する追加のアクセス使用許可と制

御用に使用(2 バイト)

Note  ATECC608A-TFLXTLS の Configuration ゾーン オプション 以下のバイトはMicrochip 社の Trust Platform Design Suite ツールを使って設定できます

1 バイト 14 (I2C_Enable) はデバイスが I2C モードと SWI モードのどちらで動作するのか制御します 2 バイト 16 の機能はデバイスが I2C モードと SWI モードのどちらに設定されているかに応じて異なります 3 SlotConfig と KeyConfig は一部のスロット向けの恒久的ロックまたはロック機能に関する選択可能オプションを

格納します詳細は 224 「ATECC608A-TFLXTLSのスロット アクセスポリシーの詳細」を参照してください 4 バイト[7170] は有効なセキュアブートが発生するまでプライマリ秘密鍵の使用を無効にするかどうか指定し

ます詳細は 224 「セキュアブート オプション」と表 2-4 を参照してください

211 Configuration ゾーン内の変更可能なバイト

Configuration ゾーンはロック済みであるためこのゾーン内のバイトに直接書き込む事はできませんしかし一部

のバイトは別のコマンドを使って変更できます SlotLocked ビット ATECC608A-TFLXTLS の場合以下の各スロットは個別にロック可能(Lockable) にするかどうか設定できます

スロット 2~6810~12 1315 Trust Platform Design Suite ツールによりこれらの各スロットは製造時に固定またはロック済みに設定できますス

ロット 10~12 は常に同じ設定にする必要がありますロック可能(Lockable) に設定されたスロットはLock コマン

ドの SlotLock モードを使ってロックできますロック可能なスロットは個々に 1 度だけロックできます1 度ロッ

クしたスロットは変更もロックの解除もできなくなりますがそのスロットに対して定義されているアクセスポリ

シーに基づいて使う事ができます I2C アドレスの再定義 本デバイスはI2C アドレスが 1 度だけ変更できるように設定されていますUpdateExtra コマンドを使って

Configuration ゾーン内のバイト 85 に新しい I2C アドレスを書き込みますこのバイトを非 0 値に設定するとデバ

イス コンフィグレーションは既定値アドレスの代わりにバイト 85 の値を I2C アドレスとして使います新しいアド

レスを有効にするにはこのバイトを書き換えた後にデバイスの電源を 1 度遮断するかデバイスをスリープモード

に移行させる必要があります

Datasheet DS40002138A_JP - p 11 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要   I2C アドレスを変更する必要がない場合このバイト位置に既定値 I2C アドレスを書き込む必要が

あります

UserExtra バイト UserExtra バイトは任意の目的で使えますこのバイトはUpdateExtra コマンドを使って 1 度だけ更新できます

Counter[01] 本デバイスはカウンタを使いませんがカウンタは有効なままです必要に応じシステムはこれらのカウンタを使

う事ができますカウンタは 0 に初期化され最大 2097151 までカウントできますCounter コマンドにより

カウンタ値のインクリメントまたは読み出しが可能ですこれらのカウンタは本デバイスの他の機能とは無関係で

ありシステムによって自由に使う事ができます

22 Data ゾーンとアクセスポリシー

以下では各スロットに割り当てられているアクセスポリシー情報について説明します実際のアクセスポリシー情

報はEEPROM Configuration ゾーン内の SlotConfig および KeyConfig セクションに保存されます各 Data ゾーン

スロットには2 つの Slot Configuration バイトと 2 つの Key Configuration バイトが割り当てられていますこれら

の 4 バイトにより各スロットの「アクセスポリシー」が構成されますスロットに保存されるデータのタイプは

そのスロットのアクセスポリシーによって決まります

221 Data ゾーンのデータタイプ 以下ではATECC608A-TFLXTLS のデータスロットに保存できる各種データタイプについて説明します

2211 秘密鍵

ECC 秘密鍵はECC セキュリティの基本構成要素ですこれらの鍵は非公開かつ各デバイスに対して一意であり

読み取る事は決してできません通常ECC 秘密鍵はセキュア エレメントの TRNG によりランダムに生成され

ECC 秘密鍵として設定されたスロットでセキュアに保持されます

プライマリ秘密鍵 これはプライマリ認証鍵ですこの鍵は恒久的であり変更はできません各デバイスは独自の一意秘密鍵を保有し

ます

この鍵は以下の 2 つのプライマリ楕円曲線関数向けに使えます

bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

ります セットアップの詳細は 2217 「IO 保護鍵」を参照してください

このプライマリ秘密鍵は対応する公開鍵と X509 証明書を生成するための基本の鍵です

セカンダリ秘密鍵 これらは将来のユースケース(追加のサービス認証等)のために使える追加の秘密鍵ですこれらの鍵は以下のプ

ライマリ楕円曲線関数向けに使えます bull 認証のための ECDSA 署名 bull 鍵合意のための ECDHECDH 出力を暗号化する必要がある場合IO 保護鍵を最初にセットアップする必要があ

りますセットアップの詳細は 2217 「IO 保護鍵」を参照してください bull GenKey

内部で生成した新しいランダム秘密鍵をスロットに上書きするために使います

プライマリ鍵および証明書は恒久的であり変更できませんがセカンダリ鍵は内部生成した新しい鍵(GenKey コマ

ンドモード = 0x04 を使用)で上書きする事により鍵の削除およびローテーションとリモート プロビジョニング

が可能です

Datasheet DS40002138A_JP - p 12 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

これらの鍵はスロットのロックも可能です(KeyConfigLockable ビット = 0 に設定)すなわちSlot Lock モードで

Lock コマンドを使う事により現在の鍵を恒久的に保存できます(GenKey コマンドによる変更から保護できます)鍵を変更した場合ATECC608A-TFLXTLS 内で新しい鍵を適切に保護するために鍵の証明(Key Attestation)が必要で

すその後に新しい鍵は信頼可能となります 鍵の証明(Key Attestation) スロット 1 内の秘密鍵は内部署名専用の鍵として設定されますすなわちこの鍵はGenKey または GenDig コ

マンドによって内部で生成されたメッセージに署名する事しかできません(この鍵を使って外部メッセージに署名する

事はできません)この機能は本デバイスを使う側にデバイスの署名者鍵(公開鍵)と鍵に関わるデバイスの設定情

報が信頼できる事を証明します

2212 公開鍵

公開鍵は ECC 秘密鍵と関連付けられます各 ECC 秘密鍵は独自の一意公開鍵を持ちます検証目的で公開鍵を保存

するために複数のスロットが別に設定されていますこれらはしばしば信頼の基点(Root of Trust)公開鍵のセキュ

ア ストレージとして使われますこれらの鍵のスロットは以下の 2 通りのモードで使えます bull 恒久的公開鍵 - このモードでは要求される公開鍵を「ペアレント公開鍵」スロット(スロット 13)に書き込み

そのスロットをロックする事で鍵を恒久的としますこのモードでは「有効な公開鍵」スロット(スロット 14)を使いません

bull セキュアに更新可能な公開鍵 - このモードでは「ペアレント公開鍵」スロットにペアレント公開鍵を書き込ん

でロックします次に検証する公開鍵を「有効な公開鍵」スロットに書き込みます最後にペアレント公開

鍵に対応する秘密鍵(デバイス外部に保存)を使って公開鍵を検証する事でその使用を有効にすると共に不正な

変更を防ぐ必要がありますこの処理に関する詳細は 2212 「有効な公開鍵」を参照してください ペアレント公開鍵 ペアレント公開鍵はデバイスの外部に保存された ECC 秘密鍵から生成されるプライマリ システム鍵です

有効な公開鍵 有効な公開鍵は使用前に有効にする必要があります有効な公開鍵を更新する場合鍵を無効にしてから更新する

必要があります有効化と無効化はVerify コマンドを Validate または Invalidate モードで使う事により行います

5253 「Verify - Validate と Invalidate」を参照してください

2213 証明書の動的保存 ATECC608A-TFLXTLS のストレージは鍵の保存用に構成されていますX509 証明書はATECC608A-TFLXTLSスロットのサイズより大きくなる傾向があるため圧縮フォーマットを使いますこの方法は動的な証明書情報を

デバイスに保存してある程度の制限を課するため部分的証明と呼ばれる手法よりも優れます動的な情報とはデ

バイスごとに異なると期待できる証明書内容です(例 公開鍵有効期限等)ファームウェアには静的情報(全ての

証明書で同じ内容のデータ)を格納した完全な X509 証明書のテンプレートによる証明書定義(CryptoAuthLib からの

atcacert_def_t)と圧縮された証明書内の動的情報から完全な証明書を再構成するための方法に関する命令を備えて

いる事が求められます

以下のアプリケーション ノートに圧縮された証明書のフォーマットが記載されています

ATECC Compressed Certificate Definition

CryptoAuthLib ライブラリにも圧縮された証明書向けの atcacert モジュールが含まれています

デバイス証明書 デバイス証明書は実際のエンドユニットに関する情報で構成されますATECC608A-TFLXTLS の場合デバイス

証明書はスロット 10 に保存されます

署名者証明書 署名者証明書はデバイス証明書に署名するために使われる証明者に関する情報で構成されますATECC608A-TFLXTLS の場合署名者証明書はスロット 12 に保存されます完全な署名者証明書を完成させるには署名者公開鍵

も必要です

署名者公開鍵 署名者公開鍵は署名者と圧縮された署名者証明書に関する情報を検証するために必要な公開鍵ですATECC608A-TFLXTLS の場合署名者公開鍵はスロット 11 に保存されます

Datasheet DS40002138A_JP - p 13 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

下表に証明書に関係する ATECC608A-TFLXTLS 内の全てのスロットを示します

Slot 概要

0 プライマリ秘密鍵 この公開鍵はGenKey コマンドを Mode = 0x00 で使う事によりいつでも生成でき

ます

10 デバイス証明書 この証明書は圧縮フォーマットでこのスロットに保存されます 453 「証明書ストレー

ジ」参照

11 署名者公開鍵 4511 「公開鍵のフォーマット」参照

12 署名者証明書 この証明書は圧縮フォーマットで保存されます 453 「証明書ストレージ」参照

ATECC608A-TFLXTLS の量産デバイスの場合これらのスロットは恒久的(Permanent)またはロック可能(Lockable)として設定できます初期開発を容易にするためプロトタイプ デバイスのスロット 10~12 はロック可能

(Lockable)に設定されています

2214 セキュアブート ATECC608A-TFLXTLS ではSecureBoot コマンドは有効となっていますこのためシステムは完全なブートを

実行する前にブートローダを介してファームウェアを暗号論的に検証できますこの機能を使うと新しいファー

ムウェア イメージをロードする前に検証する事もできます

セキュアブート機能を使う前にP-256 ファームウェア署名鍵を確立する必要があります秘密鍵はファームウェ

ア イメージの署名用にファームウェア開発者が保有します公開鍵を「セキュアブート公開鍵」スロットに書き込

みスロットをロックする事で鍵を恒久的とする必要があります

ATECC608A-TFLXTLS の場合使用を許可する前に有効なセキュアブートを要求するようプライマリ秘密鍵を設定

する事もできますこの機能を有効にする方法は224 「セキュアブート オプション」を参照してください完全

な説明は 523 「SecureBoot コマンド」を参照してください

セキュアブートを実装するには各種のデータスロットが必要です

セキュアブート ダイジェスト セキュアブート ダイジェストはファームウェア アプリケーション コードに対して計算される 32 バイトの SHA256ダイジェストですこのダイジェストはファームウェアを更新するたびに更新する必要がありますATECC608A-TFLXTLS の場合ダイジェストはスロット 7 に保存されます セキュアブート公開鍵 セキュアブート公開鍵はセキュアブート ダイジェストと署名を有効にするための検証機能を実行するために使われ

ますセキュアブート公開鍵はスロット 15 に保存されます

2215 秘密鍵 このスロットは32 バイトの秘密値または秘密鍵を保存するために使えますこの鍵はATECC608A-TFLXTLS の

対称鍵コマンド(GenDigMACCheckMacKDFSHAHMACAES)で使えます

この鍵を書き込むにはIO 保護鍵を書き込み鍵として使う暗号化書き込みが必要です従って秘密鍵を書き込む

前に 2217 「IO 保護鍵」を設定する必要があります

2216 AES 鍵ストレージ ECDH および KDF 等のコマンドは対称鍵を出力しますオプションによりこれらの鍵はスロットに安全に保存して

使用できますAES 鍵ストレージ スロットはこれらの鍵の保存先として設定済みです複数の鍵を 1 つのスロッ

トに保存する事ができます

2217 IO 保護鍵 VerifyECDHSecureBootKDF コマンドではオプションにより IO 保護機能を使って一部のパラメータを暗

号化し一部のレスポンスを検証できます(MAC コマンドによる)これは物理的 I2C バス上での中間者攻撃を防ぐ

ために役立ちますしかしこの機能を使う前にATECC608A-TFLXTLS は一意の IO 保護鍵を生成して保存する事

で原則的に互いにペアリングする必要がありますペアリング処理は最初のブート時に発生する必要があります

IO 保護鍵の生成

1 MCU は random コマンドを使ってランダムな 32 バイト IO 保護鍵を生成します 2 MCU は IO 保護鍵を MCU 内部のフラッシュに保存します

Datasheet DS40002138A_JP - p 14 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

3 MCU は IO 保護鍵を IO 保護鍵スロットに書き込みます 4 MCU はそのスロットをロックする事でIO 保護鍵を恒久的とします

ペアリングを確認するためMCU は MAC コマンドを使ってチャレンジを IO 保護鍵に対して発行しフラッシュに

保存されている IO 保護鍵と ATECC608A-TFLXTLS 内の IO 保護鍵が一致するか検証します

2218 一般的データストレージ 一部のスロットは一般的な公開データの保存をサポートするよう設定済みですこれらのスロットは制約なしに

アクセスできる任意のデータを保存するために使えますこれらのスロットは平文で常に読み書き可能です

222 スロット設定の用語 以下に設定オプションの説明に使う用語をアルファベット順に記載します

用語 意味

AES Key AES コマンドの鍵ソースと使えるスロットATECC608A-TFLXTLS ではAES 鍵は 128 ビット

幅を持つ

Always Write 書き込みコマンドを使っていつでも平文で書き込めるスロット

Clear Read パブリックである(秘密ではない)と見なされその内容を読み出しコマンドを使って平文で読み出

せるスロット

ECDH 楕円曲線ディフィー ヘルマン(Elliptic Curve Diffie Hellman) ECDH コマンドで使える秘密鍵

Encrypted Write スロットに書き込むには指定された書き込み鍵に基づく暗号化書き込みを使う必要がある Ext Sign 外部(任意の)メッセージを署名するために使える秘密鍵 Int Sign GenKey または GenDig コマンドによって生成された内部メッセージに署名するために使える秘

密鍵デバイス内部の鍵と設定を証明するために使用

Lockable 将来のある時点でロックできるスロット1 度ロックしたスロットの内容は変更できない(読み出

し使用のみ可能)

No Read 秘密であると見なされ読み出しコマンドを使って読み出す事ができないスロット秘密鍵と対

称秘密鍵は常に「No Read」として設定する必要がある

No Write 書き込みコマンドを使って変更できないスロット

Permanent 恒久的で変更不可能な秘密鍵この秘密鍵は工場でのプロビジョニング中に内部生成される

Updatable 後でランダムに内部生成された秘密鍵により上書き可能な秘密鍵初期値は工場でのプロビジョ

ニング中に内部生成される

Validated 公開鍵はペアレント公開鍵によって有効にされた後に Verify コマンドでのみ使える

223 ATECC608A-TFLXTLS のスロット設定のまとめ ATECC608A-TFLXTLS は各種の用途向けに設定可能な 16 個のスロットを備えています ATECC608A-TFLXTLSにおけるこれらのスロットの設定と推奨ユースケースを下表に示します

Slot ユースケース 概要 プライマリ コンフィグレーション

0 プライマリ秘密鍵 プライマリ認証鍵 PermanentExt SignECDH

1 内部署名秘密鍵 内部鍵とデバイスのステートを証明するためだけ

に使える秘密鍵任意メッセージの署名には使え

ない

恒久的Int Sign

2 セカンダリ秘密鍵 1 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

Datasheet DS40002138A_JP - p 15 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot ユースケース 概要 プライマリ コンフィグレーション

3 セカンダリ秘密鍵 2 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

4 セカンダリ秘密鍵 3 その他の用途向けのセカンダリ秘密鍵 変更可能Ext SignECDHLockable

5 秘密鍵 秘密鍵のストレージ No ReadEncrypted write (6)LockableAES key

6 IO 保護鍵 特定コマンドの I2C バス通信(IO)を保護するため

に使う鍵 使用前に設定する必要がある No readClear writeLockable

7 セキュアブート ダイジェスト

セキュアブート ダイジェストのストレージこ

れは内部機能であり読み書きはできない No readNo write

8 一般データ 一般的な公開データのストレージ(416 バイト) Clear read Always write Lockable

9 AES 鍵 ECDH および KDF 出力向けの中間鍵ストレー

ジ No readAlways writeAES key

10 デバイス圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでの証

明書プライマリ秘密鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

11 署名者公開鍵 デバイス証明書に署名する CA (署名者)向けの

公開鍵 Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

12 署名者圧縮証明書 CryptoAuthenticationtrade圧縮フォーマットでのデ

バイス証明書の CA (署名者)証明書のための証

明書

Clear readNo write または書き

込み可能(アクセスポリシーの設

定に基づく)

13 ペアレント公開鍵 または 一般データ

「有効な公開鍵」を有効無効にするためのペ

アレント公開鍵このスロットは公開鍵として使

える他一般データ(72 バイト)の保存用に使う

事も可能

Clear read Always write Lockable

14 有効な公開鍵 「有効な公開鍵」はペアレント公開鍵による

認証を受けない限りVerify コマンドで使う

事も変更する事もできません

Clear read無効化後に書き込

み可能スロット 13 内の鍵を

使って有効化

15 セキュアブート公開鍵 セキュアブート公開鍵 Clear read Always write Lockable

224 ATECC608A-TFLXTLS スロット アクセスポリシーの詳細

ATECC608A-TFLXTLS のスロット アクセスポリシーはATECC608A-TNGTLS よりも柔軟に設定できます以下の

2 つの領域で柔軟な設定が可能です 1 スロットを恒久的にロックするかロック可能(Lockable)なままにするか 2 セキュアブートを鍵と持続性ラッチに結び付けるかどうか

スロットロック オプション スロットロック オプションは各スロットで以下のどちらかに設定できます

Slot Lockable このスロットロック オプションに設定されたスロットは初期製造後の任意時点でエンドユーザに

よるロックが可能ですこのオプションにより本デバイスが Microchip 社から出荷された後の製造

工程中に鍵を設定できますまたはエンドユーザによる鍵の設定が可能となりますこのオプショ

ンが設定されたスロットはLock コマンドを使ってロックできますスロットが 1 度ロックされる

とその中のデータは 2 度と変更できなくなります

Datasheet DS40002138A_JP - p 16 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

Permanent Lock

デバイスが Microchip 社の工場から出荷された後は恒久的にロックされたスロットを変更する事

は決してできませんこれらのデバイスのプロビジョニングに先立ち正しいデータと鍵を

Microchip 社に提供する必要があります

セキュアブート オプション セキュアブート アクセスポリシーはセキュアブートが成功する前のコマンドの実行を制限するためのオプションを

提供しますコマンドアクセスを一切制限しない事も可能ですスロット 0 内の秘密鍵はほとんどのコマンドでの

使用に対してこの鍵が認証される前にセキュアブートを要求するよう設定できますこの機能を使うには表 2-3 内

の SecureBoot (バイト[7071])と KeyConfig (バイト[96127])の値を変更する必要がありますこれらの設定変更は

セキュアブートが成功した時に持続性ラッチを設定しますスロット 0 のアクセスポリシーを変更すると鍵の使用

は設定される持続性ラッチに結び付けられます

持続性ラッチの動作 持続性ラッチはアイドルおよびスリープモード中も状態を維持しますこのため電源投入後にセキュアブート動

作を 1 回実行するだけで済みますデバイスの電源電圧が最低許容レベルを下回ると持続性ラッチはリセットされ

新たにセキュアブートを実行する必要があります

プロトタイプ デバイス プロトタイプ デバイスの特定の既定値設定は変更できません既定値設定により全てのスロットのオプションはロ

ック可能(Lockable) に設定されていますこのためアプリケーションによって鍵を再設定する事でソフトウェア

の開発時に最大限の自由度が得られます最終的な設定はこの方法で設定する必要はありませんプロトタイプ デバイスではセキュアブート オプションを利用できませんこのオプションは量産デバイス向けにのみ選択可能で

すプロトタイプ デバイスでは I2C インターフェイスのみが利用可能です

スロット設定の詳細 以下では各スロット鍵とスロット設定に関する情報および各スロットを使って実行可能なコマンドとコマンドモー

ドについて詳細に説明します表 2-4 にATECC608A-TFLXTLS で利用可能な全ての鍵およびスロット設定値をスロ

ットごとに示しますこれらのオプションはI2C および SWI オプションの両方で利用できます

表 2-4 スロット 0 の設定情報

Slot 設定値 有効機能

0 オプション 1 持続性ラッチがスロットに接続されない場合

Datasheet DS40002138A_JP - p 17 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0053 プライマリ秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0085 bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

オプション 2 スロットが持続性ラッチに接続される場合

鍵 0x1053 bull オプション 1 と同じ bull 持続性ラッチ ディセーブル オプションは有効

スロット 0x0085 bull オプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages (セキュアブートに成功後) bull ECDH - Create a Shared Secret (セキュアブートに成功後)

表 2-5 スロット 1 の設定情報

Slot 設定値 有効機能

1 鍵 0x0053 内部署名秘密鍵

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull ランダムノンスが必要です

スロット 0x0082 bull このスロットは秘密です bull GenDig または GenKey によって生成された内部メッセージに署名できま

す bull ECDH は無効です

有効なコマンド bull GenKey - Public Key Generation bull Sign - Internal Messages(GenDig または GenKey によって生成)

表 2-6 スロット 2~4 の設定情報

Slot 設定値 有効機能

234 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 18 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0073 セカンダリ秘密鍵 1~3

bull P256 NIST ECC 秘密鍵を格納します(KeyType = 0x4)(1)

bull 対応する公開鍵はいつでも生成できます bull この鍵を使うにはランダムノンスが常に必要です bull 各スロットは個別にロックできます

スロット 0x2085 bull このスロットではロックする前に GenKey を使って新しい ECC 秘密鍵を

生成できます bull このスロットは秘密です bull 外部メッセージに署名できます bull ECDH コマンドで使えます

有効なコマンド bull GenKey - Private Key Regeneration bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret bull Lock - SlotLock Mode

オプション 2 Permanent Key

鍵 0x0053 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x0085 bull GenKey が使えない事を除きオプション 1 と同じ

有効なコマンド bull GenKey - Public Key Generation bull Sign - External Messages bull ECDH - Create a Shared Secret

表 2-7 スロット 5 の設定情報

Slot 設定値 有効機能

5 オプション 1 Slot Lockable

Datasheet DS40002138A_JP - p 19 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0038 秘密鍵 bull このスロットは最大で 2 個の AES 128 ビット(16 バイト)対称鍵を格納できま

す(KeyType = 0x6)(1)

スロット 0x468F bull 新しい対称鍵は暗号化書き込みによってのみ書き込み可能 bull 書き込みを暗号化するためにスロット 6 内の鍵を使用 bull スロットの内容は秘密 bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Write - Data Zone - Encrypted Write bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド bull Lock - SlotLock mode

オプション 2 Permanent Key

鍵 0x0018 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x868F bull 暗号化書き込みを実行できない事を除きオプション 1 と同じ

有効なコマンド bull AES - Encrypt Decrypt bull MAC コマンド bull CheckMac コマンド

表 2-8 スロット 6 の設定情報

Slot 設定値 有効機能

6 オプション 1 Slot Lockable

鍵 0x007C IO 保護鍵

bull SHA256 対称鍵またはその他のデータを格納できます (KeyType = 0x7)(1) IO 保護鍵を使わない場合このスロットは他のデータ用に使えます

bull この鍵を使うにはランダムノンスが必要です bull このスロットは個別にロックできます

スロット 0x0F8F bull 平文でデータを書き込めます bull このスロットの内容は秘密であり読み出しはできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write (スロット 6 に対して) bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x005C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F8F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Write - Encrypted (この鍵が暗号鍵である場合) bull MAC コマンド

Datasheet DS40002138A_JP - p 20 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

一般的にスロット 6 に保存された IO 保護鍵は Slot Lockable オプションのままにしておきますほとん

どの場合IO 保護鍵は各デバイスで一意ですユースケースによっては全てのデバイスで同じ IO 保

護鍵を使いますその場合Permanent Lock オプションを選択できます

表 2-9 スロット 7 の設定情報

Slot 設定値 有効機能

7 鍵 0x001C セキュアブート ダイジェスト bull 他のデータを保存するために定義されたスロット(KeyType = 0x7)(1)

スロット 0x8F9F bull このスロットは直接読み書きできません bull このスロットは秘密でありMAC コマンドで使う事はできません bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull SecureBoot - FullCopy bull SecureBoot - FullStore(Digest)

表 2-10 スロット 8 の設定情報

Slot 設定値 有効機能

8 オプション 1 Slot Lockable

鍵 0x003C 一般データ bull このスロットは一般データ向けに割り当てられています (KeyType =

0x7)(1)

スロット 0x0F0F bull このスロットに対し平文の読み書きが可能です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド bull Lock - SlotLock

オプション 2 Permanent Lock

鍵 0x001C bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

注意

Datasheet DS40002138A_JP - p 21 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

表 2-11 スロット 9 の設定情報

Slot 設定値 有効機能

9 鍵 0x001A AES 鍵 bull このスロットは最大で 4 個の AES 128 ビット対称鍵を格納できます

(KeyType = 0x6)(1)

スロット 0x0F8F bull このスロットに対して平文の書き込みが可能です bull このスロットは秘密です bull このスロットは CheckMac Copy コマンド向けに使えません

有効なコマンド bull Clear Text Write bull AES - Encrypt Decrypt (ソース鍵) bull MAC コマンド

表 2-12 スロット 10 の設定情報

Slot 設定値 有効機能

10 オプション 1 Permanent Lock

鍵 0x001C デバイス圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-13 スロット 11 の設定情報

Slot 設定値 有効機能

11 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 22 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x0010 署名者公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull ECC 鍵は公開鍵です スロット 0x8F0F bull データを上書きする事はできません

bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x0030 bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull Verify コマンド bull MAC コマンド bull GenKey - Public Digest

表 2-14 スロット 12 の設定情報

Slot 設定値 有効機能

12 オプション 1 Permanent Lock

Datasheet DS40002138A_JP - p 23 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

続き Slot 設定値 有効機能

鍵 0x001C 署名者圧縮証明書 bull このスロットはその他のデータの保存用として定義されています

(KeyType = 0x7)(1)

スロット 0x8F0F bull データを上書きする事はできません bull 平文でデータを読み出せます

有効なコマンド bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

オプション 2 Slot Lockable Note これはプロトタイプ デバイス向けの設定です

鍵 0x003C bull オプション 1 の全ての機能 bull このスロットはロック可能です

スロット 0x0F0F bull スロットが書き込み可能である事を除きオプション 1 と同じ

有効なコマンド bull Clear Text Write bull Read - Clear Text bull GenDig - Data Source bull MAC コマンド

表 2-15 スロット 13 の設定情報

Slot 設定値 有効機能

13 オプション 1 Slot Lockable

鍵 0x0030 ペアレント公開鍵または一般データ

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です

スロット 0x0F0F bull スロットには平文で書き込み可能(ロックされていない場合) bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull Verify コマンド bull MAC コマンド bull GenDig - Data Source

Datasheet DS40002138A_JP - p 24 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

重要  スロット 13 をペアレント公開鍵として設定する場合オプション 2 Permanent Lock に設定して

更新不可能にする事が必要です一般的データに対してはどちらのオプションでも使えます

表 2-16 スロット 14 の設定情報

Slot 設定値 有効機能

14 鍵 0x0012 有効な公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull 公開鍵は有効化済み(validated)であれば Verify コマンドによって使う事が

できます スロット 0x1F0D bull 書き込みモードは PubInvalid に設定

bull 鍵が最初に無効化(invalidated)されればスロットへ書き込み可能 bull スロットは常に平文で読み出し可能

有効なコマンド bull Write - Clear Text (スロットは最初に無効である事が必要) bull Read - Clear Text bull Verify - ValidateInvalidate bull Verify - Stored

表 2-17 スロット 15 の設定情報

Slot 設定値 有効機能

15 オプション 1 Slot Lockable

鍵 0x0030 セキュアブート公開鍵

bull このスロットは ECC 鍵向けに定義されています(KeyType - 0x4)(1)

bull このスロットはロック可能です スロット 0x0F0F bull ロックされていなければいつでも書き込み可能

bull スロットは常に読み出し可能

有効なコマンド bull Clear Text Write bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

オプション 2 Permanent Lock

鍵 0x0010 bull スロットが恒久的にロックされる事を除きオプション 1 と同じ

スロット 0x8F0F bull スロットが書き込めない事を除きオプション 1 と同じ

有効なコマンド bull Read - Clear Text bull Lock - SlotLock bull MAC コマンド bull GenDig - Data Source

Note  1 により各スロットに対して指定されます

Datasheet DS40002138A_JP - p 25 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS EEPROM メモリおよびデータゾーン アクセスポリシー

23 ATECC608A-TFLXTLS の EEPROM OTP (One Time Programmable)ゾーン

OTP ゾーンは EEPROM アレイ内の 64 バイト(512 ビット)領域であり読み出し専用ストレージとして使えますこ

のゾーンは2 個のブロック(各 32 バイト)として構成されますATECC608A-TFLXTLS ではOTP ゾーンはロック

済みで出荷され以下の情報を格納します

I2C デバイス バージョン

77 64 4E 78 41 6A 61 65 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

SWI デバイス バージョン

OTP ゾーンに書き込まれたデータバイト値は4 バイトまたは 32 バイト読み出しを使っていつでも読み出せますが

変更はできません

Datasheet DS40002138A_JP - p 26 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

3 スタティック RAM (SRAM)メモリ

本デバイスは SRAM アレイも内蔵しそこに入力コマンドまたは出力結果ノンス中間計算値使い捨て鍵SHAコンテクスト等を保存できますデバイスがスリープモードに移行するか電源が遮断された時このメモリの全ての

内容は無効となります

31 TempKey TempKey は SRAM アレイ内のプライマリ ストレージ レジスタであり各種の中間値を保存するために使えますこ

のレジスタの内容をデバイスから読み出す事はできません(デバイス自体は内部でこの内容を読み出して使用できま

す)

TempKey は 64 バイト長ですKDF および Nonce コマンドを使うとこのレジスタの上位 32 バイトと下位 32 バイ

トの両方に書き込む事ができますその他のコマンドは TempKey の最初の(下位の)32 バイトしか変更できません

最初の 32 バイトまたは 64 バイト全体を有効にできます本デバイスでは下位 32 バイトが無効である場合に上位

32 バイトを有効にする事はできません

TempKey レジスタのデータ部分と併せてデータのソースとその有効性に関する情報を示す一連のフラグが提供され

ますInfo コマンドを使うとこのレジスタに関連する一部のステータスフラグビットの値が下表に通りに返さ

れます

表 3-1 TempKey フラグ

名称 長さ 概要

KeyID 4 ビット GenDig または GenKey によって TempKey が生成された場合これらのビットはその計算に使われた

鍵を示しますこの 4 ビットはData ゾーンのスロットの 1 つを表します

SourceFlag 1 ビット TempKey における乱数化のソース 0 = 内部生成した乱数(Rand)

1 = 入力(固定)データのみ(内部で乱数を生成しない) (Input)

Generator 4 ビット 0 = TempKey は GenDig によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenDig により生成された

(TempKeyKeyID は有意)

GenKeyData 1 ビット 0 = TempKeyKeyID は GenKey によって生成されなかった 1 = TempKey の内容は Data ゾーン内の 1 つのスロットを使って GenKey により生成された

(TempKeyKeyID は有意)

NoMacFlag 1 ビット 1 = TempKey の内容は SlotConfigNoMac = 1 に設定されたスロット内の値を使って生成された(MACコマンドはこの内容を使えない)

TempKey の計算に複数のスロットが使われる場合その中のいずれかのスロットに対して

SlotConfigNoMac がセットされているとこの NoMacFlag ビットはセットされます

Valid 1 ビット 0 = TempKey 内の情報は無効 1 = TempKey 内の情報は有効

本書では通常これらのフラグを TempKeySourceFlagTempKeyGenDigData 等と表記しますTempKeyValid が

「0」である場合他のフラグビットの状態に関係なくTempKey レジスタの内容を使おうとするとエラーが発生し

ます

TempKey レジスタと対応する全てのフラグは電源投入スリープブラウンアウトウォッチドッグ期間の終了改

ざん検出時にクリアされますデバイスがアイドルモードに移行しても TempKey の内容とフラグの状態は保持され

ます

一般的にコマンド実行中に TempKey の内容が何らかの目的で使われる(読み出される)とTempKeyValid を含む全

てのフラグは「0」にクリアされますTempKey を使うコマンドがエラーに遭遇した場合TempKey がクリアされ

るかどうかは状況によって異なります特定のコマンドまたはコマンド モードコンフィグレーションが TempKey を

使わない場合TempKey はクリアされませんTempKey は KDF または AES コマンドによってクリアされません

Datasheet DS40002138A_JP - p 27 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS スタティック RAM (SRAM)メモリ

実行結果を TempKey に保存するコマンドを実行するとValid フラグと実行動作に対応するその他のフラグがセッ

トされます

32 メッセージ ダイジェスト バッファ メッセージ ダイジェスト バッファは 64 バイトのレジスタでありTempKey レジスタが異なる情報を保持する必要

がある場合に入力メッセージ ダイジェストを Verify および Sign コマンドに渡すために使いますSHA コマンドを

使うとダイジェストをこのレジスタに直接書き込む事ができるため外部ホストのプログラミングを簡素化できます

Verify コマンドの出力による MAC の検証が必要である場合その MAC の計算に使うノンスを渡すためにこのレ

ジスタが常に使われますメッセージ ダイジェスト バッファ内のノンスの位置は署名メッセージ ダイジェストが

TempKey またはメッセージ ダイジェスト バッファのどちらを介して入力されるかによって異なります

Nonce コマンドは32 または 64 バイトの固定入力データをメッセージ ダイジェスト バッファに書き込む事ができ

ます

メッセージ ダイジェスト バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検

出時にクリアされます一般的にメッセージ ダイジェスト バッファはNonce および SHA コマンドを除く大部分

のコマンドの実行後にクリアされますメッセージ ダイジェスト バッファは使用(読み出し)時に常にクリアされるた

め1 つのコマンドでリロードせずに使用する(読み出す)事しかできません

33 代替鍵バッファ 代替鍵バッファは 32 バイトのレジスタですTempKey レジスタで異なる情報を保持する必要がある場合KDF コマ

ンドを使ってこのレジスタに鍵を保存できますNonce コマンドを使うとこのレジスタに固定入力値を書き込む事が

できKDF コマンドを使うとこのレジスタに秘密値を書き込む事ができます

代替鍵バッファは電源投入スリープブラウンアウトウォッチドッグ期間の終了改ざん検出時にクリアされま

代替鍵バッファは1 つのルート鍵から 2 つの異なる SRAM ベース鍵を生成するために使いますそのための 1 つの

方法としてKDF コマンド(入力を AltKeyBuf に設定し出力を TempKey(Lo)に設定)を使います次に出力を

TempKey(Hi)に設定して KDF コマンドを再度実行しますこれにより2 つの異なる鍵を 1 つの場所(この場合は

TempKey)に保存できますTLS 13 に対しても同様の手順が必要です

34 SHA コンテクスト バッファ SHA コマンドは以下の 3 つの標準フェイズを使います

InitializeUpdateFinalize 多くの場合Update フェイズは複数回実行されますフェイズとフェイズの間の中間状態(SHA コンテクストとも呼

ぶ)を保存するために内部 SRAM メモリを使います

SHA 以外の ATECC608A-TFLXTLS コマンドはこの SHA コンテクスト バッファを読み出す事も書き込む事もでき

ません従ってそれらのコマンド実行が成功しようと失敗しようとSHA コンテクス バッファの内容は破壊され

ません本デバイス内の全ての SRAM メモリと同様にSHA コンテクスト バッファは電源投入スリープブラウ

ンアウトウォッチドッグ期間の終了改ざん検出時に 0 にクリアされます

Datasheet DS40002138A_JP - p 28 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

4 一般コマンド情報

ATECC608A-TFLXTLS における IO トランザクションコマンド構造エラーコードメモリアドレス指定鍵と署

名のフォーマットに関する一般情報を以下に記載します

41 IO トランザクション ATECC608A-TFLXTLS は I2C プロトコルを使ってホスト マイクロコントローラと通信しますセキュリティ コマン

ドが本デバイスへ送信されるとそのトランザクション内で本デバイスから以下の構造を持つレスポンスが返されま

表 4-1 IO トランザクションのフォーマット

バイト 名称 意味

0 Count そのグループ内でデバイスが送受信するバイトの数です(Count バイトパケットバイトチェックサム バイトを含む)従ってCount バイトの値は常に N+1 です(N = パケット内のバイトと 2 個のチェックサ

ム バイトを含むバイト数)

1 個の Count バイトを持つグループの場合パケットバイトの数が 50 であれば(+ 2x チェックサム バイ

ト)Count バイトの値は 53 に設定されますグループの最大サイズ (カウントの値)は 155 バイト最小

サイズは 4 バイトですこのレンジから外れた場合デバイスは IO エラーを返します

1~(N-2) Packet コマンドパラメータデータレスポンスのいずれかです 一般的なコマンドパケット情報について

は 42 「コマンドパケット」を参照してください各コマンドに固有のパラメータについては 5 「デ

バイスコマンド」を参照してください

N-1N Checksum カウントおよびパケットバイトの CRC-16 値です(CRC 多項式は 0x8005)CRC 計算の開始前にCRCレジスタは 0 に初期化されますカウントおよびパケットバイトの最終ビットが送信された後に内部

CRC レジスタ内の値はそのブロック内のチェックサム バイトの値と一致する必要があります最初に送

信される CRC バイト(グループ内の N-1 番目のバイト)は CRC 値の下位バイトでありグループ内の最

後のバイトは CRC 値の上位バイトです

ATECC608A-TFLXTLS は入力グループ内の Count 値がコマンド パラメータで指定されたサイズ要件を満たしてい

る事を要求しますCount 値がパケット内のコマンド オペコードまたはパラメータに対して矛盾している場合

ATECC608A-TFLXTLS はコマンドに応じて異なる方法で応答します応答にエラー通知が含まれる場合もあれば

一部の入力バイトが黙って無視される場合もあります

42 コマンドパケット コマンドパケットは表 4-2 の通りに構成されます

表 4-2 コマンドパケット

バイト 名称 意味

0 オペコード コマンドコードです 5 「デバイスコマンド」参照

1 Param1 第 1 パラメータ(必須)

2 ndash 3 Param2 第 2 パラメータ(必須)

0-155 Data 残りの入力データ(任意)

ATECC608A-TFLXTLS はグループ内の全てのバイトを受信した後にビジー状態に移行しコマンドの実行を開始し

ますデバイスがビジー中の場合ステータスも結果もデバイスから読み出す事はできませんビジー中の場合デ

バイスの IO インターフェイスは I2C 上の SDA 入力信号の全ての遷移を無視します

Datasheet DS40002138A_JP - p 29 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

43 ステータスエラーコード

本デバイスは専用のステータス レジスタを備えていませんステータスエラーコマンド結果は全て出力 FIFO に

格納されますデバイスからの全ての出力は入力グループと同じフォーマット(以下を含む)を持つ完全なグループ

としてシステムへ返されます

bull Count bull Packet bull 2 バイトの CRC

デバイスが入力コマンドグループの最初のバイトを受信した後はシステムから残りの全てのバイトがデバイスへ送

信されるまでシステムはデバイスから何も読み出せません

デバイスが復帰してコマンドを実行した後はデバイスの出力レジスタにエラーステータス結果バイトのいずれ

かが格納されシステムからその内容を読み出す事ができますグループの長さが 4 バイトである場合に返されるコ

ードの詳細を表 4-3 に示します一部のコマンドでは実行に成功した場合に 4 バイトより長いコードが返されます

デバイスから返されるパケットの説明は5 「デバイスコマンド」に記載しています

CRC エラーは常に他のどのタイプのエラーよりも前に返されますそれらはIO エラーが発生した事およびコマン

ドをデバイスへ再送信可能である事を示します複数のエラーが発生した場合CRC エラー以外のエラーの間に特別

な優先順位はありません

表 4-3 4 バイトグループ内のステータエラーコード

状態 エラー ステータス

概要

Successful Command Execution

0x00 コマンドは正常に実行された

Checkmac or Verify Miscompare

0x01 CheckMac または Verify コマンドは正しくデバイスへ送信されたが入力レスポ

ンスが期待した値に一致しなかった

Parse error 0x03 コマンドは正しく受信されたがATECC608A-TFLXTLS の状態(揮発性メモリおよ

びまたは EEPROM 内の設定)に関係なく長さコマンド オペコードパラメータ

のいずれかが無効であった

コマンドが再試行される前にコマンドビットの値を変更する必要があります

ECC Fault 0x05 ECC 処理中に計算エラーが発生したため結果は無効であった

コマンドを再実行すると成功する場合があります

Self Test error 0x07 セルフテスト エラーが発生したためデバイスはフォルトモード中(フォルトがク

リアされるまで待機中)

Health Test error 0x08 乱数生成器のヘルステスト エラーが発生したためエラーがクリアされるまでデバ

イスは乱数を必要とする後続のコマンドを実行できない

Execution error 0x0F コマンドは正しく受信されたがデバイスの現在の状態では実行できなかった

コマンドが再試行される前にデバイスの状態またはコマンドビットの値を変更す

る必要があります

After Wake Prior to First command

0x11 ATECC608A-TFLXTLS は正しい Wake トークンを受信した

Watchdog About to Expire 0xEE ウォッチドッグ タイマがタイムアウトする前に指定されたコマンドを完了できな

システムはアイドルまたはスリープモードへの移行によってウォッチドッグ タイ

マをリセットする必要があります

CRC or Other Communications error

0xFF コマンドは ATECC608A-TFLXTLS によって正しく受信されなかったためシステ

ム内の IO ドライバによってコマンドを再送信する必要があるコマンドの構文解

析または実行は試みられなかった

Datasheet DS40002138A_JP - p 30 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

44 アドレスの指定

以下ではATECC608A-TFLXTLS の各種メモリゾーンをアドレス指定するための詳細な方法を説明します

441 Configuration ゾーンのアドレス指定

Configuration ゾーンには4 バイトまたは 32 バイト単位でアクセスできます1 バイト単位でのアクセスはできませ

んConfiguration ゾーンのアドレスは 2 バイト(16 ビット)ですアドレスワードの最下位 5 ビットのみが

Configuration ゾーンのアドレス指定用に使われますATECC608A-TFLXTLS の場合これらのアドレスは読み出し

コマンドでのみ使えます

表 4-4 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[75] Addr[43] Addr[20]

表 4-5 Configuration ゾーンのアドレス

ブロック No (Addr[43])

オフセット値(Addr[20])

000 001 010 011 100 101 110 111

00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] [7275] [7679] [8083] [8487] [8891] [9295]

11 [9699] [100103] [104107] [108111] [112115] [116119] [120123] [124127]

442 OTP ゾーンのアドレス指定

OTP (One Time Programmable)ゾーンには4 バイトまたは 32 バイト単位でアクセスできますこのゾーンは全部

で 64 バイトです1 バイト単位でのアクセスはできませんOTP ゾーンのアドレスは 2 バイト(16 ビット値)です

最下位 4 ビットのみがアドレス指定用に使われます

ATECC608A-TFLXTLS の場合これらのアドレスは読み出しコマンドでのみ使えます

表 4-6 アドレスのフォーマット

バイト 1 Addr[158] バイト 0 Addr[70]

未使用 未使用 ブロック オフセット

Addr[158] Addr[74] Addr[3] Addr[20]

表 4-7 OTP ゾーンのバイトアドレス

ブロック No (Addr[3])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

443 Data ゾーンのアドレス指定

Data ゾーンへの読み書きアクセスはConfiguration および OTP ゾーンに比べると非常に複雑です全部で 16 個の

スロットが存在しサイズはスロットごとに異なります各スロットのアクセスポリシー(そのスロットに対する読み

出し書き込みアクセスを許可するかどうか) はスロットごとに制御します

Datasheet DS40002138A_JP - p 31 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

ATECC608A-TFLXTLS の場合

bull データスロット 8~91315 は平文として書き込み可能です bull データスロット 5~6 は暗号文で書き込み可能です bull データスロット 810~15 は平文として読み出し可能です bull 未指定のスロットは読み出しも書き込みもできません

表 4-8 データスロットのアドレス フォーマット

Data ゾーン バイト 1 Addr[158] バイト 0 Addr[70]

未使用 ブロック 未使用 スロット オフセット

データスロット[70] Addr[159] Addr[8] Addr[7] Addr[63] Addr[20]

データスロット[8] Addr[1512] Addr[118] Addr[7] Addr[63] Addr[20]

データスロット[159] Addr[1510] Addr[98] Addr[7] Addr[63] Addr[20]

データスロット[70] これらのスロットの 1 つに完全にアクセスするには2 回の 32 バイトアクセスまたは 9 回の 4 バイトアクセスが必要

です

表 4-9 Data ゾーンアドレス - スロット 0~7

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x0~ 0x7 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] 無効 無効 無効 無効 無効 無効 無効

データスロット[8] このスロットに完全にアクセスするには13 回の 32 バイトアクセスまたは 104 回の 4 バイトアクセス(またはそれら

のアクセスの組み合わせ)が必要です

表 4-10 Data ゾーンアドレス - スロット 8

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x8 0x0 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

0x1 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

0xC [384387] [388391] [392395] [396399] [400403] [404407] [408411] [412415]

データスロット[159] これらのスロットに完全にアクセスするには3 回の 32 バイトアクセスまたは 80 回の 4 バイトアクセス(またはそれ

らのアクセスの組み合わせ)が必要です

Datasheet DS40002138A_JP - p 32 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-11 Data ゾーンアドレス - スロット 9~15

スロット No (Addr[63])

ブロック No (Addr[8])

ブロック オフセット値(Addr[20])

000 001 010 011 100 101 110 111

0x9~ 0xF 00 [03] [47] [811] [1215] [1619] [2023] [2427] [2831]

01 [3235] [3639] [4043] [4447] [4851] [5255] [5659] [6063]

10 [6467] [6871] 無効 無効 無効 無効 無効 無効 45 鍵署名証明書のフォーマット

以下ではECC 鍵署名圧縮した証明書のフォーマットについて詳細に説明します

451 ECC 鍵のフォーマット 公開鍵と秘密鍵のフォーマットはコマンドと鍵の長さによって決まります一般的に最上位バイト(MSB)はバス

上に最初に現れメモリ内の最低アドレスに格納されます以下ではページの左側に記載するバイトが MSB です

一貫性を保つためMicrochip 社は全てのパディング バイトを 0 に設定する事を推奨します

bull ECC 秘密鍵はPrivWrite コマンドに対する入力パラメータとしてのみユーザに提供されますこのパラメー

タの長さは常に 36 バイトであり最初の 4 バイト(32 ビット)は全てパディング ビットです ECC 公開鍵は各種コマンドに対する入力または出力パラメータとして提供されEEPROM に保存する事もでき

ますこれらの鍵は X 値と Y 値で構成されX 値が最初にバスまたはメモリ上に現れますこれらのフォーマッ

トは状況に応じて異なります bull 公開鍵が GenKey コマンドの出力または Verify コマンドへの入力である場合

32 バイトの X の後に 32 バイトの Y (36 バイト) パディングバイトなし bull 書き込みコマンド

公開鍵は書き込みコマンドを使っていつでも EEPROM に直接書き込む事ができます 72 バイトが次の通りにフォーマットされます 4x パディング バイトX (32 バイト)4x パディング バイトY (32 バイト)

bull GenKey コマンド SHA メッセージ公開鍵はGenKey コマンドによりハッシュ化して TempKey に格納できますSHA メッセー

ジは鍵のサイズとは無関係な各種のバイトを格納しますこれらのバイトの後に 25x パディング バイトX (32 バイト)Y (32 バイト)が続きます

bull Verify コマンド SHA メッセージ 保存された公開鍵の検証に Verify コマンドを使う場合メモリに保存されている鍵の SHA-256 ダイジェストに対して生成された署名の入力が必要ですそのような内部の SHA 計算は常に 72 バイト フォーマットに対して実行されます(公開鍵は EEPROM 内で 4x パディングバイトX (32 バイト)4x パディング バイトY (32 バイト)として保存されるため)

公開鍵が Verify コマンドによって検証されるよう設定されている場合デバイスは検証ステートを保存するために

メモリ内の最初のバイトの最上位 4 ビットを内部で使用します検証ステートは書き込みコマンドによって常に無

効ステート(0xA)に設定されその後に Verify コマンドによって有効ステート(0x5)に設定する事ができます

IO プロトコルの最下層について以下で説明しますIO プロトコルより上層ではコマンドを実装するために完全

に同じバイトがデバイスに対して双方向に転送されます以下ではエラーコードについて説明します

4511 公開鍵のフォーマット

ATECC608A-TFLXTLS は2 通りのフォーマットで P-256 楕円曲線公開鍵を使います以下の例により2 つのフォ

ーマットを詳細に示します

これらの例では下記のサンプル公開鍵(X および Y を固定幅のビッグエンディアン符号なし整数として表現)を使いま

X b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 Y a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Datasheet DS40002138A_JP - p 33 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

コマンドに関わる公開鍵のフォーマット 公開鍵(GenKey)を返すコマンドまたは公開鍵をパラメータとして受け付けるコマンド(VerifyECDH) はX および

Y ビッグエンディアン符号なし整数を連結した 64 バイトとして公開鍵をフォーマットします

例 b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

保存された公開鍵のフォーマット Verify または SecureBoot コマンドで使うために公開鍵をスロットに保存する場合整数 X および Y をそれぞれ

36 バイトとなるようパディングしてからそれらを連結した 72 バイトとして公開鍵をフォーマットします

例 00000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

保存された有効な公開鍵のフォーマット 有効または無効な公開鍵のフォーマットはLSB の最上位 4 ビットを除けば保存された公開鍵のフォーマットと同

じです鍵が有効である場合の最下位ニブルは 0x5 であり無効である場合の最下位ニブルは 0xA ですこれらの値

は有効または無効モードで Verify コマンドを実行する事によって変更できます書き込み後の鍵の初期状態は無

効です

有効な公開鍵の例 50000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

無効な公開鍵の例 A0000000b2be345ad7899383a9aab4fb968b1c7835cb2cd42c7e97c26f85df8e201f3be8 00000000a82983f0a11d6ff31d66ce9932466f0f2cca21ef96bec9ce235b3d87b0f8fa9e

Note  スロット 8~15 のみが公開鍵を保存可能なサイズを有します

452 署名のフォーマット

Sign コマンドによって生成および出力される ECDSA 署名および Verify または SecureBoot コマンドへ入力され

る ECDSA 署名は常に 64 バイトです署名は R 部分と S 部分に分割されますどちらも 32 バイトの長さを持ち常

に R が S の前にバス上に現れます署名の各部分は MSB 先頭でバス上に現れます(すなわち署名の MSB は最低メ

モリ位置に格納されます)

RS 署名の例 署名を返すコマンド(Sign)または署名をパラメータとして受け付けるコマンド(Verify SecureBoot)は署名を

R および S ビッグエンディアン符号なし整数を連結した 64 バイトとしてフォーマットします

例 R 7337887F8C39DF79FD8BF88DDFBFB9DB15D7B1AD68196AE3FB0CE5BFA2842DF3 S 72868A43A42831E950E1DA9F73B29F5C0ED8A96B2889E3CBBE8E61EA6C67F673

453 証明書の保存

完全な X509 証明書をデバイス内に保存すると複数の EEPROM メモリスロットを急速に使い果たしてしまう可能

性があります証明書の保存用にこれらのスロットを使った方が良い場合もあればそうではない場合もあります

これらのメモリ制限のためMicrochip 社は最小限の情報から完全な X509 証明書を再構成可能なエンコードを定義

しています

実際の X509 証明書の再構成はホストシステムによって行われますがその方法はエンコード済み証明書内に保存さ

れているデータによって決まりますシステム内の全デバイスに共通するデータはホストシステム内に保存できま

すその他のデータはデバイス内に保存されたデータから計算または抽出できます表 4-12 にX509 証明書内に

保存されるデータのタイプと1 つの 72 バイトスロットに証明書を収める事ができるエンコード方法を示します

Datasheet DS40002138A_JP - p 34 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 一般コマンド情報

表 4-12 証明書の保存

X509 証明書 エンコード済み証明書

X509 エレメント サイズ (バイト)

エンコード済み証明書のエレメント デバイス証明書 (ビット)

署名者証明書 (ビット)

シリアル番号 8-20 シリアル番号のソース 4 4

発行日付 13 圧縮フォーマット 19 19

有効期限 13 有効期限の年数 5 5

署名者 ID(2) 4 証明書の署名に使う特定署名者の ID (デバイ

ス証明書の場合)または署名者自身の ID (署名者証明書の場合)

16 16

AuthorityKeyIdentifier 20 Authority 公開鍵の SHA1 HASH 0 0

SubjectKeyIdentifier 20 Subject 公開鍵の SHA1 HASH 0 0

署名の R 32 デバイス内に保存 256 256

署名の S 32 デバイス内に保存 256 256

公開鍵の X(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

公開鍵の Y(1) 32 秘密鍵から計算または デバイス内に保存(1)

0 256

na 0 証明書フォーマット 4 4

na 0 テンプレート ID 4 4

na 0 チェーン ID 4 4

na 0 予約済みユーザ定義 8 8

合計 (206~218 バイト)

576 ビット (72 バイト)

1088 ビット (136 バイト)

Note   1 デバイス証明書の場合デバイス公開鍵は秘密鍵から再生できます署名者証明書の場合通常公開鍵は別

のスロットに保存されます 2 デバイス証明書の場合証明書の署名に使う署名者の ID が保存されます署名者証明書の場合署名者の実際

の ID はデバイスがそれを識別できるように保存されます

スロット 8 は全部で 416 バイトを格納します証明書に保存されているシリアル番号のサイズによっては2 つの完

全な証明書を保存できない場合があります多くの場合信頼の輪(Chain of Trust)が構築済みのデバイスではデバイ

ス証明書署名者証明書署名者公開鍵をデバイス内に保存する必要があります

詳細はアプリケーション ノート『Compressed Certificate Definition』を参照してください

Datasheet DS40002138A_JP - p 35 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5 デバイスコマンド

以下ではATECC608A-TFLXTLS で使用可能な全てのコマンドと各コマンドのコマンドモードについて詳細に説

明しますこれらのコマンドは以下の 3 つのカテゴリに分類されます 1 一般デバイスコマンド

これらのコマンドはさらに 2 つのカテゴリに分類されます bull 一般デバイス アクセスコマンド デバイスとのデータ送受信用に使います通常これらのコマンドは暗

号機能を実行しません bull 一般暗号コマンド デバイスまたはシステムはこれらのコマンドを使えます通常これらのコマンドは

特定データスロットを対象として実行されません 2 非対称暗号コマンド

これらのコマンドはECC 公開鍵または秘密鍵を使う非対称暗号演算(鍵の生成メッセージの署名メッセ

ージの検証)を実行します これらのコマンドはECC Data ゾーンスロットに対してのみ使用できます

3 対称暗号コマンド これらのコマンドは対称暗号関数(ダイジェストまたは MAC の生成鍵導出AES 暗号化復号等)を実行しま

全てのコマンドの入力パラメータ 特に明記しない場合複数バイトから成る入力パラメータは入力パラメータ表にビッグエンディアン(MSB 先頭)として記載されますATECC608A-TFLXTLS はデータがリトルエンディアン(LSB 先頭)で送信される事を期待する事

に注意が必要です 51 一般デバイスコマンド

表 5-1 に一般デバイスコマンドの一覧を示します 表 5-1 一般デバイスコマンド

コマンド名 オペコード 概要

Counter 0x24 モノトニック カウンタのインクリメントと読み出しを行います

Info 0x30 デバイスからリビジョンおよびステータス情報を読み出すために使います

Lock 0x17 デバイス内のロック可能スロットを個々にロックするために使います

Nonce 0x16 ノンス(1 度だけ使われる数)を生成するかデバイスに渡すために使います

Random 0x1B システムによって使われる 32 バイト乱数を生成するために使います

Read 0x02 デバイスの各種ゾーンを読み出すために使います

SelfTest 0x77 内部の各種暗号計算エレメントをテストするために使います

SHA 0x47 システムによって汎用的に使われる SHA-256 または HMAC ダイジェストを計算

します

UpdateExtra 0x20 Configuration ゾーンがロックされた後にConfiguration ゾーン内のバイト 84 ま

たは 85 を更新するために使います

Write 0x12 デバイスに 4 また 32 バイトを書き込むために使います(認証および暗号化ありなし)

511 Counter コマンド

Counter コマンドはデバイスの Configuration ゾーン内に配置された 2 つのモノトニック カウンタの 1 つから 2 進

数カウント値を読み出しますカウンタのカウント可能最大値は 2097151 ですこの値を超えてカウントしようと

するとエラーコードが生成されますこれらのカウンタはカウント動作中に給電が中断してもカウント値が失わ

れないように設計されています電源喪失条件によってはカウント値が 2 つ以上インクリメントする場合がありま

Datasheet DS40002138A_JP - p 36 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

ATECC608A-TFLXTLS の場合カウンタはどの鍵にも割り当てられていませんがシステムによってカウンタを使

う事ができます各カウント値は既定値に設定され最大値までカウント可能です

表 5-2 入力パラメータ Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

概要

0x24 0x00 0x00 00 Counter[0]の値を読み出す

0x00 01 Counter[1]の値を読み出す

0x01 0x00 00 Counter[0]の値をインクリメントする

0x00 01 Counter[1]の値をインクリメントする

表 5-3 出力レスポンス Counter

名称 サイズ 概要

Count 4 バイト コマンドの実行に成功した場合は 2 進数のカウント値

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

512 Info コマンド

Info コマンドはデバイスのステータスと状態を読み出すために使いますこの情報はエラーの特定と各種コマ

ンドの実行に役立ちます

5121 Info - Revision

Info コマンドの Revision モードはATECC608A-TFLXTLS のシリコン リビジョンを読み取りますこの情報はデ

バイスにハードコードされていますこの情報はConfiguration ゾーン内の RevNum バイトの内容と同じ場合もあ

れば異なる場合もあります

表 5-4 入力パラメータ I nfo - Revision

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x00 0x00 00 mdash シリコン リビジョンを返す

表 5-5 出力レスポンス Info - Revision

名称 レスポンス 概要

Response 00 00 60 vv リビジョン情報 0x60 は ATECC608A-TFLXTLS である事を示しvv は最新シリコン リビジョンを示します

5122 Info - KeyValid

KeyValid モードは保存されている ECC 秘密鍵または公開鍵が有効な ECC 鍵かどうかを判別するために役立ちます

公開鍵を出力できない場合このコマンドが返す情報は役に立ちません鍵タイプが ECC ではない場合もこのコ

マンドの出力は役に立ちません

ATECC608A-TFLXTLS の場合スロット 0~41113~15 に保存される鍵は ECC 鍵でありInfo コマンドの

KeyValid モードを使って確認できます

表 5-6 入力パラメータ Info - KeyValid

Opcode (1バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x01 0x00 0[Slot] mdash スロットが有効な ECC 秘密鍵または公開鍵を格納しているかど

うかを返します

Datasheet DS40002138A_JP - p 37 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-7 出力レスポンス Info - KeyValid

名称 サイズ (4 バイト)

概要

Response 0x00 00 00 00 ECC 鍵は無効

0x00 00 00 01 ECC 鍵は有効

5123 Info - Device State

Info コマンドのこのモードはデバイスの現在のステータスを返します各種ステータスフラグはデバイスの現在

の状態指定したコマンドが失敗した理由コマンドが実行可能かどうかを判別するために役立ちます

表 5-8 入力パラメータ Info - Device State

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x02 0x00 00 mdash デバイスの状態を返します

表 5-9 出力レスポンス Info - Device State

名称 レスポンス 概要

Response 0x00 00 Byte[1] Byte[0]

表 5-10 ステータスフラグ

バイト ビット 名称 概要

0 7 TempKeyNoMacFlag 0 NoMacFlag は無効 1 NoMacFlag は有効

6 TempKeyGenKeyData 0 GenKeyData は無効 1 GenKeyData は有効

5 TempKeyGenDigData 0 GenDigData は無効 1 GenDigData は有効

4 TempKeySourceFlag 0 TempKey は固定ソース 1 TempKey は乱数ソースから生成された

30 TempKeyKeyID TempKey の鍵スロット ID

1 7 TempKeyValid 0 TempKey は無効 1 TempKey は有効

63 AuthCompleteKeyID Authorization 鍵のスロット ID

2 AuthCompleteValid 0 Authorization は無効 1 Authrorization は有効

10 未使用 2rsquob00

5124 Info - GPIO Output Write

ATECC608A-TFLXTLS の SWI デバイス バージョンは出力バッファとして設定された 1 本の GPIO ピンを備えてい

ます電源投入時のこのピンの既定値出力は Low ですこの出力の値はInfo コマンドの GPIO Output Write モー

ドを使って変更できます

Note  このコマンドは SWI デバイスでのみ利用できI2C デバイスでは使えません

Datasheet DS40002138A_JP - p 38 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

コマンドの実行が正常に完了すると 4 バイトのレスポンスが返されその LSB は出力に書き込まれた値を示します

コマンドの実行に失敗すると1 つのエラーコード バイトが返されます

表 5-11 入力パラメータ Info - GPIO Output Write

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x03 0x00 02 mdash GPIO 出力に値「0」を書き込む

0x03 0x00 03 mdash GPIO 出力に値「1」を書き込む

表 5-12 出力レスポンス Info - GPIO Output Write

名称 レスポンス 概要

Response 0x00 00 00 00 GPIO に「0」が正常に書き込まれた場合の戻り値

0x00 00 00 01 GPIO に「1」が正常に書き込まれた場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

5125 Info - Persistent Latch Read

INFO コマンドの Persistent Latch Read モードを使うと持続性ラッチの状態を読み出せますこれは鍵認証が持

続性ラッチに接続されている場合にそのラッチの状態を確認するために役立ちます

ATECC608A-TFLXTLS の場合このコマンドはセキュアブート オプションが有効である場合にのみ有効ですこの

オプションが有効である場合セキュアブート動作が正常に完了するとコマンドは「1」を返しそうではない場合

に「0」を返しますこのステータスはECC プライマリ鍵(スロット 0)が認証済みかどうかも示します

表 5-13 入力パラメータ Info Persistent Latch Read

Opcode (1 バイト)

Mode (1 バイト)

Param (2 バイト)

Data (0 バイト)

概要

0x30 0x04 0x00 00 mdash 持続性ラッチの値を返します

表 5-14 出力レスポンス Info Persistent Latch Read

名称 応答 概要

Response 0x00 00 00 00 持続性ラッチの無効化または持続性ラッチへの値の書き込みが正常に完了した場合

の戻り値

0x00 00 00 01 持続性ラッチの有効化が正常に完了した場合の戻り値

0xXX 障害が発生した場合に返される 1 バイトのエラーコード

513 Lock コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンはロック済みでありData ゾーンのアクセスポリシーは設定済

みですしかし一部のスロットは他のコマンドを使って更新可能です必要に応じその中の一部のスロットは

Lock コマンドの SlotLock モードを使って恒久的にロックできますロックするとそのスロットは永久に変更でき

なくなります

5131 SlotLock

Lock コマンドの SlotLock モードは個々のスロットをロックするために使いますロックされていなかったスロッ

トの Lockable ビットをセットする事でそのスロットをその後の更新から保護できます この操作を元に戻す事は

できません スロットを 1 度ロックすると永久にロックを解除する事はできませんこの動作モードではSummary CRC およ

び Data フィールドは無視されます

ATECC608A-TFLXTLS の場合スロット 2~6810~121315 は個別に Lockable にするかどうか設定できま

すATECC608A-TFLXTLS のプロトタイプ デバイスの場合スロット 10~12 もロックできます

Datasheet DS40002138A_JP - p 39 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-15 入力パラメータ SlotLock

Opcode (1 バイト)

Mode (1 バイト)

Summary CRC (2 バイト)

Data (0 バイト)

概要

0x17 8rsquob00[bb_bb]10 0x00 00 mdash 個々のスロットのロック

表 5-16 出力レスポンス SlotLock

名称 サイズ 概要

Response 1 バイト コマンドがスロットのロックに成功した場合は 0x00 が返されコマンドの実行に失敗した

場合はエラーコードが返されます

514 Nonce コマンド

Nonce コマンドは乱数(内部または外部で生成可能)とシステムからの入力値を組み合わせる事により後続のコマ

ンド向けにノンス(Nonce Number used Once)を生成します生成されたノンスは内部で以下の 3 つのバッファの

いずれかに保存されます

TempKey バッファメッセージ ダイジェスト バッファ代替鍵バッファ

ノンスを生成する代わりに固定値をデバイスに渡す事もできます

5141 Nonce - Random

Random モードで Nonce コマンドを実行すると下表の通りに入力値に基づいて新しいノンスが生成されます

Param2 = 0x00 00 の場合新しい乱数が内部 RNG に基づいて生成されますParam2 = 0x80 00 の場合乱数の代

わりに TempKey に保存されている値を使って新しいノンスを生成します(乱数ジェネレータは動作しません)この場

合Nonce コマンドを実行する前に TempKey が有効である事が必要です完了時にTempKeySourceFlag は

「Rand」に設定されます

リプレイ攻撃を防ぐためデバイスへ送信する 20 バイトのデータは乱数ソースから生成する事を推奨します

表 5-17 入力パラメータ Nonce - Random

Opcode Mode Param2 Data 概要

0x16 0x00 または 0x01

0x00 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は RNG から生成される bull SHA256 ダイジェストは乱数を含む

0x00 または 0x01

0x80 00 20 バイト bull 32 バイトが TempKey に書き込まれる bull 出力は SHA256 ハッシュ値から生成される bull SHA256 ダイジェストは TempKey を含む

表 5-18 出力レスポンス Nonce - Random

名称 入力 Param2 サイズ 概要

Response 0x00 00 32 バイト 乱数

0x80 00 32 バイト 新しい TempKey 値

Note  1 成功時に TempKeySourceFlag は「0」に設定されます 2 成功時に TempKeyValid は「1」に設定されます

表 5-19 ノンスの SHA256 HASH 計算

バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

32 乱数ジェネレータからの RandOut 直前のコマンドからの TempKey 値

20 入力ストリームからの NumIn 入力ストリームからの NumIn

Datasheet DS40002138A_JP - p 40 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き バイト数 入力データ Param2 = 0x00 00 入力データ Param2 = 0x80 00

1 Opcode (常に 0x16) Opcode (常に 0x16)

1 Mode (0x00 または 0x01) Mode (0x00 または 0x01)

1 Param2 の LSB (常に 0x00) Param2 の LSB (常に 0x00)

5142 Nonce - Fixed

固定ノンスがデバイスに渡され内部バッファの 1 つに保存されます32 バイトまたは 64 バイトのノンスが使えま

すこのコマンドの実行後にTempKeySourceFlag は常に「1」(固定値入力)に設定されますこのモードの NonceコマンドはSHA256 計算も乱数生成も行いません

表 5-20 入力パラメータ Nonce - Fixed

Opcode Mode Param2 Data 概要

0x16 0x03 0x43 0x83

0x00 32 バイト bull 32 バイトが TempKey に書き込まれる bull 32 バイトがメッセージ ダイジェスト バッファに書き込ま

れる bull 32 バイトが代替鍵バッファに書き込まれる

0x23 0x63

0x00 64 バイト bull 64 バイトが TempKey に書き込まれる bull 64 バイトがメッセージ ダイジェスト バッファに書き込ま

れる

表 5-21 出力レスポンス Nonce - Fixed

名称 サイズ 概要

Response 1 バイト コマンドが正常に完了した場合は 0x00が返されその他の場合はエラーコードが返されます

Note  1 TempKeySource は「1」に設定されノンス値が入力された事が示されます 2 TempKeyValid は「1」に設定され値が他の用途に使える事が示されます

515 Random コマンド

Random コマンドはシステムによって使われる乱数を生成します乱数は内部の NIST 800-90 ABC 乱数生成器に

より生成されますこのコマンドは常にバスへ 32 バイト値を出力しますこの値をデータスロットまたは SRAM内に保存する事はできません

表 5-22 入力パラメータ Random

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (0 バイト)

概要

0x1B 0x00 0x00 00 mdash Randomコマンド

表 5-23 出力レスポンス Random

名称 サイズ 概要

RandOut 32 バイト RNG の出力

516 Read コマンド

Read コマンドを使うとATECC608A-TFLXTLS の全ての EEPROM ゾーンにアクセスできますData ゾーンへのア

クセスはスロットごとに設定されたアクセスポリシーにより制限されます暗号読み出しは特定のアクセスポリ

シーが設定された Data ゾーンスロットに対してのみ可能です

Datasheet DS40002138A_JP - p 41 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5161 Clear Text Read

ATECC608A-TFLXTLS の Configuration および OTP ゾーンからの平文読み出しはいつでも可能ですData ゾーン内

の特定のスロットはアクセスポリシーに基づいて平文として読み出せますこれらのゾーンの全てに対して 4 バイ

トまたは 32 バイト読み出しが可能です

ATECC608A-TFLXTLS の場合スロット 8 および 10~15 は平文として読み出し可能なデータを格納します

表 5-24 入力パラメータ C lear Text Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト) 概要

0x02 0x00 44 「アドレスの指定」参照 4 バイトの Configuration ゾーン読み出し

0x80 44 「アドレスの指定」参照 32 バイトの Configuration ゾーン読み出し

0x01 44 「アドレスの指定」参照 4 バイトの OTP ゾーン読み出し

0x81 44 「アドレスの指定」参照 32 バイトの OTP ゾーン読み出し

0x02 44 「アドレスの指定」参照 4 バイトの Data ゾーン読み出し

0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

表 5-25 出力レスポンス Clear Text Read

名称 サイズ 概要

Data Contents 4 バイト 読み出された 4 バイト[03]

32 バイト 読み出された 32 バイト[031]

5162 Encrypted Read

暗号化読み出しはアクセスポリシーが暗号化読み出し向けに設定された Data ゾーンスロットに対してのみ可能で

すConfiguration ゾーンと OTP ゾーン内のデータは暗号化できません全ての暗号化読み出しは 32 バイト長です

暗号化読み出しを実行する前に暗号化鍵を生成する必要がありますこの鍵は指定されたスロットに対して暗号

化読み出しが実行されるたびに一意にできます1 つのスロットの全ての内容を読み出すには複数回の読み出しが

必要である事に注意が必要です暗号化読み出しのたびに一意のセッション鍵を生成する必要があります

ATECC608A-TFLXTLS の場合暗号化読み出しが必要なスロットはありません

暗号化読み出しの手順 各暗号化読み出しの手順は以下の通りです

1 Nonce コマンドを実行しますRandom モード32 バイトで実行する事を推奨します値を TempKey へ出力

します 2 GenDig コマンドを実行します暗号化鍵のスロット番号とTempKey に保存した Nonce コマンドの出力を

GenDig の入力パラメータに含める必要があります Note これらの 2 つのコマンドの出力は暗号化鍵でありTempKey に保存されます

3 Read コマンドを発行します ndash Data ゾーンスロットの内容はデータと TempKey に保存された生成値の間で XOR を取る事により暗号

化されますTempKey 内のこの値は以前に生成されたセッション鍵です ndash コマンドの出力は暗号化されたデータです

表 5-26 入力パラメータ Encrypted Read

Opcode (1 バイト)

Mode (1 バイト)

Address (2 バイト)

概要

0x02 0x82 44 「アドレスの指定」参照 32 バイトの Data ゾーン読み出し

Datasheet DS40002138A_JP - p 42 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-27 出力レスポンス Encrypted Read

名称 サイズ 概要

Data Contents 32 バイト 暗号化データの 32 バイト[031]

ホストシステムも Nonce コマンドの出力と GenDig コマンドで使われる SHA256 計算に基づいて暗号化復号鍵を計

算する必要がありますこれによりホストシステムは送信されるデータを復号できます

517 SelfTest コマンド

SelfTest コマンドはATECC608A-TFLXTLS 内の 1 つまたは複数の暗号エンジンのテストを実行します入力モ

ードパラメータに応じて全てまたは一部のアルゴリズムがテストされます

ATECC608A-TFLXTLS の場合電源投入または復帰イベント後の自動的な SelfTest コマンド実行は無効にされて

いますしかしシステムは必要に応じてこのコマンドを実行できますこのテストの実行に関する要件はありませ

電源投入または復帰時に自動的に実行された場合でもこのコマンドによって実行された場合でもセルフテストに

失敗するとデバイスは Failure ステートに移行しデバイスの動作は制限されます保存された Failure ステートは

復帰時または電源再投入時にクリアされますセルフテストの失敗(エラーコード0x07)とヘルステストの失敗(エラー

コード0x08)は異なります

Failure ステート中は以下の動作が可能です

bull Configuration ゾーンの読み出し bull SelfTest コマンドの実行

1 度失敗したテストが再実行されて成功した場合Failure レジスタ内の対応するビットはクリアされます全て

のビットがクリアされるとATECC608A-TFLXTLS は通常のコマンド動作を再開します bull Mode パラメータ = 0 でこの SelfTest コマンドを呼び出す事によりFailure レジスタの現在の状態を読み出

せます bull その他のコマンドまたはその他のゾーンの読み出しは全てエラーコード 0x07 を返します障害の原因を特定

するにはSelfTest(0)を使います

表 5-28 入力パラメータ SelfTest

Opcode (1 バイト)

Mode (1 バイト)1 Param2 (2 バイト) b[76] b[5] b[4] b[3] b[2] b[1] b[0]

2rsquob00 SHA AES ECDH ECDSA (SignVerify) 0 RNGDRBG 0x00 00

Note  1 複数のテストを任意に組み合わせて同時に実行できますMode ビットを「1」に設定すると対応するテスト

は実行されますこのビットが「0」である場合対応するテストは実行されません

表 5-29 出力レスポンス SelfTest

名称 サイズ 概要

Success 1 バイト 0x00 全てのテストに合格した Failure マップ - 各テストに 1 ビットが割り当てられ失敗したテストに対応するビットがセ

ットされますビットの並び順は Mode バイトと同じです

518 SHA コマンド

SHA コマンドはシステムによって汎用的に使われる SHA-256 または HMACSHA ダイジェストを計算しますSHA計算はATECC608A-TFLXTLS の内部メモリの特別なセクション (コンテクスト バッファ) 内で実行されます他の

コマンドを使ってこのセクションを読み書きする事はできませんSHA コマンドの各種フェイズとフェイズの間に任

意のコマンドを挿入できますその際の SHA コンテクストは電源投入および復帰時に無効になりますSHA コマ

ンドの実行中にエラーが発生しても多くの場合はコンテクストが変更される事なく保持されます

Datasheet DS40002138A_JP - p 43 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5181 SHA - SHA256 Digest

SHA コマンドは SHA256 ハッシュ アルゴリズムを使ってメッセージのハッシュを計算しますこのコマンドへの第 1の入力は実際のメッセージですメッセージは1~64 バイトのブロックでデバイスへ送信されますコンテクス

ト スイッチングが要求されない場合以下の手順が使えます 1 Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 2 を繰り返します 4 Finalize モードで SHA コマンドを発行して SHA256 計算を終了します

表 5-30 入力パラメータ SHA - SHA256 Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x00 0x00 00 0 バイト Start モード

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モード ダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-31 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x000x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェストの場合

5182 SHA - HMAC Digest

SHA コマンドを使ってSHA256 ダイジェストの代わりに HMAC ダイジェストを計算する事ができます手順は基本

的に同じですが内部鍵を使用する事とSTART の代わりに HMAC_START を使う事が必要です

コンテクスト スイッチングが要求されない場合以下の手順が使えます 1 鍵の位置を指定して HMAC_Start モードで SHA コマンドを発行します(メッセージは含まず) 2 Update モードで SHA コマンドを発行します(1~64 バイトのメッセージを含む) 3 メッセージの全てのバイトが送信されるまでステップ 3 を繰り返します 4 Finalize モードで SHA コマンドを発行して HMAC ダイジェスト計算を終了します

Datasheet DS40002138A_JP - p 44 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-32 入力パラメータ SHA - HMAC Digest

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に

応じて異なる) 概要

0x47 0x04 0x00 0[slot] 0 バイト HMAC_Start モードデータスロットからの鍵を含める

0x04 0xFF FF 0 バイト HMAC_Start モードTempKey からの鍵を含める

0x01 0x00 [ByteCount] 1~64 バイト Update モード

0x02 0x00 [ByteCount] 0~64 バイト Finalize モードダイジェストを出力バッファと

TempKey に格納する

0x42 0x00 [ByteCount] Finalize モードダイジェストを出力バッファとメッセー

ジ ダイジェスト バッファに格納する

0xC2 0x00 [ByteCount] Finalize モードダイジェストを出力バッファのみに格納

する

表 5-33 出力レスポンス SHA - SHA256 Digest

名称 Mode サイズ 概要

Response 0x040x01 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます 0x020x420xC2 1 バイト

32 バイト エラーコードの場合 SHA256 ダイジェスト(実行に成功した場合)

5183 SHA - Context Switching

コンテクスト スイッチングによりダイジェストの生成中に割り込んで他の機能を実行するか他のダイジェストを生

成する事ができますコンテクスト スイッチングはSHA256 ダイジェストモード中にのみ使えます従ってコン

テクスト スイッチングは SHA Start コマンドが発行されてから SHA Finalize コマンドが発行されるまでの間でのみ発

生できますコンテクスト スイッチングはダイジェスト生成中に複数回発生できます

コンテクスト スイッチングには以下の 2 つのフェイズがあります 1 Read_Context ATECC608A-TFLXTLS から可変長コンテクストを読み出します読み出し後もデバイス内の

コンテクストは有効なままです出力データ パラメータの総長は常に 40~99 バイトですこの長さは出力

パケット内の Length フィールドによって指定されるか40 + [出力の最初のバイトの最下位 6 ビット]として計

算されます 2 Write_Context ホストから ATECC608A-TFLXTLS へ SHA256 コンテクストを書き込む事で後続の更新動作

の実行を可能にしますこのコンテクストは以前に Read_Context モードでデバイスから読み出した物であ

る事が必要ですATECC608A-TFLXTLS はデータ パラメータの最初の 4 バイトからコンテクストのサイズ

を特定します

コンテクストが読み出された後はデバイスは要求された他の動作を実行できます他の動作が完了した後にコン

テクストを ATECC608A-TFLXTLS に書き戻す事でSHA256 ダイジェストの生成処理を再開して完了させる事がで

きます

表 5-34 入力パラメータ SHA - Context Switching

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (Mode に応

じて異なる) 概要

0x47 0x06 0x00 00 0 バイト 現在のコンテクストを読み出す

0x07 0x00 [ByteCount] 40~99 バイト 前のセッションから現在のコンテクストを復元する

Datasheet DS40002138A_JP - p 45 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-35 出力レスポンス SHA - Context Switching

名称 Mode サイズ 概要

Response 0x06 1 バイト 40~99 バイト

エラーコード コンテクスト値

0x07 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコードが

返されます

519 UpdateExtra コマンド

UpdateExtra コマンドはUpdateExtra バイトと UpdateExtraAdd バイト(Configuration ゾーン内のバイト 84 とバ

イト 85)を更新するために使いますこれらのバイトはこのコマンドによってのみ更新できますこれらのバイト

は現在の値が 0x00 である場合にのみ 1 度だけ更新が可能です現在の値が 0x00 ではない場合更新を試みるとエ

ラーが発生します

ATECC608A-TFLXTLS の場合UpdateExtraAdd バイト (バイト 85) は代替 I2C アドレスに設定済みです

表 5-36 入力パラメータ UpdateExtra

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2バイト)

Data (0 バイト)

概要

0x20 0x00 0x00 [Value] mdash UpdateExtra バイト (バイト 84) に Param2 の LSB 内の値を書き

込む

mdash 0x01 0x00 [Value] mdash UpdateExtraAdd バイト (バイト 85) に Param2 の LSB 内の値を

書き込む

表 5-37 出力レスポンス UpdateExtra

名称 サイズ 概要

Success 1 バイト 書き込みが正常に完了した場合は 0x00 が返され書き込みに失敗した場合はエラーコードが

返されます

5110 Write コマンド

ATECC608A-TFLXTLS の場合Configuration ゾーンと OTP ゾーンはロック済みでありこれらのゾーンの更新はで

きませんData ゾーンに対する書き込みは各スロットのアクセスポリシーに基づいて制限されます書き込み可能

なスロットについてはこのコマンドの各モードの説明を参照してください

51101 Data Zone - Clear Text Write

標準的な平文書き込み Data ゾーンスロットに対する平文書き込みはSlotLocked ビットによってロックされていないスロットに対してのみ

可能です各スロットにはそのスロットのサイズに応じて複数ブロックのデータが書き込めますスロット内の

全てのブロックに対して 4 または 32 バイト書き込みが可能です全てのスロットの最後のブロックは 32 バイトでは

ありません それらのスロットに対しても 32 バイト書き込みは可能ですが余分のバイトは 0 で埋める必要があります

ATECC608A-TFLXTLS の場合スロット 68~91315 は平文として書き込み可能です

無効にされた公開鍵書き込み ECC 公開鍵は秘密値ではないためWrite コマンドにより平文として直接書き込めます鍵が使用前に有効化

(Validation)を必要とする場合その鍵を上書きするには最初にその鍵を無効(Invalidate)にする必要がありますす

なわちWrite コマンドを使って公開鍵を書き込む前にVerify コマンドの Invalidate モードを使ってその鍵を無

効にする必要があります

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

公開鍵が無効にされた後は標準的な平文書き込みと無効にされた公開鍵書き込みの入力パラメータは同じです

Datasheet DS40002138A_JP - p 46 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-38 入力パラメータ Clear Text Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

Data (4 または 32 バイト)

概要

0x12 0x02 44 「アドレスの指定」参照 4 バイト 4 バイト書き込み 0x82 44 「アドレスの指定」参照 32 バイト 32 バイト書き込み

表 5-39 出力レスポンス Clear Text Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

51102 Data ゾーン - Encrypted Write

スロットの設定に応じてData ゾーンへの書き込みは暗号化できますData ゾーンに書き込まれるデータのみ暗号

化が可能ですATECC608A-TFLXTLS の場合スロット 5 は暗号文として書き込み可能です

全ての暗号化書き込みは32 バイトブロックとして実行する必要がありますゾーンの最後の 32 バイト未満のブロ

ックが暗号化された 32 バイトの入力である事が必要な場合データはそれでも送信される必要がありMAC 計算の

一部として使われます書き込みのアドレスは実際のメモリ位置のアドレスでありデータスロットの番号ではあ

りません

表 5-40 入力パラメータ Encrypted Write

Opcode (1 バイト)

Mode (1 バイト)

アドレス (2 バイト)

入力データ (32 バイト)

MAC (32 バイト)

概要

0x12 0x82 44 「アドレスの

指定」参照 32 バイトの暗号化入力デ

ータ 32 バイトのMAC

32 バイト暗号化書き

込み

表 5-41 出力レスポンス Encrypted Write

名称 サイズ 概要

Response 1 バイト 実行に成功すると値 0x00 が返され失敗するとエラーコードが返されます

データの暗号化 データをスロットに書き込む前にホストシステムはデータを暗号化する必要があります暗号化アルゴリズムは

平文データと TempKey に保存された値の間で単純に XOR を取りますTempKey の値はGenDig コマンドの結果

である事が必要ですホストシステムはATECC608A-TFLXTLS が計算した値と同時に使われるこの値を計算する

必要がありますGenDig コマンドはXOR 値を計算する際に 1 回または複数回使えます最終値は暗号化に使わ

れる実際の XOR 値ですデータが暗号化されて書き込まれるとATECC608A- TFLXTLS は TempKey に保存されて

いる値を使ってその値を復号します暗号化書き込みはTempKey に影響を与える他のどのコマンドよりも前にま

たはタイムアウトが発生する前に発生する必要があります暗号化書き込みを検証するため32 バイト MAC 値も

コマンドと一緒に送信する必要があります

入力 MAC の生成 必要な入力 MAC は96 バイトに対する SHA256 ハッシュにより生成されますこれはホストシステムにより計算さ

れ暗号化書き込みコマンドの一部として送信されます

Datasheet DS40002138A_JP - p 47 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

52 非対称暗号コマンド

非対称暗号コマンドセットはECC 鍵を生成または使用するための特別なコマンドで構成されます鍵は通常 Dataゾーンに保存されますが一部のコマンドでは SRAM アレイに保存されます

表 5-42 非対称暗号コマンド

コマンド名 Opcode 概要

ECDH 0x43 保存されている秘密鍵と入力された公開鍵を使って ECDH プリマスタ秘密鍵を生成

します

GenKey 0x40 保存されている秘密鍵から ECC 秘密鍵またはオプションにより ECC 公開鍵を生成

します

SecureBoot 0x80 電源投入時にコード署名またはコード ダイジェストを検証します

Sign 0x41 ECC 秘密鍵を使って ECDSA 署名計算により内部または外部のメッセージ ダイジ

ェストに署名します

Verify 0x45 ECC 秘密鍵を使って ECDSA 検証計算により内部または外部のメッセージ ダイジ

ェストを検証します

521 ECDH コマンド

ECDH コマンドは2 つのデバイスの間で共有する秘密鍵を生成します2 つのデバイスはそれぞれ他方のデバイス

から ECC 公開鍵を受け取りスロットに保存されている ECC 秘密鍵または TempKey に保存されている使い捨て鍵

と組み合わせますこれにより両方のデバイスで同じ共有マスタ秘密鍵を生成しますさらにこの鍵を双方で共

有する他のデータと組み合わせる事により共有セッション鍵を生成する事ができます共有秘密をさらに DiversifyするためKDF コマンドが TLS セッションでしばしば使われます

5211 ECDH - Stored Key

ECDH コマンドは内部データスロットを ECC 秘密鍵ソースとして使う事ができますそのスロットのアクセスポリ

シーはECC 秘密鍵として設定されECDH コマンドを許容するよう設定されている必要がありますアクセスポリ

シーは出力を保存するかどうか出力を暗号化するかどうか出力の保存暗号化をコマンドによって指定可能にす

るかどうかも指定できます暗号化が必要な場合IO 保護鍵を使います暗号化はデータが出力バッファへ出力

される場合にのみ発生可能です

ATECC608A-TFLXTLS の場合ECDH コマンドはスロット 0 および 2~4 に保存されている ECC 鍵を使って実行で

きます

表 5-43 入力パラメータ ECDH - Stored Key

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0C 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0E 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x08 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はできま

せん

Datasheet DS40002138A_JP - p 48 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-44 出力レスポンス ECDH - Stored Key

名称 Mode サイズ 概要

Response 0x0C または 0x0E 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0C 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0E 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Response 0x08 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコ

ードが返されます

5212 ECDH - TempKey

ECDH コマンドはTempKey 内の値を開始値として使えますTempKey 内の ECC 秘密鍵はGenKey コマンドによ

って生成する必要がありますTempKey が ECDH コマンドによって使われるとTempKeyValid フラグはリセットさ

れます出力が TempKey 位置に書き戻されるとこのフラグは再びセットされます

表 5-45 入力パラメータ ECDH - TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

Data 概要

Data 1 (32 バイト)

Data 2 (32 バイト)

0x43 0x0D 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 平文で出力する(1)

0x0F 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を出力バッファへ転送する bull 出力を暗号化する

0x09 0x00 00 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を TempKey へ転送する bull 出力は他の動作向けに使えます

が直接アクセスする事はでき

ません

0x05 0x00 0[Slot] 公開鍵の X コンポーネント

公開鍵の Y コンポーネント

bull 結果を指定されたスロットへ転

送する

Note  1 ChipOptionsECDHPROT の値が 1 である場合ECDH コマンドの出力はこのモードで暗号化されます

ATECC608A-TFLXTLS の場合ECDHPROT フィールドは 0 に設定され暗号化は ECDH コマンドのモードに

よって決まります

表 5-46 出力レスポンス ECDH - TempKey

名称 Mode サイズ 概要

Response 0x0D または 0x0F 1 バイト コマンドの実行に失敗した場合はエラーコード

Response 0x0D 32 バイト 共有マスタ秘密鍵(平文として出力)

Response OutNonce

0x0F 32 バイト 32 バイト

共有マスタ秘密鍵(暗号文として出力) 暗号化に使うノンス

Datasheet DS40002138A_JP - p 49 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き 名称 Mode サイズ 概要

Response 0x03 または 0x09 1 バイト 実行に成功した場合は 0x00 が返されその他の場合はエラーコー

ドが返されます

522 GenKey コマンド

GenKey コマンドによりECC 秘密鍵の生成秘密鍵からの ECC 公開鍵の生成公開鍵ダイジェストの生成が可能

ですこのコマンドはECC 秘密鍵または公開鍵向けに設定されたスロットに対してのみ使えます非 ECC スロッ

トに対してこのコマンドを実行するとエラーが発生します

5221 Private Key - Stored in Slot

GenKey コマンドによりECC P256 秘密鍵を生成しECC 秘密鍵を保持するよう設定されたデータスロットに保存

する事ができますこのコマンドを実行すると対応する ECC 公開鍵も生成されますスロットがロックされてい

た場合このコマンドはエラーを返します稀なケースとして無効な ECC 秘密鍵が生成されたためにエラーが生

じる場合があります

ATECC608A-TFLXTLS の場合GenKey コマンドはスロット 2 および 4~4 内の秘密鍵を生成するためだけに使え

ますこれらの鍵を更新する前に認証は不要です

表 5-47 入力パラメータ Private Key - Stored in Slot

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x04 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する

0x40 0x0C 0x00 0[Slot] mdash bull 秘密鍵を[Slot]に保存する bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-48 出力レスポンス Private Key - Stored in Slot

名称 サイズ 応答

Response 1 バイト bull コマンド実行に失敗した場合は ECC フォルトコード

64 バイト bull コマンド実行に成功した場合は公開鍵の X および Y 座標

5222 Private Key - Stored in TempKey

GenKey コマンドを使うと使い捨て ECC 秘密鍵を生成し書き込みが制限されない SRAM 内のメモリ位置に格納

できますこの鍵を読み出す事はできませんが ECDH コマンドによって使う事ができます

表 5-49 入力パラメータ Private Key - Stored in TempKey

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x04 0xFF FF 0x00 00 00 bull TempKey に秘密鍵を保存する bull 公開鍵を生成してバスへ出力する

表 5-50 出力レスポンス Private Key - Stored in TempKey

名称 サイズ 応答

Response 1 バイト コマンドエラーにより ECC フォルトコードが生成された場合

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

Datasheet DS40002138A_JP - p 50 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5223 Public Key Generation

スロットが適切に設定されている場合保存されている ECC 秘密鍵から ECC 公開鍵を再生成してバスに出力できま

す必要に応じ同時に公開鍵ダイジェストを生成して TempKey に保存する事もできます

ATECC608A-TFLXTLS の場合公開鍵はスロット 0~5 に保存されている秘密鍵から生成できますオプションによ

るダイジェストの生成も可能です

表 5-51 入力パラメータ Public Key Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (0 バイト)

概要

0x40 0x00 0x00 0[Slot] mdash 公開鍵を生成してバスへ出力する

0x40 0x08 0x00 0[Slot] mdash bull 公開鍵を生成してバスへ出力する bull 公開鍵ダイジェストを生成して TempKey に保存する

表 5-52 出力レスポンス Public Key Generation

名称 サイズ 応答

Response 1 バイト コマンド実行に失敗した場合は ECC フォルトコード

64 バイト コマンド実行に成功した場合は公開鍵の X および Y 座標

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

5224 Public Key Digest Generation

公開鍵のダイジェストは保存されている ECC 公開鍵から生成して TempKey に保存できます公開鍵が保存されて

いるスロットの番号を指定する必要があります従ってこのコマンドは 8 以上の番号を持つスロットに対してのみ

実行できますこのコマンドを実行する前にTempKey が有効な値である事が必要です公開鍵はバスに出力されま

せんがRead コマンドを使って読み出せます このモードではOtherData 内の 3 バイトを使ってダイジェストが生成されMode および KeyID バイトは無視され

ます

ATECC608A-TFLXTLS の場合ダイジェストはスロット 111415 またはスロット 13 (公開鍵を格納している場

合)から生成できます

表 5-53 入力パラメータ Public Key Digest Generation

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

OtherData (3 バイト)

注釈

0x40 0x10 0x00 0[Slot] 0x[any value] 公開鍵ダイジェストを生成して TempKey に保存する

Datasheet DS40002138A_JP - p 51 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-54 出力レスポンス Public Key Digest Generation

名称 サイズ 応答

Response 1 バイト bull コマンドが正常に完了した場合は 0x00 が返されます bull コマンド実行に失敗した場合は ECC フォルトコードが返されます

公開鍵ダイジェストの生成 SHA256 ハッシュを 128 バイトに対して実行する事で公開鍵からダイジェストを生成します

523 SecureBoot コマンド

SecureBoot コマンドは外部 MCU または MPU のセキュアブート向けのサポートを提供します一般的にシス

テム内のブートコードはブート後に実行されるアプリケーション コードの検証を支援するために ATECC608A-TFLXTLS を使いますATECC608A-TFLXTLS はStored Digest モードの SecureBoot コマンドを使って動作する

よう設定済みですダイジェストはスロット 7 に保存されSecureBoot の検証に必要な公開鍵はスロット 15 に保存

されますオプションにより持続性ラッチを使うよう設定できます選択されたオプションに基づきSecureBootを電源投入に結び付けるかどうかが決まります224 「セキュアブート オプション」を参照してください

ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためコマンドのモードに応じて戻りコードの

代わりに MAC を各種データ(TempKey に書き込まれたノンスIO 保護秘密鍵等)から生成できます

5231 SecureBoot - FullCopy

SecureBoot コマンドの FullCopy モードは署名または検証済みダイジェストをターゲット スロットに複製します

ターゲットスロットはSecureBoot 向けアクセスポリシーの一部として定義されます(コマンドの一部として定義さ

れるのではない)SecureBoot コマンドのこのモードはこのコマンドを FullStore Digest または Signature モード

で実行する前に実行する必要があります ホストと ATECC608A-TFLXTLS の間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンス

により MAC を生成する事ができます

ATECC608A-TFLXTLS の場合このコマンドの実行に成功するとダイジェストはスロット 7 に複製されます

表 5-55 入力パラメータ SecureBoot - FullCopy

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (96 バイト)

概要

0x80 0x07 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化しない bull コード ダイジェストと署名を公開鍵によ

って検証する

0x87 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull 64 バイト署名

bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によ

って検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 52 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-56 出力レスポンス SecureBoot - FullCopy

名称 Mode サイズ 応答

Success 0x07 1 バイト bull 0x00 - 成功した bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

MAC 0x87 32 バイト 成功した場合

1 バイト bull 0x01 - 計算は完了したが結果に不整合がある bull その他の値 - エラーコード

SecureBoot - FullCopy の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 以下の SHA256 ダイジェストを生成します 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初 の 32 バイト) の間 で XOR を取ります 64 バイト 入力から渡された署名 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

5232 SecureBoot - FullStore (Digest)

SecureBoot コマンドの FullStore Digest モードでは検証されたダイジェストがスロットに保存されますこのモ

ードはこのコマンドに関連する IO 転送および総計算時間を短縮しますこのモードを使うには最初に FullCopyモードで SecureBoot コマンドを実行する必要がありますデバイスはダイジェストと署名の両方を受信しダイ

ジェストを SecureBoot アクセスポリシー内で指定されたスロットに保存しますホストと ATECC608A-TFLXTLS の

間のケーブルでの改ざんを防ぐためIO 保護秘密鍵を使ってホストからのノンスにより MAC を生成する事ができま

表 5-57 入力パラメータ SecureBoot - FullStore

Opcode (1 バイト)

Mode (1 バイト)

Param2 (2 バイト)

Data (32 バイト)

概要

0x80 0x06 0x00 00 bull コード全体の 32 バイト ダイ

ジェスト bull コード ダイジェストと署名を公開鍵によっ

て検証する

0x86 0x00 00 bull コード全体の 32 バイト暗号

化ダイジェスト bull コード ダイジェストを暗号化する bull コード ダイジェストと署名を公開鍵によっ

て検証する bull 出力 MAC を生成する

Datasheet DS40002138A_JP - p 53 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-58 出力レスポンス SecureBoot - FullStore

名称 Mode サイズ 応答

Success 0x06 1 バイト 0x00 - 成功した 0x01 - 計算は完了したが結果に不整合があるその他の値 - エラーコード

MAC 0x86 32 バイト 成功した場合

1 バイト 0x01 - 計算は完了したが結果に不整合がある その他の値 - エラーコード

SecureBoot - FullStore (Digest) の MAC 計算 このモードで MAC を生成する前にNonce コマンドを実行して TempKey に有効な値を確実に保存する必要があり

ますその後にMAC を以下の 2 ステップで計算します

ステップ 1 IO 保護鍵とノンスに対して SHA256 ダイジェストを生成します 32 バイト IO 保護鍵の内容 32 バイト TempKey に保存されているノンスの最初の 32 バイト

ステップ 2 ステップ 1 の出力の SHA256 ダイジェストと以下に示す追加情報 32 バイト ステップ 1 で生成したダイジェスト 32 バイト 平文メッセージ

ステップ 1 の出力と入力暗号化コードダイジェスト(入力バッファの最初の 32 バイト) の間

で XOR を取ります 4 バイト 入力パラメータ (OpcodeModeParam2) (0x800x860x00 00)

524 Sign コマンド

Sign コマンドはECDSA アルゴリズムを使って署名を生成しますこれにはKeyID によって指定されたスロット

内の ECC 秘密鍵が使われます何を署名有効化無効化するかに応じて異なるモードが利用できます

5241 Sign - Internal Message

内部メッセージモードの Sign コマンドは内部で生成されたメッセージに署名する場合に使いますコマンドは内

部メッセージ ダイジェストを計算しKeyID で指定された秘密 ECC 鍵を使ってECDSA 署名アルゴリズムによりダ

イジェストに署名します内部生成したメッセージは常に TempKey に格納される必要がありますTempKey 内の値

はGenDig または GenKey コマンドを使って生成する必要がありますTempKey が無効な場合エラーが発生し

ます標準的な用途には以下が含まれます bull 内部生成したランダム鍵に署名する(通常鍵は GenKey コマンドにより生成される) bull GenKey または GenDig コマンドの出力に署名する(出力は TempKey に格納する)

ATECC608A-TFLXTLS デバイスの場合内部生成メッセージの署名にはスロット 1 のみが使えます

表 5-59 入力パラメータ Sign - Internal Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x00 または 0x20 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含めない

0x40 または 0x60 0x00 0[Slot] シリアル番号をメッセージ ダイジェスト計算に含める

Datasheet DS40002138A_JP - p 54 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-60 出力レスポンス Sign - Internal Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

内部メッセージの生成 内部メッセージは以下の通りに 55 バイト フィールドに基づいて生成されます

バイトカウント シリアル番号を含まず シリアル番号を含む

32 バイト 1 バイト 1 バイト 2 バイト 2 バイト 2 バイト 1 バイト 2 バイト 1 バイト 4 バイト 2 バイト 2 バイト 1 バイト 1 バイト

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 全て 0 SN[01] = 0x01 0x23 全 て 0 SlotLockedTempKeyFlagsKeyID 0x00 0x00

TempKey(1) Opcode Mode KeyID SlotConfig (of TempKeyFlagsKeyID) KeyConfig (of TempKeyFlagsKeyID) TempKeyFlags(2)

全て 0 SN[8] = 0x01 SN[47] SN[01] = 0x01 0x23 SN[23] SlotLockedTempKeyFlagsKeyID 0x00 0x00

Note  1 この計算の前にGenKey または GenDig コマンドによって TempKey を生成する必要があります 2 TempKeyFlags は以下の通りに構成されます

b[7]NoMacFlagb[6]GenKeyDatab[5]GenDigDatab[4]SourceFlagb[30] TempKeyFlags

5242 Sign - External Message

Sign コマンドを使ってECC 公開鍵により外部メッセージのダイジェストに署名する事ができますホストシステ

ムはメッセージをコンパイルしメッセージのダイジェストを生成する必要がありますメッセージはNonce コマ

ンドを Fixed モードで実行する事によって TempKey またはメッセージ ダイジェスト バッファに格納できますメッ

セージの長さは常に 32 バイトですメッセージは常にこれらの位置の下位 32 バイトに格納されます

ATECC608A-TFLXTLS の場合外部メッセージの署名にはスロット 0 および 2~4 が使えます

表 5-61 入力パラメータ Sign - External Message

Opcode (1 バイト)

Mode (1 バイト)

KeyId (2 バイト)

概要

0x41 0x80 または 0xC0 0x00 0[Slot] 外部メッセージ ダイジェストを TempKey に保存する

0xA0 または 0xD0 0x00 0[Slot] 外部メッセージ ダイジェストをメッセージ ダイジェスト バッファ

に保存する

表 5-62 出力レスポンス Sign - External Message

名称 サイズ 概要

Response 1 バイト コマンドの実行に失敗した場合はエラーコード

64 バイト R 値と S 値で構成された署名

Datasheet DS40002138A_JP - p 55 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

525 Verify コマンド

Verify コマンドは入力されたメッセージ ダイジェストと公開鍵に基づきECDSA [RS]署名が正しく生成された

かどうかを検証しますいかなる場合も署名がこのコマンドへの入力です

中間者攻撃を防ぐためVerify コマンドからオプションの MAC を返す事ができます署名が入力ダイジェストか

ら正しく生成された事が検証計算により示された場合TempKey に保存されている入力ノンスとATECC608A-TFLXTLS とホスト MCU の両方に保存されている IO 保護秘密鍵に基づいてMAC が計算されますMAC 出力は

External および Stored モードでのみ生成可能ですMAC を計算するにはIO 保護機能を有効にする必要があります

5251 Verify - External Public Key

Verify コマンドによりATECC608A-TFLXTLS の外部で生成されたメッセージを検証できますこれにはコマンド

へ渡された公開鍵を使いますコマンドは成功失敗エラーを示すコードまたは 32 バイト MAC を出力しますこ

のコマンドを実行する前にNonce コマンドを Fixed モードで使ってメッセージを TempKey またはメッセージ ダイジェスト バッファに書き込んでおく必要がありますこのモードではデバイスは単に公開鍵の計算を高速化し

真偽値(成功失敗)結果を返します

外部公開鍵を使ってメッセージを検証するための手順 1 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 2 オプション システムノンス - システムによって生成されたノンス

21 外部メッセージ ダイジェストが TempKey に保存される場合システムによって生成されたノンスを

メッセージ ダイジェスト バッファの下位 32 バイトに保存する必要があります 22 外部メッセージを MessageDigestBuffer[310]に保存する場合システムノンスを MessageDigest

Buffer[6332]に保存する必要がありますこれを行うには外部メッセージとノンス値を 1 つの 64 バ

イト値として書き込む必要があります 3 Verify コマンドを発行しますModeKeyID (P256 ECC 曲線を指定)64 バイト署名64 バイト外部公開

鍵を含めます 4 出力は以下を返します

41 MAC を要求しない場合 1 バイトの成功失敗エラーコード 42 MAC を要求する場合 32 バイト MAC

表 5-63 入力パラメータ Verify - External Public Key

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(128 バイト) 注釈

署名 (64 バイト)

公開鍵 (64 バイト)

0x45 0x02 0x00 04 R 値 S 値

X 値 Y 値

メッセージを TempKey に保存する

0x22 0x00 04 R 値 S 値

X 値 Y 値

メッセージをメッセージ ダイジェスト バッファ

に保存する

0xA2 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージを TempKey に保存する bull システムノンスを MDB[310]に保存する bull 検証 MAC を返す

0x82 0x00 04 R 値 S 値

X 値 Y 値

bull メッセージをメッセージ ダイジェスト バッファに保存する

bull システムノンスを MDB[6332]に保存する bull 検証 MAC を返す

Datasheet DS40002138A_JP - p 56 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-64 出力レスポンス Verify - External Public Key

名称 Mode サイズ 応答

Response 0x02 または 0x22

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x82 または 0xA2

1 バイト または 32 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-65 Validation MAC - Verify External サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 メッセージを TempKey に保存する メッセージをメッセージ ダイジェスト バッファの最初

の 32 バイトに保存する

32 システムノンスをメッセージ ダイジェスト バッファの最初の 32 バイトに保存する

システムノンスをメッセージ ダイジェスト バッファの

第 2 の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 Opcode Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5252 Verify - Stored Public Key

Verify コマンドを Stored モードで使う場合使用する公開鍵はデータスロットに保存されるためコマンドに渡す

必要はありませんこのコマンドを実行する前にNonce コマンドを使ってメッセージを TempKey またはメッセー

ジ ダイジェスト バッファに保存する必要があります

保存鍵を使ってメッセージを検証するための手順 1 必要に応じVerify コマンドを使う前に公開鍵を検証します 2 必要に応じ公開鍵を使用前に認証します 3 Nonce コマンドを Fixed モードで使ってメッセージの 32 バイト ダイジェストを TempKey またはメッセー

ジ ダイジェスト バッファに書き込みます 4 システムノンスをメッセージ ダイジェスト バッファの下位または上位 32 バイトに書き込みます

41 TempKey にメッセージ ダイジェストを格納する場合システムノンスはメッセージ ダイジェスト バッファの下位 32 バイトに保存します

42 メッセージをメッセージ ダイジェスト バッファの下位 32 ワードに保存する場合システムノンスは

メッセージ ダイジェスト バッファの上位 32 バイトに保存しますユーザはNonce コマンドを使

ってメッセージ ダイジェストとシステムノンスの両方を 1 度に書き込む必要があります 5 Verify コマンドを発行しますModeKeyID (公開鍵スロットを指定)64 バイト署名内部公開鍵のスロッ

ト番号を含めます 6 出力は以下を返します

61 MAC を要求しない場合 1 バイトの成功失敗エラーコード 62 Mode を要求する場合 32 バイト MAC (コマンド実行に失敗した場合はエラーコード)

Datasheet DS40002138A_JP - p 57 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-66 入力パラメータ Verify - Stored Public Key

Opcode (1 バイト)

Mode (1 バイト)

公開鍵 (2 バイト)

Data フィールド (64 バイト)

注釈

署名(64 バイト) 0x45 0x00 lt0x000[Slot] R 値

S 値 - メッセージを TempKey に保存する

0x20 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存する

0x80 lt0x000[Slot] R 値 S 値

- メッセージを TempKey に保存し検証 MAC を返

0xA0 lt0x000[Slot] R 値 S 値

- メッセージをメッセージ ダイジェスト バッファに

保存し検証 MAC を返す

表 5-67 出力レスポンス Verify - Stored Public Key

名称 Mode サイズ 応答

Response 0x00 または 0x20

1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

0x80 または 0xA0

32 バイト 1 バイト

bull 検証 MAC - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

表 5-68 Validation MAC - Verify Stored 検証 MAC 入力の保存位置はメッセージの保存位置に応じて異なります

サ イ ズ (バイト)

TempKey 内のメッセージ メッセージ ダイジェスト バッファ内のメッセージ

32 IO 保護鍵の内容 IO 保護鍵の内容

32 TempKey からのメッセージ ダイジェスト バッファからの最初の 32 バイト メッセ

ージ 32 システムノンスをメッセージ ダイジェスト

バッファの最初の 32 バイトに保存する シ ス テ ム ノ ン ス を メ ッ セ ー ジ ダ イ ジ ェ ス ト バッファの 2 番目の 32 バイトに保存する

32 渡された署名の R データ 渡された署名の R データ

32 渡された署名の S データ 渡された署名の S データ

1 オペコード Opcode

1 Mode Mode

2 Param2 [LSBMSB] Param2 [LSBMSB]

5253 Verify - ValidateInvalidate

Verify コマンドを使って公開鍵を有効または無効にできますアクセスポリシーが有効化を要求する公開鍵のみ

このプロセスに従う必要があります公開鍵を使って署名を検証する前にその公開鍵を有効にする必要があります

有効な公開鍵を更新する場合書き込む前にその公開鍵を無効にする必要があります内部に保存される公開鍵だけ

が有効または無効にできます公開鍵のステータスは公開鍵スロットのバイト 0 の最上位ニブルに保存されます

ATECC608A-TFLXTLS ではスロット 14 が有効な公開鍵を格納します

Datasheet DS40002138A_JP - p 58 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

公開鍵を有効または無効にするための手順 1 GenKey を使って有効または無効にする公開鍵のダイジェストを生成して TempKey に保存します 2 OtherData[180]バイトは元の署名を計算する際に使われたバイトと同じである事が必要です

ndash OtherData[17][0] = 0 鍵を有効にする場合 ndash OtherData[17][0] = 1 鍵を無効にする場合 ndash このビットはVerify - Validate または Verify - Invalidate コマンドの Mode[2]の値と一致す

る必要があります一致しない場合エラーが発生します

Note  メッセージはSign コマンドの Internal モードと同様の方法で生成されますがOtherData[180]バイ

トを使います 3 Verify - Validate または Verify - Invalidate コマンドを署名の R および S 値と OtherData バイ

トを含めて発行します 4 有効化(Validate)または無効化(Invalidate)に成功するとコード 0x00 が返されスロットの LSB の bit[74]が設定

されます

表 5-69 入力パラメータ - Verify ValidateInvalidate

Opcode (1 バイト)

Mode (1 バイト)

Key ID (2 バイト)

Data フィールド(83 バイト) 注釈

署名 (64 バイト)

OtherData(1)

(19 バイト)

0x45 0x03 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 0 公開鍵を有効にする

0x07 0x00 0[Slot] R 値 S 値

OtherData[17][0] = 1 公開鍵を無効にする

Note  1 OtherData バイトの値は元のメッセージの生成に使われたデータと一致する必要があります

表 5-70 出力レスポンス Verify ValidateInvalidate

名称 サイズ 概要

Response 1 バイト bull 0x00 - 署名が正しいと証明された場合 bull 0x01 - 署名が一致しない場合 bull エラーコード - その他の理由による障害が発生した場合

ValidateNibble of Public Key 4 ビット Slot[n][0] [74]は公開鍵の更新値 bull 0x5 - 公開鍵が有効にされた場合 bull 0xA - 公開鍵が無効にされた場合

表 5-71 生成されるメッセージ

Note  1 これらのバイトは署名を生成した元のメッセージ内で使われたバイトと一致する必要があります元のメッ

セージの計算は 5241 「内部メッセージの生成」を参照してください上記の通りバイト 17 の bit 0 のみ一

致しなくても構いません

Datasheet DS40002138A_JP - p 59 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

53 対称暗号コマンド

531 AES コマンド

AES コマンドはAES 鍵を使ってデータの 16 バイトブロックを暗号化または復号するために使えます鍵は指定

されたスロット内の 16 バイト(128 ビット)位置または TempKey の最初の 16 バイトに保存されます指定されたスロ

ットには複数の鍵を保存してアクセスできますこれらの鍵は連続する 16 バイト境界(バイト 0-15 からスロットの

サイズまで)に格納できますが1 つのスロットに 5 個以上の鍵を保存する事はできませんATECC608A-TFLXTLSの場合AES 鍵はスロット 5 または 9 に保存できますスロット 5 は最大で 2 個の AES 鍵を格納できスロット 9は最大で 4 個の AES 鍵を格納できます

AES 暗号化復号の他にAES コマンドを使って GFM (Galois Field Multiply)を生成する事もできますこれは

ATECC608A-TFLXTLS が直接サポートしない暗号演算をサポートするために使います

5311 AES - ECB Encrypt

AES-ECB Encrypt モードでは入力ストリーム内で 16 バイトの平文が期待されデバイスは 16 バイトの暗号文を出

力します

表 5-72 入力パラメータ AES-ECB Encrypt

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x00 0x00 0[Slot] 16 バイトの平文データ 暗号化鍵を Position 0 に保存 0x40 暗号化鍵を Position 1 に保存 0x80 暗号化鍵を Position 2 に保存 0xC0 暗号化鍵を Position 3 に保存

0x00 0xFF FF 16 バイトの平文データ 暗号化鍵を TempKey に保存

表 5-73 出力レスポンス AES-ECB Encrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの暗号文を出力します

5312 AES-ECB Decrypt

AES コマンドの AES-ECB Decrypt モードは暗号文を平文へ復号するために使います

表 5-74 入力パラメータ AES-ECB Decrypt

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (16 バイト)

注釈

0x51 0x01 0x00 0[Slot] 16 バイトの AES 暗号化データ 復号鍵を Position 0 に保存 0x41 復号鍵を Position 1 に保存 0x81 復号鍵を Position 2 に保存 0xC1 暗号化鍵を Position 3 に保存

0x01 0xFF FF 16 バイトの平文データ 復号鍵を TempKey に保存

表 5-75 出力レスポンス AES-ECB Decrypt

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの平文を出力します

Datasheet DS40002138A_JP - p 60 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5313 AES-GFM

各種の AES 暗号演算の一部として GFM 演算がよく使われますこの関数はATECC608A-TFLXTLS が直接サポー

トしない演算をサポートするために提供されますこの演算の出力はAES-GCM AEAD 機能の中で使えますこの

モードはデバイスに保存されている秘密鍵やその他の内容に一切関与しません このモードが選択された場合その他のモードビットは無視されます

表 5-76 入力パラメータ AES-GFM

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (32 バイト)

概要

0x51 0x03 0x00 00 bull 最初の 16 バイト - H-Field bull 2 番目の 16 バイト - 入力データ

表 5-77 出力レスポンス AES-GFM

名称 サイズ (バイト) 注釈

Response 1 動作に失敗した場合1 バイトのエラーコードが出力されます

16 動作に成功した場合デバイスは 16 バイトの GFM 計算結果を出力します

532 CheckMac コマンド

CheckMac コマンドは本デバイスとは異なる CryptoAuthentication デバイス (ATECC608AATECC508A

ATSHA204A)上で生成された MAC レスポンスを計算しその結果を入力値と比較しますこのコマンドは比較の

結果を示す真偽値を返します

TempKey 内の値を CheckMac への入力として使う場合CheckMac コマンドの前に Nonce およびまたは GenDigコマンドを実行する必要があります

表 5-78 入力パラメータ CheckMac

Opcode (1 バイト)

Mode (1 バイト)(2)

KeyID (2 バイト)

Data (77 バイト)(1)

概要

0x28 0x00 0x00 0[Slot] bull 32 バイト クライアント チャレンジ bull クライアントによって生成される 32

バイト レスポンス bull 13 バイトの OtherData

0x01 0x00 0[Slot] bull 32 バイトは無視されるが存在する

必要がある bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x05 0x00 0[Slot] TempKeySource が Fixed であ

った場合に使用

0x02 0x00 00 bull 32 バイト クライアント チャレンジ bull 32 バイト クライアント レスポンス bull 13 バイトの OtherData

TempKeySource が Random で

あった場合に使用

0x06 0x00 00 TempKeySource が Fixed であ

った場合に使用

Note  1 OtherData[012]の値は元の MAC コマンドで使われた値と一致する必要があります 2 0x00 以外のモードではMode[2] は TempKeySource フラグと一致する必要があります

Datasheet DS40002138A_JP - p 61 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-79 出力レスポンス CheckMac

名称 サイズ 概要

Response 1 バイト bull 0x00 - 成功した場合 bull 0x01 - 不一致がある場合 bull エラーコード - 障害がある場合

表 5-80 SHA256 CheckMac Hash

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 Key[KeyID] Key[KeyID] TempKey

32 入力クライアント チャレンジ TempKey 入力クライアント チャレンジ

4 OtherData[03] OtherData[03] OtherData[03]

8 全て 0 全て 0 全て 0

3 OtherData[46] OtherData[46] OtherData[46]

1 SN[8] = 0x01 SN[8] = 0x01 SN[8] = 0x01

4 OtherData[710] OtherData[710] OtherData[710]

2 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

2 OtherData[1112] OtherData[1112] OtherData[1112]

533 GenDig コマンド

GenDig コマンドはSHA-256 ハッシュを使って保存されている値または入力値と TempKey の内容を組み合わせ

ますこのコマンドを実行する前にTempKey の内容を検証する必要があります保存値はデータスロットの 1 つ

Configuration ゾーンいずれかの OTP ページモノトニック カウンタから取り込めますデバイスのモードに応じ

てGenDig 計算にどのデータを含めるかが決まります

場合によっては何らかのコマンドを実行する前に GenDig を実行する必要があります与えられたコマンドを実行

する前にGenDig コマンドを複数回実行する事によりダイジェストに追加のデータを含める事ができますその

結果得られたダイジェストは TempKye で保持され以下の 4 通りの方法で使えます

1 MACSignCheckMac コマンドによって使われるメッセージの一部としてダイジェストを含める事ができま

すMAC レスポンス出力は GenDig 計算で使われたデータと MAC コマンドからの秘密鍵の両方を含むため

ダイジェストは Data およびまたは OTP ゾーンに保存されているデータの認証用に使えます 2 後続の Read または Write コマンドはダイジェストを使ってデータに認証およびまたは機密性を提供でき

ますこの場合ダイジェストはデータ保護ダイジェストと呼びます 3 このコマンドはトランスポート鍵配列からの値を使う事によりセキュア パーソナライズ用に使えます結

果として得られたデータ保護ダイジェストはWrite コマンドによって使われます 4 入力値(通常はリモートデバイスからのノンス)と現在の TempKey 値が組み合わされて共有ノンスが生成され

その中で両方のデバイスは RNG が含まれている事を証明できます

5331 GenDig - Config

Configuration ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含めら

れ1 ブロックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前に

Nonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig演算から TempKey に保存された値を使います

Datasheet DS40002138A_JP - p 62 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-81 入力パラメータ GenDig - Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x00 0x00 00 mdash Configuration ブロック 0 を使う

0x00 01 mdash Configuration ブロック 1 を使う

0x00 02 mdash Configuration ブロック 2 を使う

0x00 03 mdash Configuration ブロック 3 を使う

Note  1 KeyId はTempKey 計算で使う Configuration ゾーンのブロックを指定します

表 5-82 出力レスポンス GenDig - Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-83 TempKey 計算 GenDig ndash Config

5332 GenDig - OTP

OTP ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められ1 ブロ

ックのみ指定された GenDig 計算に含める事ができます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を

使います 表 5-84 入力パラメータ GenDig - OTP

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 バイト)

概要

0x15 0x01 0x00 00 mdash OTP ブロック 0 を KeyID として使う

0x00 01 mdash OTP ブロック 1 を KeyID として使う

Note  1 KeyId はTempKey 計算で使う OTP ゾーン ブロックを指定します

表 5-85 出力レスポンス GenDig - OTP

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Datasheet DS40002138A_JP - p 63 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-86 TempKey 計算 GenDig ndash OTP

5333 GenDig - Data

DATA ゾーンからのデータを GenDig 計算に含める事ができますデータは常に 32 バイトブロックに含められスロ

ットの最下位ブロックのみ GenDig 計算に含められます最初の GenDig コマンドを実行する前にNonce コマンド

を実行して TempKey に値を書き込む必要がありますスロットがランダムノンスを要求する場合データはデバイ

スに渡す代わりに Nonce コマンドによって生成する必要があります後続の GenDig コマンドは直前の GenDig演算からの値を使います

スロットが NoMAC に設定されている場合この GenDig の出力を MAC コマンドで使う事はできませんGenDig を

複数回実行する場合いずれかのスロットで NoMAC が設定されているとTempKey 内の出力を MAC コマンドで使

う事はできません

表 5-87 入力パラメータ GenDig - Data

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 また

は 4 バイト) 概要

0x15 0x02 0x00 0[Slot] mdash このスロット番号からのデータを計算に使う

0x00 0[Slot] 4 バイト このスロット番号からのデータを計算に使う(NoMAC 鍵スロ

ットを使う場合は OtherData を使う)

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-88 出力レスポンス GenDig - Data

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます 4 TempKeyNoMacFlag はMAC コマンドが許容される場合は「0」に設定され許容されない場合は「1」に

設定されます

表 5-89 TempKey 計算 GenDig - Data

サイズ パラメータ - MAC パラメータ - NoMAC

32 バイト DATAslot[KeyID] DATAslot[KeyID]

4 バイト Opcode Mode KeyID = 0x15 0x02 0x0[Slot] 0x00 OtherData[03]

1 バイト SN[8] = 0x01 SN[8] = 0x01

Datasheet DS40002138A_JP - p 64 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き サイズ パラメータ - MAC パラメータ - NoMAC

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue TempKeyValue

5334 GenDig - Shared Nonce

Shared Nonce モードでは32 バイトのデータがこのコマンドに入力されますこのモードは2 つのデバイスでノ

ンスを共有する必要がある場合に使います最初の GenDig コマンドを実行する前にNonce コマンドを実行して

TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算からの値を使います

表 5-90 入力パラメータ GenDig - Shared Nonce

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (32 バイト)

概要

0x15 0x03 0x00 0[Slot] 入力データ 0x80 0[Slot] 入力データ

Note  1 KeyId はTempKey 計算で使う Data ゾーンスロットを指定します最下位の 32 バイトだけが使われます

表 5-91 出力レスポンス GenDig - Shared Nonce

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「1」に設定されData ゾーンスロットが計算で使われた事が示されます 3 TempKeyKeyID はコマンド内で指定されたスロットに設定されます

表 5-92 TempKey 計算 GenDig - Shared Nonce

サイズ パラメータ - KeyID MSB 0x00 パラメータ - KeyID MSB 0x80

32 バイト 入力データ TempKeyvalue

1 バイト Opcode = 0x15 Opcode = 0x15

1 バイト Mode = 0x03 Mode = 0x03

1 バイト KeyID の LSB = 0x0[Slot] KeyID の LSB = 0x0[Slot]

1 バイト 0x00 0x00

1 バイト SN[8] = 0x01 SN[8] = 0x01

2 バイト SN[01] = 0x01 0x23 SN[01] = 0x01 0x23

25 バイト 全て「0」 全て「0」

32 バイト TempKeyValue 入力データ

Datasheet DS40002138A_JP - p 65 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5335 GenDig - Counter

GenDig コマンドの Counter モードではカウンタの 2 進値が TempKey 計算に含められます最初の GenDig コマ

ンドを実行する前にNonce コマンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマン

ドは直前の GenDig 演算からの値を使います

表 5-93 入力パラメータ GenDig - Counter

Opcode (1 バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data (0 バイト)

概要

0x15 0x04 0x00 00 mdash Counter[0] 値を含める

0x00 01 mdash Counter[1] 値を含める

Note  1 KeyId はTempKey 計算で使うモノトニック カウンタを指定します

表 5-94 出力レスポンス GenDig Counter

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Note フラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-95 TempKey 計算 GenDig ndash Counter

5336 GenDig - Key Config

GenDig コマンドの Key Config モードではスロット コンフィグレーションと KeyID によって指定された鍵の鍵コ

ンフィグレーションが GenDig TempKey 計算に含められます最初の GenDig コマンドを実行する前にNonce コ

マンドを実行して TempKey に値を書き込む必要があります後続の GenDig コマンドは直前の GenDig 演算から

の値を使います

表 5-96 入力パラメータ GenDig - Key Config

Opcode (1 バイト)

Mode (1 バイト)

KeyID(1)

(2 バイト) Data (0 または 4バイト)

概要

0x15 0x05 0x00 0[Slot] mdash スロット コンフィグレーション情報を含める

Note  1 KeyId はTempKey 計算に含めるコンフィグレーション情報を持つスロットの番号を指定します実際のスロ

ット値は計算に含まれません

Datasheet DS40002138A_JP - p 66 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-97 出力レスポンス GenDig - Key Config

名称 サイズ 概要

Response 1 バイト コマンドの実行に成功した場合は 0x00コマンドの実行に失敗した場合はエラーコ

ード

Noteフラグビット 1 TempKeyValid フラグは実行に成功した場合に「1」に設定されそれ以外の場合に「0」に設定されます 2 TempKeyGenDigData は「0」に設定されます

表 5-98 TempKey 計算 GenDig - Key Config

534 KDF コマンド

KDF コマンドは各種の KDF (Key Derivation Function)を実装します一般的にこの関数はソース鍵に入力文字列

を組み合わせる事で対称鍵ダイジェストアレイを生成します入力鍵は TempKey代替鍵バッファEERPROMスロットのいずれかに格納できその長さは 32 または 64 バイトです

KDF の出力結果(32 または 64 バイト)は出力バッファを介してシステムに返すかTempKey または代替鍵バッファ

に書き込むかEEPROM スロットに保存する事ができます32 バイトの KDF 結果はTempKey の下位 32 バイト領

域が既に有効である場合にのみTempKey の上位 32 バイト領域に書き込めます

5341 KDF - PRF

PRF はTLS 12 以前のバージョンで規定されている KDF (Key Derivation Function)でありセッション確立のため

に使われます本デバイスはマスタ秘密鍵生成セッション検証(終了メッセージ)鍵マテリアル生成(AEAD スイ

ートを含む)向けに使われる手法を含む各種バリエーションをサポートします

Datasheet DS40002138A_JP - p 67 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-99 入力パラメータ KDF - PRF

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00 0x00 00 表 5-100 参照 表 5-100 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x04 0x00 00 TempKey - 上位ブロック 0x08 0x0[SO] 00 EEPROM スロット 0x0C 0x00 00 代替鍵バッファ 0x10 0x00 00 OutBuf - 平文 0x14 0x00 00 OutBuf - 暗号文

0x01 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x05 0x00 00 TempKey - 上位ブロック 0x09 0x0[SO] 00 EEPROM スロット 0x0D 0x00 00 代替鍵バッファ 0x11 0x00 00 OutBuf - 平文 0x15 0x00 00 OutBuf - 暗号文

0x02 0x00 0[SI] 表 5-100 参照 表 5-100 内の DataLen によ

り指定 EEPROM スロット TempKey

0x06 0x00 0[SI] TempKey - 上位ブロック 0x0A 0x0[SO]

0[SI] EEPROM スロット

0x0E 0x00 0[SI] 代替鍵バッファ 0x12 0x00 0[SI] Outtuf - 平文 0x16 0x00 0[SI] OutBuf - 暗号文

0x03 0x00 00 表 5-100 参照 表 5-100 内の DataLen によ

り指定 代替鍵バッファ TempKey

0x07 0x00 00 TempKey - 上位ブロック 0x0B 0x0[SO] 00 EEPROM スロット 0x0F 0x00 00 代替鍵バッファ 0x13 0x00 00 OutBuf - 平文 0x17 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-100 PRF 向け Details パラメータの説明

Bit 名称 概要

31-24 DataLen 入力パラメータのバイト長(Label | Seed in TLS lingo)

23-11 Zero 全てのビットは「0」である事が必要です

10-9 Aead 00 = 特別な AEAD 処理はしない 01 = 64 バイトを生成するために TargetLen は 1 である事が必要

bull 最初の 32 バイトは出力バッファ以外のターゲットへ出力される

bull 次の 32 バイトは出力バッファへ出力され暗号化されない 10 と 11 は使用禁止です指定すると構文エラーが返されます

8 TargetLen ターゲット位置に格納する 32 バイトブロックの数

0 = 1 ブロック(32 バイト)

1 = 2 ブロック(64 バイト)

7-2 Zero 全てのビットは「0」である事が必要です

Datasheet DS40002138A_JP - p 68 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

1-0 KeyLen ソース鍵の長さ(16 バイトブロックの数)

0 = 1 ブロック(16 バイト) 1 = 2 ブロック(32 バイト) 2 = 3 ブロック(48 バイト) 3 = 4 ブロック(64 バイト)

表 5-101 出力レスポンス KDF - PRF

名称 Mode サイズ 概要

OutData 0x00~ 0x0F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x10~ 0x17 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x00~ 0x13 0 出力を暗号化しない場合

0x14~ 0x17 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5342 KDF - AES

KDF コマンドの AES モードは1 ブロックの入力データで AES-ECB を計算します結果は常に 32 バイトです(出力

の上位 16 バイトは 0 で埋められます)

Datasheet DS40002138A_JP - p 69 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-102 入力パラメータ KDF - AES

Opcode (1バイト)

Mode (1バイト)

KeyId(1) (2 バイト)

Details (4 バイト)

Data (16 バイト)

概要

入力鍵ソース(16 バイト) 出力結果

0x56 0x20 0x00 00 表 5-103 参照 暗号化するデータ TempKey (32 または 64バイト)

TempKey 0x24 0x00 00 TempKey - 上位ブロック 0x28 0x0[SO] 00 EEPROM スロット 0x2C 0x00 00 代替鍵バッファ 0x30 0x00 00 OutBuf - 平文 0x34 0x00 00 OutBuf - 暗号文

0x21 0x00 00 表 5-103 参照 暗号化するデータ TempKey 上位ブロック- TempKey 0x25 0x00 00 32 バイト TempKey - 上位ブロック 0x29 0x0[SO] 00 EEPROM スロット 0x2D 0x00 00 代替鍵バッファ 0x31 0x00 00 OutBuf - 平文 0x35 0x00 00 OutBuf - 暗号文

0x22 0x00 0[SI] 表 5-103 参照 暗号化するデータ EEPROM スロット TempKey 0x26 0x00 0[SI] TempKey - 上位ブロック 0x2A 0x0[SO]

0[SI] EEPROM スロット

0x2E 0x00 0[SI] 代替鍵バッファ 0x32 0x00 0[SI] Outtuf - 平文 0x36 0x00 0[SI] OutBuf - 暗号文

0x23 0x00 00 表 5-103 参照 暗号化するデータ 代替鍵バッファ TempKey 0x27 0x00 00 TempKey - 上位ブロック 0x2B 0x0[SO] 00 EEPROM スロット 0x2F 0x00 00 代替鍵バッファ 0x33 0x00 00 OutBuf - 平文 0x37 0x00 00 OutBuf - 暗号文

Note  1 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-103 AES 向け Details パラメータの説明

Bit 名称 概要

31-2 Zero 全てのビットは「0」である事が必要です

1-0 KeyLoc AES 鍵はソース鍵マテリアル内の Src[KeyLoc16]に格納されます

bull 64 バイト位置の場合鍵は 4 つのブロックの内の 1 つに格納できます

bull 32 バイト位置の場合鍵はブロック 0 またはブロック 1 に格納できます

表 5-104 出力レスポンス KDF - AES

名称 Mode サイズ 概要

OutData 0x20~ 0x2F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x30~ 0x37 32 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x20~ 0x33 0 出力を暗号化しない場合

0x34~ 0x37 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

Datasheet DS40002138A_JP - p 70 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

5343 KDF - HKDF

KDF コマンド内の HKDF 機能はTLS 13 およびその他のプロトコルで規定されている鍵導出演算をサポートする事を

目的としていますこれは常に Mode および Details パラメータで指定された鍵およびメッセージを使って 1 回の

HMACSHA256 計算を実行しますこのコマンドを複数回実行する事で HKDF 抽出を実装しHKDF 仕様に従って機能

を拡張できます64 バイト結果はTempKey レジスタの上位と下位に別々に書き込む事により生成できます

ATECC608A-TFLXTLS の場合特殊な IV 機能は Configuration ゾーン内で無効にされており使う事はできません

表 5-105 入力パラメータ KDF - HKDF

Opcode (1バイト)

Mode (1バイト)

KeyId(2)

(2 バイト) Details (4 バイト)

Data (0~127 バイト)

概要

入力ソース 出力結果

0x56 0x00(1) 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey (32 また

は 64 バイト) TempKey

0x44 0x00 00 TempKey - 上位ブロック 0x48 0x0[SO] 00 EEPROM スロット 0x4C 0x00 00 代替鍵バッファ 0x50 0x00 00 OutBuf - 平文 0x54 0x00 00 OutBuf - 暗号文

0x41 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 TempKey 上位ブロ

ック - 32 バイト TempKey

0x45 0x00 00 TempKey - 上位ブロック 0x49 0x0[SO] 00 EEPROM スロット 0x4D 0x00 00 代替鍵バッファ 0x51 0x00 00 OutBuf - 平文 0x55 0x00 00 OutBuf - 暗号文

0x42 0x00 0[SI] 表 5-106 参照 表 5-106 内の DataLen に

より指定 EEPROM スロット TempKey

0x46 0x00 0[SI] TempKey - 上位ブロック 0x4A 0x0[SO]

0[SI] EEPROM スロット

0x4E 0x00 0[SI] 代替鍵バッファ 0x52 0x00 0[SI] Outtuf - 平文 0x56 0x00 0[SI] OutBuf - 暗号文

0x43 0x00 00 表 5-106 参照 表 5-106 内の DataLen に

より指定 代替鍵バッファ TempKey

0x47 0x00 00 TempKey - 上位ブロック 0x4B 0x0[SO] 00 EEPROM スロット 0x4F 0x00 00 代替鍵バッファ 0x53 0x00 00 OutBuf - 平文 0x57 0x00 00 OutBuf - 暗号文

1 出力と入力が TempKey の下位 32 バイトへ割り当てられている場合Details パラメータの

MsgLoc を TempKey に設定(MsgLoc = 01)してはいけませんこれが発生した場合結果は予測不

可能ですこの組み合わせは使用禁止です 2 [SO] = 出力スロット番号[SI] = 入力スロット番号

表 5-106 HKDF 向け Details パラメータの説明

Bit 名称 概要

31-25 DataLen HKDF メッセージの長さ(バイト数)この値が 0 である場合メッセージは 32 バイトの 0x00 です

24-12 Zero 全てのビットは「0」である事が必要です

注意

Datasheet DS40002138A_JP - p 71 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

続き

Bit 名称 概要

11-8 msgKey EEPROM 内の場合メッセージの鍵スロット

7-3 Zero 全てのビットは「0」である事が必要です

2 ZeroKey 1 である場合鍵は 32 バイトの 0x00 です

1-0 MsgLoc メッセージの位置 00 = EEPROM スロット

01 = TempKey

10 = 入力パラメータ

11 = ATECC608A-TFLXTLS では無効

表 5-107 出力レスポンス KDF - HKDF

名称 Mode サイズ 概要

OutData 0x40~ 0x4F 1 成功失敗コード 出力が内部位置へ転送されるモードの場合

0x50~ 0x57 32 または 64 出力データ 出力が出力バッファに格納されるモードの場合

OutNonce 0x40~ 0x53 0 出力を暗号化しない場合

0x54~ 0x57 32 出力を暗号化する場合(ランダムノンスを生成して出力する)

5344 KDF 出力の暗号化

全ての KDF アルゴリズムにはECDH コマンドと同様の方法で出力バッファの暗号化が実装されています暗号化は

必須ではありませんがシステム セキュリティを向上させるために使えますATECC608A-TFLXTLS の場合出力

バッファの暗号化は有効化済みです暗号化に使う IO 保護鍵はスロット 6 に保存済みです暗号化を必要とするモ

ードについては各動作モードの説明を参照してください

暗号化出力は以下の手順により生成されます

1 IO 保護鍵スロットの最初の 32 バイト(ConfigChipOptions[1512]) は SHA256 バッファに複製されます 2 内部 RNG は 32 バイトの乱数を生成しそのノンスの最初の 16 バイトを SHA256 バッファに付加します 3 SHA256 バッファはハッシュ化されダイジェストと平文 KDF 結果の最初の 32 バイトの間で XOR が取られ

ます結果内に 16 バイトしか存在しない場合出力バッファはそれらの 16 バイトだけを格納しSHA ダイジ

ェストの 2 番目の 16 バイトは無視されます 4 出力内のバイト数が 32 を超える場合新しいダイジェストが IO 保護鍵(32 バイト)の SHA256 ハッシュによ

り生成されその後にステップ 2 からのランダムノンスの 2 番目の 16 バイトが続きます生成されたダイジ

ェストと結果の次の 32 バイトの間で XOR が取られます 5 出力バッファは暗号化された KDF 結果と 32 バイトノンスを格納します最初の 16 バイトだけが使われた

場合でもノンスの 32 バイト全てが出力されます

535 MAC コマンド

MAC (Message Authentication Code)コマンドはメッセージの SHA256 ダイジェストを生成するために使われます

このダイジェストはデバイス内に保存された鍵チャレンジデバイスに関するその他の情報を含みますこのコ

マンドの出力はこのメッセージのダイジェストです

このコマンドを使うための通常のコマンドフローは以下の通りです

1 Nonce コマンドを実行して入力チャレンジをロードしますオプションによりこのチャレンジと生成された

乱数を組み合わせる事ができますこの演算の結果はノンスとしてデバイス内部に保存されます

Datasheet DS40002138A_JP - p 72 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

2 必要に応じGenDig コマンドを 1 回または複数回実行する事でデバイス内の EEPROM 位置に保存されて

いる値をノンスと組み合わせる事ができますその結果はデバイス内部に保存されますこの機能により複

数の鍵をレスポンス生成の一部として使う事ができます 3 この MAC コマンドを実行して上記ステップ 1 (および必要に応じてステップ 2) の出力と EEPROM 鍵を組み合

わせる事で出力レスポンス(すなわちダイジェスト)を生成します

あるいは同じ GenDig メカニズムを通して秘密である事が要求されない任意のスロット内のデータをレスポンス

に蓄積する事ができますこれはその位置に保存されている値を認証する効果を有します

5351 Non-Diversified MAC

MAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダイジェストを生成しますNon-Diversified MAC はデバイスのシリアル番号を含みませんこのため入力パラメータが同じであればNon-Diversified MAC は全てのデバイスで同じです

表 5-108 入力パラメータ Non-Diversified MAC

Opcode (1バイト)

Mode (1 バイト)

KeyID (2 バイト)

Data(2)

(0~32 バイト) Mode 概要

0x08 0x00 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x01 または 0x05(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x02 または 0x06(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-109 出力レスポンス Non-Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-110 Non-Diversified MAC の計算

バイト数 Mode 0x00 Mode 0x01 または 0x05 Mode 0x02 または 0x06

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8] 0x01 SN[8] 0x01 SN[8] 0x01 4 全て 0 全て 0 全て 0 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 全て 0 全て 0 全て 0

5352 Diversified MAC

Diversified MAC はデバイスのシリアル番号を含みますシリアル番号はデバイスごとに異なるため必ず一意の

SHA256 ダイジェストが生成されますMAC は常に 88 バイト全てに対して計算され常に 32 バイトの SHA256 ダ

イジェストを生成します

Datasheet DS40002138A_JP - p 73 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS デバイスコマンド

表 5-111 入力パラメータ Diversified MAC

Opcode (1バイト)

Mode (1バイト)

KeyID (2 バイト)

Data(2) (0 ~

32 バイト) Mode 概要

0x08 0x40 0x00 0[Slot] 32 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは入力チャレンジから取る

0x41 ま た は 0x45(1)

0x00 0[Slot] 0 バイト bull 最初の 32 バイトはデータスロットからロードする bull 2 番目の 32 バイトは TempKey から取る

0x42 ま た は 0x46(1)

0x00 00 32 バイト bull 最初の 32 バイトは TempKey からロードする bull 2 番目の 32 バイトは入力チャレンジから取る

Note 

(1) Mode[2] は TempKeySourceFlag と一致する必要があります (2) 存在する場合Data パラメータは入力チャレンジに対応します

表 5-112 出力レスポンス Diversified MAC

名称 サイズ 概要

Response 1 バイト コマンド実行が失敗した場合

32 バイト SHA-256 ダイジェスト

表 5-113 Diversified MAC の計算

バイト数 Mode 0x40 Mode 0x41 または 0x45 Mode 0x42 または 0x46

32 データスロット データスロット TempKey 32 入力チャレンジ TempKey 入力チャレンジ 1 Opcode (0x08) Opcode (0x08) Opcode (0x08) 1 Mode Mode Mode 2 KeyID KeyID KeyID 11 全て 0 全て 0 全て 0 1 SN[8]0x01 SN[8] 0x01 SN[8] 0x01 4 SN[47] SN[47] SN[47] 2 SN[01] 0x01 0x23 SN[01] 0x01 0x23 SN[01] 0x01 0x23 2 SN[23] SN[23] SN[23]

Datasheet DS40002138A_JP - p 74 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

6 応用のための情報

ATECC608A-TFLXTLS はMicrochip 社の TrustampGO CryptoAuthenticationtradeファミリに属しますTrustFLEX ファミ

リの製品は使いやすくて簡単に実装できセキュアなプロビジョニングのために Microchip 社の技術とインフラスト

ラクチャを活用できますまたたとえ小量生産であってもエンドシステムにセキュリティ機能を実装する事ができ

ます

ATECC608A-TFLXTLS はIoT 対応製品にセキュリティ機能を追加する際の煩雑な手間を取り除く事を目的に開発さ

れました本製品はTLS 接続を介して IoT クラウドに容易に接続できるようまたその他のセキュリティ ユース

ケース (セキュアブート消耗品アクセサリ認証データおよび IP 保護等)へのサポートも提供できるよう設定済み

です

Microchip 社はセキュリティ デバイスに加えて各種ツールも開発していますこれらのツールにより弊社のハー

ドウェア デバイスをシームレスに統合しセキュリティ ソリューション全体を容易に開発できますMicrochip 社の

ソフトウェア セキュリティ ツールを使う事でインフラストラクチャのセットアップが容易にでき初期プロトタ

イプから製造まで開発を迅速に進める事ができます

61 ユースケース

ATECC608A-TFLXTLS はIoT 市場向けに定義済みです本デバイスはGoogle IoT Cloudtradeを直接サポートするよ

う設定済みですAmazon AWSregまたはその他の TLS サーバにはスロット 8 に証明書を追加する事により対応可能

です本デバイスはその他のユースケースにも使えます本デバイスの主なユースケースについて以下で簡単に説

明しますこれらのユースケースは単独で実装する事も互いに組み合わせて実装する事もできますこれらのユ

ースケースの試作および実装をサポートするためMicrochip 社はハードウェアおよびソフトウェア ツールを提供し

ています

セキュア TLS 接続 ATECC608A-TFLXTLS は各種のプロトコルを使ったセキュア TLS 接続をサポートします本デバイスは Google CloudAWS を含む各種のクラウド プロバイダへのセキュア接続を確立できますKDF (Key Derivation Function)の各種モードによりTLS12TLS13 セキュア接続インターネット プロトコル(およびそれ以前のバージョン)をサポー

トする適切な鍵を生成できます

セキュアブート マイクロコントローラまたはマイクロプロセッサのブートイメージの保護は多くのベンダーにとっての懸念事項で

す実行中のコードが信頼できる事(改ざんされていない事)を検証するための機能によりシステム全体の保全性が

維持されますATECC608A-TFLXTLS はシステムのコード ダイジェストをデバイスのデータスロットに保存する

事によりセキュアブートを可能にするよう設定済みです コードの初期実行時にシステムはシステム ファームウェアに対するダイジェストを再構成しそれを

ATECC608A-TFLXTLS に保存されているダイジェストと比較する事でファームウェアが改ざんされていない事を

確認できます

消耗品アクセサリの認証 多くの場合OEM はシステムのアクセサリと消耗品が適正品である事を確認するための機能を必要としますそのよ

うな機能はOEM の品質に関する評判市場におけるイメージ総合的な収益が低価格の模造品によって損なわれて

しまう事を防ぐために不可欠ですATECC608A-TFLXTLS はデバイスからルート CA (Root Certificate Authority)への信頼の輪(Chain of Trust)を提供する事によりその種の製品を認証するための機能を提供します

知的財産およびデータ保護 知的財産(IP)の保護はOEM の競争力を維持するために不可欠ですIP を保護する事でOEM が開発したファーム

ウェアまたはハードウェアが複製される事を防ぎますファームウェア IP 保護は単なるソフトウェア ベースのア

プローチで実現可能ですがファームウェア内部の鍵情報は攻撃に対して極めて脆弱です

製品を確実に正しいファームウェアで動作させるためATECC608A-TFLXTLS はハードウェア ベースのセキュアな

鍵ストレージを提供します本デバイスは対称認証と非対称認証の両方を実行できますこれらは鍵をセキュア エレメント内で安全に保存する事によりハッカーによって鍵が抽出および改変される可能性を低減します

Datasheet DS40002138A_JP - p 75 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

一般データストレージ システムに小量の追加情報を保存したい場合がありますATECC608A-TFLXTLS ではデータの読み書きが可能な

データスロットを使う事によりEEPROM メモリデバイスを追加しなくてもそれらの情報を保存できます

62 開発ツール

ATECC608A-TFLXTLS は各種のハードウェアおよびソフトウェア ツールとアプリケーション開発を迅速に進める

ためのバックエンド サービスによりサポートされます初期開発は使いやすい Trust Platform Design Suite ツール

ファミリを使って始める事ができますこれらのツールはユースケースを実装するためのグラフィカルな手段を提

供し最終的にアプリケーションの実装に必要な C コードを生成します

定義済みの Trust Platform Design Suite ツールがお客様のアプリケーションに対応していない場合CryptoAuthLib ま

たは CryptoAuthLib の Pythonregバージョンと CryptoAuthTool を使ってアプリケーションを開発できます

CryptoAuthLib はTrust Platform Design Suite ツールから出力されるコードのバックボーンでもあります

ハードウェア ツールと ATECC608A- TFLXTLS のサンプルデバイスによりアプリケーションの完全な検証が可能で

す本デバイスのアクセスポリシーは設定済みであるためお客様はシステムレベルのコード開発に集中できます

アプリケーションが完成したらMicrochip 社から ATECC608A-TFLXTLS デバイスを注文できます

621 Trust Platform Design Suite

実装手順を簡素化するためMicrochip 社はウェブベースの Trust Platform Design Suite ツールを開発しましたこれ

らのツールはコンセプト段階から量産段階までお客様の開発を支援しますこれらのツールを使うと

ATECC608A-TFLXTLS のコンフィグレーションと定義済みアクセスポリシーによる制約内で特定のアプリケーシ

ョンを実装するために必要なトランザクション ダイアグラムとコードを開発できます

これらのツールの詳細はMicrochip 社ウェブサイトの「Security ICs」セクションから「CryptoAuthentication」製品

ページにアクセスしてご覧になれます

622 ハードウェア ツール

ATECC608A-TFLXTLS を使ったアプリケーションの開発には各種のハードウェア ツールが役立ちます本書に記

載していないツールについてはMicrochip 社ウェブサイトをご覧ください各ツールの説明にはユースケースの例

も記載しています

DM320118 - CryptoAuthentication Trust プラットフォーム DM320118 は ATSAMD21 マイクロコントローラATECC608A-TNGTLSATECC608A-TFLXTLSATECC608-TCSTM Trust デバイス(各 1 個ずつ)USB ハブmikroBUS コネクタオンボード デバッガを備えたコンパクトな開

発システムです Trust Platform Design Suite ツールを使って ATECC608A-TFLXTLS 向けの各種ユースケースを実装できますこのキ

ットを MPLABX または Atmel Studio Design 環境で使う事によりその他のアプリケーションも開発できます

DM320109 - CryptoAuthentication スタータキット DM320109 は ATSAMD21-XPRO 開発ボードにより構成されCryptoAuthentication デバイスで動作するファームウ

ェアがプログラミング済みですこのキットには AT88CKSCKTSOIC-XPRO ソケットボードが同梱されますがサ

ンプルデバイスは UDFN パッケージでのみ提供されるためUDFN バージョンのボードが別途必要です

ATECC608A-TFLXTLS のサンプルデバイスを別途入手する必要があります

AT88CKSCKTUDFN(SOIC)-XPRO AT88CKSCKTUDFN-XPRO と AT88CKSCKTSOIC-XPRO はXPRO インターフェイスを備えた任意のマイクロコン

トローラ開発ボードと一緒に使える汎用的な CryptoAuthentication ソケットキットですATECC608A-TFLXTLS のサ

ンプルデバイスを別途入手する必要があります

Datasheet DS40002138A_JP - p 76 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 応用のための情報

623 CryptoAuthLib

CryptoAuthLib はMicrochip 社の CryptoAuthentication デバイスファミリをサポートするソフトウェア ライブラリで

すATECC608A-TFLXTLS を使ったアプリケーションの開発にはこのライブラリを使用する事を推奨しますこ

のライブラリは本書に記載したコマンドを実行するために必要な API 関数の呼び出しを実装します

このライブラリは多くの Microchip 社製マイクロコントローラで簡単に動作させる事ができますがHAL (Hardware Abstraction Layer)を介して他のマイクロコントローラ(他社製品を含む)向けに容易に拡張できます

これらのツールの詳細は以下でご覧ください bull CryptoAuthLib - Web Link bull CryptoAuthLib - GitHub

API 関数の呼び出し 本書に記載した各コマンドには1 つまたは複数の API 呼び出しが割り当てられています通常全ての入力パラメ

ータを指定可能なベース AP 呼び出しが存在しますコマンドおよびサブセクションに示されるパラメータはこの

コマンドで使えます各 API 呼び出しには複数のモードがあります下表にコマンドとベース API 呼び出しの例を示

します詳細な API 情報はGitHub 情報を参照してください

表 6-1 CryptoAuthLib API 関数の呼び出しに対するコマンド例

デバイスコマンド API 呼び出し 注釈

Info atcab_info() Write atcab_write() Read atcab_read() SHA atcab_sha() Sign atcab_sign() Random atcab_random() Verify atcab_verify()

63 TrustFLEX と TrustampGO の比較

TrustampGO 製品は既成のセキュア ソリューションが使える小量生産ユーザ向けに定義されていますMicrochip 社の

セキュア製造ソリューションおよびインフラストラクチャを活用する事でこれらの製品は容易に実装できますユ

ーザが独自のセキュア製造環境を作成する必要はありません

TrustampGO 製品のシンプルさを保ったままセキュリティ環境をより自由に制御したいユーザのためにTrustFLEX 製

品が開発されましたTrustFLEX 製品はTrustampGO 製品のユースケースを実装可能である上に一部のセキュリテ

ィ鍵および証明書向けにより高い柔軟性を提供します bull TrustampGO と同じロック済みコンフィグレーション bull TrustampGO と同じデータスロット定義 bull セキュアブートを実装するためにユーザの公開鍵をデバイスへプロビジョニング可能 bull 対称鍵認証が可能必要な対称鍵をセキュア プロビジョニング プロセスの一部としてセキュアに提供可能 bull 証明書エレメントをカスタマイズし証明書チェーンをユーザの希望する PKI へリンク可能 bull I2C または SWI インターフェイス デバイス向けのオプション

TrustFLEX 製品の詳細とその他のプロビジョニング オプションについてはMicrochip 社のウェブページ

(CryptoAuthentication)を参照してください

Datasheet DS40002138A_JP - p 77 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

7 I2C インターフェイス I2C インターフェイスはSDA ピンと SCL ピンを使って各種の IO 状態を ATECC608A-TFLXTLS に対して示します

このインターフェイスは1 MHz で動作する Microchip 社製 AT24C16 シリアル EEPROM とプロトコルレベルで互換と

なるよう設計されています

Note  2 つのデバイスは多くの点で異なります(例 ATECC608A-TNGTLS と AT24C16 では既定値 I2C アドレスが異な

ります)従って各デバイスのデータシートを注意深く読む必要があります

ATECC608A-TFLXTLS の出力ピンはオープンドレイン ドライバしか備えないためSDA ピンは外付けプルアップ抵抗

を使って High に駆動する必要がありますバスマスタはオープンドレインまたはトーテムポールが使えます後者を

使う場合ATECC608A-TFLXTLS がバス上でデータを駆動している時にバスマスタはトライステートになる必要があり

ますSCL ピンは入力であり常に外部デバイスまたは外付け抵抗によって High および Low に駆動される必要があり

ます

71 IO 条件 本デバイスは以下の IO 条件に応答します

711 スリープ中のデバイス

スリープ中のデバイスは Wake 条件を除く全ての条件を無視します

bull Wake - SDA が tWLO以上の間 Low を保持した後に SDA の立ち上がりエッジが発生するとデバイスは低消費電力モ

ードを終了します遅延時間 tWHIの後にデバイスは I2C コマンドを受信可能となります bull アイドルまたはスリープ中のデバイスはtWLO が過ぎるまで SCL ピン上の全てのレベルまたは状態遷移を無視し

ますtWHI中のある時点で SCL ピンが有効になりデバイスは 712 「アクティブ中のデバイス」に記載した条件

に応答します

Wake 条件が成立するにはSDA ピンがシステム プロセッサによって tWLOの間 Low に駆動されるか0x00 のデータバ

イトが十分に遅い(すなわち SDA の Low 期間が tWLO より長い)クロックレートで転送される必要がありますデバイス

が復帰した時点で通常のプロセッサ I2C ハードウェアおよびまたはソフトウェアはデバイス通信用に使用可能となり

ますデバイス通信にはデバイスを低消費電力(スリープ) モードへ戻すために必要な IO シーケンスも含まれます

ヒント  Wake パルスは0x00 のバイトを 100 kHz で送信する事により簡単に生成できます後続のコ

マンドはこれより高い周波数で実行できます

I2C モードでは既に復帰済みのデバイスは Wake シーケンスを無視します

バス上に複数デバイスが存在する場合 バス上に複数のデバイスが存在する場合I2C インターフェイスが約 300 kHz1 以下で動作すると特定データパターン

の送信によってバス上の ATECC608A-TFLXTLS が復帰します周波数が低いほどデバイスはより確実に復帰します

バスで送信される後続のデバイスアドレスは宛先のデバイスとのみ一致するため ATECC608A-TFLXTLS は応答しませ

んが復帰はします低周波数で他のデバイスと通信した後にスリープまたはアイドル シーケンスを発行して

ATECC608A-TFLXTLS を既知のステートに戻す事を推奨します

重要   tWLOはATECC608A- TFLXTLS が全ての製造および環境条件で確実に復帰できるようにするため

にシステムが提供する必要のある最小時間です実際にはこれよりも短いパルス幅でもデバイスは復帰

します

1 実際の周波数はデバイスごとの製造ばらつきと環境要因によって変化しますこの値は全ての条件でデバイス

が確実に復帰できると見なせる周波数です

Datasheet DS40002138A_JP - p 78 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

712 アクティブ中のデバイス アクティブ中のデバイスは以下の条件に応答します

bull DATA = 0 SCL が LowrarrHighrarrLow と遷移する間 SDA が Low を保持した場合「0」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます bull DATA = 1 SCL が LowrarrHighrarrLow と遷移する間 SDA が High を保持した場合「1」のビットがバス上で転送

されますSDA は SCL が Low の時に遷移できます 図 7-1 I2C インターフェイスにおけるデータビットの転送

bull スタート条件 SCL が High の時に SDA が High から Low へ遷移するとスタート条件が発生します全てのコマ

ンドの前にスタート条件が必要です bull ストップ条件 SCL が High の時に SDA が Low から High へ遷移するとストップ条件が発生しますデバイスは

ストップ条件を受信した後に現在の IO トランザクションを終了しますデバイスはコマンドの実行に必要な全

てのバイトを入力で受信するとビジー状態に移行してコマンドの実行を開始しますストップ条件はデバイ

スへ送信される全てのパケットの最後で送信される必要があります 図 7-2 I2C インターフェイスのスタート条件とストップ条件

bull 肯定応答(ACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシー

バは SDA ピンを Low にする事によってそのバイトを正常に受信した事を知らせます bull 否定応答(NACK) 各アドレスバイトまたはデータバイトが転送された後の 9 番目のクロックサイクルでレシ

ーバは SDA ピンを High のままにする事によってそのバイトの受信に問題があった事またはそのバイトでその

グループの転送が完了する事を知らせます 図 7-3 I2C インターフェイスの NACK および ACK 条件

Datasheet DS40002138A_JP - p 79 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

Configuration ゾーン内で設定されている I2C_Address が互いに異なる複数の ATECC608A-TFLXTLS は同じ I2C イ

ンターフェイス信号を容易に共有できますデバイスアドレスの 7 ビットは全て設定可能であるためATECC608A-TFLXTLS はシリアル EEPROM を含む任意の I2C デバイスとの間で I2C インターフェイスを共有する事もできます

72 ATECC608A-TFLXTLS への I2C 送信

システムから ATECC608A-TFLXTLS へのデータ送信の概要を図 7-4 に示します送信の順序は以下の通りです

bull スタート条件 bull デバイスアドレス バイト bull ワードアドレス バイト bull データバイト(1~N) (必要に応じて) bull ストップ条件

図 7-4 ATECC608A-TFLXTLS への通常の I2C 送信

ACK 期間中に SDA は ATECC608A-TFLXTLS によって Low に駆動されます

表 7-1 にIO トランザクションの各バイトを示します「I2C 名」列はAT24C16 のデータシートに記載されてい

るバイト名です

表 7-1 ATECC608A-TFLXTLS への I2C 送信

名称 I2C 名 概要

Device Address

Device Address

このバイトはI2C インターフェイス上で特定デバイスを選択しますこのバイトの bit 1~7が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであり書き込み動作

(デバイスアドレス バイトに続くバイトをマスタからスレーブへ転送する) を示す「0」である

事が必要です

Word Address Word Address

通常動作ではこのバイトの値は 0x03 である事が必要です 詳細は 721 「ワードアドレス

値」を参照してください

Command Data1N カウントコマンドパケット2 バイト CRC で構成されるコマンドグループですCRC は

サイズおよびパケットバイトに対して計算されます 41 「IO トランザクション」を参照し

てください

本デバイスはコマンド入力バッファを FIFO として扱うため入力グループは 1 つまたは複数の I2C コマンドグルー

プに格納してデバイスへ送信できますデバイスへ最初に送信されるバイトはカウント(この後にデバイスが受信する

バイトの数)ですデバイスは実行が終了するまでこの数を超える後続の受信バイトを無視します

システムは最後のコマンドバイトの後にストップ条件を送信する必要がありますこれによりATECC608A-TFLXTLS はコマンドの処理を開始しますストップ条件の送信に失敗した場合同期が失われる可能性があります

(同期の回復手順は 722 「I2C の同期」参照)

721 ワードアドレス値 I2C パケット書き込み中はATECC608A-TFLXTLS は 2 番目のバイトをワードアドレスとして解釈しますワードア

ドレス値は表 7-2 の通りにパケットの機能を示します

Datasheet DS40002138A_JP - p 80 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

表 7-2 ワードアドレス値

名称 値 概要

Reset 0x00 アドレスカウンタをリセットします次の読み出しまたは書き込みトランザクションはIO バ

ッファの先頭位置で始まります

Sleep (Low-power)

0x01 ATECC608A-TFLXTLS は低消費電力スリープモードに移行し次の Wake フラグまで後続の IOトランザクションを全て無視しますデバイスの揮発性ステートは全てリセットされます

Idle 0x02 ATECC608A-TFLXTLS はアイドルモードに移行し次の Wake フラグまで後続の IO トランザク

ションを全て無視しますTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内

容は保持されます

Command 0x03 後続のバイトを入力コマンドバッファ(前回の書き込み位置の次のアドレス)に書き込みますこ

れは標準の動作です

予約済み 0x04 ndash 0xFF これらアドレス値をデバイスへ送信してはいけません

722 I2C の同期 システムリセットや IO ノイズ等によってシステムと ATECC608A-TFLXTLS 上の IO ポートの間の同期が失われる可

能性がありますこのような場合ATECC608A-TFLXTLS は期待通りに応答できなくなります(スリープ状態になるか

システムがデータを送信しようとしているタイミングでデータを送信してしまう等)再同期するには以下の手順が

必要です

1 IO チャンネルを確実にリセットするためシステムは以下の通りに標準 I2C ソフトウェア リセット シーケン

スを送信する必要があります bull スタートビット条件 bull システムのプルアップ抵抗によって SDA を High に保持した状態で 9 サイクルの SCL bull 次のスタートビット条件 bull ストップビット条件

以上の手順によって同期が正しく確立されると読み出しシーケンスの送信が可能になりATECC608A-TFLXTLS はデバイスアドレスに対して ACK を返しますデータ期間中にデバイスはデータを返すかバスを

フロート状態(システムによって値が 0xFF のデータとして解釈される)にします

デバイスがデバイスアドレスに対して ACK を返した場合システムは内部アドレスカウンタをリセットする必

要がありますこれによりATECC608A-TFLXTLS はそれまでに送信された不完全な入力コマンドを無視しま

すアドレスカウンタはワードアドレス 0x00 (リセット) への書き込みシーケンスを送信した後にストップ条

件を生成する事によりリセットできます 2 デバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはスリープ中である可能性があります

この場合システムは完全な Wake トークンを送信し立ち上がりエッジ後に tWHI が過ぎるまで待機する必要

がありますその後システムは読み出しシーケンスを再度送信できます同期が確立されていればデバイ

スはデバイスアドレスに対して ACK を返します 3 それでもデバイスがデバイスアドレスに対して ACK で応答しない場合デバイスはビジー状態(コマンドの実行

中)である可能性がありますシステムは最長の tEXEC(max)が過ぎるまで待機してから読み出しシーケンスを送

信する事でデバイスから ACK が返されます 73 スリープ シーケンス

システムはATECC608A-TFLXTLS の使用を終了した時点でスリープ シーケンスを発行してデバイスを低消費電力モ

ードに移行させる必要がありますこのシーケンスはデバイスアドレス値 0x01 (ワードアドレス)ストップ条件で

構成されます低消費電力状態に移行するとデバイスの内部コマンドエンジンと入出力バッファは完全にリセット

されますこのシーケンスはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 74 アイドル シーケンス

コマンドの総シーケンス時間が tWATCHDOG を超えた場合デバイスは自動的にスリープに移行し揮発性レジスタ内

の情報は全て失われますこれを防ぐにはウォッチドッグ期間が終了する前にデバイスをアイドルモードに移行さ

せる必要がありますデバイスはWake トークンを受信した時にウォッチドック タイマを再始動し実行を継続で

きます

Datasheet DS40002138A_JP - p 81 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS I2C インターフェイス

このアイドル シーケンスはデバイスアドレス値 0x02 (ワードアドレス)ストップ条件で構成されますこのシーケン

スはデバイスがアクティブかつ非ビジーの時にいつでもデバイスへ送信できます 75 ATECC608A-TFLXTLS からの I2C 送信

ATECC608A-TFLXTLS がアクティブでありかつビジー状態ではない場合バスマスタは I2C 読み出しを使ってデバイ

スから現在の出力バッファの内容を読み出せます有効なコマンド結果が得られた場合返されるグループのサイズは

実行されたコマンドによって決まります結果が無効である場合グループ(および返される最初のバイト)のサイズは常

に 4 (カウントバイト + ステータスエラー バイト + 2 バイトの CRC)ですバスタイミングは図 9-2 を参照してください

表 7-3 ATECC608A-TFLXTLS からの I2C 送信

名称 I2C 名 方向 概要

Device Address

Device Address

To slave このバイトは I2C インターフェイス上の特定デバイスを選択しますこのバイトの bit 1~7 が Configuration ゾーン内の I2C_Address バイトの bit 1~7 に一致するとその

ATECC608A-TFLXTLS が選択されますこのバイトの bit 0 は標準 I2C の RW ビットであ

り読み出し動作(デバイスアドレス バイトに続くバイトをスレーブからマスタへ転送す

る)を示す「1」である事が必要です

Data Data1N To master 出力グループはカウントバイト + ステータスエラーバイトまたは出力パケット + 2 バイト

の CRC で構成されます 41 「IO トランザクション」を参照してください

マスタはステータスエラーコマンド出力を繰り返し読み出せますI2C インターフェイスを介して ATECC608A-TFLXTLS へ読み出しコマンドが送信されるたびにデバイスは出力バッファ内の次のバイトを送信します本デバイス

によるアドレスカウンタの扱い方はこの後で説明します

ATECC608A-TFLXTLS がビジーアイドルスリープ状態のいずれかである場合デバイスは読み出しシーケンス中の

デバイスアドレスに対して NACK を返します部分的なコマンドがデバイスへ送信された後に読み出しシーケンス[Start + DeviceAddress(RW == R)] がデバイスへ送信された場合ATECC608A-TFLXTLS はデバイスアドレスに対して NACKを返す事で読み出し可能なデータが存在しない事を示します

Datasheet DS40002138A_JP - p 82 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

8 単線式インターフェイス

このモードではSDA ライン(1 本の非同期ライン)を介して ATECC608A-TFLXTLS と双方向に通信しますSCL ピ

ンは通信チャンネルとして使われないためGPIO ピンとして使う事ができます

全体の通信構造は以下の通りに階層化されます

トークン IO トークンはバス上で送信される 1 個のデータビットまたは復帰イベントを実装します

フラグ フラグは 8 個のトークン (ビット)で構成され次に送信されるビットのグループの方向と意味を示します

グループ コマンドと送信フラグに続くデータのグループですこれらのグループは正しくデータを転送するため

にバイト数情報とチェックサムの両方を含みます

パケット グループのコアを形成するバイトのパケットです (バイト数と CRC を含まず )パケットは

CryptoAuthentication コマンドの入出力パラメータまたは ATECC608A- TFLXTLS からのステータス

情報のどちらかです

任意のマイクロコントローラを使ってこれらのエレメントを本デバイスへ送信するための信号生成方法は関連する

アプリケーション ノートを参照してくださいそれらのアプリケーション ノート(C ソースコード ライブラリを含む)は弊社ウェブサイトからダウンロードできます単線式インターフェイス モードで本デバイスを接続する方法は

85 「単線式インターフェイスの接続設定」を参照してください

81 IO トークン 単線式インターフェイスを介して以下の IO トークンを伝送できます

bull 入力(システムから ATECC608A-TFLXTLS への入力) ndash Wake 本デバイスをスリープまたはアイドルモードから復帰させるかIO インターフェイスをリセットし

ます ndash Zero システムから本デバイスへ値が「0」の 1 個のビットを送信します ndash One システムから本デバイスへ値が「1」の 1 個のビットを送信します

bull 出力(ATECC608A-TFLXTLS からシステムへの出力) ndash ZeroOut 本デバイスからシステムへ値が「0」の 1 個のビットを送信します ndash OneOut 本デバイスからシステムへ値が「1」の 1 個のビットを送信します

波形はどちらの伝送方向でも基本的に同じですしかしホスト側のクロックは高精度で安定しているのに対し

ATECC608A-TFLXTLS の内部クロック ジェネレータには製品ごとのばらつき(製造ばらつきと環境の影響による変動)があるためタイミングに多少の違いが生じます

ビットタイミングは2304 k baud レートの標準 UART 動作でトークンを効率的に送受信できるよう設定されていま

すUART により送受信される各バイトはデバイスによって送受信される単一ビットに対応します

Wake トークンには SDA ピン上で特別に長い Low パルスが必要ですこれによりデータトークン(ZeroOneZeroOutOneOut) 中に発生する短い Low パルスから区別されますアイドルまたはスリープモード中のデバイスは

正しい Wake トークンを受信するまで全てのデータトークンを無視しますプロセッサが ATECC608A と同期してい

ない場合プロセッサは追加の Wake トークンを本デバイスへ送信する事により本デバイス上の IO チャンネル ハードウェアをリセットできます

Note  リセットによりコマンド出力バッファに保存されているデータは失われます

82 IO フラグ システムが常にバスマスタとなります従って全ての IO トランザクションを開始する前にシステムから本デバイ

スへ 8 ビットフラグを送信する事でこの後に IO 動作が続く事をデバイスに知らせる必要があります

Datasheet DS40002138A_JP - p 83 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

表 8-1 IO フラグ

値 名称 意味

0x77 Command このフラグの後にシステムは本デバイスへのコマンドグループの送信を開始しますこのフラグの最

後のビットの直後にコマンドグループの最初のビットを送信できます

0x88 Transmit このフラグはバス ターンアラウンド時間を待機した後に直前に送信されたコマンドグループに対

する応答の送信を開始するようデバイスに伝えます

0xBB Idle 本デバイスはこのフラグを受信するとアイドルモードに移行し次の Wake トークンを受信するまで

アイドルモードを維持します

0xCC Sleep 本デバイスはこのフラグを受信すると低消費電力スリープモードに移行し次の Wake トークンを受

信するまでスリープモードを維持します

Note  これ以外の値は全て予約済みです(使用できません)

bull Transmit フラグ Transmit フラグはATECC608A-TFLXTLS がデータをシステムへ返送できるようバスの伝送方向を変更しま

すデバイスからシステムへ返されるバイトはデバイスの現在のステートに応じてステータスエラーコー

ドコマンド結果のいずれかを含みます

デバイスはコマンドの実行中(ビジー状態の時)に SDA ピンとシステムから送信される全てのフラグを無視し

ます各コマンドの実行遅延については「コマンドのまとめ」を参照してくださいシステムはコマンドを

本デバイスへ送信した後にこれらの遅延を順守する必要があります bull Idle フラグ

Idle フラグはATECC608A-TFLXTLS をアイドルモードに移行させるために使いますこれにより入力出力バ

ッファはクリアされますがTempKeyメッセージ ダイジェスト バッファ代替鍵レジスタの内容は無効にな

りませんこのフラグは本デバイスがフラグを受け入れる限りいつでも送信できます本デバイスがアイド

ルモード中の時にウォッチドッグ タイマは無効です bull Sleep フラグ

Sleep フラグは ATECC608A-TFLXTLS を低消費電力スリープモードに移行させますこれにより本デバイス

は完全にリセットされSRAM と全ての揮発性レジスタの内容は無効になりますこのフラグは本デバイス

がフラグを受け入れる限りいつでも送信できます

83 同期 この通信プロトコルは半二重であるためシステムと ATECC608A- TFLXTLS の間の同期が失われる可能性がありま

す速やかに同期を回復するため本デバイスは特定の状況でスリープへの移行を強制するタイムアウトを実装して

います

831 IO タイムアウト データトークンの受信によって最初の遷移(リーディング エッジ)が発生した後ATECC608A-TFLXTLS は tTIMEOUT以内にそのトークンの完了と次のトークンの開始(現在のトークンがグループの最後のトークンではない場合)を正し

く受信する事を期待します十分な数のビットが送信されなかった場合または無効なトークンが送信された(Lowパルスが tZLOを超えた)場合tTIMEOUT後にデバイスはスリープモードに移行します

コマンドグループの送信中にも同じタイムアウトが適用されます正しいコマンドフラグが送信された後IO タイ

ムアウト回路は期待する最後のデータビットを受信するまで有効になります

Note  タイムアウト カウンタは正しいトークンが受信されるたびにリセットされます従ってコマンド送信の

総時間は tTIMEOUTを超えても構いませんがビットとビットの間の時間は tTIMEOUTを超えない事が必要です

IO タイムアウト回路はデバイスがコマンドの実行中(ビジー中)である時に無効になります

832 同期手順 システムが送信フラグを送信した時にデバイスがビジーではなかった場合デバイスは tTURNAROUND 以内に応答する

必要がありますtEXECが過ぎるまではデバイスはビジーである可能性がありシステムは最大 tEXECが過ぎるまで

ポーリングまたは待機する必要があります

Datasheet DS40002138A_JP - p 84 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 単線式インターフェイス

2 回目の送信フラグに対してもデバイスが tTURNAROUND 以内に応答しない場合同期が失われている可能性がありま

すこの場合システムは以下の手順により通信を再確立できます

1 tTIMEOUTを待機する 2 送信フラグを送信する 3 デバイスが tTURNAROUND以内に応答した場合システムは後続のコマンドを送信できる 4 Wake トークンを送信する 5 tWHIが過ぎるまで待機する 6 Transmit フラグを送信する 7 デバイスが tTURNAROUND以内にステータス 0x11 で応答した場合システムは後続のコマンドを送信できる

84 GPIO SWI モードの ATECC608A-TFLXTLS ではSCL ピンを汎用出力ピンとして設定できますデバイスへの電源投入時

の出力信号は Low ですこの出力の状態はGPIO Output モードの INFO コマンドを使って変更できます

GPIO はシステム内の他のデバイスに対するイネーブルまたはモード信号として使える他LED の駆動用に使えま

すI2C モードのデバイスではGPIO 信号は使えません

85 単線式インターフェイスの接続 単線式インターフェイスを使うと1 本のピン(SDA)だけで ATECC608A-TFLXTLS とホストの間の双方向データ転送

ができますこのインターフェイスは SCL ピンを使わないためSCL ピンは GPIO 出力として設定できます

内部ダイオードが順方向にバイアスされて電源プレーンからシステムに電流が引き込まれる事を防ぐためSDA ピン

のプルアップ抵抗を VCCピンに接続している同じ電源またはそれより電圧が低いレールに接続する必要があります

ATECC608A-TFLXTLS は固定された IO レベル向けに設定されているためSDA の信号レベルは VCC 電圧レベルと

異なる場合がありますこのような状況はATECC608A-TFLXTLS とバスマスタ デバイスの間の物理的距離が大き

い場合またはバスマスタの電源電圧が ATECC608A-TFLXTLS の電源電圧と異なる場合に生じる可能性があります

図 8-1 単線式インターフェイスの接続(3 線接続)

Datasheet DS40002138A_JP - p 85 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

9 電気的特性

91 絶対最大定格

動作温度

-40~+85

保管温度 -65~+150 最大動作電圧 60 V

DC 出力電流 50 mA

全ピンの電圧 -05 V~ (VCC + 05 V) ESD 耐圧 HBM gt 4 kV

CDM gt 1kV

Note  ここに記載した「絶対最大定格」を超える条件はデバイスに恒久的な損傷を生じさせる可能性があります

これはストレス定格です本書の動作表に示す条件外でのデバイスの運用は想定していません絶対最大定格条件を

超えて長期間曝露させるとデバイスの信頼性に影響が及ぶ可能性があります

92 信頼性 ATECC608A-TFLXTLS は Microchip 社の高信頼性 CMOS EEPROM 製造技術を採用しています

表 9-1 EEPROM の信頼性

パラメータ Min Typ Max 単位

書き込み耐性 +85 (各バイト) 400000 mdash mdash 書き込みサイクル

データ保持寿命 +55 10 mdash mdash 年

データ保持寿命 +35degC 30 50 mdash 年

読み出し耐性 制限なし 読み出しサイクル

93 AC パラメータ 全 IO インターフェイス 図 9-1 AC タイミング図 全インターフェイス

Datasheet DS40002138A_JP - p 86 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-2 AC パラメータ 全 IO インターフェイス

パラメータ シンボル 方向 Min Typ Max

単位 条件

電源投入遅延(2) tPU To Crypto Authentication

100 mdash mdash micros VCC gt VCCmin から tWLOの開始までの最小

時間

復帰 LOW 期間 tWLO To Crypto Authentication

60 mdash mdash micros

データ通信開始前

の復帰 HIGH 遅延 tWHI To Crypto

Authentication 1500 mdash mdash micros ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります電源投入時にセルフテスト

機能は無効です

セルフテスト機能

が有効な場合の 復帰 HIGH 遅延

tWHIST To Crypto Authentication

20 mdash mdash ms ポーリングが未実装の場合この期間中

に SDA が安定して High を保持する必要

があります

アクティブ時 High レベル グリッチフィルタ

tHIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

アクティブ時 Low レベル グリッチフィルタ

tLIGNORE_A To Crypto Authentication

45(1) mdash mdash ns アクティブ時にデバイスはそのステー

トに関係なくこの時間より短いパルス

を無視します

スリープ時 Low レベル グリッチフィルタ

tLIGNORE_S To Crypto Authentication

15(1) mdash mdash micros スリープモード時にデバイスはこの時

間より短いパルスを無視します

ウォッチドッグ タイムアウト

tWATCHDOG To Crypto Authentication

07 13 17 s ConfigChipMode[2] = 0 の場合復帰し

てからデバイスをスリープモードへ移行

させるまでの時間です

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 Configuration ゾーン内で電源投入時セルフテスト機能が有効にされている場合電源投入遅延時間は大幅に増

加します

931 AC パラメータ I2C インターフェイス 図 9-2 I2C 同期データ タイミング

Datasheet DS40002138A_JP - p 87 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-3 I2C インターフェイスの AC 特性 特に明記しない限りTA = -40~+ +85degCVCC = +20~+55 VCL = 1 TTL ゲート+100 pF の推奨動作レンジに適用

パラメータ シンボル Min Max 単位

SCL クロック周波数 fSCL 0 1 MHz

SCL High 時間 tHIGH 400 mdash ns

SCL Low 時間 tLOW 400 mdash ns

スタート条件セットアップ時間 tSUSTA 250 mdash ns

スタート条件ホールド時間 tHDSTA 250 mdash ns

ストップ条件セットアップ時間 tSUSTO 250 mdash ns

データ入力セットアップ時間 tSUDAT 100 mdash ns

データ入力ホールド時間 tHDDAT 0 mdash ns

入力立ち上がり時間(1)

tR mdash 300 ns

入力立ち下がり時間(1)

tF mdash 100 ns

クロック LOW からデータ出力確定までの時間 tAA 50 550 ns

データ出力ホールド時間 tDH 50 mdash ns

SMBus タイムアウト遅延 tTIMEOUT 25 75 ms

次の伝送が開始可能になるまでに必要なバスフリー時間(1)

tBUF 500 mdash ns

Note  1 これらのパラメータは特性データであり製造時の検査は実施していません 2 AC 計測条件

ndash RL (SDA と VCCの間を接続) 12 kΩ (VCC = +20~+50 V) ndash 入力パルス電圧 03VCC ~07VCC

ndash 入力立ち上がり立ち下がり時間 le 50 ns ndash 入出力タイミング参照電圧 05VCC

932 AC パラメータ 単線式インターフェイス

図 9-3 AC タイミング図 単線式インターフェイス

Datasheet DS40002138A_JP - p 88 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

表 9-4AC パラメータ 単線式インターフェイス

特に明記しない限りTA = -40~+85 VCC = +20~+55 VCL =100 pF に適用

パラメータ シンボル 方向 Min Typ Max 単位 条件

開始パルス期間 tSTART To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 HIGH パルス

tZHI To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

0 送信 LOW パルス

tZLO To Crypto Authentication

410 434 456 micros

From Crypto Authentication

460 6 860 micros

ビット時間(note) tBIT To Crypto Authentication

37 39 mdash micros ビット時間が tTIMEOUTを超えると

ATECC608A-TFLXTLS はスリープモ

ードへ移行できます

From Crypto Authentication

41 54 78 micros

ターンアラウンド

遅延 tTURNAROUND From Crypto

Authentication 64 96 131 micros 送信フラグの最終ビットの開始パルス

の最初の立ち下がりエッジからこの時

間が経過するとATECC608A-TFLXTLS は最初の LOW への遷移を開

始します

To Crypto Authentication

93 mdash mdash micros ATECC608A-TFLXTLS が一連のビッ

トの最後のビットを送信した後 シス

テムはフラグの最初のビットを送信す

る前にこの時間が過ぎるまで待機す

る必要がありますこの時間は

ATECC608A-TFLXTLS が送信した最

後のビットの開始パルスの立ち下がり

エッジから計測されます IO タイムアウト tTIMEOUT To Crypto

Authentication 45 65 85 ms バスの非アクティブ状態がこの時間よ

りも長く続くとATECC608A-TFLXTLS はスリープモードへ移行でき

ます

Note  tSTARTtZLOtZHItBITは送信と受信の両方で標準 UART (2304 kBaud で動作)と互換性を持つよう設定されて

いますUART は 7x データビットパリティなし1x ストップビットに設定する必要があります

94 DC パラメータ 全 IO インターフェイス 表 9-5 全 IO インターフェイスの DC パラメータ

パラメータ シンボル Min Typ Max 単位 条件

動作時周囲温度 TA -40 mdash +85

電源電圧 VCC 20 mdash 55 V

アクティブ時消費電流 ICC mdash 2 3 mA IO 転送中の IO 待機時または非 ECC コマンドの実行時(クロック分周値とは無関係)

Datasheet DS40002138A_JP - p 89 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

続き

パラメータ シンボル Min Typ Max 単位 条件

mdash mdash 14 mA ECC コマンドの実行時(クロック分周比 = 0x0)

アイドル時消費電流 IIDLE mdash 800 mdash microA デバイスがアイドルモード中の時 VSDAおよび VSCL lt 04 V または gt VCC - 04 V

スリープ電流 ISLEEP mdash 30 150 nA デバイスがスリープモード中の時VCC le 36 V VSDAおよび VSCL lt 04 V または gt VCC ndash 04 VTA le +55degC

mdash mdash 2 microA デバイスがスリープモード中の時 VCCおよび温度の全レンジに適用

出力 Low 電圧 VOL mdash mdash 04 V デバイスがアクティブモード中の時VCC = 25~55 V

出力 Low 電流 IOL mdash mdash 4 mA デバイスがアクティブモード中の時VCC = 25~55 V VOL = 04 V

接合部-大気間熱抵抗 ƟJA mdash 166 mdash W SOIC (SSH)

mdash 173 mdash W UDFN (MAH)

mdash 146 mdash W RBH

95 VIH VIL 仕様 デバイスの入力レベルはデバイスのモードと電圧に応じて変化しますスリープまたはアイドルモード中の入力電圧し

きい値は図 9-4 に示す通りVCC レベルに応じて変化しますスリープまたはアイドルモード中はTTLenable ビット

は効力を有しません

ATECC608A-TFLXTLS のアクティブ入力レベルは固定されておりVCC レベルと一緒に変化しませんデバイスへ送信さ

れる入力レベルは下表に従う必要があります

表 9-6 全 IO インターフェイスでの VILと VIH (TTLenable = 0)

パラメータ シンボル Min Typ Max 単位 条件

入力 Low 電圧 VIL -05 mdash 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

入力 High 電圧 VIH 15 mdash VCC + 05 V デバイスがアクティブかつコンフィグレーション メモリ

内の TTLenable ビットが「0」の場合(これ以外の場合は

上記参照)

Datasheet DS40002138A_JP - p 90 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 電気的特性

図 9-4 スリープおよびアイドルモード中の VIH と VIL

Datasheet DS40002138A_JP - p 91 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

10 パッケージ図面

101 パッケージのマーキング情報

Microchip 社の全体的なセキュリティ対応の一貫として全ての暗号デバイスの製品マーキングは意図的に曖昧にされ

ていますパッケージ上面のマークはデバイスのタイプやデバイスの製造者に関する情報を一切提供しませんパ

ッケージ上の英数字コードは製造情報を提供しアセンブリロットに応じて異なりますパッケージのマークはお

客様の受領検査の項目に含めないでください

Datasheet DS40002138A_JP - p 92 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

102 8 ピン UDFN

Datasheet DS40002138A_JP - p 93 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 94 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 95 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

103 8 ピン SOIC

Datasheet DS40002138A_JP - p 96 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 97 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS パッケージ図面

Datasheet DS40002138A_JP - p 98 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS 改訂履歴

11 改訂履歴

リビジョン A (2019 年 9 月) 本書は初版です

Datasheet DS40002138A_JP - p 99 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Microchip 社のウェブサイト

Microchip 社はウェブサイト(wwwmicrochipcom)を通してオンライン サポートを提供しています当ウェブサイトで

はお客様に役立つ情報やファイルを簡単に見つけ出せます以下を含む各種の情報がご覧になれます

bull 製品サポート - データシートとエラッタアプリケーション ノートとサンプル プログラム設計リソースユ

ーザガイドとハードウェア サポート文書最新のソフトウェアと過去のソフトウェア bull 技術サポート ndash よく寄せられる質問(FAQ)技術サポートのご依頼オンライン ディスカッション グループ

Microchip 社のコンサルタント プログラムおよびメンバーリスト bull ご注文とお問い合わせ - 製品セレクタと注文ガイド最新プレスリリースセミナーイベントの一覧お問い合

わせ先(営業所販売代理店)の一覧 顧客変更通知サービス

Microchip 社のお客様向け変更通知サービスはお客様に Microchip 社製品の最新情報をお届けする配信サービスです

ご興味のある製品ファミリまたは開発ツールに関する変更更新リビジョンエラッタ情報をいち早くメールにて

お知らせします

httpwwwmicrochipcompcn にアクセスし登録手続きをしてください カスタマサポート

Microchip 社製品をお使いのお客様は以下のチャンネルからサポートをご利用になれます

bull 正規代理店 bull 弊社営業所 bull 組み込みソリューション エンジニア(ESE) bull 技術サポート

サポートは販売代理店にお問い合わせください各地の営業所もご利用になれます本書の最後のページに各国の営

業所の一覧を記載しています

技術サポートは以下のウェブページからもご利用になれます

httpwwwmicrochipcomsupport

Datasheet DS40002138A_JP - p 100 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

製品識別システム

ご注文や製品の価格納期につきましては弊社または販売代理店にお問い合わせください

製品番号 X -X

デバイス パッケージタイプ テープampリール

デバイス ATECC608A-TFLXTLS セキュアなハードウェア ベース鍵ストレージを備えた設定

済み暗号コプロセッサ

パッケージ オプション U 8 ピン 2 x 3 x 06 mm ボディ熱的に強化された Plastic Ultra Thin Dual Flat (UDFN) 鉛フリー パッケージ

S 8 ピン(0150幅ボディ)Plastic Gull Wing Small Outline (JEDEC SOIC)

テープampリール オプション 2K 個入りリール

PROTO 10 ユニットバルク - プロトタイプ ユニット

例 bull ATECC608A-TFLXTLSU Trust Flex TLSプロビジョニング済み8-UDFN2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSU-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-UDFN10 個入り

バルクSWI または I2C インターフェイス bull ATECC608A-TFLXTLSS Trust Flex TLSプロビジョニング済み8-SOIC2K 個入りリール MOQSWI また

は I2C インターフェイス bull ATECC608A-TFLXTLSS-PROTO Trust Flex TLSプロビジョニング済みプロトタイプ8-SOIC10 個入りバ

ルクSWI または I2C インターフェイス

Datasheet DS40002138A_JP - p 101 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

Note 

1 テープampリールの識別情報はカタログの製品番号説明にのみ記載していますこれは製品の注文時に使う識別

情報でありデバイスのパッケージには印刷していませんテープリールが選択できるパッケージの在庫供給状況は弊社にお問い合わせください

Microchip 社のデバイスコード保護機能

Microchip 社製デバイスのコード保護機能について以下の点にご注意ください

bull Microchip 社製品は該当する Microchip 社データシートに記載の仕様を満たしています bull Microchip 社では通常の条件ならびに仕様に従って使用した場合Microchip 社製品のセキュリティ レベルは

現在市場に流通している同種製品の中でも最も高度であると考えています bull しかしコード保護機能を解除するための不正かつ違法な方法が存在する事もまた事実です弊社の理解では

こうした手法は全て Microchip 社データシートにある動作仕様書以外の方法で Microchip 社製品を使用する事に

なりますこのような行為は知的所有権の侵害に該当する可能性が非常に高いと言えます bull Microchip 社はコードの保全性に懸念を抱いているお客様と連携して対応策に取り組んでいきます bull Microchip 社を含む全ての半導体メーカーで自社のコードのセキュリティを完全に保証できる企業はありませ

んコード保護機能とはMicrochip 社が製品を「解読不能」として保証するものではありません

コード保護機能は常に進歩していますMicrochip 社では常に製品のコード保護機能の改善に取り組んでいます

Microchip 社のコード保護機能の侵害はデジタル ミレニアム著作権法に違反しますそのような行為によってソフ

トウェアまたはその他の著作物に不正なアクセスを受けた場合はデジタル ミレニアム著作権法の定めるところによ

り損害賠償訴訟を起こす権利があります 法律上の注意点

本書に記載されているデバイス アプリケーション等の情報はユーザの便宜のためにのみ提供されるものであり更

新によって変更となる事がありますお客様のアプリケーションが仕様を満たす事を保証する責任はお客様にあり

ますMicrochip 社は明示的暗黙的書面口頭法定のいずれであるかを問わず本書に記載されている情報に

関して状態品質性能商品性特定目的への適合性をはじめとするいかなる類の表明も 保証も行いませんMicrochip 社は本書の情報およびその使用に起因する一切の責任を否認しますMicrochip 社の

明示的な書面による承認なしに生命維持装置あるいは生命安全用途に Microchip 社の製品を使用する事は全て購入

者のリスクとしまた購入者はこれによって発生したあらゆる損害クレーム訴訟費用に関してMicrochip 社は

擁護され免責され損害をうけない事に同意するものとします特に明記しない場合暗黙的あるいは明示的を問

わずMicrochip 社が知的財産権を保有しているライセンスは一切譲渡されません 商標

Microchip 社の名称とロゴMicrochip ロゴAdaptecAnyRateAVRAVR ロゴAVR FreaksBesTimeBitCloudchipKITchipKIT ロゴCryptoMemoryCryptoRFdsPICFlashFlexflexPWRHELDOIGLOO

JukeBloxKeeLoqKleerLANCheckLinkMDmaXStylusmaXTouchMediaLBmegaAVRMicrosemiMicrosemi ロゴMOSTMOST ロゴMPLABOptoLyzerPackeTimePICpicoPowerPICSTARTPIC32 ロ

ゴPolarFireProchip DesignerQTouchSAM-BASenGenuitySpyNICSSTSST ロゴSuperFlashSymmetricomSyncServerTachyonTempTrackrTimeSourcetinyAVRUNIOVectronXMEGA は米国お

よびその他の国における Microchip Technology Incorporated の登録商標です

APTClockWorksThe Embedded Control Solutions CompanyEtherSynchFlashTecHyper Speed ControlHyperLight LoadIntelliMOSLiberomotorBenchmTouchPowermite 3Precision EdgeProASICProASIC PlusProASIC Plus ロゴQuiet-WireSmartFusionSyncWorldTemuxTimeCesiumTimeHubTimePictraTimeProviderViteWinPathZL は米国における Microchip Technology Incorporated の登録商標です

Adjacent Key SuppressionAKSAnalog-for-the-Digital AgeAny CapacitorAnyInAnyOutBlueSkyBodyCom

CodeGuard CryptoAuthentication CryptoAutomotive CryptoCompanion CryptoController dsPICDEM

dsPICDEMnetDynamic Average MatchingDAMECANEtherGREENIn-Circuit Serial ProgrammingICSPINICnetInter-Chip ConnectivityJitterBlockerKleerNetKleerNet ロゴmemBrainMindiMiWiMPASM

MPF

Datasheet DS40002138A_JP - p 102 copy 2020 Microchip Technology Inc

ATECC608A-TFLXTLS

MPLAB Certified ロゴMPLIBMPLINKMultiTRAKNetDetachOmniscient Code GenerationPICDEM

PICDEMnetPICkitPICtailPowerSmartPureSiliconQMatrixREAL ICERipple BlockerSAM-ICESerial Quad IOSMART-ISSQISuperSwitcherSuperSwitcher IITotal EnduranceTSHARCUSBCheckVariSenseViewSpanWiperLockWireless DNAZENA は米国およびその他の国における Microchip Technology Incorporated の商標です

SQTP は米国における Microchip Technology Incorporated のサービスマークです

Adaptec ロゴFrequency on DemandSilicon Storage TechnologySymmcom はその他の国における Microchip Technology Incorporated の登録商標です

GestIC はその他の国における Microchip Technology Germany II GmbH amp Co KG (Microchip Technology Incの子会

社)の登録商標です

その他の商標は各社に帰属します copy 2019 Microchip Technology Incorporated Printed in the USA All Rights Reserved

ISBN 978-1-5224-5254-6

品質管理システム

Microchip 社の品質管理システムについてはhttpwwwmicrochipcomquality をご覧ください

Datasheet DS40002138A_JP - p 103 copy 2020 Microchip Technology Inc

各国の営業所とサービス

北米 アジア太平洋 アジア太平洋 ヨーロッパ

本社 オーストラリア - シドニー インド - バンガロール オーストリア - ヴェルス 2355 West Chandler Blvd Tel61-2-9868-6733 Tel91-80-3090-4444 Tel43-7242-2244-39 Chandler AZ 85224-6199 中国 - 北京 インド - ニューデリー Fax43-7242-2244-393 Tel480-792-7200 Tel86-10-8569-7000 Tel91-11-4160-8631 デンマーク - コペンハーゲン Fax480-792-7277 中国 - 成都 インド - プネ Tel45-4450-2828 技術サポート Tel86-28-8665-5511 Tel91-20-4121-0141 Fax45-4485-2829 httpwwwmicrochipcomsupport 中国 - 重慶 日本 - 大阪 フィンランド - エスポー URL Tel86-23-8980-9588 Tel81-6-6152-7160 Tel358-9-4520-820 httpwwwmicrochipcom 中国 - 東莞 日本 - 東京 フランス - パリ アトランタ Tel86-769-8702-9880 Tel81-3-6880- 3770 Tel33-1-69-53-63-20 Duluth GA 中国 - 広州 韓国 - 大邱 Fax33-1-69-30-90-79 Tel678-957-9614 Tel86-20-8755-8029 Tel82-53-744-4301 ドイツ - ガーヒング Fax678-957-1455 中国 - 杭州 韓国 - ソウル Tel49-8931-9700 オースティンTX Tel86-571-8792-8115 Tel82-2-554-7200 ドイツ - ハーン Tel512-257-3370 中国 - 香港 SAR マレーシア - クアラルンプール Tel49-2129-3766400 ボストン Tel852-2943-5100 Tel60-3-7651-7906 ドイツ - ハイルブロン Westborough MA 中国 - 南京 マレーシア - ペナン Tel49-7131-72400 Tel774-760-0087 Tel86-25-8473-2460 Tel60-4-227-8870 ドイツ - カールスルーエ Fax774-760-0088 中国 - 青島 フィリピン - マニラ Tel49-721-625370 シカゴ Tel86-532-8502-7355 Tel63-2-634-9065 ドイツ - ミュンヘン Itasca IL 中国 - 上海 シンガポール Tel49-89-627-144-0 Tel630-285-0071 Tel86-21-3326-8000 Tel65-6334-8870 Fax49-89-627-144-44 Fax630-285-0075 中国 - 瀋陽 台湾 - 新竹 ドイツ - ローゼンハイム ダラス Tel86-24-2334-2829 Tel886-3-577-8366 Tel49-8031-354-560 Addison TX 中国 - 深圳 台湾 - 高雄 イスラエル - ラーナナ Tel972-818-7423 Tel86-755-8864-2200 Tel886-7-213-7830 Tel972-9-744-7705 Fax972-818-2924 中国 - 蘇州 台湾 - 台北 イタリア - ミラノ デトロイト Tel86-186-6233-1526 Tel886-2-2508-8600 Tel39-0331-742611 Novi MI 中国 - 武漢 タイ - バンコク Fax39-0331-466781 Tel248-848-4000 Tel86-27-5980-5300 Tel66-2-694-1351 イタリア - パドヴァ ヒューストンTX 中国 - 西安 ベトナム - ホーチミン Tel39-049-7625286 Tel281-894-5983 Tel86-29-8833-7252 Tel84-28-5448-2100 オランダ - ドリューネン インディアナポリス 中国 - 厦門 Tel31-416-690399 Noblesville IN Tel86-592-2388138 Fax31-416-690340 Tel317-773-8323 中国 - 珠海 ノルウェー - トロンハイム Fax317-773-5453 Tel86-756-3210040 Tel47-72884388 Tel317-536-2380 ポーランド - ワルシャワ ロサンゼルス Tel48-22-3325737 Mission Viejo CA ルーマニア - ブカレスト Tel949-462-9523 Tel40-21-407-87-50 Fax949-462-9608 スペイン - マドリッド Tel951-273-7800 Tel34-91-708-08-90 ローリーNC Fax34-91-708-08-91 Tel919-844-7510 スウェーデン - ヨーテボリ ニューヨークNY Tel46-31-704-60-40 Tel631-435-6000 スウェーデン - ストックホルム サンノゼCA Tel46-8-5090-4654 Tel408-735-9110 イギリス - ウォーキンガム Tel408-436-4270 Tel44-118-921-5800 カナダ - トロント Fax44-118-921-5820 Tel905-695-1980 Fax905-695-2078

  • はじめに
  • 特長
  • 応用例
  • 1 ピンの構成と配置
    • 表1-1ピン配置
    • 図 1-1 UDFNおよびSOICパッケージのピン配置
      • 2 EEPROMメモリの構成とDataゾーンアクセスポリシー
        • 表2-1 ATECC608A-TFLXTLSのEEPROMゾーン
        • 表2-2 本書内の用語の意味
        • 21 ATECC608A-TFLXTLSのConfigurationゾーン
          • 表2-3 ATECC608A-TFLXTLSのConfigurationゾーン設定
          • 211 Configurationゾーン内の変更可能なバイト
            • SlotLockedビット
            • I2Cアドレスの再定義
            • UserExtraバイト
            • Counter[01]
                • 22 Dataゾーンとアクセスポリシー
                  • 221 Dataゾーンのデータタイプ
                    • 2211 秘密鍵
                      • プライマリ秘密鍵
                      • セカンダリ秘密鍵
                      • 鍵の証明(Key Attestation)
                        • 2212 公開鍵
                          • ペアレント公開鍵
                          • 有効な公開鍵
                            • 2213 証明書の動的保存
                              • デバイス証明書
                              • 署名者証明書
                              • 署名者公開鍵
                                • 2214 セキュアブート
                                  • セキュアブート ダイジェスト
                                  • セキュアブート公開鍵
                                    • 2215 秘密鍵
                                    • 2216 AES鍵ストレージ
                                    • 2217 IO保護鍵
                                    • 2218 一般的データストレージ
                                      • 222 スロット設定の用語
                                        • 用語 意味
                                          • 223 ATECC608A-TFLXTLSのスロット設定のまとめ
                                          • 224 ATECC608A-TFLXTLSスロット アクセスポリシーの詳細
                                            • スロットロック オプション
                                            • Permanent Lock
                                            • セキュアブート オプション
                                            • 持続性ラッチの動作
                                            • プロトタイプ デバイス
                                            • スロット設定の詳細
                                            • 表2-4 スロット0の設定情報
                                            • 表2-5 スロット1の設定情報
                                            • 表2-6 スロット2~4の設定情報
                                            • 表2-7 スロット5の設定情報
                                            • 表2-8 スロット6の設定情報
                                            • 表2-9 スロット7の設定情報
                                            • 表2-10 スロット8の設定情報
                                            • 表2-11 スロット9の設定情報
                                            • 表2-12 スロット10の設定情報
                                            • 表2-13 スロット11の設定情報
                                            • 表2-14 スロット12の設定情報
                                            • 表2-15 スロット13の設定情報
                                            • 表2-16 スロット14の設定情報
                                            • 表2-17 スロット15の設定情報
                                            • Note 
                                                • 23 ATECC608A-TFLXTLSのEEPROM OTP (One Time Programmable)ゾーン
                                                  • I2Cデバイス バージョン
                                                  • SWIデバイス バージョン
                                                      • 3 スタティックRAM (SRAM)メモリ
                                                        • 31 TempKey
                                                          • 表3-1 TempKeyフラグ
                                                            • 32 メッセージ ダイジェスト バッファ
                                                            • 33 代替鍵バッファ
                                                            • 34 SHAコンテクスト バッファ
                                                              • 4 一般コマンド情報
                                                                • 41 IOトランザクション
                                                                  • 表4-1 IOトランザクションのフォーマット
                                                                    • 42 コマンドパケット
                                                                      • 表4-2 コマンドパケット
                                                                        • 43 ステータスエラーコード
                                                                          • 表4-3 4バイトグループ内のステータエラーコード
                                                                            • 44 アドレスの指定
                                                                              • 441 Configurationゾーンのアドレス指定
                                                                                • 表4-4 アドレスのフォーマット
                                                                                • 表4-5 Configurationゾーンのアドレス
                                                                                  • 442 OTPゾーンのアドレス指定
                                                                                    • 表4-6 アドレスのフォーマット
                                                                                    • 表4-7 OTPゾーンのバイトアドレス
                                                                                      • 443 Dataゾーンのアドレス指定
                                                                                        • 表4-8 データスロットのアドレス フォーマット
                                                                                        • データスロット[70]
                                                                                        • 表4-9 Dataゾーンアドレス - スロット0~7
                                                                                        • データスロット[8]
                                                                                        • 表4-10 Dataゾーンアドレス - スロット8
                                                                                        • データスロット[159]
                                                                                        • 表4-11 Dataゾーンアドレス - スロット9~15
                                                                                            • 45 鍵署名証明書のフォーマット
                                                                                              • 451 ECC鍵のフォーマット
                                                                                                • bull 書き込みコマンド
                                                                                                • bull GenKeyコマンド
                                                                                                • bull Verifyコマンド
                                                                                                • 4511 公開鍵のフォーマット
                                                                                                  • コマンドに関わる公開鍵のフォーマット
                                                                                                  • 保存された公開鍵のフォーマット
                                                                                                  • 保存された有効な公開鍵のフォーマット
                                                                                                      • 452 署名のフォーマット
                                                                                                        • RS署名の例
                                                                                                          • 453 証明書の保存
                                                                                                            • 表4-12 証明書の保存
                                                                                                            • Note  
                                                                                                              • 5 デバイスコマンド
                                                                                                                • 1 一般デバイスコマンド
                                                                                                                • 2 非対称暗号コマンド
                                                                                                                • 3 対称暗号コマンド
                                                                                                                • 全てのコマンドの入力パラメータ
                                                                                                                • 51 一般デバイスコマンド
                                                                                                                  • 表5-1 一般デバイスコマンド
                                                                                                                  • 511 Counterコマンド
                                                                                                                    • 表5-2 入力パラメータ Counter
                                                                                                                    • 表5-3 出力レスポンス Counter
                                                                                                                      • 512 Infoコマンド
                                                                                                                        • 5121 Info - Revision
                                                                                                                          • 表5-4 入力パラメータ I nfo - Revision
                                                                                                                          • 表5-5 出力レスポンス Info - Revision
                                                                                                                            • 5122 Info - KeyValid
                                                                                                                              • 表5-6 入力パラメータ Info - KeyValid
                                                                                                                              • 表5-7 出力レスポンス Info - KeyValid
                                                                                                                                • 5123 Info - Device State
                                                                                                                                  • 表5-8 入力パラメータ Info - Device State
                                                                                                                                  • 表5-9 出力レスポンス Info - Device State
                                                                                                                                  • 表5-10 ステータスフラグ
                                                                                                                                    • 5124 Info - GPIO Output Write
                                                                                                                                      • 表5-11 入力パラメータ Info - GPIO Output Write
                                                                                                                                      • 表5-12 出力レスポンス Info - GPIO Output Write
                                                                                                                                        • 5125 Info - Persistent Latch Read
                                                                                                                                          • 表5-13 入力パラメータ Info Persistent Latch Read
                                                                                                                                          • 表5-14 出力レスポンス Info Persistent Latch Read
                                                                                                                                              • 513 Lockコマンド
                                                                                                                                                • 5131 SlotLock
                                                                                                                                                  • 表5-15 入力パラメータ SlotLock
                                                                                                                                                  • 表5-16 出力レスポンス SlotLock
                                                                                                                                                      • 514 Nonceコマンド
                                                                                                                                                        • 5141 Nonce - Random
                                                                                                                                                          • 表5-17 入力パラメータ Nonce - Random
                                                                                                                                                          • 表5-18 出力レスポンス Nonce - Random
                                                                                                                                                          • Note 
                                                                                                                                                          • 表5-19 ノンスのSHA256 HASH計算
                                                                                                                                                            • 5142 Nonce - Fixed
                                                                                                                                                              • 表5-20 入力パラメータ Nonce - Fixed
                                                                                                                                                              • 表5-21 出力レスポンス Nonce - Fixed
                                                                                                                                                              • Note 
                                                                                                                                                                  • 515 Randomコマンド
                                                                                                                                                                    • 表5-22 入力パラメータ Random
                                                                                                                                                                    • 表5-23 出力レスポンス Random
                                                                                                                                                                      • 516 Readコマンド
                                                                                                                                                                        • 5161 Clear Text Read
                                                                                                                                                                          • 表5-24 入力パラメータ C lear Text Read
                                                                                                                                                                          • 表5-25 出力レスポンス Clear Text Read
                                                                                                                                                                            • 5162 Encrypted Read
                                                                                                                                                                              • 暗号化読み出しの手順
                                                                                                                                                                              • 表5-26 入力パラメータ Encrypted Read
                                                                                                                                                                              • 表5-27 出力レスポンス Encrypted Read
                                                                                                                                                                                  • 517 SelfTestコマンド
                                                                                                                                                                                    • 表5-28 入力パラメータ SelfTest
                                                                                                                                                                                    • Note 
                                                                                                                                                                                    • 表5-29 出力レスポンス SelfTest
                                                                                                                                                                                      • 518 SHAコマンド
                                                                                                                                                                                        • 5181 SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-30 入力パラメータ SHA - SHA256 Digest
                                                                                                                                                                                          • 表5-31 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                            • 5182 SHA - HMAC Digest
                                                                                                                                                                                              • 表5-32 入力パラメータ SHA - HMAC Digest
                                                                                                                                                                                              • 表5-33 出力レスポンス SHA - SHA256 Digest
                                                                                                                                                                                                • 5183 SHA - Context Switching
                                                                                                                                                                                                  • 表5-34 入力パラメータ SHA - Context Switching
                                                                                                                                                                                                  • 表5-35 出力レスポンス SHA - Context Switching
                                                                                                                                                                                                      • 519 UpdateExtraコマンド
                                                                                                                                                                                                        • 表5-36 入力パラメータ UpdateExtra
                                                                                                                                                                                                        • 表5-37 出力レスポンス UpdateExtra
                                                                                                                                                                                                          • 5110 Writeコマンド
                                                                                                                                                                                                            • 51101 Data Zone - Clear Text Write
                                                                                                                                                                                                              • 標準的な平文書き込み
                                                                                                                                                                                                              • 無効にされた公開鍵書き込み
                                                                                                                                                                                                              • 表5-38 入力パラメータ Clear Text Write
                                                                                                                                                                                                              • 表5-39 出力レスポンス Clear Text Write
                                                                                                                                                                                                                • 51102 Dataゾーン - Encrypted Write
                                                                                                                                                                                                                  • 表5-40 入力パラメータ Encrypted Write
                                                                                                                                                                                                                  • 表5-41 出力レスポンス Encrypted Write
                                                                                                                                                                                                                  • データの暗号化
                                                                                                                                                                                                                  • 入力MACの生成
                                                                                                                                                                                                                    • 52 非対称暗号コマンド
                                                                                                                                                                                                                      • 表5-42 非対称暗号コマンド
                                                                                                                                                                                                                      • 521 ECDHコマンド
                                                                                                                                                                                                                        • 5211 ECDH - Stored Key
                                                                                                                                                                                                                          • 表5-43 入力パラメータ ECDH - Stored Key
                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                          • 表5-44 出力レスポンス ECDH - Stored Key
                                                                                                                                                                                                                            • 5212 ECDH - TempKey
                                                                                                                                                                                                                              • 表5-45 入力パラメータ ECDH - TempKey
                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                              • 表5-46 出力レスポンス ECDH - TempKey
                                                                                                                                                                                                                                  • 522 GenKeyコマンド
                                                                                                                                                                                                                                    • 5221 Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-47 入力パラメータ Private Key - Stored in Slot
                                                                                                                                                                                                                                      • 表5-48 出力レスポンス Private Key - Stored in Slot
                                                                                                                                                                                                                                        • 5222 Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-49 入力パラメータ Private Key - Stored in TempKey
                                                                                                                                                                                                                                          • 表5-50 出力レスポンス Private Key - Stored in TempKey
                                                                                                                                                                                                                                            • 5223 Public Key Generation
                                                                                                                                                                                                                                              • 表5-51 入力パラメータ Public Key Generation
                                                                                                                                                                                                                                              • 表5-52 出力レスポンス Public Key Generation
                                                                                                                                                                                                                                              • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                • 5224 Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-53 入力パラメータ Public Key Digest Generation
                                                                                                                                                                                                                                                  • 表5-54 出力レスポンス Public Key Digest Generation
                                                                                                                                                                                                                                                  • 公開鍵ダイジェストの生成
                                                                                                                                                                                                                                                      • 523 SecureBootコマンド
                                                                                                                                                                                                                                                        • 5231 SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-55 入力パラメータ SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • 表5-56 出力レスポンス SecureBoot - FullCopy
                                                                                                                                                                                                                                                          • SecureBoot - FullCopyのMAC計算
                                                                                                                                                                                                                                                            • 5232 SecureBoot - FullStore (Digest)
                                                                                                                                                                                                                                                              • 表5-57 入力パラメータ SecureBoot - FullStore
                                                                                                                                                                                                                                                              • 表5-58 出力レスポンス SecureBoot - FullStore
                                                                                                                                                                                                                                                              • SecureBoot - FullStore (Digest) のMAC計算
                                                                                                                                                                                                                                                                  • 524 Signコマンド
                                                                                                                                                                                                                                                                    • 5241 Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-59 入力パラメータ Sign - Internal Message
                                                                                                                                                                                                                                                                      • 表5-60 出力レスポンス Sign - Internal Message
                                                                                                                                                                                                                                                                      • 内部メッセージの生成
                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                        • 5242 Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-61 入力パラメータ Sign - External Message
                                                                                                                                                                                                                                                                          • 表5-62 出力レスポンス Sign - External Message
                                                                                                                                                                                                                                                                              • 525 Verifyコマンド
                                                                                                                                                                                                                                                                                • 5251 Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 外部公開鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                  • 表5-63 入力パラメータ Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-64 出力レスポンス Verify - External Public Key
                                                                                                                                                                                                                                                                                  • 表5-65 Validation MAC - Verify External
                                                                                                                                                                                                                                                                                    • 5252 Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 保存鍵を使ってメッセージを検証するための手順
                                                                                                                                                                                                                                                                                      • 表5-66 入力パラメータ Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-67 出力レスポンス Verify - Stored Public Key
                                                                                                                                                                                                                                                                                      • 表5-68 Validation MAC - Verify Stored
                                                                                                                                                                                                                                                                                        • 5253 Verify - ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 公開鍵を有効または無効にするための手順
                                                                                                                                                                                                                                                                                          • 表5-69 入力パラメータ - Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                          • 表5-70 出力レスポンス Verify ValidateInvalidate
                                                                                                                                                                                                                                                                                          • 表5-71 生成されるメッセージ
                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                            • 53 対称暗号コマンド
                                                                                                                                                                                                                                                                                              • 531 AESコマンド
                                                                                                                                                                                                                                                                                                • 5311 AES - ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-72 入力パラメータ AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                  • 表5-73 出力レスポンス AES-ECB Encrypt
                                                                                                                                                                                                                                                                                                    • 5312 AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-74 入力パラメータ AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                      • 表5-75 出力レスポンス AES-ECB Decrypt
                                                                                                                                                                                                                                                                                                        • 5313 AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-76 入力パラメータ AES-GFM
                                                                                                                                                                                                                                                                                                          • 表5-77 出力レスポンス AES-GFM
                                                                                                                                                                                                                                                                                                              • 532 CheckMacコマンド
                                                                                                                                                                                                                                                                                                                • 表5-78 入力パラメータ CheckMac
                                                                                                                                                                                                                                                                                                                • Note 
                                                                                                                                                                                                                                                                                                                • 表5-79 出力レスポンス CheckMac
                                                                                                                                                                                                                                                                                                                • 表5-80 SHA256 CheckMac Hash
                                                                                                                                                                                                                                                                                                                  • 533 GenDigコマンド
                                                                                                                                                                                                                                                                                                                    • 5331 GenDig - Config
                                                                                                                                                                                                                                                                                                                      • 表5-81 入力パラメータ GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                      • 表5-82 出力レスポンス GenDig - Config
                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                      • 表5-83 TempKey計算 GenDig ndash Config
                                                                                                                                                                                                                                                                                                                        • 5332 GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • 表5-84 入力パラメータ GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                          • 表5-85 出力レスポンス GenDig - OTP
                                                                                                                                                                                                                                                                                                                          • Note フラグビット
                                                                                                                                                                                                                                                                                                                          • 表5-86 TempKey計算 GenDig ndash OTP
                                                                                                                                                                                                                                                                                                                            • 5333 GenDig - Data
                                                                                                                                                                                                                                                                                                                              • 表5-87 入力パラメータ GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Note 
                                                                                                                                                                                                                                                                                                                              • 表5-88 出力レスポンス GenDig - Data
                                                                                                                                                                                                                                                                                                                              • Noteフラグビット
                                                                                                                                                                                                                                                                                                                              • 表5-89 TempKey計算 GenDig - Data
                                                                                                                                                                                                                                                                                                                                • 5334 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • 表5-90 入力パラメータ GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                  • 表5-91 出力レスポンス GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                  • Note フラグビット
                                                                                                                                                                                                                                                                                                                                  • 表5-92 TempKey計算 GenDig - Shared Nonce
                                                                                                                                                                                                                                                                                                                                    • 5335 GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • 表5-93 入力パラメータ GenDig - Counter
                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                      • 表5-94 出力レスポンス GenDig Counter
                                                                                                                                                                                                                                                                                                                                      • Note フラグビット
                                                                                                                                                                                                                                                                                                                                      • 表5-95 TempKey計算 GenDig ndash Counter
                                                                                                                                                                                                                                                                                                                                        • 5336 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • 表5-96 入力パラメータ GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Note 
                                                                                                                                                                                                                                                                                                                                          • 表5-97 出力レスポンス GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                          • Noteフラグビット
                                                                                                                                                                                                                                                                                                                                          • 表5-98 TempKey計算 GenDig - Key Config
                                                                                                                                                                                                                                                                                                                                              • 534 KDFコマンド
                                                                                                                                                                                                                                                                                                                                                • 5341 KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • 表5-99 入力パラメータ KDF - PRF
                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                  • 表5-100 PRF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                  • 表5-101 出力レスポンス KDF - PRF
                                                                                                                                                                                                                                                                                                                                                    • 5342 KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • 表5-102 入力パラメータ KDF - AES
                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                      • 表5-103 AES向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                      • 表5-104 出力レスポンス KDF - AES
                                                                                                                                                                                                                                                                                                                                                        • 5343 KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-105 入力パラメータ KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                          • 表5-106 HKDF向けDetailsパラメータの説明
                                                                                                                                                                                                                                                                                                                                                          • 表5-107 出力レスポンス KDF - HKDF
                                                                                                                                                                                                                                                                                                                                                            • 5344 KDF出力の暗号化
                                                                                                                                                                                                                                                                                                                                                              • 535 MACコマンド
                                                                                                                                                                                                                                                                                                                                                                • 5351 Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-108 入力パラメータ Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                  • 表5-109 出力レスポンス Non-Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                  • 表5-110 Non-Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                    • 5352 Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-111 入力パラメータ Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • Note 
                                                                                                                                                                                                                                                                                                                                                                      • 表5-112 出力レスポンス Diversified MAC
                                                                                                                                                                                                                                                                                                                                                                      • 表5-113 Diversified MACの計算
                                                                                                                                                                                                                                                                                                                                                                          • 6 応用のための情報
                                                                                                                                                                                                                                                                                                                                                                            • 61 ユースケース
                                                                                                                                                                                                                                                                                                                                                                              • セキュアTLS接続
                                                                                                                                                                                                                                                                                                                                                                              • セキュアブート
                                                                                                                                                                                                                                                                                                                                                                              • 消耗品アクセサリの認証
                                                                                                                                                                                                                                                                                                                                                                              • 知的財産およびデータ保護
                                                                                                                                                                                                                                                                                                                                                                              • 一般データストレージ
                                                                                                                                                                                                                                                                                                                                                                                • 62 開発ツール
                                                                                                                                                                                                                                                                                                                                                                                  • 621 Trust Platform Design Suite
                                                                                                                                                                                                                                                                                                                                                                                  • 622 ハードウェア ツール
                                                                                                                                                                                                                                                                                                                                                                                    • DM320118 - CryptoAuthentication Trustプラットフォーム
                                                                                                                                                                                                                                                                                                                                                                                    • DM320109 - CryptoAuthenticationスタータキット
                                                                                                                                                                                                                                                                                                                                                                                    • AT88CKSCKTUDFN(SOIC)-XPRO
                                                                                                                                                                                                                                                                                                                                                                                      • 623 CryptoAuthLib
                                                                                                                                                                                                                                                                                                                                                                                        • API関数の呼び出し
                                                                                                                                                                                                                                                                                                                                                                                        • 表6-1 CryptoAuthLib API関数の呼び出しに対するコマンド例
                                                                                                                                                                                                                                                                                                                                                                                            • 63 TrustFLEXとTrustampGOの比較
                                                                                                                                                                                                                                                                                                                                                                                              • 7 I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                • 71 IO条件
                                                                                                                                                                                                                                                                                                                                                                                                  • 711 スリープ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                    • バス上に複数デバイスが存在する場合
                                                                                                                                                                                                                                                                                                                                                                                                      • 712 アクティブ中のデバイス
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-1 I2Cインターフェイスにおけるデータビットの転送
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-2 I2Cインターフェイスのスタート条件とストップ条件
                                                                                                                                                                                                                                                                                                                                                                                                        • 図 7-3 I2CインターフェイスのNACKおよびACK条件
                                                                                                                                                                                                                                                                                                                                                                                                            • 72 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 図 7-4 ATECC608A-TFLXTLSへの通常のI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 表7-1 ATECC608A-TFLXTLSへのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                              • 721 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                • 表7-2 ワードアドレス値
                                                                                                                                                                                                                                                                                                                                                                                                                  • 722 I2Cの同期
                                                                                                                                                                                                                                                                                                                                                                                                                    • 73 スリープ シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 74 アイドル シーケンス
                                                                                                                                                                                                                                                                                                                                                                                                                    • 75 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                      • 表7-3 ATECC608A-TFLXTLSからのI2C送信
                                                                                                                                                                                                                                                                                                                                                                                                                          • 8 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                            • 81 IOトークン
                                                                                                                                                                                                                                                                                                                                                                                                                            • 82 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • 表8-1 IOフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Transmitフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Idleフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                              • bull Sleepフラグ
                                                                                                                                                                                                                                                                                                                                                                                                                                • 83 同期
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 831 IOタイムアウト
                                                                                                                                                                                                                                                                                                                                                                                                                                  • 832 同期手順
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 84 GPIO
                                                                                                                                                                                                                                                                                                                                                                                                                                    • 85 単線式インターフェイスの接続
                                                                                                                                                                                                                                                                                                                                                                                                                                      • 図 8-1 単線式インターフェイスの接続(3線接続)
                                                                                                                                                                                                                                                                                                                                                                                                                                          • 9 電気的特性
                                                                                                                                                                                                                                                                                                                                                                                                                                            • 92 信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-1 EEPROMの信頼性
                                                                                                                                                                                                                                                                                                                                                                                                                                                • 93 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 図 9-1 ACタイミング図 全インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 表9-2 ACパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 931 ACパラメータ I2Cインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 図 9-2 I2C同期データ タイミング
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 表9-3 I2CインターフェイスのAC特性
                                                                                                                                                                                                                                                                                                                                                                                                                                                    • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 932 ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 図 9-3 ACタイミング図 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                        • 表9-4ACパラメータ 単線式インターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                            • 94 DCパラメータ 全IOインターフェイス
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-5 全IOインターフェイスのDCパラメータ
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 表9-6 全IOインターフェイスでのVILとVIH (TTLenable = 0)
                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 図 9-4 スリープおよびアイドルモード中のVIHとVIL
                                                                                                                                                                                                                                                                                                                                                                                                                                                                  • 10 パッケージ図面
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 101 パッケージのマーキング情報
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 102 8ピンUDFN
                                                                                                                                                                                                                                                                                                                                                                                                                                                                    • 103 8ピンSOIC
                                                                                                                                                                                                                                                                                                                                                                                                                                                                      • 11 改訂履歴
                                                                                                                                                                                                                                                                                                                                                                                                                                                                        • リビジョンA (2019年9月)
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • Microchip社のウェブサイト
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 顧客変更通知サービス
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • カスタマサポート
                                                                                                                                                                                                                                                                                                                                                                                                                                                                          • 製品識別システム
                                                                                                                                                                                                                                                                                                                                                                                                                                                                            • Note 
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • Microchip社のデバイスコード保護機能
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 法律上の注意点
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 商標
                                                                                                                                                                                                                                                                                                                                                                                                                                                                              • 品質管理システム
Page 8: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 9: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 10: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 11: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 12: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 13: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 14: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 15: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 16: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 17: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 18: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 19: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 20: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 21: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 22: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 23: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 24: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 25: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 26: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 27: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 28: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 29: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 30: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 31: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 32: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 33: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 34: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 35: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 36: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 37: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 38: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 39: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 40: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 41: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 42: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 43: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 44: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 45: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 46: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 47: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 48: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 49: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 50: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 51: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 52: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 53: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 54: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 55: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 56: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 57: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 58: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 59: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 60: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 61: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 62: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 63: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 64: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 65: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 66: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 67: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 68: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 69: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 70: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 71: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 72: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 73: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 74: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 75: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 76: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 77: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 78: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 79: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 80: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 81: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 82: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 83: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 84: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 85: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 86: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 87: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 88: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 89: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 90: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 91: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 92: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 93: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 94: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 95: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 96: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 97: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 98: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 99: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 100: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 101: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 102: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する
Page 103: ATECC608A-TFLXTLSww1.microchip.com/downloads/jp/DeviceDoc/40002138A_JP.pdf表2-1.ATECC608A-TFLXTLSのEEPROMゾーン ゾーン 概要 命名法 Configuration 128以下を格納する