RSA算法原理

基础知识点

分解质因数难题

取两个很大的素数P1、P2
假设都是长度都在150位左右
求积N = P1 * P2
N长度300多位
若只知道N,倒推计算P1、P2是非常复杂的

同余

符号:≡
两个整数a、b,若它们除以整数m所得的余数相等,则称a与b对于模m同余或a同余于b模m。

记作:a≡b (mod m)
例如 26≡2(mod 12)

a与b对m取模的结果一样,相减后自然能整除m

欧拉函数(Phi函数)φ(N)

定义: 1~ N 中与 N 互质的数的个数叫欧拉函数

对于任何质数P
φ(P) = P - 1

因为质数跟比它小的数都没有公约数

如果a,b互质,有φ(a*b)= φ(a) * φ(b)
例:φ(7 * 11) = φ(7) * φ(11) = 6 * 10 = 60

对应【分解质因数难题】
φ(N) = φ(P1) * φ(P2)

欧拉定理

对任意两个正整数 a, n,如果两者互质,那么 a^φ(n)≡1(mod n)。

时钟算术

例:
明文m = 3
取模(Modulus)N = 17
指数(Exponent) E,公开的
计算余数(Remainder) c = m ^ E mod N

指数Exponent 余数Remainder(m ^ E mod N)
1 3
2 9
3 10
4 13
5 5
6 15
7 11
8 16
... ...

结论:
若只知道一组E、c、N,则很难反推出m

解密过程:
c ^ d mod N = m

已知:m ^ E mod N = c

得 (m ^ E) ^ d mod N = m
即 m ^ (E * d) mod N = m

E为加密,公开的,公钥
d为解密,私钥

因此需要一个方法构建一对密钥E和d
E会公开,而d要很难被计算出来

实践

生成一对密钥

生成两个同位数的素数
P1 = 53
P2 = 59
N = P1 * P2 = 3127
φ(N) = (P1 - 1) * (P2 - 1) = 52 * 58 = 3016

选公钥e(条件如下)

  • 必须是质数
  • 1 < 公钥 < φ(N)
  • 和φ(N)没有公约数

在此选择了e = 3
计算私钥d(条件如下)

  • (d * e) % φ(N) = 1
    即 d = (k * φ(N) + 1) / e

原因:
根据【欧拉定理】
n是非常大的两个素数相乘
自然满足
m ^ φ(n) ≡ 1 (mod n)
变换(两边都自乘k次)
m ^ (k * φ(n)) ≡ (1^k) (mod n)

m ^ (k * φ(n)) ≡ 1 (mod n)
再变换(两边同乘以m)
m ^ (k * φ(n)) * m ≡ (1 * m) (mod n)

m ^ (k * φ(n) + 1) ≡ m (mod n)

可得 e * d = k * φ(n) + 1

经计算k=2时有解
d = (2 * φ(N) + 1) / e = (2 * 3016 + 1) / 3 = 2011

公钥(e,N)分发
私钥(d,N)自己保留

加密

明文m = hi 填充法转化为
m = 89
计算密文c = m ^ e mod N
= 89 ^ 3 mod 3016
= 1394

解密

c ^ d mod N
= 1394 ^ 2011 mod 3127
= 89
= m(明文)

注:私钥加密的密文,用公钥也能解密

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

推荐阅读更多精彩内容

  • RSA介绍 RSA产生的原因:这要从密码学的发展史说起,相传在古罗的凯撒大帝为了防止敌方截获自己的信息,自己设计了...
    眷卿三世阅读 749评论 0 0
  • RSA 简介 RSA是一种非对称性加密算法,现在算是最具有影响力的算法,简单来说RSA运用了"一个大整数进行因式分...
    我赢了算我输阅读 5,437评论 2 0
  • 什么是RSA加密 加密和解密使用的是两个不同的秘钥,这种算法叫做非对称加密。非对称加密又称为公钥加密,RSA只是公...
    康小曹阅读 1,773评论 0 4
  • 关于什么是RSA,可以查看这篇文章, 今天主要是讲一下RSA底层用的一些算法原理,其实都是一些数学概念,谁让RSA...
    深不可测xy阅读 4,989评论 1 0
  • 上一次,我介绍了一些数论知识。 有了这些知识,我们就可以看懂RSA算法。这是目前地球上最重要的加密算法。 六、密钥...
    中v中阅读 1,270评论 0 1