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

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

[复制链接]
STMCU小助手 发布时间:2022-8-11 14:31
前言 0 K2 {: G9 a" O! a
比特币是一个基于区块链和密码技术的应用。本文针对 STM32 客户的反馈,对那些使用 STM32 加密库开发比特币应用作了一些补充的技术说明。/ @0 O$ f) l" L  l* Z7 y! a
) W% q' h1 _6 C9 H

" s- `! Z8 K- E# @  P) ^7 y
STM32 加密库 / ]8 K: ]0 [) o/ N) V: S2 U2 h
STM32 加密库提供对称加解密,非对称加解密,以及 HASH 算法,并通过了 CAVP FIPS 认证,可使用在各类安全相关的应用。: l0 p; a- b3 H) s4 {) K
对称加解密算法支持 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。3 \. c# B/ t$ E% @# F0 `
STM32 加密库分为硬件加速和纯固件实现两种。纯固件实现可以运行在所有的 STM32 系列上。
0 q  T( b6 G+ u$ I% T7 i
+ ?7 \/ M& O" R: W# |4 y. w
; r$ M3 E6 s2 P' h' d# l8 G
STM32 TRNG 真随机数
* u; `0 w' \% A: K/ m+ _STM32 真随机数(TRNG)基于物理噪声源生成随机数,提供了高随机性,为不少算法特别是椭圆曲线提供了坚实的基础。随机数通过了 AIS-31 PTG.2 测试。
" @) C$ }6 F% o+ Q4 {' y  s$ `$ T7 q! c; P
比特币中的加解密算法
' O4 q4 ~3 k1 h8 N$ v比特币加解密相关的算法主要是两类,椭圆曲线 ECC 以及 HASH 算法。比特币使用椭圆曲线签名和验签算法来核实比特币交易的可靠性,以及辨别区块链中比特币的归属地址。HASH 算法除了用在椭圆曲线签名、验证,比特币地址校验,还利用该 算法的单向性,创造出比特币的挖矿机制。HASH 没有什么特别,将不在本文补充说明。# }7 \2 u6 Y& G; z3 c: }

" h# W. `" p) X4 O
比特币的椭圆曲线
2 E9 ~; N- [* S9 P7 a# J比特币的椭圆曲线是个小众曲线,不是常见的 NIST P192、P256 和 P384,而是 SECP256。根据它的规范和 STM32 加密库的代码库的参数格式,比特币的椭圆曲线参数可以表示如下:
  F) j# S5 v6 p; K$ w0 m" Z. `) ^+ G* E
  1. /* coefficient a*/
    ! V) ~1 ?. F. N) \
  2. const uint8_t secp256_a[] =$ i- C0 f" }+ ?! u! Q
  3. {1 }: l) @* R, f8 P. W! F
  4. 0x00+ m2 X7 Y% f. _, L7 P, o/ A8 Z
  5. };
    # Y& _8 g+ n6 Y, d8 J
  6. /* coefficient b */
      A- d  _0 w  P9 T% V. F
  7. const uint8_t secp256_b[] =' w4 F9 K0 U1 O2 ^% B
  8. {8 |8 W3 ~) u& g/ d  L% V/ n
  9. 0x77 ~' Q* {3 x/ {8 i2 p
  10. };5 \7 r& m  {" d* [' @& E
  11. /* prime modulus p*/
    ( H6 S: _% n$ s8 r3 z! |
  12. const uint8_t secp256_p[] =; a) m/ U# b2 ?. @: M
  13. {. W& {- L9 y9 N( u" A/ L
  14. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,9 e' s' U, \+ J# D  O* g1 |
  15. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,  M& q/ v' g% g- H8 m
  16. 0xff,0xfc,0x2f8 i8 C. Q6 ?( y5 a
  17. };
    ; o) K- g$ A. X& d& M3 d9 n
  18. /* order n*/: [" T! {+ R9 a; j: u# \- N& g9 W
  19. const uint8_t secp256_n[] = {' t+ O% a& }5 P  Q  b
  20. 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,- V( H& a! e: P& @
  21. 0xff,0xfe,0xba,0xae,0xdc,0xe6,0xaf,0x48,0xa0,0x3b,0xbf,0xd2,0x5e,0x8c,0xd0,
    ; z0 ^- V: @  R& X7 R4 `
  22. 0x36,0x41,0x41
    " {4 j( J6 C  E: i0 K1 [: J
  23. ( ~* K9 {$ p. K6 w& R* W+ G$ V
  24. };
    3 l% }2 I/ S& z- _  H4 Q" H5 w
  25. /* base point Gx*/9 Y2 a! o/ a$ @- D. g; q; g
  26. const uint8_t secp256_Gx[] =
    : x$ g+ ]- R/ \/ Z8 s0 o
  27. {
      Z8 i1 U3 j% o
  28. 0x79,0xbe,0x66,0x7e,0xf9,0xdc,0xbb,0xac,0x55,0xa0,0x62,0x95,0xce,0x87,
    0 M. S8 C5 z, }$ A4 C
  29. 0x0b,0x07,0x02,0x9b,0xfc,0xdb,0x2d,0xce,0x28,0xd9,0x59,0xf2,0x81,0x5b,0x16,
    8 v) A/ g" A9 W: y5 n
  30. 0xf8,0x17,0x98
    / i3 Q7 h/ u+ L1 `" ], R
  31. 0 a0 _. M+ B4 T0 ~6 \3 V$ @& _
  32. };2 s/ r# n3 P+ R  P) M
  33. /* base point Gy*/& N# J% d& i7 _
  34. const uint8_t secp256_Gy[] =
    . U% e' w/ f4 e% V  W; L
  35. {
    " x+ x* H9 j0 y5 I
  36. 0x48,0x3a,0xda,0x77,0x26,0xa3,0xc4,0x65,0x5d,0xa4,0xfb,0xfc,
    ; r+ H& h2 C+ h; U8 s
  37. 0x0e,0x11,0x08,0xa8,0xfd,0x17,0xb4,0x48,0xa6,0x85,0x54,0x19,0x9c,0x47,0xd0,
    6 |7 s0 o- O4 a0 X
  38. 0x8f,0xfb,0x10,0xd4,0xb8
    ( f2 K* g3 H5 w/ i; `
  39. };
复制代码

! y) s8 Y0 q( s) K; G
* h) G! w' [, V( M- C完整版请查看:附件! c( H  L. t4 T) |/ Q( n/ P

; i; W* F* X4 N( e
$ D+ j& T# U6 T6 w) Y' @0 l4 F4 j# H4 A2 q
5 c( c* h5 k3 G. v% V

! j3 ?# {* J! o: a5 L' @

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

下载

229.55 KB, 下载次数: 1

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

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版