前言
比特币是一个基于区块链和密码技术的应用。本文针对STM32客户的反馈,对那些使用STM32加密库开发比特币应用作了一些补充的技术说明。
STM32 加密库
STM32 加密库提供对称加解密,非对称加解密,以及HASH算法,并通过了CAVP FIPS认证,可使用在各类安全相关的应用。
对称加解密算法支持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加密库分为硬件加速和纯固件实现两种。纯固件实现可以运行在所有的STM32系列上。
STM32加密库可以通过访问www.st.com ,在主页中的搜索框里输入cryptolib得到页面链接。加密库下载需要批准,请在线填写申请后等待邮件通知,一般很快就可以得到回复。
STM32 TRNG 真随机数
STM32真随机数(TRNG)基于物理噪声源生成随机数,提供了高随机性,为不少算法特别是椭圆曲线提供了坚实的基础。随机数通过了AIS-31 PTG.2测试。
比特币中的加解密算法
比特币加解密相关的算法主要是两类,椭圆曲线ECC以及HASH算法。比特币使用椭圆曲线签名和验签算法来核实比特币交易的可靠性,以及辨别区块链中比特币的归属地址。HASH算法除了用在椭圆曲线签名、验证,比特币地址校验,还利用该算法的单向性,创造出比特币的挖矿机制。HASH没有什么特别,将不在本文补充说明。
比特币中的椭圆曲线
比特币的椭圆曲线是个小众曲线,不是常见的NIST P192、P256和P384,而是SECP256。根据它的规范和STM32加密库的代码库的参数格式,比特币的椭圆曲线参数可以表示如下:
用户可以直接将此参数拷贝STM32 加密库的例程,例如
STM32CubeExpansion_Crypto_V3.1.0Fw_CryptoSTM32L4ProjectsSTM32L476RGNucleoECCKeyGen_Sign_VerifSrcmain.c。该例程演示的功能包括:生成ECC 公私钥匙密钥对,使用私钥对指定消息签名,再使用对应公钥对签名做验签。
为了对这个曲线做如上运行,需要在例程代码的循环处增加一个案例,条件3,如:
别忘了将for 循环的条件修改成
从私钥生成公钥
有客户提到,STM32 加密库提供了椭圆曲线相关接口调用,但并没有在文档或者代码里描述如何从椭圆曲线私钥生成公钥。
这里做一个补充说明,实现该功能关键函数就是“点乘API:ECCscalarMul”。可以在例程已有代码的基础上,通过“点乘API”来对“密钥对生成API”的运算结果做一次验证。
其中G 是临时变量,需要先定义后使用。
若在求得公钥后不再需要,需要及时释放资源。
而本来就分配的点资源,例程会在在程序结束时释放。
另外,如果从外部已经拿到私钥(大数),是用uint8_t 类型数组表示;而为了应用在我们的加密库中,可以通过以下API 做表示形式的转换:
总结
本文针对使用STM32 开发比特币的客户,对STM32 加密库的椭圆曲线参数和点乘函数做了补充说明,方便STM32 客户进行开发比特币应用。
设计资源 培训 开发板 精华推荐
- ADP5034 降压稳压器的典型应用电路,具有可调输出电压和精密使能引脚
- DER-359 - 用于BR30灯的8W非隔离式 Tapped-Buck,TRIAC可调光LED驱动器
- PCF2129T 工业 TCXO RTC 的计时、CLKOUT、电源管理、时间戳、电池连接和 MCU 应用供电
- 用于简单 400 mW 唱机放大器的 NCV431A 可编程精密基准的典型应用
- X-NUCLEO-NFC05A1,基于ST25R3911B的NFC读卡器扩展板,适用于STM32 Nucleo
- 300nA到150mA的测量电路(新的STM32L5探索板自带)
- NCP115AMX280TCGEVB:NCP115:LDO 稳压器、300 mA、低 Iq、高 PSRR、高精度评估板
- LTC1258CMS8-2.5 低功率、低电压电源基准的典型应用电路
- NCP5623B 三路输出 I2C 控制的 RGB LED 驱动器的典型应用
- AM1/4S-0505SH30Z 5V 0.25 瓦 DC-DC 转换器的典型应用
- 配天机器人2018年Q3之后的持续爆发,下半年业绩依然相当客观
- 政府高度支持,中国机器人迎来快速且迅猛的发展期
- 到2025年,机器人承担的工作将会超过人类
- 3D打印技术和机器人协助医生手术,让诊疗水平上了一个新台阶
- 津城由机器人全程服务的智能餐厅开业,带给消费者全流程智能消费体验
- Intel Skylake-X处理器或面临降价清仓
- AMD Ryzen9 3950X与Intel i9-10980XE跑分均曝光 前者超后者24%
- 曝GTX1650Super将于11月22日发布 换装GDDR6显存
- 国产处理器海光C86 7185拿下加解密测试项目全球第一名
- Intel第二代10nm Tiger LakeU系列或超越AMD桌面高端锐龙9 3900X