摘要:
第三十一个知识点:Game Hopping证明 关于安全证明, 目前主流的方法有安全归约证明 (由 single game 实现) 和 Game Hopping (由 game sequence 实现) 两种。 注意这篇博客是基于Douglas Stebila的论文 An Introduction 阅读全文
摘要:
第三十个知识点:大致简述密钥协商中的BR安全定义。 在两方之间建密钥共享是一件密码学中古老的问题。就算只考虑定义也比标准加密困难的多。尽管古典的Diffie Hellman协议在1976年思路解决了这个问题,但是它没有认证机制。就是说密钥能和任何人协商。这会导致中间人攻击。 为了阻止这样或者其它的攻 阅读全文
摘要:
第二十九个知识点:什么是UF CMA数字签名的定义? 第16篇博客给出了DSA,Schnoor和RSA FDH签名方案的细节,但是签名方案是什么?它应该保证什么样的安全性? 一个签名方案$S$是一个算法元组$(KG,Sign,VRFY)$,满足下面的条件: $KG$是一个输出密钥$sk$和公钥$pk 阅读全文
摘要:
第二十八个知识点:什么是公钥密码学的IND CCA安全定义? 我们将在这篇博客中讨论公钥加密的IND CCA安全。 IND CCA安全代表选择明文的不可伪造性。这样的安全方案的思想就是给定一个密文,攻击者不能说出给定密文是什么样的明文加密得到的。在这个模型中,攻击者被允许使用加密问询和解密问询。闻讯 阅读全文
摘要:
第二十七个知识点:什么是对称密码加密的AEAD安全定义? AEAD 在之前的博客里,Luke描述了一种被广泛使用的操作模式(ECB,CBC和CTR)对块密码。我们也可能会想我们加密方案的完整性,完整性意味着接收到的消息就是发送的消息,在信道中没有意外修改或者恶意修改,真实性意味着接收者确实是收到了发 阅读全文
摘要:
第二十六个知识点:描述NAF标量乘法算法 NAF标量乘法算法是标量乘法算法的一种增强,该算法使用了非邻接形式(Non Adjacent Form)表达,减少了算法的期望运行时间。下面是具体细节: 让$k$是一个正整数,$P$是一个在域$F_q$上椭圆曲线$E$上的点。这个计算乘法操作$Q = k P 阅读全文
摘要:
第二十五个知识点:使用特殊的素数定义$GF(p)$和$GF(2^n)$的方法。 在我们之前看到的博客中,当实现密码学方案时,一个最频繁调用的操作就是模运算。不幸的是,尽管模块化的使用非常广泛,但是它不能像其它算术运算(如加法和乘法)那样容易的执行。蒙哥马利表达提供了一种解决方案,这里我们讨论另一种解 阅读全文
摘要:
第二十四个知识点:描述一个二进制m组的滑动窗口指数算法 简单回顾一下我们知道的。 大量的密码学算法的大数是基于指数问题的安全性,例如RSA或者DH算法。因此,现代密码学需要大指数模幂算法的有效实现。我们应该从一个简化的方案开始思考:计算$x^a\mod N$,我们可以用指数算法来求$x^a$,然后再 阅读全文
摘要:
第二十三个知识点:写一个实现蒙哥马利算法的C程序 这次博客我将通过对蒙哥马利算法的一个实际的实现,来补充我们上周蒙哥马利算法的理论方面。这个用C语言实现的蒙哥马利算法,是为一个位数为64的计算机编写的。模数$m$因此能和$2^{64} 1$一样大,$a$和$b$能和$m 1$一样大。我们采用$r = 阅读全文
摘要:
第二十一个知识点:CRT算法如何提高RSA的性能? 中国剩余定理(The Chinese Remainder Theorem,CRT)表明,如果我们有两个等式$x = a \mod N$ 和$x = b \mod M$,那么$x$存在一个唯一一个$\mod MN$的解,当且仅当$gcd(M,N)=1 阅读全文