2021—研一学习笔记 day3

2021—研一学习笔记-3

2021-3-11 第三天
//
part-1 SM2椭圆曲线公钥密码算法:数字签名算法
//
一、问题:
3、何时需要进行数据转换?
4、私钥dB和随机数rB,在哪些算法下是一致的?哪些情况下是不一致的?
5、生成算法和验证算法的推导和证明是什么样的?
6、其他基于椭圆曲线的算法(包括数字签名、密钥交换、公钥加密)(除了SM2外)的流程是什么样的?这些不同的流程如何设计的如此恰到好处?怎样从理论上去判别它们的性能好坏?

二、参数
系统参数
规模q
参数a和b
基点G、G的阶n
其他可选性
#系统参数及验证要符合第5章规定

用户密钥对
私钥d_A
公钥P_A=[d_A ]G=(x_A,y_A)

#密钥对生成算法和公钥验证算法要符合第6章规定

用户其他信息
可辨别标识〖ID〗_A
〖ENTL〗_A
杂凑值Z_A

#Z_A=H_256 (〖ENTL〗_A ||〖ID〗_A ||a||b||x_G ||y_G ||x_A ||y_A)

三、算法及流程
1、数字签名-生成算法
在这里插入图片描述
2、数字签名-验证算法
在这里插入图片描述
//
part-2 SM2椭圆曲线公钥密码算法:密钥交换协议
//
一、 问题:
2、(xA、yA)和(xG、yG)的生成方法?随机生成吗?
3、何时需要进行数据转换?
4、生成算法和验证算法的推导和证明是什么样的?
5、其他基于椭圆曲线的算法(包括数字签名、密钥交换、公钥加密)(除了SM2外)的流程是什么样的?这些不同的流程如何设计的如此恰到好处?怎样从理论上去判别它们的性能好坏?

二、 算法及流程
密钥交换协议
在这里插入图片描述
#A、B计算出的U和V应该是一致的。(我认为)
由U、V算得的K_A和K_B是双方协商的密钥;
由U、V算得的S_B和S1,用于让A验证B的身份;
由U、V算得的S_A和S2,用于让B验证A的身份。

//
part-3 分组密码算法
//
学习分组密码算法并尝试用C语言简单实现

已完成基本算法部分,但存在一些bug和时间、空间上的浪费,正在修改中。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值