加密算法
2021-11-01 11:26:29
登录查看完整内容
SM2扫盲
举报
猜你喜欢
大纲/内容
知道两个大数 做乘法很容易 但是知道一个大数 做因式分解很难
数学原理
RSA
知道椭圆曲线上的起点 和操作的次数 求终点很容易但是知道起点和终点 推算操作次数很难
y^2 = x^3 + ax + b
公式
关于x轴对称
不垂直于x轴的直线和椭圆曲线最多有三个交点
特性
椭圆曲线
操作
我们不需要连续的点 甚至可以说 我们只要整数点所以我们需要把曲线离散化
y^2=x^3 + x + 1(mod23)的图像
曲线描述
编辑器打开一个证书文件 通常是一段base64的字符串这段字符串带了很多信息 比如版本号 签名算法 有效期等等远远不是只有公钥和私钥
概述
一种标准的数据结构来定义一本证书的每一个字段通常我们可以直接使用ASN1Sequence.getInstance(certBytes)来解析证书certBytes是base64.decode过的字节数组
ASN1Sequence(磁盘存储层)
证书数据结构通常我们使用Certificate.getInstance(seq)来构造一个证书对象seq是ASN1Sequence对象
Certificate(代码运行层)
可以简单的理解为公钥证书的标准解析接口
X509
可以简单的理解为私钥证书的标准解析接口
PKCS#
椭圆曲线多项式中x的系数
a
常数系数
b
mod运算的值(前文中的23)
p
椭圆曲线上的一个点
G
点G的阶可以简单的理解为曲线和G确定了n的值也唯一确定
n
一条椭圆曲线的主要构造参数这个参数是由国家颁布的
ECDomainParameters
证书数据结构
K是公钥(是椭圆曲线上的点)
k私钥
G是一个预定义的椭圆曲线上的点(由国家颁布)
K = kG
数学公式表达
SM2公钥私钥的关系
私钥需要带更多的信息比如对应公钥的构造信息
为什么公钥私钥需要两个不同的数据结构表示
计算机实现
加解密算法深入理解
签名验签深入理解
射影平面深入理解
TODO
椭圆曲线通俗易懂简介
Ecc加密算法
ECC加密算法
参考文献
SM2
加密算法
0 条评论
回复 删除
下一页