初识:RSA 算法(理解)

“对称加密算法”模式:
甲方和乙方协商好一种规则,甲方用这套规则进行加密。而乙方则用这套规则进行解密。

这种算法模式很容易理解,例如电影、电视剧等可以常见的摩斯密码,这种模式的缺点较为明显的是只要懂这套规则的人都能轻松解密。

“RSA加密算法”模式就是为了解决这样尴尬的局面而诞生的。

1976年,美国计算机学家Whitfield Diffie 和 Martin Hellman提出了"Diffie-Hellman密钥交换算法",这种算法能在“不直接”传递秘钥的情况下完成解密。

我们假设我们加密的内容为 X;
原理举例:

13 * 77 = 1001
1001 % 1000 = 1
1001 = 1 (mod 1000)
1001 * X = X (mod 1000)
(1001 * X) %1000 = X
[13 * X * 77] % 1000 = X
{[(13 * X) % 1000] * 77} % 1000 =X

这个时候,我们再假设我们有一个数字 666 需要再“不直接”传递秘钥的情况下完成加密和解密的动作将会发生如下 <1> 过程:

甲方加密(秘钥:13):
666 * 13 = 8 658;
8658 % 1000 = 658;

甲方传递(公钥:658):
658

乙方解密(秘钥:77):
658 * 77 = 50 666;
50666 % 1000 = 666;

RSA就是通过 类似 上述的方式,在不直接传递秘钥的情况下完成加密和解密的动作。

当然,这种算法在第一步是取的两个数是有前提的,如果随便取就会。。。

2 * 6 = 12
12 % 10 = 2
3 * X * 4 = 2 * X (mod 10);
{[(3 * X) % 10] * 4} % 10 =X

我们取666试试:

3 * 666 = 1 998
1998 % 10 = 8
8 * 4 = 32
32 % 10 = 2
// Wow!!!发生了什么

该算法的前提是中国剩余定理:
原理理解:

假设一个数X ,已知:
X % 7 = 6;
X % 5 = 3;

通过上面的条件我们能否知道X的值呢?

X     ...     13     ...     20     ...     27     ...     34     ...     41     ...     48
%7            6               6              6              6              6              6     
%5            3               0              2              4              1              3

答案是否定的,
我们会发现13符合条件,48符合条件,后面是以 13+(5*7)n 为周期的循环,
也就是说对于上述的%操作并不能确定唯一的值与之对应。

所以,我们确定一个数还需要一个条件,那就是限定取值范围。
我们可以发现(X%7 和 X%5)在 [0,57]的区间内是不会重复的,
而上面的秘钥2、6显然不足以确定一个比 2
6 大的多的数,
因此,我们在选择加密的内容时是需要限定内容区间的。

还要强调一点(中国剩余定理的前提条件),
这两个数必须还是互质关系(两个正整数,除了1以外,没有其他公因子)

比如说下面的情况是不成立的,

已知:
X % 4 = 1;
X % 2 = 1;
范围:[ 0 , 8 ]
结果:1 和 5 均满足条件,不能确定唯一的数值

下面开始进入正题

设 :
P 和 Q 为两个互不相同且差值较大的大素数,
N = P * Q
D 和 E 为私钥
T = ( P - 1)( Q - 1)
i : 是正整数变量 ( 1, 2, 3, 4, 5, ...)

先了解一下费马小定理的结论:
1、如果n是一个质数,对于任意的a有an - a = n的倍数
那么,由
an - a = n的倍数 ===>
an - a = 0 ( mod n ) =>
an % n = a % n
另一种说法是,对于任意的 a,随着 i 的增加,ai % n 呈长度为 n - 1 的周期性;
2、给出两个质数 P 和 Q,其乘积为 N,
那么随着 i 的增加,Xi % N 呈现周期为 ( P - 1)( Q - 1) 的循环。

由上述结论可得:
X % N = X iT+1 % N

接着我们用私钥 D 和 E 等价于上式
X % N = XDE % N
( 即 DE % T = 1)

而且,因为 X < N,则有:
X = XDE % N

那么我们可以得到加密和解密的公式如下:
X = ( XD % N )E % N

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容

  • 姓名:李浩然 学号:16030410020 转自:http://blog.csdn.net/Dreaming_My...
    洛花无阅读 2,614评论 0 1
  • 姓名:于川皓 学号:16140210089 转载自:https://baike.baidu.com/item/RS...
    道无涯_cc76阅读 2,541评论 0 1
  • 公钥密码系统及RSA公钥算法 本文简单介绍了公开密钥密码系统的思想和特点,并具体介绍了RSA算法的理论基础,工作原...
    火狼o阅读 4,278评论 2 15
  • 终端之间信息传递安全性的保证始终是业务的刚性需求。不同的加密算法针对不同的业务需求,因为公司是金融公司性质,又不是...
    语歌阅读 2,794评论 0 5
  • 少年自有少年狂, 藐挫折, 笑风浪。 磨剑十载, 今朝亮锋芒。 挥斥方遒斗志昂, 好儿郎, 当自强。 披荆斩棘神飞...
    古曦阅读 734评论 14 14