网络信息安全上机作业罢了,人已经麻了
shamir秘密共享协议
加密过程
假设有秘密S要保护,任意取t-1个随机数,构造如下多项式: ,其中, ,所有运算均在有有限域中进行。
- 取任意n个数, 分别带入多项式,得到 。
- 将 分发给n个服务器上。
解密过程
从任意t个服务器上取得数据,假设取得 ,带入并求解多项式系数;
用矩阵乘法表示为:
在求得 之后便可以构造出多项式
将 带入到多项式中,可以求的原秘密
算法实现
1 | from math import ceil |
运行示范
1 | ┌─[loorain@ubuntu] - [~/crypto/shamir] - [2304]shamir |
图像加密隐写
这里用0-255的矩阵模拟灰度图像
加密过程
随机生成 O 和 S,并计算 d 和 si
1 | S_img = rd.randint(0,256,(10,10)) |
生成Q
1 | for i in range(20): |
生成y = f(x),求得y与Q相加的到n个Oi
1 | O_i = [] |
解密过程
1 | for i in range(101): |