你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于 STM32 加密库开发比特币应用的补充说明

[复制链接]
STMCU小助手 发布时间:2022-8-11 14:31
前言
比特币是一个基于区块链和密码技术的应用。本文针对 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 TRNG 真随机数
STM32 真随机数(TRNG)基于物理噪声源生成随机数,提供了高随机性,为不少算法特别是椭圆曲线提供了坚实的基础。随机数通过了 AIS-31 PTG.2 测试。

比特币中的加解密算法
比特币加解密相关的算法主要是两类,椭圆曲线 ECC 以及 HASH 算法。比特币使用椭圆曲线签名和验签算法来核实比特币交易的可靠性,以及辨别区块链中比特币的归属地址。HASH 算法除了用在椭圆曲线签名、验证,比特币地址校验,还利用该 算法的单向性,创造出比特币的挖矿机制。HASH 没有什么特别,将不在本文补充说明。

比特币的椭圆曲线
比特币的椭圆曲线是个小众曲线,不是常见的 NIST P192、P256 和 P384,而是 SECP256。根据它的规范和 STM32 加密库的代码库的参数格式,比特币的椭圆曲线参数可以表示如下:
  1. /* coefficient a*/
  2. const uint8_t secp256_a[] =
  3. {
  4. 0x00
  5. };
  6. /* coefficient b */
  7. const uint8_t secp256_b[] =
  8. {
  9. 0x7
  10. };
  11. /* prime modulus p*/
  12. const uint8_t secp256_p[] =
  13. {
  14. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  15. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,
  16. 0xff,0xfc,0x2f
  17. };
  18. /* order n*/
  19. const uint8_t secp256_n[] = {
  20. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  21. 0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,
  22. 0x36,0x41,0x41

  23. };
  24. /* base point Gx*/
  25. const uint8_t secp256_Gx[] =
  26. {
  27. 0x79,0xbe,0x66,0x7e,0xf9,0xdc,0xbb,0xac,0x55,0xa0,0x62,0x95,0xce,0x87,
  28. 0x0b,0x07,0x02,0x9b,0xfc,0xdb,0x2d,0xce,0x28,0xd9,0x59,0xf2,0x81,0x5b,0x16,
  29. 0xf8,0x17,0x98

  30. };
  31. /* base point Gy*/
  32. const uint8_t secp256_Gy[] =
  33. {
  34. 0x48,0x3a,0xda,0x77,0x26,0xa3,0xc4,0x65,0x5d,0xa4,0xfb,0xfc,
  35. 0x0e,0x11,0x08,0xa8,0xfd,0x17,0xb4,0x48,0xa6,0x85,0x54,0x19,0x9c,0x47,0xd0,
  36. 0x8f,0xfb,0x10,0xd4,0xb8
  37. };
复制代码


完整版请查看:附件





基于STM32加密库开发比特币应用的补充说明.pdf

下载

229.55 KB, 下载次数: 1

收藏 评论0 发布时间:2022-8-11 14:31

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版