miracl函数库的函数研究
最近在看密码算法的相关知识,要写会话秘钥的相关代码
题目
1、Alice 与 Bob 协商会话密钥。
采用公钥密码体系(公钥加密算法也称非对称秘钥算法),通过自选密码库实现密钥协商(10 分),session key (每次通信只能使用一次的 会话密钥也称为数据加密密钥或者工作密钥)长度 1024 bits.
注:密钥协商所需公钥与私钥,采用两种方式生成:
- 密码库实现(10 分);
- 不得采用密码库或大数库(10 分);
若 RSA 体系至少为 2048 级,ECC 至少为 512 级,比较 1 和 2 的时空复杂度(10 分)
2、采用如下对称密码算法加解密,并验证正确性。
- LFSR:线性反馈移位寄存器.
- LFSR 1~4 长度均为 256bit.
- 反馈多项式自拟.
- LFSR 3~4 初始状态为SHA-512(学号||日期)^ session.key
- LFSR 1~2 初始状态为SHA-512(日期||学号)^ session.key
- 初始化 256 轮.
- 每轮从LFSR 1~4 中分别滤波 8 比特, 级联组成 32bits 密钥流.
- 明文长度256MB,明文自拟.
注:
- 采用大数库实现(20 分)
- 不采用大数库实现(20 分)
- 比较大数库实现和不采用大数库实现的时空复杂度(10 分)
收集相关小知识
1、线性反馈移位寄存器理论知识
参考:https://blog.csdn.net/ViV587/article/details/88763454
http://m.elecfans.com/article/606437.html
2、SHA-512:
参考:https://m.qukuaiwang.com.cn/news/15006.html
https://blog.csdn.net/u012835097/article/details/79407595
http://www.elecfans.com/blockchain/857537.html
3、openssl安装
参考:https://blog.csdn.net/gengxiaoming7/article/details/50957275/
https://github.com/openssl/openssl
4、rsa的数据结构
下面展示一些 内联代码片
。
struct
{
BIGNUM *n; // public modulus
BIGNUM *e; // public exponent
BIGNUM *d; // private exponent
BIGNUM *p; // secret prime factor
BIGNUM *q; // secret prime factor
BIGNUM *dmp1; // d mod (p-1)
BIGNUM *dmq1; // d mod (q-1)
BIGNUM *iqmp; // q^-1 mod p
// ...
};
RSA
5、rsa实现加解密
https://blog.csdn.net/f_hawk189/article/details/80681964
搜索到的有用文章
http://www.mathmagic.cn/bbs/simple/?t7050.html
RSA算法的实现:https://blog.csdn.net/baidu_22254181/article/details/82594072