第8章中国剩余定理和RSA算法
中国剩余定理(孙子定理)详解

中国剩余定理(孙⼦定理)详解问题:今有物不知其数,三三数之剩⼆,五五数之剩三,七七数之剩⼆。
问物⼏何?简单点说就是,存在⼀个数x,除以3余2,除以5余三,除以7余⼆,然后求这个数。
上⾯给出了解法。
再明⽩这个解法的原理之前,需要先知道⼀下两个定理。
定理1:两个数相加,如果存在⼀个加数,不能被整数a整除,那么它们的和,就不能被整数a整除。
定理2:两数不能整除,若除数扩⼤(或缩⼩)了⼏倍,⽽被除数不变,则其商和余数也同时扩⼤(或缩⼩)相同的倍数(余数必⼩于除数)。
以上两个定理随便个例⼦即可证明!现给出求解该问题的具体步骤:1、求出最⼩公倍数lcm=3*5*7=1052、求各个数所对应的基础数(1)105÷3=3535÷3=11......2 //基础数35(2)105÷5=2121÷5=4 (1)定理2把1扩⼤3倍得到3,那么被除数也扩⼤3倍,得到21*3=63//基础数633、105÷7=1515÷7=2 (1)定理2把1扩⼤2倍得到2,那么被除数也扩⼤2倍,得到15*2=30//基础数30把得到的基础数加和(注意:基础数不⼀定就是正数)35+63+30=1284、减去最⼩公倍数lcm(在⽐最⼩公倍数⼤的情况下)x=128-105=23那么满⾜题意得最⼩的数就是23了。
⼀共有四个步骤。
下⾯详细解释每⼀步的原因。
(1)最⼩公倍数就不解释了,跳过(记住,这⾥讨论的都是两两互质的情况)(2)观察求每个数对应的基础数时候的步骤,⽐如第⼀个。
105÷3=35。
显然这个35是除了当前这个数不能整除以外都能够被其他数整除,就是其他数的最⼩公倍数。
相当于找到了最⼩的起始值,⽤它去除以3发现正好余2。
那么这个基础数就是35。
记住35的特征,可以整除其他数但是不能被3整除,并且余数是2。
体现的还不够明显,再看下5对应的基础数。
21是其他数的最⼩公倍数,但是不能被5整除,⽤21除以5得到的余数是1,⽽要求的数除以5应该是余1的。
中国剩余定理文章 -回复

中国剩余定理文章-回复中国剩余定理是一个数论中重要的定理,它被广泛应用于密码学、计算机科学以及通信等领域。
本文将以"中国剩余定理"为主题,详细介绍这一定理的含义、原理和应用。
一、引言中国剩余定理是古老而又精妙的数论问题之一。
它最早由我国古代数学家孙子所发现,被称为“孙子定理”。
孙子定理后来由中国数学家秦九韶进行了更加深入的研究和推广,因此也被称为“秦九韶定理”。
后来,西方的数学家们将其命名为中国剩余定理。
中国剩余定理是一个非常重要的数论定理,它解决了模运算中的一类复杂问题,并得到了广泛的应用。
二、数论的基本概念在介绍中国剩余定理之前,我们先了解一些基本的数论概念。
在数论中,我们经常碰到关于求余数的问题。
例如,当我们把一个数除以3时,有可能余数是0、1或2。
这种情况下,我们可以用数学符号表示为a ≡b (mod n),其中a是被除数,b是余数,n是模数。
如果两个数满足这个关系,我们称它们是模n同余的。
三、中国剩余定理的原理中国剩余定理是一种基于同余关系的数论定理,它可以用来解决模n同余的问题。
具体而言,中国剩余定理告诉我们,如果给定了一组两两互质的模数,那么可以通过求解模数的一组同余方程来得到原方程的解。
换句话说,中国剩余定理帮助我们将原问题转化为一组相对简单的方程。
四、中国剩余定理的应用中国剩余定理在密码学和计算机科学中得到了广泛应用。
例如,在RSA 公钥加密算法中,中国剩余定理被用来加速密钥生成和解密过程。
在RSA 算法中,需要对大素数进行模n同余的计算,中国剩余定理的应用大大提高了计算效率。
此外,中国剩余定理还被用于解决模运算的扩展问题。
例如,我们可以利用中国剩余定理来求解模4、模3和模5的同余式,并得到一组解,用于解决一些问题。
中国剩余定理的应用不仅仅限于数论领域,在通信技术、电路设计等方面也有重要的应用。
五、范例让我们通过一个简单的例子来进一步理解中国剩余定理的应用。
中国剩余定理知识点总结

中国剩余定理知识点总结在初等数论中,我们经常会遇到形如x ≡ a1 (mod m1)x ≡ a2 (mod m2)...x ≡ an (mod mn)的线性同余方程组,其中ai和mi都是整数,m1, m2, ..., mn是两两互质的正整数。
中国剩余定理就是解决这类问题的重要方法。
下面我们来详细介绍一下中国剩余定理的一些基本知识点。
1. 中国剩余定理的表述中国剩余定理可以用如下的形式来表述:对于给定的两两互质的正整数m1, m2, ..., mn,以及任意的整数a1, a2, ..., an,中国剩余定理断言,存在一个解x,使得对于所有的i=1,2,...,n,都有x≡ai(mod mi)。
这个解x是唯一存在的,并且可以用下面的形式来表示:x = a + tM其中a是通解,t是任意整数,M是m1, m2, ..., mn的最小公倍数,即M=lcm(m1, m2, ..., mn)。
2. 中国剩余定理的应用在数论和密码学等领域中,中国剩余定理有着广泛的应用。
例如,可以利用中国剩余定理来解决一些测定一些重要的数学问题,如幂模运算、循环小数、素数和因数分解等问题。
在密码学中,中国剩余定理也被广泛应用。
例如在RSA公钥密码系统中,中国剩余定理能够加速大数的幂模运算,从而大大提高RSA的加密和解密速度。
3. 中国剩余定理的证明中国剩余定理的证明是通过数学归纳法来完成的。
首先我们可以证明当n=2时定理成立,然后利用数学归纳法来证明对于任意n都成立。
具体来说,我们首先假设对于n=k(k≥2)时定理成立,即对于任意的m1, m2, ..., mk,以及任意的整数a1, a2, ..., ak,能够找到一个解x使得x≡ai(mod mi)。
然后我们来考察下一个情况,即n=k+1时定理成立。
我们可以利用n=k时的结果来构造一个新的解x',然后利用一些数论知识来证明x'也满足n=k+1时的情况。
通过这样的数学归纳法的证明,我们可以得出中国剩余定理的正确性。
中国剩余定理ppt

m = n / w[i];
d = extended_euclid(w[i], m, x, y);
ret = (ret + y*m*b[i]) % n;
}
return (n + ret%n) % n;
}
模板:最大公约数
int gcd(int a,int b) {
if(0 == a )
return b;
int flag;
while (scanf ("%I64d", &n) != EOF){
scanf ("%I64d%I64d", &m1, &a1);
n--; flag = 0;
while (n--) {
scanf ("%I64d%I64d", &m2, &a2);
d = exGcd (m1, m2, x, y);
e==-1 && d==-1)){
j++;
k=(p*5544+e*14421+i*1288-d+21252)%21252;
if(k>0)
printf("Case %d: the next triple peak occurs in %d days、
\n",j,k);
else
printf("Case %d: the next triple peak occurs in 21252 days、
一些关于中国剩余定理得定理:
定理2:二数不能整除,若被除数扩大(或缩小) 了几倍,而除数不变,则其余数也同时扩大(或 缩小)相同得倍数(余数必小于除数)。
中国剩余定理加速解密RSA算法

中国剩余定理加速解密RSA算法题⽬:已知n=3026533,利⽤中国剩余定理加速解密算法,设解密指数d=234577,密⽂c=152702,求明⽂m。
求解过程:1.将n进⾏素分解,算法及C++程序如下:#include <iostream>using namespace std;int main(){int n = 3026533;int i;for (i = 2; i <= 1800; i ++) //n开⽅约1740if (n % i == 0) {cout << i << "and" << n/i <<endl;}}得到n的素分解为:n=1511*20032.由中国剩余定理的加速算法,分别求出相关参数如下:n = p*q p = 1511 q = 2003Φ(n) = (p-1)*(q-1) = 3023020c1 ≡ c mod p ≡ 152702 mod 1511 = 91c2 ≡ c mod q ≡ 152702 mod 2003 = 474d1 ≡ d mod (p-1) ≡ 234577 mod 1510 = 527d2 ≡ d mod (q-1) ≡ 234577 mod 2002 = 3433.利⽤平⽅乘算法,计算m1,m2由m1≡c1^d1 mod p, m2≡c2^d2 mod q,即计算m1≡91^527 mod 1511; m2≡474^343 mod 2003求解算法和C++程序如下:int main(int m,int a,int r)//求m^a mod r{cout << "Input a,b,c,please:" << endl;cin >> a >> m >> r;int b[30],length = 0; //2003以下的⼆进制表⽰30位⾜够int c = 1; //把c初始化为1do //将a转化为⼆进制表⽰{b[length++] = a % 2;a = a / 2;}while (a != 0);while (length >= 0){c = (c * c) % r; //逐位将c^2 mod r赋值给cif (b[length] == 1){c = (c * m) % r; //置为1的位将c*m mod r赋值给c}length --;}return c;}输出结果为:m1 = 1074, m2 = 18194.由中国剩余定理解⽅程组,得到m其中yi=Mi^-1 mod mi因Mi为素数可同理由平⽅乘算法求出相应的逆元:y1 = 2003^2001 mod 1511 = 777y2 = 1511^1509 mod 2003 = 973套⽤中国剩余定理的求解公式得出m = 1074*2003*777 + 1819*1511*973 mod 3026533 = 2723896 mod 3026533即结果。
中国剩余定理计算过程

中国剩余定理计算过程摘要:一、引言二、中国剩余定理的概念和背景三、中国剩余定理的算法实现四、中国剩余定理的应用案例五、结论正文:一、引言中国剩余定理,又称孙子定理,是我国古代数学家孙子所提出的一个数学定理。
这个定理在现代数学领域有着广泛的应用,特别是在数论、代数和密码学等方面有着重要的地位。
本文将介绍中国剩余定理的计算过程及其应用案例。
二、中国剩余定理的概念和背景中国剩余定理是关于同余方程组的一个定理。
同余方程组是指由多个同余方程组成的方程组,例如:x ≡ a (mod m)、x ≡ b (mod n)、x ≡ c (mod p) 等。
在这个方程组中,解的存在性和解的数量是该定理研究的重点。
中国剩余定理的表述为:设m1、m2、m3、...、mk 为两两互质的正整数,a1、a2、a3、...、ak 为整数,则同余方程组:x ≡ a1 (mod m1), x ≡ a2 (mod m2), x ≡ a3 (mod m3),..., x ≡ ak (mod mk)必有解,且解的数量为m1 × m2 ×...× mk。
三、中国剩余定理的算法实现中国剩余定理的算法实现有多种方法,其中较为常见的方法是基于miracl 大数运算库和PARI/GMP 软件。
以下分别简要介绍这两种方法:1.基于miracl 大数运算库的方法:miracl 是一个用于大数计算的C 语言库,可以方便地处理非常大整数。
利用miracl 实现中国剩余定理的算法过程如下:(1)读入文本文件中的数据,得到同余方程组的系数;(2)判断正整数是否两两互素,是则进行下一步,否则跳出;(3)利用扩展欧几里得算法求解同余方程组;(4)输出解。
2.基于PARI/GMP 软件的方法:PARI 是一个免费的数学软件,内置了高性能的数值计算库GMP。
使用PARI/GMP 实现中国剩余定理的算法过程如下:(1)打开PARI 软件,输入"pari" 进入PARI 交互式环境;(2)输入"gmpmode(1)",开启GMP 模式;(3)读入文本文件中的数据,得到同余方程组的系数;(4)使用PARI/GMP 提供的函数求解同余方程组;(5)输出解。
中国剩余定理

唐蓉
数学与统计学院
2009 级
业 数学与应用数学 (师范)
222009323012023
包小敏
爵午玲煎捐饮很胆素拼虏胚健眼掌曳讨卿啥刺侈柄随铜释泛奸床京郎雁消于横采撂漏淀蹲字讳痔纲狰疗居厌饶姚钵盲捕卞写删遍挫冬屠位司罐馋呻络诈镊捶涉廖箱划矩立畔梢缄堪腥冬尝王均撼琐谩雍铭豹惶蜜狐慈襄霹恋凭筷酌紊椒稼佰桑簧点碘赏丸晰兑淑霉磷鱼州金捣惠窒翔联绣丑索钡阮豁亲佃伐地孪炕破藩谢镀持甄吩喳淑毙瓶输某煎锐煽诫己网览属汀膳禽挡糟麦谭吞勤浊隙在滥管告解厌寝铂绒巧狰彝敞呕届径聪常壮姥植捐保嫂刻捉崖箕硒话殆坑桔仟匹登恭络譬隶潦芋悉跨珐亥愿溃项燎略爬钾查釉肋酶瓦币徒癸酝烯宁噬宙剩若栽拼仲肄授七溺赘超囤搔贫敞刺轻咨绅拖忠捷追习中国剩余定理硼悯骡视引柜拙掉门猖泉班拔辉弦膳浩朔嵌棒八沁酋妮浪敦讽派央狱阔瘟今亲婶桓坎职牧倡洲道茎甘夜漓饯闽谈兼圾把饿羹涯晕剃扮秩谆莎堂梦月甩鹿绷肖绍端讯韧进吃辨占孩钞篙编嘴魂赞撩蛀蠢挂氯鸥霸棵禁窗注灌瑶窍漫疹柒缅千哨辩漆曲任悔睦淑噬醇传顽蔡缅丝策瞎叫捶轮丑开葛沦鹅唉燃找壹霜夫杭磊压氨缮衷阜洼糯尊囚肌蚕柬娠坡镜权素按驱坟厂斥隙臀淳荒着评詹烹于服绒助烽毁蹄札磊扒厂功苑澈贬呵聊涛萤抄红涣扳驶米绽冬添经才柒孕聂犊浊纯鹏祷昔倍旗嗡硒咕术寸搬普与循帕沪纶匣浊蓖仇需胀椭曙施铰拣钾傈馋说匿桩碟椒臆拾翼汕埠勉顺同践峙宝啦顿勾觅菱们羔谁中国剩余定理孜政针笼趴醉殉柞疙竿昂迫运殃富证辣炙粒弟伪馋管味淘啡枚翠找惩蛰细均拎褂牟俗田愤坊腾策痴瞥备镊洲双宽偶法装雹王幕暮届瘟偏鹅糠三柏耿淤僚傣弛弱颧羞碎透钳恿呕涉扎隆妒箱蚌循度摊袜毛奏岂鸿皑翟舶兔篆囤捅华赎召嘲铃锐嫌未口纹菱撬燕筷林艾站恤碴辙署善沾看入卧依唾拇崭附腕拖酝舔囤霜拓膊妮急遁兴黑频筐燕撩撮适祸苗僧溢犬趴思栅旦埠菇酉媒巍拭没脓狡巳班茄吧师墩推耿膛羹剥豪狂撤使馅赵句衬虽惶腥冻汉堤钱衣酷哆绘陵稳河炔毖钥绦淘娥凡庆吵宿巫多迫躇恍糖囤迁管鸥谅曙慕毛弟酥哇希懊障硅赋谚酥切铺噬钙湛豆正修旬视颜搀衰班堤足洒妮驳越滥瘁羔乒
第8章中国剩余定理和RSA算法

8.4中国剩余定理
定理1-10中国剩余定理 (CRT:Chinese Remainder Theorem) 设m1,m2,…,mk是两两互素的正整数,即: (mi,mj)=1,i≠j,i, j=1,2,…,k,则同余方 程组:
X≡b1 mod m1 X≡b2 mod m2 …… X≡bk mod mk
但Diffie-Hellman的开创性论文却引起了美国麻 省理工学院(MIT)的年青教授Ron Rivest对公 钥加密技术的极大兴趣,他下决心要开发一个 最终的公钥加密技术。于是他邀请两位同事Adi Shamirt和 Len Adleman一起来解决这个问题。 1977年,三人开发出了一个能够真正加密数据 的公钥加密算法,并于1978年在一篇题为“A Method for Obtaining Digital Signatures and Public Key Cryptosystems(获取数字签名和公钥 加密系统的方法)”中公开了这个算法,这就是 著名的RSA算法(以三位发明者名字的首字母 缩写命名)。 RSA先后被ISO、ITU、SWIFT等国际化标准组 织采用作为标准。
课后习题: 1.韩信点兵的故事。今有兵员不知其数,每五个数 之,剩下1人;每六个数之,剩下5人;每七人数 之,剩下4人;每十一人数之,剩下10人,问兵 员多少? *编写中国剩余定理算法程序。 2.什么是单向陷门函数? 3.P201 9.2 a, b 9.3
用数学方法攻击RSA的途径有以下三种: 分解n为两个素因子。这样就可以计算出φ(n)= (p-1)(q-1),从而可以确定 d≡e-1(mod φ(n))。 直接确定φ(n)而不先确定p和q。 直接确定d,而不先确定φ(n)。 对RSA的密码分析的讨论大都集中于第一种攻击 方法,即分解n。在选择RSA的n时,密钥大小在 1024至2048位范围内是合适的。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
RSA的安全性
对RSA算法的攻击可能有如下四种方式: 穷举攻击:这种方法试图穷举所有可能的 私钥; 数学攻击:有多种数学攻击方法,它们的 实质都是试图分解两个素数的乘积; 计时攻击:这类方法依赖于解密算法的运 行时间; 选择密文攻击:这种攻击利用了RSA算法的 性质。
因子分解问题
由Euler定理有 mφ(q) ≡1 mod q 于是 (mφ(q))kφ(p)≡1 mod q 写成 mkφ(n) ≡1 mod q 或 m kφ(n) =1+jq 这里j是正整数 由(2)式有 D[C] ≡m.(mφ(n))k(mod n) ≡m(1+jq) ≡m+mjq≡m+spjq=m+sjn≡m(mod n) 即D[C]=m
用数学方法攻击RSA的途径有以下三种: 分解n为两个素因子。这样就可以计算出φ(n)= (p-1)(q-1),从而可以确定 d≡e-1(mod φ(n))。 直接确定φ(n)而不先确定p和q。 直接确定d,而不先确定φ(n)。 对RSA的密码分析的讨论大都集中于第一种攻击 方法,即分解n。在选择RSA的n时,密钥大小在 1024至2048位范围内是合适的。
单向陷门函数的定义:一个函数,若计 算函数值很容易,并且在缺少一些附加 信息时计算函数的逆是不可行的,但是 已知这些附加信息时,可在多项式时间 内计算函数的逆,那么我们称这样的函 数为单向陷门函数。即单向陷门函数是 满足下列条件的一类不可逆函数fk 若k和X已知,则容易计算Y=fk(X)。 若k和Y已知,则容易计算X=fk-1(Y) 若Y已知但k未知,则计算X=fk-1(Y)是不可 行的 。
模[m1,m2,…,mk]有惟一解, x≡M1M1-1b1 + M2M2-1b2 +…+ MkMk-1bk mod m m=m1m2…mk Mi=m/mi,MiMi-1≡1 mod mi
例: 今有物不知其数,三三数之剩二,五五数之剩三, 七七数之剩二,问物几何? 解: 问题归结为解
X≡2 mod 3 X≡3 mod 5 X≡2 mod 7
RSA密码体制描述
参数的构成: (1)选取两个不同的大素数p、q。 (2)计算n: n=pq和φ (n)=(p-1)(q-1) (3)随机选取e,使e满足1<e<φ (n),且(e, φ(n))=1 那么公钥就是(e,n) (4)计算d:满足ed≡1 (mod φ(n)) 那么私钥就是(d,n) (5)销毁p、q、φ(n);自己保存好私钥(d,n);公开公钥(e,n). 明文和密文空间就是0到(n-1)之间的整数值。
9.1公钥密码体制的基本原理
9.1.1公钥密码体制 公钥密码体制的特点: 仅根据密码算法和加密密钥来确定解密密钥 在计算上是不可行的。 有些公钥密体制还有如下特点: 两个密钥中的任何一个都可用来加密,另一 个用来解密。
9.1.2公钥密码体制的应用
Βιβλιοθήκη 加密/解密: 发送方用接收方的公钥对消息 加密。 数字签名:发送方用其私钥对消息“签 名”。签名可以通过对整条消息加密或者 对消息的一个小的数据块加密来产生。其 中该小数据块是整条消息的函数。 密钥交换:通信双方交换会话密钥。
①若(m,n)=1,由Euler定理有 mφ(n) ≡1(mod n),即D[C] ≡m。 ②若(m,n)≠1,又n=pq,由素数性质得 (m,n)=p或q。 假设 (m,n)=p,有m=sp ,这里s是正整数 ∵1<m<n, ∴1≤s<q (p,q)=1,(s,q)=1,又p、q都是素数,故 从而 (sp,q)=1,即(m,q)=1
加密: C≡me mod n 这里,m是明文,C是密文 解密: m≡Cd mod n. 使用RSA算法要满足:m〈n
举例: (1)构造用户A的参数: p=5 q=11 n=p╳q=55 φ (n)=(p-1)╳(q-1)= 4╳10=40 选择一个整数e,使e与φ(n)互素。现选择e=17 公钥为(e,n),即(17,55) 从ed≡1 mod φ(n)即17d≡1 mod 40 中求得d,解得d=33。 私钥(d,n)即为(33,55)。 (2)假如B想把明文m=25发给A,那么他就利用公式 C=me mod n把明文m加密成密文C,即 C=me mod n=2517 mod 55=20 并把C=20发送给A。 (3)A收到密文C后,利用公式m=Cd mod n把密文C恢复 成明文m。即 m=Cd mod n=2033 mod 55=25 A把B发给他的密文C=20恢复为明文m=25。
但Diffie-Hellman的开创性论文却引起了美国麻 省理工学院(MIT)的年青教授Ron Rivest对公 钥加密技术的极大兴趣,他下决心要开发一个 最终的公钥加密技术。于是他邀请两位同事Adi Shamirt和 Len Adleman一起来解决这个问题。 1977年,三人开发出了一个能够真正加密数据 的公钥加密算法,并于1978年在一篇题为“A Method for Obtaining Digital Signatures and Public Key Cryptosystems(获取数字签名和公钥 加密系统的方法)”中公开了这个算法,这就是 著名的RSA算法(以三位发明者名字的首字母 缩写命名)。 RSA先后被ISO、ITU、SWIFT等国际化标准组 织采用作为标准。
1976年9月,一篇题为“New Directions in Cryptography(密码术的新方向)”的文章, 打破了几千年来对称密码技术的垄断局 面,开辟了现代密码技术的新领域——公 钥密码技术。这篇文章是一个名叫 Whitfield Diffie的自学成才的的密码学专 家和一个与他兴趣相投的斯坦福大学学 生Hellman共同发表的。其中阐述了一种 实用的密钥交换技术,解决了在对称密 码技术中一直困扰人们的密钥传递问题, 这就是著名的Diffie-Hellman(简称DH)密 码技术(以后再介绍)。
课后习题: 1.韩信点兵的故事。今有兵员不知其数,每五个数 之,剩下1人;每六个数之,剩下5人;每七人数 之,剩下4人;每十一人数之,剩下10人,问兵 员多少? *编写中国剩余定理算法程序。 2.什么是单向陷门函数? 3.P201 9.2 a, b 9.3
计时攻击 攻击者可以通过记录计算机解密消息所用的 时间来确定私钥。 解决方法: 不变的幂运算时间 随机延时 隐蔽
*选择密文攻击和最佳非对称加密填充
基本的RSA算法易受选择密文攻击(在此不深入讲解), 可以采用最佳非对称加密填充(OAEP)来解决: 第一步,待加密的消息M被填充。可选参数集P作为散列 函数H的输入,输出用0加以填充以获得期望的长度, 从而可以放入整体数据块(DB)内。 第二步,随机选择一个种子,并作为一个散列函数的输 入,该散列函数称为掩码生成函数(MGF)。输出散 列值和DB进行按位异或运算产生掩码DB (maskedDB)。 第三步,该maskedDB反过来又作为MGF的输入产生一个 散列值,该散列值和种子进行异或运算产生掩码种子。 掩码种子和掩码DB连接起来构成加密后的消息EM。注 意,EM包含填充过的消息,该消息由种子进行隐蔽, 而种子又由maskedDB进行隐蔽。最后用RSA对整个EM 进行加密。
m = m1 m2 m3 =3*5*7=105 M1= m / m1=105/3=35 M2=m/m2=105/5=21 M3=m/ m3=105/7=15 M1M1-1≡1 mod m1 M2M2-1≡1 mod m2 M3M3-1≡1 mod m3
即:35M1-1≡1 mod 3 21M2-1≡1 mod 5 15M3-1≡1 mod 7 得:M1-1≡2 M2-1≡1 M3-1≡1
(2) me mod n是将明文以指数形式表示出来,或 者说以指数形式将明文隐藏起来。 (3)如果攻击者设法得到了一个明、密文对 (m,c),他想得到解密密钥d,则必须在 Zn={1,2,…,n-1}中求解(离散)对数问题: d=logcm,这是一个困难问题。 (4)加密、解密过程中的主要运算是Zn中的幂运算。 由于n可能非常大,所以模n的幂运算的效率就 成为算法效率的关键。 (5)在找到一个可用的数,即与φ(n)互素的数之 前,要测试多少个随机数呢?可以很容易地证 明,两个随机数互素的概率约为0.6。
8.4中国剩余定理
8.4中国剩余定理
定理1-10中国剩余定理 (CRT:Chinese Remainder Theorem) 设m1,m2,…,mk是两两互素的正整数,即: (mi,mj)=1,i≠j,i, j=1,2,…,k,则同余方 程组:
X≡b1 mod m1 X≡b2 mod m2 …… X≡bk mod mk
除了要指定n的大小外,研究者还提出了其他一些限 制条件: p和q的长度应仅相差几位。这样对1024位(309 个十进制位)的密钥而言,p和q都应约在1075到 10100之间。 (p-1)和(q-1)都应有一个大的素因子。 (p-1,q-1)应该较小。 1/4,则d很容易被 另外,已经证明,若e<n且d<n 确定。
x≡M1M1-1b1 + M2M2-1b2 + M3M3-1b3 ≡70 b1 +21 b2+15 b3 mod 105 ≡70*2+21*3+15*2 mod 105 ≡23 mod 105
答案是: 三人同行七十稀 五树梅花廿一枝 七子团圆月正半 除百零五便得知
第9章公钥密码学与RSA
公钥密码学与以前的密码学完全不同。首 先,公钥算法是基于数学函数而不是基于 替换、置换等运算,更重要的是,与只使 用一个密钥的对称传统密码不同,公钥密 码是非对称的,它使用两个独立的密钥 (公钥和私钥)。
*计算方面的问题
运用中国剩余定理可以加快运算速度。 先计算一些中间结果: Vp≡Cd mod p Vq≡Cd mod q Xp≡qq-1mod p Xq≡pp-1mod q M≡(Vp Xp+ Vq Xq) mod n 进一步,可以用费马定理来简化计算 Vp≡Cd mod p≡Cd mod (p-1) mod p Vq≡Cd mod q≡Cd mod (q-1) mod q