0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

針對STM32客戶的反饋,對使用STM32加密庫開發(fā)比特幣應用作一些補充的技術(shù)說明

STM32單片機 ? 來源:STM32單片機 ? 作者:STM32單片機 ? 2020-09-17 17:35 ? 次閱讀

前言

比特幣是一個基于區(qū)塊鏈和密碼技術(shù)的應用。本文針對STM32客戶的反饋,對那些使用STM32加密庫開發(fā)比特幣應用作了一些補充的技術(shù)說明。

STM32 加密庫

STM32 加密庫提供對稱加解密,非對稱加解密,以及HASH算法,并通過了CAVP FIPS認證,可使用在各類安全相關(guān)的應用。

對稱加解密算法支持AES、DES、3DES、RC5、Chacha20、Poly1305。其中針對特定算法,如AES,又支持多種加密模式如ECB、CBC、CTR、GCM、CCM、XTS、Cipher-wrap等。非對稱加解密算法支持RSA、ECC。Hash算法支持SHA-1、SHA-224、SHA-256、SHA-384、SHA-512、MD5。

STM32加密庫分為硬件加速和純固件實現(xiàn)兩種。純固件實現(xiàn)可以運行在所有的STM32系列上。

STM32加密庫可以通過訪問www.st.com ,在主頁中的搜索框里輸入cryptolib得到頁面鏈接。加密庫下載需要批準,請在線填寫申請后等待郵件通知,一般很快就可以得到回復。

STM32 TRNG 真隨機數(shù)

STM32真隨機數(shù)(TRNG)基于物理噪聲源生成隨機數(shù),提供了高隨機性,為不少算法特別是橢圓曲線提供了堅實的基礎(chǔ)。隨機數(shù)通過了AIS-31 PTG.2測試。

比特幣中的加解密算法

比特幣加解密相關(guān)的算法主要是兩類,橢圓曲線ECC以及HASH算法。比特幣使用橢圓曲線簽名和驗簽算法來核實比特幣交易的可靠性,以及辨別區(qū)塊鏈中比特幣的歸屬地址。HASH算法除了用在橢圓曲線簽名、驗證,比特幣地址校驗,還利用該算法的單向性,創(chuàng)造出比特幣的挖礦機制。HASH沒有什么特別,將不在本文補充說明。

比特幣中的橢圓曲線

比特幣的橢圓曲線是個小眾曲線,不是常見的NIST P192、P256和P384,而是SECP256。根據(jù)它的規(guī)范和STM32加密庫的代碼庫的參數(shù)格式,比特幣的橢圓曲線參數(shù)可以表示如下:

用戶可以直接將此參數(shù)拷貝STM32 加密庫的例程,例如

STM32CubeExpansion_Crypto_V3.1.0Fw_CryptoSTM32L4ProjectsSTM32L476RGNucleoECCKeyGen_Sign_VerifSrcmain.c。該例程演示的功能包括:生成ECC 公私鑰匙密鑰對,使用私鑰對指定消息簽名,再使用對應公鑰對簽名做驗簽。

為了對這個曲線做如上運行,需要在例程代碼的循環(huán)處增加一個案例,條件3,如:

別忘了將for 循環(huán)的條件修改成

從私鑰生成公鑰

有客戶提到,STM32 加密庫提供了橢圓曲線相關(guān)接口調(diào)用,但并沒有在文檔或者代碼里描述如何從橢圓曲線私鑰生成公鑰。

這里做一個補充說明,實現(xiàn)該功能關(guān)鍵函數(shù)就是“點乘API:ECCscalarMul”??梢栽诶桃延写a的基礎(chǔ)上,通過“點乘API”來對“密鑰對生成API”的運算結(jié)果做一次驗證。

其中G 是臨時變量,需要先定義后使用。

若在求得公鑰后不再需要,需要及時釋放資源。

而本來就分配的點資源,例程會在在程序結(jié)束時釋放。

另外,如果從外部已經(jīng)拿到私鑰(大數(shù)),是用uint8_t 類型數(shù)組表示;而為了應用在我們的加密庫中,可以通過以下API 做表示形式的轉(zhuǎn)換:

總結(jié)

本文針對使用STM32 開發(fā)比特幣的客戶,對STM32 加密庫的橢圓曲線參數(shù)和點乘函數(shù)做了補充說明,方便STM32 客戶進行開發(fā)比特幣應用。

原文標題:基于STM32加密庫開發(fā)比特幣應用的補充說明

文章出處:【微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2263

    文章

    10846

    瀏覽量

    353772
  • 比特幣
    +關(guān)注

    關(guān)注

    57

    文章

    7001

    瀏覽量

    139929

原文標題:基于STM32加密庫開發(fā)比特幣應用的補充說明

文章出處:【微信號:STM32_STM8_MCU,微信公眾號:STM32單片機】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    課程上線 | STM32單片機入門教程(1)基于HAL的多核心開發(fā)(F1/F4/G0/U5)

    ?好消息!華清遠見STM32入門視頻課程《基于HALSTM32多核心開發(fā)》正式上線,已更新90講,持續(xù)更新中,8月份將全部上線。課程優(yōu)勢真人出鏡,手把手教學
    的頭像 發(fā)表于 08-08 16:42 ?252次閱讀
    課程上線 | <b class='flag-5'>STM32</b>單片機入門教程(1)基于HAL<b class='flag-5'>庫</b>的多核心<b class='flag-5'>開發(fā)</b>(F1/F4/G0/U5)

    馬斯克:比特是有價值的

    在特斯拉硅谷車主的場活動中馬斯克表示比特以及一些其他加密貨幣是有價值的. 在這次在線活動中,馬斯克還談到了星艦的第五次試飛、星鏈Mini
    的頭像 發(fā)表于 07-31 17:59 ?1434次閱讀

    STM32F10x標準外設(shè)參考手冊

    STM32F10x標準外設(shè)參考手冊
    發(fā)表于 06-24 09:26 ?11次下載

    基于LL實現(xiàn)STM32U5 LPTIM功能

    有人打算使用STM32U5系列片內(nèi)LPTIM做低功耗模式喚醒。基于STM32 LL組織代碼,折騰幾天后似乎連中斷都進不了,想找找是否有現(xiàn)存LL例程可以參考。
    的頭像 發(fā)表于 01-07 14:12 ?1346次閱讀
    基于LL<b class='flag-5'>庫</b>實現(xiàn)<b class='flag-5'>STM32</b>U5 LPTIM功能

    STM32CubeIDE找不到elf

    STM32CubeIDE是STMicroelectronics公司推出的款集成開發(fā)環(huán)境(IDE),用于開發(fā)STM32系列微控制器的應用程序
    的頭像 發(fā)表于 01-02 16:32 ?1481次閱讀

    使用STM32 HAL進行GPIO控制的實例

    在基于STM32微控制器的嵌入式系統(tǒng)開發(fā)中,GPIO(GeneralPurposeInput/Output)控制是其中最基本、最常見的操作之。通過使用STM32的HAL
    的頭像 發(fā)表于 12-21 15:22 ?2766次閱讀

    中文STM32CubeProgrammer軟件說明

    中文STM32CubeProgrammer軟件說明
    發(fā)表于 11-13 15:43 ?4次下載

    對大家玩機器人和STM32一些幫助

    電子發(fā)燒友網(wǎng)站提供《對大家玩機器人和STM32一些幫助.rar》資料免費下載
    發(fā)表于 11-10 16:11 ?0次下載
    對大家玩機器人和<b class='flag-5'>STM32</b>有<b class='flag-5'>一些</b>幫助

    STM32F10x中一些專業(yè)術(shù)語解釋

    STM32F10x中一些專業(yè)術(shù)語解釋
    的頭像 發(fā)表于 11-01 16:59 ?475次閱讀

    針對RF PCBA設(shè)計的一些建議

    射頻(RF)PCBA設(shè)計涉及系列復雜的考慮因素,包括天線設(shè)計、濾波器設(shè)計以及傳輸線(RF Trace)的優(yōu)化。這些因素對于無線通信和射頻應用的性能至關(guān)重要。以下是針對RF PCBA設(shè)計的一些建議。
    的頭像 發(fā)表于 10-30 10:19 ?413次閱讀

    STM32開發(fā)實戰(zhàn)指南

    STM32開發(fā)實戰(zhàn)指南-劉火良,電子 epub格式,清晰非掃描
    發(fā)表于 10-27 16:25 ?20次下載

    STM32的HAL和LL到底能不能混合使用呢?

    。兩個的定位是不同的,HAL旨在為開發(fā)者提供種快速開發(fā)的方法,同時在不同的
    的頭像 發(fā)表于 10-26 17:42 ?1369次閱讀

    STM32 HAL串口同時收發(fā),接收卡死?

    HAL針對STM32系列單片機的套常用的高級抽象層。在HAL中,串口通信是通過
    的頭像 發(fā)表于 10-26 17:42 ?3281次閱讀

    STM32 HAL串口收發(fā)是如何使用的?

    STM32 HAL串口收發(fā)是如何使用的? STM32款高性能的微控制器,它擁有廣泛的應用領(lǐng)域,其中包括了各種通訊應用,如UART串口通訊。HAL
    的頭像 發(fā)表于 10-26 17:42 ?1134次閱讀

    HASH算法加密芯片的工作原理及其在STM32 MCU上的應用

    本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的應用,實現(xiàn)了外部加密芯片對STM32 MCU的程序保護,目前的技術(shù)
    的頭像 發(fā)表于 10-24 15:01 ?3400次閱讀
    HASH算法<b class='flag-5'>加密</b>芯片的工作原理及其在<b class='flag-5'>STM32</b> MCU上的應用