會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   1 名訪客





ATECC508A的ECDH與Auth的問題
新會員
註冊日期:
10月05日 13:52:44
所屬群組:
註冊會員
文章: 3
等級: 1; EXP: 10
HP : 0 / 2
MP : 0 / 0
離線
各位先進好:

小弟想請問在 ATECC508A 上,將 Read Key 的 bit 3 與 bit 2 設定成1,可以讓 ECDH 結果的 Master Secret 存入下一個 Slot 中,但是我在執行的時候 ECDH 指令一直顯示 EXECUTION_ERROR ,想請問我的 Config Zone 是否有設定錯誤。

Slot 0 2 6 是 ECC 的私鑰
Slot 1 3 7 是 ECDH 的 Master Secret
Slot 9 是 AuthKey 用的 Public Key

我想用 Slot 2 產生的 ECDH Master Secret 當作 Read Key 來讀取 Slot 0 產生出來了 Master Secret。

Open in new window



uint8_t default_config_zone
[] = {
    
0x00, 0x00, 0x00, 0x00, // Skip
    
0x00, 0x00, 0x00, 0x00, // Skip
    
0x00, 0x00, 0x00, 0x00, // Skip
    
0x00, 0x00, 0x00, 0x00, // Skip

    
0xc0, 0x00, 0xaa, 0x00, // I2C_Addr, 0x00, OTP, Mode

    // Slot Config Bit order:
    // IsSecret, EncryptRead, LimitedUse, NoMac, ReadKey[3-0]
    // WriteConfig, WriteKey
    
0x8d, 0xb0, 0xc3, 0xa0, // Slot 0
    
0x8d, 0xb0, 0xc3, 0xa0, // Slot 2
    
0xc3, 0x43, 0x85, 0xa0, // Slot 4
    
0x8d, 0xb0, 0xc7, 0xa6, // Slot 6
    
0x00, 0x00, 0x00, 0x00, // Slot 8
    
0x85, 0xa0, 0x85, 0xa0, // Slot 10
    
0x85, 0xa0, 0x85, 0xa0, // Slot 12
    
0x85, 0xa0, 0x85, 0xa0, // Slot 14

    
0xff, 0xff, 0xff, 0xff, // Counter
    
0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
    
0x00, 0x00, 0x00, 0x00, // LastKeyUse
    
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    
0x00, 0x00, 0x00, 0x00, // Extra, Selector, DATA_LOCK, CFG_LOCK
    
0xff, 0xff, 0x00, 0x00, // SlotLock, SlotLock, RFU, RFU
    
0x00, 0x00, 0x00, 0x00, // X509format
    
0xf3, 0x09, 0xfc, 0x09, // Key Format 0
    
0xf3, 0x09, 0xfc, 0x09, // Key Format 2
    
0xfc, 0x09, 0x33, 0x00, // Key Format 4
    
0xf3, 0x09, 0xfc, 0x09, // Key Format 6
    
0x3c, 0x00, 0x30, 0x00, // Key Format 8
    
0x33, 0x00, 0x33, 0x00, // Key Format 10
    
0x33, 0x00, 0x33, 0x00, // Key Format 12
    
0x33, 0x00, 0x33, 0x00  // Key Format 14
};



程式輸出

Chip connected
.
Config zone locked
Auth PrivKey
: 31CEF9B39083728D915DF3F96A0D8C1D4BB38AA0C342698DD35AAD3138CE92F0
Auth PubKey
: 8E75454E8927FF6DEBC4366CBC596DA2546029BB2BB45F103475464E0C6F3F66E030162CAE4E609BBFB6364FEF6D24E5BE411885900790EAE3CF5E5A594E6A5F
TempKey valid
: 0081
AuthKey is verified
Auth success by key 9
: 004D
State Public Key
: E961D4BE46882BA2F19F412C4825F2E66E20904409F4AD7C8341B2E0DF10AE83C3412263F025E28BB59403F8DB4DF48193C99DE2CC88BC6D9C894D4DC1AC768A
Read Public Key
: 909DDF1655ACFE4CDBFFAA38C8B5736F1BF5AD0D9BBA6204079BFB0FF63FFB88032512AA9F69C71ADB92C9F27AE4042F4BCA409F87366875BD55411F29714F5F
Read 2 Public Key
: 251ACE17E2E9C8D39C469FC5350782443C6ED0D7B57393827DAD93CD465020F383DF1AB145B4C532C249A8B253CC5AD45A4AFFD56D8F4DF1A0EBBE38B63F75DB
: ECDH Failed -- Status: F4
ECDH failed ret
=f4



// Create nonce
esp_fill_random(nonce_in, 32);
atcab_nonce_rand(nonce_in, message);

// Sign by host private key
uECC_sign(privkey, message, 32, sign, curve);

// Verify AuthKey
atcab_verify_stored(message, sign, 9, &is_verified);

// Generate key at slot 2
atcab_genkey(0, read_pubkey);

// Create master secret at host as read key
uECC_shared_secret(read_pubkey, privkey, read_key, curve);

// Create master secret at ATECC508a
atcab_ecdh(2, pubkey, pms);

// Read slot 0 ECDH master secret by ReadKey 3
atcab_ecdh_enc(0, pubkey, pms, read_key, 3);


謝謝

10月17日 12:10:22
轉換PDF檔 列印


Re: ATECC508A的ECDH與Auth的問題
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14850
等級: 73; EXP: 60
HP : 1089 / 1815
MP : 4950 / 82475
離線
你的問題是比較深入的問題, 無法在論壇上回覆。Libra 有發的email給你請你跟他聯絡。

10月17日 19:01:23
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project