RSA

了解概念

相关资料https://www.kancloud.cn/kancloud/rsa_algorithm/48493

P : 大质数
Q : 大质数
N(Modulus) : N=P*Q
C : 密文
M : 明文
C=ME mod N(加密过程)
M=CD mod N(解密过程)
公钥(E , N) 私钥(D , N) 密钥对(E , D , N)

同余定理

给定一个正整数m,如果两个整数a和b满足(a-b)能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余,记作a≡b(mod m)。
性质: 1 反身性 a≡a (mod m)
2 对称性 若a≡b(mod m),则b≡a (mod m)
3 传递性 若a≡b (mod m),b≡c (mod m),则a≡c (mod m)
4 同余式相加 若a≡b (mod m),c≡d(mod m),则a+-c≡b+-d (mod m)
5 同余式相乘 若a≡b (mod m),c≡d(mod m),则ac≡bd (mod m)

欧拉函数


φ(pq)= φ(p) φ(q)=(p-1)(q-1)

欧拉定理

如果两个正整数a和n互质,则n的欧拉函数 φ(n) 可以让下面的等式成立:
aφ(n)≡1 (mod n)即1=aφ(n) mod n

  • 费马小定理
    假设正整数a与质数p互质,因为质数p的φ(p)等于p-1,则欧拉定理可以写成
    ap-1≡1 (mod p)

模反元素

如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除,或者说ab被n除的余数是1。
ab≡1 (mod n)

  • 证明
    aφ(n)=a × aφ(n)-1≡1 (mod n)
    b = aφ(n)-1即可证明存在

密匙生成过程

  • 随机选择两个不相等的质数p和q。
  • 计算p和q的乘积n。
  • 根据公式:φ(n) = (p-1)(q-1) 计算n的欧拉函数φ(n)
  • 随机选择一个整数e,条件是1到φ(n)
  • 计算e对于φ(n)的模反元素d。公式 ed ≡ 1 (mod φ(n))
    • ed - 1= kφ(n) e,φ(n)已知 对k进行操作使d为整数可利用扩展欧几里得算法
  • 将n和e封装成公钥,n和d封装成私钥

如何从C=ME mod N 推导 M=CD mod N

C=ME mod N => C = ME - kN
假设 M=CD mod N成立
带入可得(ME - kN)D mod N =M => MED mod N =M
由于ED ≡ 1 (mod φ(N)) 所以ED = hφ(N)+1
Mhφ(N)+1 mod N =M

  • 当 M 与 N 互质时根据欧拉定理,此时 Mφ(N) ≡ 1 (mod N)
    则Mhφ(N) × M ≡ 1 (mod N)成立
  • 当 M 与 N 不互质
    此时,由于n等于质数p和q的乘积,所以m必然等于kp或kq。以 m = kp为例,考虑到这时k与q必然互质,则根据欧拉定理,下面的式子成立:
    (kp)q-1≡ 1 (mod q) =>(kp)(q-1)h(p-1) × kp ≡ kp (mod q)=>(kp)ed≡ kp (mod q)
    (kp)ed=kp +tq (t可整除p) => (kp)ed=kp +xpq => med≡m (mod n) 证毕

后缀名

  • .enc 代表 C
  • .dec 代表 M
  • .pem代表 密钥

知道C N E解密

  • 思路
    N 分解为 P Q
    h(p-1)(q-1)+1=ed 解得 d
    M=CDmod N
  • 操作
openssl rsa -pubin -text -modulus -in warmup -in 【public.pem】

可以解出 E 和 N

#python
print(0xN)

转化为十进制N
利用 yafu
factorr(N)
解出 p q

python rsatool.py -o 【private.pem】 -e 【65537】 -p 【123】-q 【123】

得到私钥private.pem

openssl rsautl -decrypt -in 【flag.enc】 -inkey 【private.pem】

私钥解密

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

推荐阅读更多精彩内容

  • 预备知识: 0. 模运算基本性质 (a + b) % p = (a % p + b % p) % p (a - b...
    耀鹏阅读 2,362评论 0 51
  • Base64 base64是一种基于64个可打印字符来表示二进制数据的表示方法.严格来说它只能算作一种编码方式.B...
    miku酱啦阅读 1,171评论 0 3
  • 这是去年12月在CSDN写的一篇加密算法文章 现在决定在简书写博客 移植过来方便复习再理解。 最近算法课老师要求小...
    icecrea阅读 1,255评论 1 1
  • 飞镜夜空悬, 今夜着红妆。 专家早预测, 万众仰头望。
    文伴阅读 277评论 14 20
  • 昨天喝完咖啡,又悠闲悠闲地去长泰广场看了《火星救援》。整部电影的最大看点我们和宇宙的关系、主人公沃特尼的心理变化。...
    美人阁阅读 297评论 0 1