精华内容
下载资源
问答
  • rsa算法例题
    万次阅读 多人点赞
    2020-06-09 22:51:56

    这是我自己在学习RSA加密算法的时候自己整理的笔记,如需转载请注明出处

    RSA加密算法

    我这里就不对RSA的发明背景做介绍了,你只要知道RSA加密算法是非常非常重要的加密算法,放在现在的时代亦是如此。

    RSA加密算法的安全性是基于对极大整数做因数分解的困难
    RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。例如:
    (1)乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。
    (2)甲方获取乙方的公钥,然后用它对信息加密。
    (3)乙方得到加密后的信息,用私钥解密
    公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。

    密钥生成过程

    1、 随机找两个质数 P 和 Q ,P 与 Q 越大,越安全;
    2、 计算他们的乘积 n = P * Q
    3、 计算 n 的欧拉函数 φ(n):φ(n) = φ(P * Q)= φ(P - 1)φ(Q - 1) = (P - 1)(Q - 1)
    4、 随机选择一个整数 e,条件是 1< e < φ(n),且 e 与 φ(n) 互质
    5、 计算e对于 φ(n) 的模反元素d,可以使得 ed 除以 φ(n) 的余数为 1
    ( 1<d<e,且e
    d mod φ(n) = 1 ) 即:d=e^-1 ( mod φ(n) )
    6、 公钥(n,e);私钥(n,d);

    RSA使用公共指数e和私有指数d。指数e是每个人都知道的公钥(e, N)的一部分。使用公钥e加密的消息只能使用私钥d解密

    加解密过程

    c:密文
    m:明文
    加密:c = m^e mod N
    解密:m = c^d mod N

    例题

    例题:在RSA加密体制中, 已知素数 p = 7, q = 11, 公钥 e = 13, 试计算私钥 d 并给出对明文 m = 5 的加密,求其密文. 已知密文 c = 15, 求其明文

    解:
    n=pq=77
    φ(n)=(p-1)(q-1)=60
    e
    d≡1 mod φ(n)
    即13d mod 60 = 1
    解得:d = 37
    公钥(n,e)=(77,13)
    密文c = m^e mod n = 5^13 mod 77 = 26
    私钥(n,d)=(77,37)
    明文m = c^d mod n = 15^37 mod 77 = 71

    更多相关内容
  • 简单理解 RSA算法 + 例题

    千次阅读 2020-09-28 21:59:35
    题目如下: n is ...

    RSA加密步骤如下

    1.挑选两个大质数 p 和 q

    2.  n = q *  p

    3.  fn = (q-1)* (p -1)

    4.  ed≡1 mod fn    挑选一个素数e(一般默认为65537)    这里要注意,这边是三个等号 ,他的意思为 1除fn的余数等于 ed除fn的余数  等价与   ed=fn*k +1

    5. c ≡ m^e mod n                (c 为密文     n和e为公钥)

    6. m  ≡ c^d mod n               (m为明文     n和d为私钥)

    题目如下:

    n is 966808932627497190635859236054960349099463975227350564265384373280336699853387254070662881265937565163000758606154308757944030571837175048514574473061401566330836334647176655282619268592560172726526643074499534129878217409046045533656897050117438496357231575999185527675071002803951800635220029015932007465117818739948903750200830856115668691007706836952244842719419452946259275251773298338162389930518838272704908887016474007051397194588396039111216708866214614779627566959335170676055025850932631053641576566165694121420546081043285806783239296799795655191121966377590175780618944910532816988143056757054052679968538901460893571204904394975714081055455240523895653305315517745729334114549756695334171142876080477105070409544777981602152762154610738540163796164295222810243309051503090866674634440359226192530724635477051576515179864461174911975667162597286769079380660782647952944808596310476973939156187472076952935728249061137481887589103973591082872988641958270285169650803792395556363304056290077801453980822097583574309682935697260204862756923865556397686696854239564541407185709940107806536773160263764483443859425726953142964148216209968437587044617613518058779287167853349364533716458676066734216877566181514607693882375533
    e is 65537
    c is 168502910088858295634315070244377409556567637139736308082186369003227771936407321783557795624279162162305200436446903976385948677897665466290852769877562167487142385308027341639816401055081820497002018908896202860342391029082581621987305533097386652183849657065952062433988387640990383623264405525144003500286531262674315900537001845043225363148359766771033899680111076181672797077410584747509581932045540801777738548872747597899965366950827505529432483779821158152928899947837196391555666165486441878183288008753561108995715961920472927844877569855940505148843530998878113722830427807926679324241141182238903567682042410145345551889442158895157875798990903715105782682083886461661307063583447696168828687126956147955886493383805513557604179029050981678755054945607866353195793654108403939242723861651919152369923904002966873994811826391080318146260416978499377182540684409790357257490816203138499369634490897553227763563553981246891677613446390134477832143175248992161641698011195968792105201847976082322786623390242470226740685822218140263182024226228692159380557661591633072091945077334191987860262448385123599459647228562137369178069072804498049463136233856337817385977990145571042231795332995523988174895432819872832170029690848

    求m

     

    解题思路:

    如果要向知道m ,我们必须知道  d 和 n   。

    然而n是已知的,要想知道d,我们必须知道fn 和 d 。 (fn为p和q的欧拉函数)

    这里就要用到这个网站 http://factordb.com 

    该网站是专门分解 大n 的 。 我们就可以 求出 q 和 p 了 , 进一步可以求出  fn

    然后根据 加密步骤4 求出 d。     这里可以用python的 gmpy2库求

    d = gmpy2.invert(e,fn)         # 求逆元,该函数等价与    de = 1 mod fn

    最后根据  步骤 6 求出 m

    展开全文
  • 【密码基础】RSA算法及简单计算

    千次阅读 2022-01-09 22:30:29
    目录==常见题目类型:====基本原理:==计算RSA算法的安全性 常见题目类型: 基本原理: 素数 模运算 定理 a+b mod n = (a mod n+b mod n) mod n a-b mod n = (a mod n-b mod n) mod n ==a×b mod n =...

    常见题目类型:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    基本原理:

    素数 模运算 定理

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    a+b mod n = (a mod n+b mod n) mod n
    a-b mod n = (a mod n-b mod n) mod n
    ==a×b mod n = (a mod n×b mod n) mod n==(这个求模的结合律经常用于解密时简化大指数计算)
    

    在这里插入图片描述

    RSA数学原理

    在这里插入图片描述

    欧拉函数:
    
    素数的欧拉函数值为该数本身减1
    两个素数的积的欧拉函数结果是这两个数各自的欧拉函数值的积。
    

    在这里插入图片描述
    在这里插入图片描述

    解密的证明:
    
    已知:c = me mod n,则me=k*n+c
    所以:c=me-k*n
    同时:ed=k* Φ(n) +1
    则解密过程为:
    cd =(me-k*n)d mod n
    	=(med-#*k*n++ (k*n)d)mod n
    =mkφ(n)+1mod n
    =mkφ(n) m mod n
    =1×m=m
    注意理解m,c都是小于n的
    

    计算

    举例:p=5,q=3,明文M=2,写出RSA加密过程(公钥:(e,n)、私钥:(d,n))
    n=pq=15;
    φ(n)=(p-1)
    (q-1)=8;
    加密:C=M^e mod n (e取和φ(n)互素的随意数,即和8互素的数,可以取e=3)
    则C=2^3 mod 15=8
    解密:M=C^d mod n
    d需要满足模反:ed mod φ(n)=1

    注:求d有三种方法:
    ① 凑数,尝试法
    ②扩展的欧几里得

    在这里插入图片描述
    【如此题】
    3d-8k=1 ①
    3d-2k=1 ② 8%3=2
    d-2k=1 ③ 3%2=1 (交错着互模,剩下余数)

    k=1=0代回③得d=1
    d=1代回②得k=1
    k=1代回①得d=3 …

    ③公式代入(也是尝试代数凑)
    因为ed mod φ(n)=1
    即ed-φ(n)*k=1;
    *d=[φ(n)k+1]/e
    不断带入k=1,2…,直到式子能整除,得出d.

    【如此题】
    k=1,d=3;
    k=4,d=11;
    (若要求e≠d,则取d=11)

    则:公钥对:(3,15)
    私钥对:(11,15)
    加密:2^3 mod 15 =8;
    解密:8^11 mod 15=2;(把8的11次方拆开运算)
    加解密正确

    RSA算法的安全性

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • rsa 详解及例题及python

    2022-03-14 23:24:42
    文章目录rsa 详解及例题及python算法原理算法描述案例手稿实现python 运算m=71 -> c=15c=15 -> m=71正常的rsac->mm->c安全性运算速度 算法原理 RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数...

    rsa 详解及例题及python

    算法原理

    RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥

    算法描述

    • 任意选取两个不同的大素数p和q计算乘积 n=pq
    • n 的欧拉函数 φ(n): φ(n)=(p-1)(q-1)
    • 任意选取一个大整数e,满足 gcd(e, φ(n))=1,整数e用做加密钥
    • (注意:gcd是最大公约数,e的选取是很容易的,例如,所有大于p和q的素数都可用)
    • 确定的解密钥d,满足 (de) mod φ(n) = 1
    • 公开整数n和e,秘密保存d
    • 公钥(n,e)
    • 私钥(n,d)

    c:密文
    m:明文

    将明文 m 加密成密文c :c = m^e mod n
    将密文 c 解密为明文m: m = c^d mod n

    案例手稿

    在这里插入图片描述

    我可是开了计算器的,这手算不来😰😰😰😰 ,数据真实有效

    在这里插入图片描述

    实现python 运算

    数据同手稿最后一个

    m=71 -> c=15

    import gmpy2
    
    e = 13
    p = 7
    q = 11
    
    m = 71  # 明文
    
    n = p * q
    phi = (p-1)*(q-1)  # 求φ(n)
    d = gmpy2.invert(e, phi)  # 解密指数d
    
    c = pow(m, e, n)  # c = m^e mod n
    
    print(c)  # 15
    

    c=15 -> m=71

    import gmpy2
    
    e = 13
    p = 7
    q = 11
    
    c = 15  # 密文
    
    n = p * q
    phi = (p-1)*(q-1)  # 求φ(n)
    d = gmpy2.invert(e, phi)  # 解密指数d
    
    m = pow(c, d, n)  # m = c^d mod n
    
    print(m)  # 71
    

    正常的rsa

    c->m

    import gmpy2
    
    e = 65537
    p = 164350308907712452504716893470938822086802561377251841485619431897833167640001783092159677313093192408910634151587217774530424780799210606788423235161145718338446278412594875577030585348241677399115351594884341730030967775904826577379710370821510596437921027155767780096652437826492144775541221209701657278949
    q = 107494571486621948612091613779149137205875732174969005765729543731117585892506950289230919634697561179755186311617524660328836580868616958686987611614233013077705519528946490721065002342868403557070176752015767206263130391554820965931893485236727415230333736176351392882266005356897538286240946151616799180309
    
    c = 17210571768112859512606763871602432030258009922654088989566328727381190849684513475124813364778051200650944085160387368205190094114248470795550466411940889923383014246698624524757431163133844451910049804985359021655893564081185136250014784383020061202277758202995568045817822133418748737332056585115499621035958182697568687907469775302076271824469564025505064692884524991123703791933906950170434627603154363327534790335960055199999942362152676240079134224911013272873561710522794163680938311720454325197279589918653386378743004464088071552860606302378595024909242096524840681786769068680666093033640022862042786586612
    
    
    n = p * q
    phi = (p - 1) * (q - 1)
    d = gmpy2.invert(e, phi)
    
    # print(d)
    # d = 10095641463285806689688988669044958090788365778905483762638208789928575529502449849401292767726529997650439299015629157860588641396532350448192417234115775710546923180797320293516940576508757762754018567918113024001776672047516740167084526876904933632661036267682605889561715539758853760422969139832554919002326234307334716814878144233472982025457216787932684627988735853402622522302446460089411169271999550088279345136169249058325303590053665436848597082040492623325205128048625400148897314726782189085723532731019805440603017682798178125617958332012328823973231309306940239141155633610022544319334662491790481464305
    m = pow(c, d, n)  # m = c^d mod n
    
    print(m)
    # m = 164244530130068579551298796969937831989529603092769
    

    m->c

    import gmpy2
    
    e = 65537
    p = 164350308907712452504716893470938822086802561377251841485619431897833167640001783092159677313093192408910634151587217774530424780799210606788423235161145718338446278412594875577030585348241677399115351594884341730030967775904826577379710370821510596437921027155767780096652437826492144775541221209701657278949
    q = 107494571486621948612091613779149137205875732174969005765729543731117585892506950289230919634697561179755186311617524660328836580868616958686987611614233013077705519528946490721065002342868403557070176752015767206263130391554820965931893485236727415230333736176351392882266005356897538286240946151616799180309
    
    m = 164244530130068579551298796969937831989529603092769
    
    
    n = p * q
    phi = (p - 1) * (q - 1)
    d = gmpy2.invert(e, phi)
    
    # print(d)
    # d = 10095641463285806689688988669044958090788365778905483762638208789928575529502449849401292767726529997650439299015629157860588641396532350448192417234115775710546923180797320293516940576508757762754018567918113024001776672047516740167084526876904933632661036267682605889561715539758853760422969139832554919002326234307334716814878144233472982025457216787932684627988735853402622522302446460089411169271999550088279345136169249058325303590053665436848597082040492623325205128048625400148897314726782189085723532731019805440603017682798178125617958332012328823973231309306940239141155633610022544319334662491790481464305
    c = pow(m, e, n)  # c = m^e mod n
    
    print(c)
    # c=17210571768112859512606763871602432030258009922654088989566328727381190849684513475124813364778051200650944085160387368205190094114248470795550466411940889923383014246698624524757431163133844451910049804985359021655893564081185136250014784383020061202277758202995568045817822133418748737332056585115499621035958182697568687907469775302076271824469564025505064692884524991123703791933906950170434627603154363327534790335960055199999942362152676240079134224911013272873561710522794163680938311720454325197279589918653386378743004464088071552860606302378595024909242096524840681786769068680666093033640022862042786586612
    

    安全性

    RSA的安全性依赖于大数分解,但是否等同于大数分解一直未能得到理论上的证明,也并没有从理论上证明破译。RSA的难度与大数分解难度等价

    RSA算法的保密强度随其密钥的长度增加而增强。但是,密钥越长,其加解密所耗用的时间也越长。因此,要根据所保护信息的敏感程度与攻击者破解所要花费的代价值不值得以及系统所要求的反应时间来综合考虑

    运算速度

    由于进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。

    一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右

    展开全文
  • rsa算法简单例子

    千次阅读 2020-11-05 11:40:48
    密文解密,明文m = c^d mod n 假设需要加密的明文信息为m=14,选择:e=3,p=5,q=11,试说明使用RSA算法的加密和解密过程及结果? n=p*q=55 φ(n)=(p-1)*(q-1)=4*10=40 根据e*d≡1 mod φ(n) 又3*d mod 40=1 得出d=...
  • 1、采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。 2. 找出质数 P、Q P=11 Q=13 3. 计算公共模数 N = P * Q = 143 4. 欧拉函数 Φ(N) = (P-1)*(Q-1) = 10 *12 = ...
  • 实例讲解RSA算法

    万次阅读 2018-08-22 14:41:41
    图为 RSA公开密钥算法的发明人,从左到右Ron Rivest, Adi Shamir, Leonard Adleman. 照片摄于1978年  RSA加密算法是最常用的非对称加密算法,CFCA在证书服务中离不了它。但是有不少新来的同事对它不太了解,恰好...
  • RSA算法简单实例

    千次阅读 2021-01-17 15:40:18
    rsa算法过程:(1)选择一对不同的、足够大的素数p,q。(2)计算n=pq。(3)计算f(n)=(p-1)(q-1),同时对p, q严加保密,不让任何人知道。(4)找一个与f(n)互质的数e,且1(5)计算d,使得de≡1 mod f(n)。(6)公钥KU=(e,n),...
  • 密码学RSA算法

    2013-01-10 11:04:11
    密码学RSA算法过程及其加解密,带有完整代码,仅供参考
  • RSA加密例题及详解

    万次阅读 2018-12-30 23:02:27
    RSA加密算法是一种非对称加密算法。在公开密钥加密和电子商业中RSA被广泛使用。RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们...
  • RSA算法计算d的两种方法。

    万次阅读 多人点赞 2018-12-30 15:12:32
    例题: 假设p=5,q=7,e=5,m=2.计算d,公钥,私钥。 方法一: 解: n=p*q=5*7=35 Φ(n)=(p-1)*(q-1)=4*6=24 由公式:e d modΦ(n)=== 1 带入数字得:5 d mod 24 ===1 把上诉公式看成:5x+24y = 1 拆分: ...
  • RSA算法流程

    2022-03-06 19:34:24
    RSA算法流程以及例题
  • RSA算法详解与练习

    千次阅读 2020-10-04 20:57:35
    RSA算法 1.随机选择两个不相等的质数p和q。 2.计算p和q的乘积n(n=pq),n的长度就是密钥长度。 3.计算n的欧拉函数φ(n): φ(n) = (p-1)(q-1) 4.随机选择一个整数e,也就是公钥当中用来加密的那个数字 条件是1< e &...
  • RSA加密算法例子解读

    万次阅读 2016-11-14 15:25:44
    RSA加密算法例子解读如何得到公钥和密钥 随机选择两个不相等的质数p p 和 q q 例如p=61,q=53在1 ~ (p-1)(q-1) 随机选择一个整数e e ,并且要与(p-1)(q-1)互质(最大公约数为1) 1×52=31201×52=3120 ,且需要和...
  • 用实例讲解RSA加密算法(精)
  • RSA算法计算

    千次阅读 2021-07-07 18:12:52
    RSA算法简单计算 5个公式 n=p*q φ(n)=(p-1)*(q-1) 求φ(n) e*d mod φ(n) =1 求e d其中之一 c=m^e mod n 加密 m=c^d mod n 解密 字符说明 ★p,q为两个素数,n为p,q乘积。 ★φ()为欧拉函数,φ(n)为小于或等于n...
  • RSA常见攻击分析(一) 文章目录RSA常见攻击分析(一)一、试除法二、Pollard rho方法三、pollard p-1方法四、 费马分解五、 二次筛法 一、试除法 所谓试除法,就是使用比n小的数一个个的去尝试除n,当尝试的数可以...
  • RSA签名算法实例

    2014-04-09 17:23:33
    RSA签名算法实例,使用RSA的SignHash和VerifyHash可以同样做到SignData和VerifyData,事实上还有一种方法进行公钥加密的签名 认证。就是.NET中的AsymmetricSignatureFormatter和AsymmetricSignatureDeformatter。直 ...
  • RSA算法加密解密举例

    2020-05-01 18:08:46
    RSA算法加密解密举例 使用如下数字字母对照表: 明文M=“its all greek to me” ,p=47,q=59,e=17,求出其密文以及给出RSA 算法加/解密过程。(写出详细过程。) 密文:2072 2624 1436 1 336 336 1689 1883 508 508 ...
  • RSA加密算法计算题

    千次阅读 2019-04-29 13:51:51
    2、用RSA算法加密时,已经公钥是(e=7,n=20),私钥是(e=3,n=20),用公钥对消息M=3加密,得到的密文是_____? n=20 d=7 公钥 e=3 私钥 对M=3 进行加密 M'=M^d%n (M的d次方,然后除以n取余数) M'=3^7%20=2187%20=7 加密后...
  • RSA算法

    2020-08-30 14:50:01
    RSA算法 RSA是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学院工作。RSA就是他们三人姓氏开头字母拼在一起组成...
  • 【转】RSA 计算D

    2020-03-21 15:54:05
    https://blog.csdn.net/qq_38313548/article/details/85387466 https://blog.csdn.net/yansj_scu/article/details/23101611
  • RSA算法总结(数学知识/CTF题型)

    千次阅读 2021-11-13 00:50:14
    1.RSA简介
  • RSA算法详解及攻击原理分析-附攻击范例

    千次阅读 多人点赞 2020-09-08 00:41:48
    文章目录RSA算法1、算法背景1.1 公钥密码1.2 公钥体制数学基础1.3 公钥通信的流程2、RSA算法数学基础2.1 RSA相关的数论基础2.2 欧拉定理及推广3、 RSA算法构造及验证3.1 RSA算法3.2 RSA算法完备性证明3.2.1 证明方法...
  • RSA基础题型

    2021-10-29 16:35:31
    RSA roll!roll!roll! Only number and a-z (don’t use editor which MS provide) 然后是题目: {920139713,19} 704796792 752211152 274704164 18414022 368270835 483295235 263072905 459788476 483295235 ...
  • 非对称加密算法-RSA

    2021-09-19 12:34:11
    目录一、对称加密和非对称加密对称加密非对称加密二、非对称加密-RSA算法学习RSA算法需要掌握1.欧拉函数2.模反元素3.公私钥公式三、RSA算法步骤: 一、对称加密和非对称加密 对称加密 对称加密是指加密和解密时使用...
  • CTF Crypto RSA算法 入门总结(全)

    千次阅读 2020-08-06 18:48:44
    一、初步认识 https://www.bilibili.com/video/av73858330 二、简单理解 三、深入理解 1.阮一峰——RSA算法原理(一) 2.阮一峰——RSA算法原理(二)
  • 算法推导 在RSA中,定义公钥为(e,n)(e,n)(e,n),密钥为(d,n)(d,n)(d,n)。 此时选定一个eee,用**拓展欧几里得(Exgcd)**法求eee的逆元ddd,也就是密钥。 根据RSA的知识(这里不细讲了),我们选两个素数ppp和qqq,令n...
  • RSA算法笔记

    2021-01-27 23:30:42
    概述 RSA公开密钥密码体制是一种使用...为减少计算量,在传送信息时,常采用传统加密方法与公开密钥加密方法相结合的方式,即信息采用改进的DES或IDEA对话密钥加密,然后使用RSA密钥加密对话密钥和信息摘要。对方收到

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 526
精华内容 210
关键字:

rsa算法例题