国密扩展了解概述
1.SM算法
国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。
SM1 为对称加密。其加密强度与AES相当。该算法不公开,调用该算法时,需要通过加密芯片的接口进行调用。
SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
SM3 消息摘要。可以用MD5作为对比理解。该算法已公开。校验结果为256位。
SM4 无线局域网标准的分组数据算法。对称加密,密钥长度和分组长度均为128位。

2.sm4加密有两种模式:ecb和cbc。两种模式的区别如下(下面文字来自百度):
ECB:是一种基础的加密方式,密文被分割成分组长度相等的块(不足补齐),然后单独一个个加密,一个个输出组成密文。
CBC:是一种循环模式(链式),前一个分组的密文和当前分组的明文操作后再加密,这样做的目的是增强破解难度。(不容易主动攻击,安全性好于ECB,是SSL、IPSec的标准)

一、优bai点不同:
ECB模式:1、简单;2、有利于并行计算;3、误差不会bai被传送;
CBC模式:1、不容易主动攻击,安全性好于baiECB,适合传输长度长的报文,是SSL、IPSec的标准。

二、缺点不同:
ECB模式:1、不能隐藏明文的模式;2、可能对明文进行主动攻击;
CBC模式:1、不利于并行计算;2、误差传递;3、需要初始化向量IV


  1. 前端------------后端
    1. 准备阶段:后端生成SM2密钥对 (生成SM2密钥对(publicKey ,privateKey)
      1. 前端首先请求接口,获取公钥 (接口下发SM2公钥(publickey))
    2. 请求流程:加密与计证
      1. 随机生成SM4密钥(sms4Key)和 随机数IV
      2. 使用SM2公钥加密(sms4Key 和  IV)  分别生成  encryptedKey
      3. 使用SM4-GCM和IV加密&认证业务数据
        1. 输出(ciphertext, authTag)
      4. 发送请求:{key: encryptedKey, iv: iv, ciphertext: ciphertext, tag: authTag}
    3. 响应流程:解密与验证
      1. 用SM2私钥解密encryptedKey --> 得到(sms4Key, IV)
      2. 使用SM4-GCM、IV 和authTag 验证并解密 ,验证失败则立即拒绝请求
      3. 处理业务逻辑,生成响应respData
      4. 生成新IV_resp,用 sms4Key 加密响应得到(encryptedResp,authTagResp)
      5. 发送响应:{iv: iv_resp, data:encryptedResp, tag: authTagResp}
      6. 使用缓存的sms4Key和收到的IV验证并解密响应
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐