0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

针对STM32客户的反馈,对使用STM32加密库开发比特币应用作一些补充的技术说明

STM32单片机 来源:STM32单片机 作者:STM32单片机 2020-09-17 17:35 次阅读

前言

比特币是一个基于区块链和密码技术的应用。本文针对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 客户进行开发比特币应用。

原文标题:基于STM32加密库开发比特币应用的补充说明

文章出处:【微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348725
  • 比特币
    +关注

    关注

    57

    文章

    7000

    浏览量

    139331

原文标题:基于STM32加密库开发比特币应用的补充说明

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32h743是不是可以直接用ICache加快一些速度?

    stm32h743是不是可以直接用ICache加快一些速度,而不用DCache,DCache配置ram麻烦?
    发表于 03-08 08:01

    STM32H5开发(2)----新特性

    STM32H5开发(2)----新特性
    的头像 发表于 12-01 14:53 327次阅读
    <b class='flag-5'>STM32</b>H5<b class='flag-5'>开发</b>(2)----新特性

    中文STM32CubeProgrammer软件说明

    中文STM32CubeProgrammer软件说明
    发表于 11-13 15:43 0次下载

    STM32开发实战指南

    STM32开发实战指南-刘火良,电子 epub格式,清晰非扫描
    发表于 10-27 16:25 9次下载

    关于STM32WL LSE 添加反馈电阻后无法起振问题

    关于STM32WL LSE 添加反馈电阻后无法起振问题
    的头像 发表于 10-25 16:48 350次阅读
    关于<b class='flag-5'>STM32</b>WL LSE 添加<b class='flag-5'>反馈</b>电阻后无法起振问题

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

    本文主要研究了HASH算法加密芯片的工作原理及其在STM32 MCU上的应用,实现了外部加密芯片对STM32 MCU的程序保护,目前的技术
    的头像 发表于 10-24 15:01 1668次阅读
    HASH算法<b class='flag-5'>加密</b>芯片的工作原理及其在<b class='flag-5'>STM32</b> MCU上的应用

    应用笔记 | STM32WB基于Custom Template实现客户定制BLE私有协议

    的例程,目前支持的标准GAP服务例程在STM32CubeMX中已有列出,或可以在固件包STM32Cube_FW_WB_V1.xx.xx MiddlewareSTSTM32_WPANlesvc中找到。然而,在实际的
    的头像 发表于 10-08 17:40 967次阅读

    stm32f429系列和lpc1769哪个抗干扰好一些

    stm32f429系列和lpc1769哪个抗干扰好一些
    发表于 09-20 07:07

    STM32C0x1中文手册

    本参考手册是对 STM32C0x1 微控制器数据手册的补充,提供了应用(特别是软件开发)所需的信息,属于 STM32C0x1 微控制器上提供的功能集的超集。 有关特定
    发表于 09-01 09:09 0次下载

    关于RTT使用STM32加密STM32_Cryptographic未找到问题

    开发环境 RTT Studio+STM32F103VC+RTT 4.1.1 测试功能 STM32 RSA加解密测试 遇到的问题 提示找不到文件,相关配置过程如下所示: RTT st
    发表于 08-04 16:12

    STM32CubeProgrammer软件说明

    电子发烧友网站提供《STM32CubeProgrammer软件说明.pdf》资料免费下载
    发表于 08-01 09:10 1次下载
    <b class='flag-5'>STM32</b>CubeProgrammer软件<b class='flag-5'>说明</b>

    应用笔记 | 关于STM32WL LSE 添加反馈电阻后无法起振问题

    关键字:STM32WL, LSE, 反馈电阻,32.768KHZ 目录预览 1 问题描述  2 问题确认 3 问题分析 4 问题解决 5 小结 1. 问题描述 客户调试STM32WLE
    的头像 发表于 07-05 18:05 655次阅读
    应用笔记 | 关于<b class='flag-5'>STM32</b>WL LSE 添加<b class='flag-5'>反馈</b>电阻后无法起振问题

    STM32 ADC 的使用说明

    ,度娘一下也没有找到解答,还是经过翻阅了一些资料才得到答案,特此来记录一下。 我是矜辰所致,全网同名,尽量用心写好每一系列文章,不浮夸,不将就,认真对待学知识的我们,矜辰所致,金石为开! 前言 一、ADC 配置说明 1.1 ADC 采样步骤 二、ADC 校准 2.1 什么
    的头像 发表于 06-22 10:15 2074次阅读
    <b class='flag-5'>STM32</b> ADC 的使用<b class='flag-5'>说明</b>

    STM32加密资料分享

    STM32加密资料分享
    发表于 05-31 18:44

    基于STM32物联开发平台

    STM32
    IT_阿水
    发布于 :2023年05月09日 23:08:31