前言
这篇文章要结合之前我写的RSA基础攻击方式来看。
一、Schmidt-Samoa密码体系
1. 公钥和私钥的产生
选取大整数p、q,计算 N = p2 q作为公钥,计算 dN≡1(modφ(pq))作为私钥。
2. 加密过程
与RSA类似,对于小于N的明文m,得到 密文C = m n m^n mn mod N
3. 解密过程
C d C^d Cd mod pq = 得到明文m
举个例子:
(1)选择质数:首先选择两个大的质数p和q。例如,p=7,q=11
。
计算N:计算N=p²q。得到N=7²×11=539
。
(2)计算φ(N):φ(N)表示小于或等于N的正整数中与N互质的数的个数。对于N=p²q,有φ(N)=p(p-1)(q-1)。在我们的例子中,φ(N)=7×6×10=420。
(3)计算d:d是N模φ(N)的逆元,即满足d×N≡1(modφ(N))。在我们的例子中,d=29
(因为29×539≡1(mod420))。
(4)加密过程:对于消息m,计算密文C=m539(mod539)=373。
(5)解密过程:计算明文m=C29(mod77)=32。
例题:
p=11202724611138636062970864770438589479244102973570493327901297960170093740083627681372474220478706897477820368582213140314910480871560482781905349470385281
q=9491683429505997493154877769597912626416752630356476410989459686188788162115233919430343606667551439118856203441639297431149863038636614651099357451434241
c=538435351601953846549512563228807380721875084614680456891892690034158529237510119969477031806186303449646993933705430597362910854000413145776731288196418400979575683750958157576241801216573911489300474408885593131477044284744851825470269492514724722216132501748362773348033677710186472414243919212198416301188353146098919462252377832163510962331136144814859073253182174032945855047442999332055185573654891546712621722534972869140245371739332129406537631131991266