首页 > 其他分享 >RSA

RSA

时间:2024-09-13 19:13:16浏览次数:7  
标签:27 私钥 33 RSA times 55 公钥

RSA

实例步骤

  1. 选质数

\[ P=3,Q=11 \]

  1. 计算模数

\[ N = P \times Q =33 \]

  1. 欧拉函数

\[r=\phi(N)=(P-1)(Q-1)=2\times10=20 \]

  1. 计算公钥E

    \[1 <E< \phi(N)=r=20 \\Let\ \ E=3 \]

  2. 计算私钥D

    \[ (3 \times D) \%\ r== 1 \\ So \ D=7 \]

  3. 封装公钥

    \[ Public\ key(33,7) \]

  4. 封装私钥

    \[ Private \ key (33,3) \]

  5. 给出明文

    \[ 3 \ \ 1 \ \ 15 \]

  6. 加密过程

    求幂

    \[3^{7} \ \ 1^{7} \ \ 15^{7}\ \]

    求余

    \[3^{7} \%33 =9 \\ 1^{7} \%33 =1 \\ 15^{7}\% 33=27 \]

  7. 得到密文

    \[ 9 \ \ 1 \ \ 27 \]

  8. 解密过程

    求幂

    \[9^{3} \ \ 1^{3} \ \ 27^{3} \\ \\ \]

    求余

    \[9^{3} \%33 =3 \\ 1^{3} \%33 =1 \\ 27^{3} \%33 =15 \\ \]

  9. 得到明文

    \[ 3 \ \ 1 \ \ 15 \]

理论步骤

步骤 公式或描述 备注
找出质数 P、Q (随机但 P ≠ Q)
计算公共模数 N = P × Q
欧拉函数 r = φ(N) = (P - 1)(Q - 1)
计算公钥 1 < E < φ(N) = r E 、r互质
计算私钥 (E × D) % r == 1
封装公钥 (N, E)
封装私钥 (N, D)
加密 C = M^E mod N C 密文
解密 M = C^D mod N M 明文

练习题

练习1

给定 P = 5 、 Q = 7 ,以及 E = 5,计算私钥 D 、公钥和私钥。

解题步骤:

  1. 计算公共模数 ( N )

    \[( N = P \times Q = 5 \times 7 = 35 ) \]

  2. 计算欧拉函数 ( r )

    \[ r = \phi(N) = (P - 1)(Q - 1) = (5 - 1)(7 - 1) = 4 \times 6 = 24 \]

  3. 选择公钥 ( E )
    已知 ( E = 5 ),满足 ( 1 < E < r ) 且与 ( r ) 互质,条件满足。

  4. 计算私钥 ( D )

    \[私钥 D 需要满足 \ (E \times D) \% r = 1 ,即: \\ (5 \times D) \% 24 == 1 \\ 我们需要找到 D 使得这个等式成立。通过逐一尝试可以得到:\\ 5 \times 5 = 25 ,25 \% 24 == 1 \\ 因此,D = 5 。 \]

封装公钥和私钥:

  • 公钥:( (N, E) = (35, 5) )
  • 私钥:( (N, D) = (35, 5) )

答案:

  • 公钥:( (35, 5) )
  • 私钥:( (35, 5) )

在这种情况下,公钥和私钥的值都是一样的。这种情况虽然在理论上是可以的,但在实际应用中,通常会选择更复杂的质数,以避免这样的情况发生。

练习2

假设质数 P = 5,Q = 11,试求出公共模数 N,欧拉函数 r,公钥 E,私钥 D,使用消息 M = 9 进行加密和解密。

解题步骤:

  1. 找出质数
    给定 P = 5,Q = 11。

  2. 计算公共模数

    \[N = P \times Q = 5 \times 11 = 55 \]

  3. 计算欧拉函数

    \[r = \phi(N) = (P - 1)(Q - 1) = (5 - 1)(11 - 1) = 4 \times 10 = 40 \]

  4. 选择公钥 E
    公钥 E 需要满足 ( 1 < E < r ) 且与 r 互质。
    选择 E = 3,因为 3 与 40 互质。

  5. 计算私钥 D
    私钥 D 满足

    \[(E \times D) \% r == 1 \]

    我们需要找到 D,使得

    \[(3 \times D) \% 40 == 1) \]

    通过计算,D = 27

  6. 封装公钥和私钥
    公钥:(N, E) = (55, 3)
    私钥: (N, D) = (55, 27)

  7. 加密消息 M

    \[C = M^E \% N = 9^3 \% 55 \\ 9^3 = 729 ,729 \% 55 = 14 \]

    因此,加密后的密文 C = 14。

  8. 解密消息 C

    \[M = C^D \% N = 14^{27} \% 55 \]

    计算结果为 M = 9。

答案:

  • 公钥: (55, 3)
  • 私钥:(55, 27)
  • 加密后的密文:C = 14
  • 解密后的原文:M = 9

标签:27,私钥,33,RSA,times,55,公钥
From: https://www.cnblogs.com/TheHypocrite/p/18412737

相关文章

  • LIN476H5 F 2024 Language Universals
    LIN476H5F2024LanguageDiversityandLanguageUniversalsHomeworkAssignment1Due:Fr09/20,by11:59pSubmit yourhomework onQuercus. Neat typing is required.To type IPA symbols, consider one of the following tools:- Online IPAkeyboar......
  • The 3rd Universal Cup. Stage 9: Xi'an
    A.AnEasyGeometryProblem差分之后条件相当于类似\(a_{i-1}+a_i=k+b\)且\(a_{i-r+1}+a_{i+r}=k\)的条件,线段树维护\(a_i\)和\(k-a_{n-i}\)的哈希值,查询直接二分即可。时间复杂度\(O(n+q\log^2n)\)。B.CountingMultisets考虑\(p(S)\)......
  • The 3rd Universal Cup. Stage 8: Cangqian
    C.ChallengeNPC考虑构造一个二分图,左边是\(1,3,5,7\)右侧是\(2,4,6,8\)。最优解肯定是一边全1,一边全2。如果\(1,2\)之间不连边,这\(2\)就会被染色为1,因此只要让\(2,3\)连边,\(3\)会被染色为\(2\),然后\(1,4\)连边,\(4\)也会被染色为\(5\),这时只要让\(2,5\)和\(4,5\)连边,\(5\)就......
  • 浙大数据结构慕课课后题(03-树3 Tree Traversals Again)
    题目翻译:题解:         #include<bits/stdc++.h>usingnamespacestd;voidCreatTree();voidsolve(intpreL,intinL,intpostL,intn);intPre[35],In[35],Post[35];int N;intmain(){ cin>>N; getchar(); CreatTree(); solve(0,0,0,N); for......
  • The 3rd Universal Cup. Stage 8: Cangqian
    题解:https://files.cnblogs.com/files/clrs97/ZJCPC24_Tutorial.pdf Code:A.Bingo#include<bits/stdc++.h>usingnamespacestd;stringn;intm;typedeflonglongll;llsum[1000005];intpw[1000005];boolall[1000005];intsol[1000020];voidsolv()......
  • 第七.八.九天---RSA进阶题型
    还是先复习,没有连续更新的原因是因为有一天满课,有一个家里有事情没有心情弄,不说了,好好干吧!T31--扩展欧几里得一.题目:fromCrypto.Util.numberimport*flag=b'******'m1=bytes_to_long(flag[:len(flag)//2])m2=bytes_to_long(flag[len(flag)//2:])assert18608629......
  • The 2023 ICPC Asia Nanjing Regional Contest (The 2nd Universal Cup. Stage 11: Na
    C-PrimitiveRoot题意给定p与m(p为质数),已知(g^(P-1))%P==1且g<=m。求g的个数。思路由(g^(P-1))%P==1与异或性质a-b<=a^b<=a+b,可以推出g=((k*p+1)^(p-1))与p*(k-1)+2<=g<=p*(k+1)。又因为g<=m,则当p*(k+1)<=......
  • RSA密码体制和整数因子分解
    RSA密码体制和整数因子分解公钥密码学简介RSA密码体制公钥密码学简介到目前为止,在我们所学的经典密码学模型中,Alice和Bob秘密地选择密钥K。根据密钥K,可以得到一条加密规则eke_kek​和一条解密规则dkd_kdk​。在这些密码体制中,dkd_kdk​或者与eke_k......
  • 第五天---RSA进阶题型(二)
    还是先复习前面内容,再学习新知识。.......................................T10.dp泄露一.题目:fromCrypto.Util.numberimport*flag=b'NSSCTF{******}'+b'1'*100p=getPrime(512)q=getPrime(512)n=p*qe=65537d=inverse(e,(p-1)*(q-1))dp=......
  • The 1st Universal Cup. Stage 8: Slovenia
    Preface这场其实是昨天打的,但因为今天没训练就摆烂拖到今天才补题和写博客这场题感觉都挺可做的,但前期出题有点慢导致后期没时间了,徐神和祁神赛后20min过了J有点可惜A.Bandits题都没看,不做评价B.CombinationLocks不难发现这题本质就是在0/1串上操作,每次移动到另......