计算机安全:安全协议
安全协议:身份证明协议
挑战-响应协议:证明者向验证者通过展示与身份相关的秘密知识,证明自己的身份。
双向认证(基于共享密钥)
挑战:一方传送给对方一个随机数
响应:对方对这个数进行特定处理再返回
双向认证协议(1)
假设A也是可接受多个会话的通用计算机考虑当攻击者伪装B的身份
受到反射攻击:
关键:伪装B,建立一个同A的会话;拦截一个A向B的会话;利用A的自动加密,分别套出两个随机数的加密值。
双向认证协议(2)
受到反射攻击:
改进方式:在每个加密消息里加入发送者、接收者在协议中的角色(这样攻击者就无法利用消息2)。
双向认证协议(3)基于HMAC,对HMAC的 攻击难于对对称密钥算法的攻击。
双向认证协议(4)
攻击:
重放攻击:重放4给A;4中没有注明这个会话密钥和此次通信的关联。类型缺陷攻击:攻击者在第四步重放2给A:虽然攻击者不一定知道RA+1,但猜测nonce比猜测密钥简单。解决方式:Nonce只被要求每次不同即可,不包含随机性。
Schnorr协议-基于整数模p的阶为q的乘法循环群
全局变量:p(大素数)、q( ...
计算机安全:快速比特操纵算法
快速比特操纵算法:定义使用机器字操作(算术、逻辑运算)实现机器字中的比特的计算和变换。
计算1的个数1234unsigned int v; //时间复杂度高 unsigned int c; for (c = 0; v; c++) v &= v - 1;
分块和(加法)定义
对于一个二进制数x(总位数为w),将其划分为多段相同长度u的区间,每个区间内的1的个数,转化为二进制,首尾相接得到y。y称为x的u分块和。
例如:101010的1分块和是101010,101010的2分块和是010101(3个1),101010的6分块和是000011。
因为u位能表示的最大数,大于u本身,故y能在w位内,正确表达出分块和。分块和不是相加,而是相连。
递推表达式x[2u]=yAND(0u1u)w/2u+(x[u]>>u)AND(0u1u)w/2u
简单来说,便是将奇数个u区间和偶数个u区间相加。例如上面01010101的例子,便需要先将01010101和00110011按位与,只保留奇数个u区间得到00010001,再将 ...
计算机安全:安全计算
协议双方互不信任,都有可能欺骗Semi-honest 半诚实,遵守协议流程,在过程中获得尽可能的信息
承诺方案概述即在一次信息交换中,A和B需要“同时”获得对方的一个信息。假设A先给出信息a,B后给出信息b。则B需要先给出b的证明c,A再给出信息a,B再给出信息b。这样,A能够核验信息证明c,来确保B没有在接收信息a后更改信息b【绑定】;同时,A也无法从信息证明c中获取b,来改变信息a【隐藏】。
基于Hash函数的实现
A 计算承诺 c = H (随机数,a),将 c 发送给 B
隐藏性:存在 H ( R’, a’ ) = H ( R, a ),B找不到真实的R,a
绑定性: A 找不到 R’, a’,满足:H ( R’, a’ ) = H ( R, a )
不存在对有无限计算能力的敌手同时具有隐藏性和绑定性的承诺方案。
百万富翁问题概述A有一个0-9的数a,B有一个0-9的数b,A和B不想让对方知道自己的数字,但想知道a和b的大小。
基于DH实现
A和B生成 α,gα,β,gβ
A进行操作后发给B:若α=i,则H[i]= ...
计算机安全:蒙哥马利约减
蒙哥马利约减问题
求y mod N,N为质数。y称为x模N关于R的Montgomery约减,即y=xR’ mod N
附加条件:不使用除法(除法速度慢)
尽量避免了使用取模运算用移位、减法运算替代取模运算目前使用最广泛的模指数运算方法
设计
1.取R为2的幂次方(如果 N表示为n个b进制数,则 R取b的幂次方),这样/ R即右移,*R即左移,mod R即与(R-1)按位与,大大提高了速度。
2.R和N互质,即存在R’和N’,使得RR’ + NN’=1。同时,R>N(why?),x/R<N。这些选择保证最多只需要一次减法即可完成取模。
结论
(x−(x∗N′modR)∗N)/R≡x∗R′modN
(x−(x∗N′modR)∗N)/R<2R
例子
取N = 3457,R = 2^16,得到N’=12929,R’=682。求y mod N:
计算得3310≡RmodN
由结论得,y≡(y∗R−(y∗R)∗N′modR∗N)/R
代入计算得,y≡(y∗3310 ...
计算机安全:俄国农民指数算法
俄国农民指数算法
方法一:正向快速幂
123456789101112long long FastPow(long long g,long long e,const long long m) //求g的e次方模m的值{ long long ans=1; while(e) { if(e&1) ans=(ans*g)%m; g=(g*g)%m; e>>=1; } return ans;}
方法二:逆向快速幂
123456789101112long long FastPow(long long g,long long e,const long long m) //求g的e次方模m的值{ long long ans=1; while(e) //e采用反向存储 { ans=(ans*ans)%m; if(e&1) ans ...
欢迎来到第九边缘
一、什么是第九边缘文化体系“第九边缘是什么?相信并不是所有人都能够意识到。包括我们的代理者,也不能轻易做出一个明确的定义。或许,第九边缘并不符合他们的文化倾向。但在我们的世界里,第九边缘意味着“理性的文化”。它作为一个哲学符号,又或者是文明的动态象征,第九边缘的创造物意味着我们整个世界的智慧与现实。创造意味着新生,意味着第九边缘带来与现实截然不同的选择,记录意味着同步,意味着第九边缘的描述符合我们世界的基本认知,感知意味着神觉,意味着第九边缘存在超出我们世界的看法。在我们的世界里,虚构的文化太多,越来越多的人不重视实际存在的文明。随处可见的新文化,正在抹除文明本身的重量,使人们轻薄于学习既有的事物,去了解既有的历史。我们急需一种代表,能够保存我们的实际文明的同时,吸引绝大多数人们接纳我们的现实世界。这就是第九边缘,一个虚拟的科研组织,一个文明的汇聚之核。”(来自第九边缘:创世档案)这是来自《创世档案》中的描述。可见,我们一直在回避这个问题。究其原因,是我们未曾拥有真实的历史。具体而言,第九边缘诞生于初中的一次灵感,又或者发源自一个初中生对虚构式未来的幻想。我们在幻想世界的途中,融入了太 ...