
number theory(cryptology)
文章平均质量分 88
demo
这个作者很懒,什么都没留下…
展开
-
求模乘法逆元
一、有限域Z(b)(b>0),对于任意整数a,若gcd(a,b)=1,则a在有限域中存在唯一的逆元x(a^-1)即a*x=1(mod b),求x。二、对于任意不同时为零的正整数a,b 求满足方程a*x+b*y=gcd(a,b)的解(x,y)。这两种描述其实是等价的。对于方程a*x+b*y=gcd(a,b),我们可以这样方程两边同除以gcd(a,b)得a1*x+b1*y=1;其中a1=a/gcd(a,b) , b= b/gcd(a,b).则gcd(a1,b1)=1;a1*x=1-b1*y----->a1=1(原创 2010-12-22 21:43:00 · 4419 阅读 · 0 评论 -
CRT(chinese remainder algorithm)
// chiness remainder theorem#define N 10typedef __int64 LL ;LL exgcd(LL a,LL b,LL &x,LL &y){ if( b == 0 ) { x = 1; y = 0; return a; } else{ LL x1,y1; LL d = exgcd ( b , a % b , x1 , y1 ); x = y1; y= x1 - a / b * y1; retu原创 2010-12-23 10:49:00 · 683 阅读 · 0 评论 -
My first blog entry also is my first english math proof ( GCD(a,b)=min{a*x+b*y, a*x+b*y>0} )
31.2 If a and b are any integers,not both zero,then GCD(a,b) is the smallest positive element of the set {a*x+b*y} of linear combination of a and b.Proof:1.Let s be the smallest positive element in the set {ax+by},q=(int)a/s.then a mod s=a-q*s=a-q*(a原创 2010-12-21 20:01:00 · 741 阅读 · 1 评论 -
DES algorithm
DES 算法的核心思想是混淆有扩散,我们来看它是怎么做来达到这个目地的。流程:密钥置换选择1(pc1) ->密钥循环左移表(rot) ->压缩选排阵(pc2)初选排阵(ip) ->(扩展选排阵(e) ->S-Box阵(s) ->P选排阵(p)->)*16->末选排阵(fp)置换使得顺序杂乱无章,密钥循环移位,压缩选排和round()(轮函数)中的扩展选排和S-BOX的替换使得每一位都尽可能的扩散到其它位,达到扩散的目地。刚开始写时思路不是很清晰,而且对STL中的bitset的理解是一知半原创 2010-12-22 18:39:00 · 1094 阅读 · 0 评论 -
RSA
一、RSA算法原理:二、算法设计原则这里往往是大家容易忽视的地方,所以有必要提一下。RSA算法设计原则:1. p,q长度仅应相差几位2. (p-1),(q-1)都应有一个大的素数因子3. gcd(p-1,q-1)应该较小4. d>=n^(1/4)方法:1.选取gcd(p-1,q-1)=com在范围ushort内2.在usigned short~unsigned int内选取两个互异的大素数p',q'3.p=p'*com+1,q=q'*com+14.原创 2010-12-24 21:37:00 · 1120 阅读 · 1 评论 -
diffi-hellma(密钥交换算法)
一、原理二、过程注意这里我们并没有对其中的任何元素加以限制。所以这里我不是很理解。为什么p要为素数?a为什么要为p的本原根?xA和xB为什么要小于p?期待大牛的解答。三、代码求素数的本原根这里我不知道怎么实现。之前取a,p在[INTAX,LLMAX]之间,在求p的本原根a时碰到了难题,穷举判断复杂度太高了,n^2*log(n)改成了[SHORTMAX,upperBound]也还是很慢。目前还未实现!期待大牛的代码。1.variable.h#include #include #include原创 2010-12-26 17:16:00 · 1397 阅读 · 0 评论