zoukankan      html  css  js  c++  java
  • 安全算法知识

    密码技术

    对称密码

    SM4、DES、3DES、AES

    公钥密码(非对称密码)

    ECC、SM2

    单向散列函数(摘要算法

    SHA1、SHA256、MD5、SM3

    消息认证码

    数字签名

    伪随机数发生器

    信息安全面临的威胁和应对威胁的密码技术

     数据长度

       
    SHA1输出 160位=20字节
    SHA256输出 256位=32字节
    MD5输出 128位=16字节
    SM3输出 256位=32字节
    SM2签名值长度 64字节
    SM2生成私钥长度 32字节
    SM2生成公钥长度 64字节

     

     

     

    SM2签名

    数字签名

    数字签名算法有一个签名者对数据产生数字签名,并由一个验证者验证签名的可靠性。

    每个签名者有一个攻牙和一个私钥,其中私钥用于产生签名,验证者用签名者的公钥验证签名。

    在签名的生成过程之前,要用密码杂凑函数对M1(包含Za和待验消息M11)进行压缩;

    在验证过程之前,要用密码杂凑函数对M2(包含Za和待验消息M22)进行压缩

    SM2使用的杂凑算法是SM3。

    作为签名者的用户A具有长度为entlenA 比特的可辨别标识IDA,记ENTLA是由整数entlenA转换而成的两个字节。签名者也验证者都需要用密码杂凑函数求得用户A的杂凑只ZA。将椭圆曲线方程参数a、b、G的坐标xG、yG和PA的坐标xA、yA的数据类型转换为比特串。ZA = H256( ENTL||  ID||  a  ||  b  || xG || yG || xA ||  yA )。

    E = H (ZA || M)

    再使用E和私钥生成签名值。

    不同的待签消息产生不同的签名值,相同的待签消息也产生不同的签名值。

    签名值长度为64字节。(r,s)。r、s 各32字节。

  • 相关阅读:
    python 列表与字符串互相转化
    python爬虫——BeautifulSoup详解(附加css选择器)
    python——requests库
    用代理池 + redis 刷博客浏览量(2)
    scrapy爬取知乎用户信息并存入mongodb
    python 爬虫 计算博客园浏览量,刷浏览量(1)
    python SocketServer模块创建TCP服务器·
    【XSY1986】【BZOJ1455】罗马游戏
    【模板】左偏树
    CF464D World of Darkraft
  • 原文地址:https://www.cnblogs.com/doitjust/p/12625580.html
Copyright © 2011-2022 走看看