国产密码研究

最近找国产密码的资料,发现这块的东西极少。

经过这次中兴事件,中美贸易战的事件时候感觉国产密码会提升到国防的程度。

研究下发现有一个大神写出了java SM系列部分国产密码的工具。

但是很多转载版本缺少了一个Cipher类文件的存在。所以我觉得我这里需要记录一下这次的东西,以后必然会用上。

这次研究下,发现我对密码学非常感兴趣啊~~~~想学的东西太多~~~时间明显不够用了~~~~


密码概况
1、SM1算法。:存在芯片中,并未公开
2、SM2算法。:非对称椭圆加密算法,已公开
2、SM3算法。该算法也叫密码杂凑算法,属于哈希(摘要)算法的一种,杂凑值为256位,和SM2算法一起被公布。不可逆,并且具体算法保密
4、SM4算法。该算法为对称加密算法,随WAPI标准一起被公布,其加密强度为128位。分组算法,此算法是一个分组算法,用于无线局域网产品。
5.SM7对称密码 SM7算法是一种分组密码算法,分组长度为128比特,密钥长度为128比特。SM7的算法文本目前没有公开发布。IC卡,门禁专用
6.SM9非对称算法 。

 

SM2算法原理:https://www.cnblogs.com/smy87/p/7919208.html

 

以下是转载自蜗牛小姐姐的学习笔记。非常好理解。

 

RSA算法的危机在于其存在亚指数算法,对ECC算法而言一般没有亚指数攻击算法

SM2椭圆曲线公钥密码算法:我国自主知识产权的商用密码算法,是ECC(Elliptic Curve Cryptosystem)算法的一种,基于椭圆曲线离散对数问题,计算复杂度是指数级,求解难度较大,同等安全程度要求下,椭圆曲线密码较其他公钥算法所需密钥长度小很多。

ECC算法描述:

  1、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。
  2、用户A选择一个私有密钥k,并生成公开密钥(公钥PB)K=kG。
  3、用户A将Ep(a,b)和点(公钥)K,G传给用户B。
  4、用户B接到信息后 ,将待传输的明文(M)编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。加密开始
  5、用户B计算点C1=M+rK;C2=rG。
  6、用户B将C1、C2传给用户A。
  7、用户A接到信息后,计算C1-kC2,结果就是点M。因为C1-kC2=M+rK-k(rG)=M+rK-r(kG)=M
  再对点M进行解码就可以得到明文。

  密码学中,描述一条Fp上的椭圆曲线,常用到六个参量:
  T=(p,a,b,G,n,h)。
  (p 、a 、b 用来确定一条椭圆曲线,G为基点,n为点G的阶,h 是椭圆曲线上所有点的个数m与n相除的整数部分)

  这几个参量取值的选择,直接影响了加密的安全性。参量值一般要求满足以下几个条件:

  1、p 当然越大越安全,但越大,计算速度会变慢,200位左右可以满足一般安全要求;

  2、p≠n×h;

  3、pt≠1 (mod n),1≤t<20;
  4、4a3+27b2≠0 (mod p);
  5、n 为素数;
  6、h≤4。

 

 

 

 

 

实现该功能的blog:https://blog.csdn.net/ererfei/article/details/50998162

实现代码等我回去再补充

posted @ 2018-06-15 16:35  酒皇  阅读(1963)  评论(0编辑  收藏  举报