• 首页
  • 电影
  • Js
  • 前端
  • 新旅
  • 奇技
  • 网安
  • 歌单
  • 关于
  • 搜索
  • 夜间模式
    ©2013-2025  成长小破站 Theme by OneBlog
    搜索
    标签
    # css # js # uniapp # ps # chrome # 小程序 # javascript # 布局 # typecho # 激活码
  • 首页>
  • 网络安全>
  • 正文
  • SM4

    2023年09月11日 1.9 k 阅读 0 评论 4345 字

    无线局域网产品使用的 SMS4 密码算法

    本算法是一个分组算法。该算法的分组长度为 128 比特,密钥长度为 128 比特。加密算
    法与密钥扩展算法都采用 32 轮非线性迭代结构。解密算法与加密算法的结构相同,只是轮
    密钥的使用顺序相反,解密轮密钥是加密轮密钥的逆序。
    1. 术语说明
      1.1 字与字节
      用 表示 e-比特的向量集, 中的元素称为字, 中的元素称为字节。 e Z 2
    2. Z2
    3. Z2
      1.2 S 盒
      S 盒为固定的 8 比特输入 8 比特输出的置换,记为 Sbox(.)。
      1.3 基本运算
      在本算法中采用了以下基本运算:
      ⊕ 32 比特异或
      <<< i 32 比特循环左移 i 位
      1.4 密钥及密钥参量
      加密密钥长度为 128 比特,表示为MK=(MK0, MK1, MK2, MK3),其中MKi(i=0,1,2,3)为
      字。
      轮密钥表示为(rk0, rk1, …, rk31),其中rki(i=0,…,31)为字。轮密钥由加密密钥生成。
      FK=(FK0, FK1, FK2, FK3)为系统参数,CK=(CK0, CK1,…, CK31)为固定参数,用于密钥扩
      展算法,其中FKi(i=0,…,3)、CKi(i=0,…,31)为字。
    4. 轮函数 F
      本算法采用非线性迭代结构,以字为单位进行加密运算,称一次迭代运算为一轮变换。
      设输入为 ,轮密钥为 ,则轮函数 F 为: 432
    5. 2 ∈ ZXXXX )(),,,( 32 ∈ Zrk 2
      ),,,,( ( ) 3210 0 321 = ⊕ ⊕ ⊕ ⊕ rkXXXTXrkXXXXF
      1
      2.1 合成置换 T
      T: ,是一个可逆变换,由非线性变换 τ 和线性变换 L 复合而成,即 T(.)=L(τ(.))。 32
      2
      32
    6. → ZZ
      2.1.1 非线性变换τ
      τ 由 4 个并行的 S 盒构成。
      设输入为 , 输出为 ,则 48
    7. 2 = ∈ ZaaaaA )(),,,( 48
    8. 2 = ∈ ZbbbbB )(),,,(
      ))(),(),(),(()(),,,( 3210 0 1 2 3 = τ = aSboxaSboxaSboxaSboxAbbbb
      2.1.2 线性变换 L
      非线性变换 τ 的输出是线性变换 L 的输入。设输入为 ,输出为 ,则 32 ∈ ZB 2
    9. ∈ ZC 2
      == ⊕ BBBLC B <<<⊕<<< ⊕ B <<< ⊕ B <<< )24()18()10()2()(
      2.2 S 盒
      S 盒中数据均采用 16 进制表示。

    1. 加/解密算法
      定义反序变换 R 为:
      ),,,(),,,( 3210 = AAAAAAAAR 0123 , 。 3,2,1,0, 32
      i 2 iZA =∈
      设明文输入为 ,密文输出为 ,轮密钥
      为 。则本算法的加密变换为:
      432
    2. 2 ∈ ZXXXX )(),,,( 432
    3. 2 ∈ ZYYYY )(),,,(
      31,...,2,1,0, 32
      i 2 iZrk =∈
      (),,,,( .13,...,1,0,) i+4 = +++ 321 = iiiiii ⊕ +1 ⊕ ii +2 ⊕ i+3 ⊕ i irkXXXTXrkXXXXFX =
      ),,,(),,,(),,,( 3210 = 35343332 = XXXXXXXXRYYYY 32333435 。
      本算法的解密变换与加密变换结构相同,不同的仅是轮密钥的使用顺序。
      加密时轮密钥的使用顺序为:(rk0, rk1, …, rk31)
      解密时轮密钥的使用顺序为:(rk31, rk30, …, rk0)
    4. 密钥扩展算法
      本算法中加密算法的轮密钥由加密密钥通过密钥扩展算法生成。
      加密密钥MK=(MK0, MK1, MK2, MK3),MKi∈ ,i=0,1,2,3;
    5. Z2
      令Ki∈ ,i=0,1,…,35,轮密钥为 ,则轮密钥生成方法为: 32 Z2 31,...,1,0, 32
      i 2 iZrk =∈
      首先,(K0,K1,K2,K3)=(MK0○+ FK0,MK1○+ FK1,MK2○+ FK2,MK3○+ FK3)
      然后,对i = 31,...,2,1,0 :
      ( ) ii 4 i i 1 ⊕ i 2 ⊕ i 3 ⊕ CKKKKTKKrk i ⊕== ′ + + + +
      说明:
      (1) ' T 变换与加密算法轮函数中的 T 基本相同,只将其中的线性变换 L 修改为以下 : ' L
      ' L (B)=B○+ (B<<< 13)○+ (B<<< 23);
      (2)系统参数 FK 的取值,采用 16 进制表示为:
      FK0=(A3B1BAC6),FK1=(56AA3350),FK2=(677D9197),FK3=(B27022DC)
      (3)固定参数 CK 的取值方法为:
      设cki,j为CKi的第j字节(i=0,1,…,31;j=0,1,2,3),即CKi = (cki,0,cki,1,cki,2,cki,3) ∈ ,
      则ck
      48
    6. Z )(
      i,j = (4i+j)×7(mod 256)。32 个固定参数CKi,其 16 进制表示为:
      00070e15, 1c232a31, 383f464d, 545b6269,
      70777e85, 8c939aa1, a8afb6bd, c4cbd2d9,
      e0e7eef5, fc030a11, 181f262d, 343b4249,
      50575e65, 6c737a81, 888f969d, a4abb2b9,
      c0c7ced5, dce3eaf1, f8ff060d, 141b2229,
      30373e45, 4c535a61, 686f767d, 848b9299,
      a0a7aeb5, bcc3cad1, d8dfe6ed, f4fb0209,
      10171e25, 2c333a41, 484f565d, 646b7279
      3
    7. 加密实例
      以下为本算法 ECB 工作方式的运算实例,用以验证密码算法实现的正确性。其中,数
      据采用 16 进制表示。
      实例一: 对一组明文用密钥加密一次
      明 文 : 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
      加密密钥 : 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
      轮密钥与每轮输出状态 :
      rk[ 0] = f12186f9 X[ 0] = 27fad345
      rk[ 1] = 41662b61 X[ 1] = a18b4cb2
      rk[ 2] = 5a6ab19a X[ 2] = 11c1e22a
      rk[ 3] = 7ba92077 X[ 3] = cc13e2ee
      rk[ 4] = 367360f4 X[ 4] = f87c5bd5
      rk[ 5] = 776a0c61 X[ 5] = 33220757
      rk[ 6] = b6bb89b3 X[ 6] = 77f4c297
      rk[ 7] = 24763151 X[ 7] = 7a96f2eb
      rk[ 8] = a520307c X[ 8] = 27dac07f
      rk[ 9] = b7584dbd X[ 9] = 42dd0f19
      rk[10] = c30753ed X[10] = b8a5da02
      rk[11] = 7ee55b57 X[11] = 907127fa
      rk[12] = 6988608c X[12] = 8b952b83
      rk[13] = 30d895b7 X[13] = d42b7c59
      rk[14] = 44ba14af X[14] = 2ffc5831
      rk[15] = 104495a1 X[15] = f69e6888
      rk[16] = d120b428 X[16] = af2432c4
      rk[17] = 73b55fa3 X[17] = ed1ec85e
      rk[18] = cc874966 X[18] = 55a3ba22
      rk[19] = 92244439 X[19] = 124b18aa
      rk[20] = e89e641f X[20] = 6ae7725f
      rk[21] = 98ca015a X[21] = f4cba1f9
      rk[22] = c7159060 X[22] = 1dcdfa10
      rk[23] = 99e1fd2e X[23] = 2ff60603
      rk[24] = b79bd80c X[24] = eff24fdc
      rk[25] = 1d2115b0 X[25] = 6fe46b75
      rk[26] = 0e228aeb X[26] = 893450ad
      rk[27] = f1780c81 X[27] = 7b938f4c
      rk[28] = 428d3654 X[28] = 536e4246
      rk[29] = 62293496 X[29] = 86b3e94f
      rk[30] = 01cf72e5 X[30] = d206965e
      rk[31] = 9124a012 X[31] = 681edf34
      密 文 : 68 1e df 34 d2 06 96 5e 86 b3 e9 4f 53 6e 42 46
      实例二: 利用相同加密密钥对一组明文反复加密 1000000 次
      明 文 : 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
      加密密钥 : 01 23 45 67 89 ab cd ef fe dc ba 98 76 54 32 10
      密 文 : 59 52 98 c7 c6 fd 27 1f 04 02 f8 04 c3 3d 3f 66

    新修订的《商用密码管理条例》7月1日起施行。

    本文著作权归作者 [ admin ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    SM4
    — END —
    首页电影Js前端新旅奇技网安歌单关于
    Copyright©2013-2025  All Rights Reserved.  Load:0.042 s
    豫公网安备41050202000235   豫ICP备18019224号-2
    Theme by OneBlog V3.6.4
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。