RSA原理以及计算逻辑
   
    RSA基于的基础数学难题是大质数分解难题
    
    计算原理如下:
   
    
    
    1. 寻找两个大质数
    
     
      
       p 
        p
      
      
       
        
        
        
         p
        
       
      
     
    
    ,
    
     
      
       q 
        q
      
      
       
        
        
        
         q
        
       
      
     
    
    ,如超过200位的大质数
   
    基于素数定理可知,素数的分布规律在趋于无穷大的时候
    
     
      
       π 
(
x
)
        \pi(x)
      
      
       
        
        
        
         π
        
        
         (
        
        
         x
        
        
         )
        
       
      
     
    
    渐近于
    
     
      
       x 
/
l
o
g
x
        x/logx
      
      
       
        
        
        
         x
        
        
         /
        
        
         l
        
        
         o
        
        
         gx
        
       
      
     
    
    。
    
    所以在数字接近
    
     
      
       1 
0
200
        10 ^ {200}
      
      
       
        
        
        
         1
        
        
         
          0
         
         
          
           
            
             
              
              
              
               
                
                 200
                
               
              
             
            
           
          
         
        
       
      
     
    
    的时候,随机选择一个200位长度的数字是质数的概率是
    
     
      
       1 
/
l
n
(
1
0
200
)
        1 / ln(10^{200})
      
      
       
        
        
        
         1/
        
        
         l
        
        
         n
        
        
         (
        
        
         1
        
        
         
          0
         
         
          
           
            
             
              
              
              
               
                
                 200
                
               
              
             
            
           
          
         
        
        
         )
        
       
      
     
    
    ,
    
    很显然,我们是不回去选择偶数的,所以概率可以扩大一倍,
    
    于是大约有
    
     
      
       1 
/
(
2
/
l
n
(
2
0
200
)
)
=
230
        1/(2 / ln(20^{200}))=230
      
      
       
        
        
        
         1/
        
        
         (
        
        
         2/
        
        
         l
        
        
         n
        
        
         (
        
        
         2
        
        
         
          0
         
         
          
           
            
             
              
              
              
               
                
                 200
                
               
              
             
            
           
          
         
        
        
         ))
        
        
        
        
         =
        
        
        
       
       
        
        
        
         230
        
       
      
     
    
    个数中会找到一个质数。
   
    基于拉宾概率素性检验可知,随机找一个正整数,只要通过100次米勒检验,那么该数字是合数的概率不足
    
     
      
       ( 
1
/
4
)
100
<
1
0
−
60
        (1/4)^{100}<10 ^ {-60}
      
      
       
        
        
        
         (
        
        
         1/4
        
        
         
          )
         
         
          
           
            
             
              
              
              
               
                
                 100
                
               
              
             
            
           
          
         
        
        
        
        
         <
        
        
        
       
       
        
        
        
         1
        
        
         
          0
         
         
          
           
            
             
              
              
              
               
                
                 −
                
                
                 60
                
               
              
             
            
           
          
         
        
       
      
     
    
    。这个时候我们就可以基本认定改数字是质数了。
    
    于是上述操作在计算机中可以极为轻松的得到。于是我们就有了两个大质数
    
     
      
       p 
,
q
        p,q
      
      
       
        
        
        
         p
        
        
         ,
        
        
        
        
         q
        
       
      
     
    
   
    
    
    2. 生成公私钥
   
- 
获得 
 
 
 
 n= p ⋅ q n=p \cdot q 
 
 
 
 
 
 
 n
 
 
 
 
 =
 
 
 
 
 
 
 
 
 p
 
 
 
 
 ⋅
 
 
 
 
 
 
 
 
 q
 
 
 
 
 
- 
计算 
 
 
 
 nn 
 
 
 
 
 
 
 n
 
 
 
 
 
 的欧拉函数
 
 
 
 ϕ( n ) = ( p − 1 ) ( q − 1 ) \phi(n) = (p-1)(q-1) 
 
 
 
 
 
 
 ϕ
 
 
 (
 
 
 n
 
 
 )
 
 
 
 
 =
 
 
 
 
 
 
 
 
 (
 
 
 p
 
 
 
 
 −
 
 
 
 
 
 
 
 
 1
 
 
 )
 
 
 (
 
 
 q
 
 
 
 
 −
 
 
 
 
 
 
 
 
 1
 
 
 )
 
 
 
 
 
 
 注意:这是因为欧拉函数
 
 
 
 ϕ( n ) \phi(n) 
 
 
 
 
 
 
 ϕ
 
 
 (
 
 
 n
 
 
 )
 
 
 
 
 
 是一个乘性函数
- 
根据步骤1的方法再生成一个大于 
 
 
 
 p, q p,q 
 
 
 
 
 
 
 p
 
 
 ,
 
 
 
 
 q
 
 
 
 
 
 的素数
 
 
 
 ee 
 
 
 
 
 
 
 e
 
 
 
 
 
 
 这样即满足了
 
 
 
 (e , ϕ ( n ) ) = 1 (e,\phi(n))=1 
 
 
 
 
 
 
 (
 
 
 e
 
 
 ,
 
 
 
 
 ϕ
 
 
 (
 
 
 n
 
 
 ))
 
 
 
 
 =
 
 
 
 
 
 
 
 
 1
 
 
 
 
 
- 
目标为找到 关于 
 
 
 
 ee 
 
 
 
 
 
 
 e
 
 
 
 
 
 的一元一次同余方程式
 
 
 
 ed ≡ 1 ( m o d ϕ ( n ) ) ed \equiv 1 (mod \ \phi(n)) 
 
 
 
 
 
 
 e
 
 
 d
 
 
 
 
 ≡
 
 
 
 
 
 
 
 
 1
 
 
 (
 
 
 m
 
 
 o
 
 
 d
 
 
 
 
 ϕ
 
 
 (
 
 
 n
 
 
 ))
 
 
 
 
 
 ,求逆元
 
 
 
 dd 
 
 
 
 
 
 
 d
 
 
 
 
 
 
 一次丢番图方程,代码形式类似递归,思路应该是连分数求解
- 
此时得到公钥 
 
 
 
 (e , n ) (e,n) 
 
 
 
 
 
 
 (
 
 
 e
 
 
 ,
 
 
 
 
 n
 
 
 )
 
 
 
 
 
 ,私钥
 
 
 
 dd 
 
 
 
 
 
 
 d
 
 
 
 
 
    
    
    3. 加解密逻辑
   
    明文信息为
    
     
      
       P 
        P
      
      
       
        
        
        
         P
        
       
      
     
    
    
    加密为
    
     
      
       E 
(
P
)
=
C
≡
P
e
(
m
o
d
n
)
        E(P)=C \equiv P^e(mod \ n)
      
      
       
        
        
        
         E
        
        
         (
        
        
         P
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         C
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         
          P
         
         
          
           
            
             
              
              
              
               
                e
               
              
             
            
           
          
         
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
       
      
     
    
    
    解密为
    
     
      
       D 
(
E
(
P
)
)
=
E
(
P
)
d
(
m
o
d
n
)
≡
P
e
d
(
m
o
d
n
)
        D(E(P))= E(P)^d (mod \ n) \equiv P^{ed} (mod \ n)
      
      
       
        
        
        
         D
        
        
         (
        
        
         E
        
        
         (
        
        
         P
        
        
         ))
        
        
        
        
         =
        
        
        
       
       
        
        
        
         E
        
        
         (
        
        
         P
        
        
         
          )
         
         
          
           
            
             
              
              
              
               
                d
               
              
             
            
           
          
         
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         
          P
         
         
          
           
            
             
              
              
              
               
                
                 e
                
                
                 d
                
               
              
             
            
           
          
         
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
       
      
     
    
   
    因为
    
     
      
       e 
d
≡
1
(
m
o
d
ϕ
(
n
)
)
        ed \equiv 1 (mod \ \phi(n))
      
      
       
        
        
        
         e
        
        
         d
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         1
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         ϕ
        
        
         (
        
        
         n
        
        
         ))
        
       
      
     
    
    ,所以 ed 可以写成
    
     
      
       k 
ϕ
(
n
)
+
1
        k\phi(n)+1
      
      
       
        
        
        
         k
        
        
         ϕ
        
        
         (
        
        
         n
        
        
         )
        
        
        
        
         +
        
        
        
       
       
        
        
        
         1
        
       
      
     
    
    ,其中
    
     
      
       k 
        k
      
      
       
        
        
        
         k
        
       
      
     
    
    是正整数
    
    所以有
    
     
      
       D 
(
E
(
P
)
)
≡
P
k
ϕ
(
n
)
⋅
P
(
m
o
d
n
)
        D(E(P)) \equiv P^{k\phi(n)} \cdot P \ (mod \ n)
      
      
       
        
        
        
         D
        
        
         (
        
        
         E
        
        
         (
        
        
         P
        
        
         ))
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         
          P
         
         
          
           
            
             
              
              
              
               
                
                 k
                
                
                 ϕ
                
                
                 (
                
                
                 n
                
                
                 )
                
               
              
             
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         P
        
        
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
       
      
     
    
    
    以及欧拉定理可知
    
     
      
       P 
k
ϕ
(
n
)
≡
1
(
m
o
d
n
)
        P^{k\phi(n)} \equiv 1 (mod \ n)
      
      
       
        
        
        
         
          P
         
         
          
           
            
             
              
              
              
               
                
                 k
                
                
                 ϕ
                
                
                 (
                
                
                 n
                
                
                 )
                
               
              
             
            
           
          
         
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         1
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
       
      
     
    
    
    所以
    
     
      
       D 
(
E
(
P
)
)
≡
P
(
m
o
d
n
)
        D(E(P)) \equiv P (mod \ n)
      
      
       
        
        
        
         D
        
        
         (
        
        
         E
        
        
         (
        
        
         P
        
        
         ))
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         P
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         n
        
        
         )
        
       
      
     
    
   
    
    
    针对RSA的攻击
   
    
    
    哈氏广播攻击(Hastad broadcast attack)
   
    用不同的密钥针对同一段明文加密
    
    防御方式:针对明文信息填充不同的随机数在进行加密
   
    
    
    
     
      
       p 
         , 
         q 
        p,q
      
      
       
        
        
        
         p
        
        
         ,
        
        
        
        
         q
        
       
      
     
    
    满足
    
     
      
       q 
         < 
         p 
         < 
         2 
         q 
        q<p<2q
      
      
       
        
        
        
         q
        
        
        
        
         <
        
        
        
       
       
        
        
        
         p
        
        
        
        
         <
        
        
        
       
       
        
        
        
         2
        
        
         q
        
       
      
     
    
    的时候解密
    
     
      
       d 
        d
      
      
       
        
        
        
         d
        
       
      
     
    
    的次数小于
    
     
      
       n 
           1 
           / 
           4 
         / 
         3 
        n^{1/4}/3
      
      
       
        
        
        
         
          n
         
         
          
           
            
             
              
              
              
               
                
                 1/4
                
               
              
             
            
           
          
         
        
        
         /3
        
       
      
     
    
   
    这表明在生成
    
     
      
       p 
,
q
        p,q
      
      
       
        
        
        
         p
        
        
         ,
        
        
        
        
         q
        
       
      
     
    
    的时候 二者距离不能过近
   
    
    
    得知大质数
    
     
      
       p 
         , 
         q 
        p,q
      
      
       
        
        
        
         p
        
        
         ,
        
        
        
        
         q
        
       
      
     
    
    的部分信息
   
    
    
    可以通过解密时间来进行攻击
   
可以在解密的时候随机等待时间
    
    
    拉宾密码系统
   
一种RSA密码系统的变种
    
    
    ElGamal密码系统原理以及计算逻辑
   
    lGamal基于的基础数学难题是求模大素数的离散对数的困难性
    
    计算原理如下:
   
    
    
    1. 寻找一个大素数
    
     
      
       p 
        p
      
      
       
        
        
        
         p
        
       
      
     
    
    和 这个素数的原根
    
     
      
       r 
        r
      
      
       
        
        
        
         r
        
       
      
     
    
   
这里找大素数不止依靠拉宾素性检验就可以了,因为我们还需要寻找相对应的原根,所以需要进行以下操作
- 
(1) 寻找一个200位长度的大素数 
 
 
 
 qq 
 
 
 
 
 
 
 q
 
 
 
 
 
- 
(2) 去计算 
 
 
 
 2q + 1 2q+1 
 
 
 
 
 
 
 2
 
 
 q
 
 
 
 
 +
 
 
 
 
 
 
 
 
 1
 
 
 
 
 
 是否通过拉宾素性检验,通过则将其定义为
 
 
 
 pp 
 
 
 
 
 
 
 p
 
 
 
 
 
 否则重新寻找大素数
 
 
 
 qq 
 
 
 
 
 
 
 q
 
 
 
 
 
- 
(3) 此时拥有了一个大素数 
 
 
 
 qq 
 
 
 
 
 
 
 q
 
 
 
 
 
 和另一个大素数
 
 
 
 p= 2 q + 1 p=2q+1 
 
 
 
 
 
 
 p
 
 
 
 
 =
 
 
 
 
 
 
 
 
 2
 
 
 q
 
 
 
 
 +
 
 
 
 
 
 
 
 
 1
 
 
 
 
 
- 
(4) 注意,这样 
 
 
 
 ϕ( p ) = p − 1 = 2 q \phi(p) = p-1 = 2q 
 
 
 
 
 
 
 ϕ
 
 
 (
 
 
 p
 
 
 )
 
 
 
 
 =
 
 
 
 
 
 
 
 
 p
 
 
 
 
 −
 
 
 
 
 
 
 
 
 1
 
 
 
 
 =
 
 
 
 
 
 
 
 
 2
 
 
 q
 
 
 
 
 
 ,于是乎,只要随机找一个大数
 
 
 
 rr 
 
 
 
 
 
 
 r
 
 
 
 
 
 使其满足
 
 
 
 
 
 rϕ ( p ) / 2 = r q ≢ 1 ( m o d p ) r^{\phi(p)/2} = r^q \not \equiv 1 ( mod \ p) 
 
 
 
 
 
 
 
 r
 
 
 
 
 
 
 
 
 
 
 
 ϕ
 
 
 (
 
 
 p
 
 
 )
 
 
 /2
 
 
 
 
 
 
 
 
 
 
 
 
 =
 
 
 
 
 
 
 
 
 
 r
 
 
 
 
 
 
 
 
 
 
 q
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ≡
 
 
 
 
 
 
 
 
 1
 
 
 (
 
 
 m
 
 
 o
 
 
 d
 
 
 
 
 p
 
 
 )
 
 
 
 
 
 
 以及
 
 
 
 
 
 rϕ ( p ) / q = r 2 ≢ 1 ( m o d p ) r^{\phi(p)/q} = r^2 \not \equiv 1 ( mod \ p) 
 
 
 
 
 
 
 
 r
 
 
 
 
 
 
 
 
 
 
 
 ϕ
 
 
 (
 
 
 p
 
 
 )
 
 
 /
 
 
 q
 
 
 
 
 
 
 
 
 
 
 
 
 =
 
 
 
 
 
 
 
 
 
 r
 
 
 
 
 
 
 
 
 
 
 2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 ≡
 
 
 
 
 
 
 
 
 1
 
 
 (
 
 
 m
 
 
 o
 
 
 d
 
 
 
 
 p
 
 
 )
 
 
 
 
 
 
 
 即可判定
 
 
 
 rr 
 
 
 
 
 
 
 r
 
 
 
 
 
 为
 
 
 
 pp 
 
 
 
 
 
 
 p
 
 
 
 
 
 的原根,此时完成大素数与原根的计算(依据定理9.1.1)
    
    
    2. 生成公私钥
   
    随机生成一个大数
    
     
      
       a 
        a
      
      
       
        
        
        
         a
        
       
      
     
    
    作为私钥,计算
    
     
      
       r 
a
≡
b
(
m
o
d
p
)
        r^a \equiv b ( mod \ p)
      
      
       
        
        
        
         
          r
         
         
          
           
            
             
              
              
              
               
                a
               
              
             
            
           
          
         
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         b
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         p
        
        
         )
        
       
      
     
    
    ,此时,公钥为
    
     
      
       ( 
p
,
r
,
b
)
        (p,r,b)
      
      
       
        
        
        
         (
        
        
         p
        
        
         ,
        
        
        
        
         r
        
        
         ,
        
        
        
        
         b
        
        
         )
        
       
      
     
    
    ,私钥为
    
     
      
       a 
        a
      
      
       
        
        
        
         a
        
       
      
     
    
   
    
    
    3. 加解密逻辑
   
    明文信息为
    
     
      
       P 
        P
      
      
       
        
        
        
         P
        
       
      
     
    
    
    加密为
    
     
      
       E 
(
P
)
=
(
γ
,
δ
)
        E(P) = (\gamma, \delta)
      
      
       
        
        
        
         E
        
        
         (
        
        
         P
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         (
        
        
         γ
        
        
         ,
        
        
        
        
         δ
        
        
         )
        
       
      
     
    
    
    其中 先生成一个随机整数
    
     
      
       k 
        k
      
      
       
        
        
        
         k
        
       
      
     
    
    得到
    
    
     
      
       
        γ 
=
r
k
(
m
o
d
p
)
,
0
≤
γ
≤
p
−
1
         \gamma = r^k ( mod \ p), \qquad 0 \leq \gamma \leq p-1
       
       
        
         
         
         
          γ
         
         
         
         
          =
         
         
         
        
        
         
         
         
          
           r
          
          
           
            
             
              
               
               
               
                
                 k
                
               
              
             
            
           
          
         
         
          (
         
         
          m
         
         
          o
         
         
          d
         
         
         
         
          p
         
         
          )
         
         
          ,
         
         
         
         
         
         
          0
         
         
         
         
          ≤
         
         
         
        
        
         
         
         
          γ
         
         
         
         
          ≤
         
         
         
        
        
         
         
         
          p
         
         
         
         
          −
         
         
         
        
        
         
         
         
          1
         
        
       
      
     
    
    
    以及
    
    
     
      
       
        δ 
=
P
⋅
b
k
(
m
o
d
p
)
,
0
≤
δ
≤
p
−
1
         \delta = P \cdot b^k ( mod \ p), \qquad 0 \leq \delta \leq p-1
       
       
        
         
         
         
          δ
         
         
         
         
          =
         
         
         
        
        
         
         
         
          P
         
         
         
         
          ⋅
         
         
         
        
        
         
         
         
          
           b
          
          
           
            
             
              
               
               
               
                
                 k
                
               
              
             
            
           
          
         
         
          (
         
         
          m
         
         
          o
         
         
          d
         
         
         
         
          p
         
         
          )
         
         
          ,
         
         
         
         
         
         
          0
         
         
         
         
          ≤
         
         
         
        
        
         
         
         
          δ
         
         
         
         
          ≤
         
         
         
        
        
         
         
         
          p
         
         
         
         
          −
         
         
         
        
        
         
         
         
          1
         
        
       
      
     
    
   
    解密为
    
     
      
       D 
(
C
)
=
γ
a
‾
δ
        D(C) = \overline{\gamma^a}\delta
      
      
       
        
        
        
         D
        
        
         (
        
        
         C
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          
           
            
             
             
             
              
               
                γ
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
        
         δ
        
       
      
     
    
    
    其中
    
     
      
       γ 
a
‾
        \overline{\gamma^a}
      
      
       
        
        
        
         
          
           
            
             
             
             
              
               
                γ
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
       
      
     
    
    代表
    
     
      
       γ 
a
        \gamma^a
      
      
       
        
        
        
         
          γ
         
         
          
           
            
             
              
              
              
               
                a
               
              
             
            
           
          
         
        
       
      
     
    
    的逆
    
    依据欧拉定理可知,因为
    
     
      
       p 
        p
      
      
       
        
        
        
         p
        
       
      
     
    
    是素数,
    
     
      
       γ 
<
p
        \gamma<p
      
      
       
        
        
        
         γ
        
        
        
        
         <
        
        
        
       
       
        
        
        
         p
        
       
      
     
    
    所以
    
     
      
       ( 
γ
,
p
)
=
1
        (\gamma,p)=1
      
      
       
        
        
        
         (
        
        
         γ
        
        
         ,
        
        
        
        
         p
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         1
        
       
      
     
    
    ,于是有
    
     
      
       γ 
ϕ
(
p
)
≡
1
(
m
o
d
p
)
        \gamma^{\phi(p)} \equiv 1 ( mod \ p)
      
      
       
        
        
        
         
          γ
         
         
          
           
            
             
              
              
              
               
                
                 ϕ
                
                
                 (
                
                
                 p
                
                
                 )
                
               
              
             
            
           
          
         
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         1
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         p
        
        
         )
        
       
      
     
    
    
    这样我们计算
    
     
      
       γ 
a
‾
        \overline{\gamma^a}
      
      
       
        
        
        
         
          
           
            
             
             
             
              
               
                γ
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
       
      
     
    
    即可通过
    
     
      
       γ 
a
‾
=
γ
ϕ
(
p
)
−
a
=
γ
p
−
1
−
a
        \overline{\gamma^a} = \gamma^{\phi(p)-a}=\gamma^{p-1-a}
      
      
       
        
        
        
         
          
           
            
             
             
             
              
               
                γ
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          γ
         
         
          
           
            
             
              
              
              
               
                
                 ϕ
                
                
                 (
                
                
                 p
                
                
                 )
                
                
                 −
                
                
                 a
                
               
              
             
            
           
          
         
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          γ
         
         
          
           
            
             
              
              
              
               
                
                 p
                
                
                 −
                
                
                 1
                
                
                 −
                
                
                 a
                
               
              
             
            
           
          
         
        
       
      
     
    
    得到
   
    于是解密
    
     
      
       D 
(
C
)
=
γ
p
−
1
−
a
⋅
δ
(
m
o
d
p
)
        D(C)=\gamma^{p-1-a} \cdot \delta (mod \ p)
      
      
       
        
        
        
         D
        
        
         (
        
        
         C
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          γ
         
         
          
           
            
             
              
              
              
               
                
                 p
                
                
                 −
                
                
                 1
                
                
                 −
                
                
                 a
                
               
              
             
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         δ
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         p
        
        
         )
        
       
      
     
    
    
    在正确性上有
    
    
     
      
       D 
(
C
)
=
γ
a
‾
δ
=
r
k
a
‾
⋅
P
b
k
=
(
r
a
)
k
‾
⋅
P
b
k
=
b
k
‾
⋅
b
k
⋅
P
≡
P
(
m
o
d
p
)
        D(C)= \overline{\gamma^a}\delta = \overline{r^{ka}} \cdot Pb^k=\overline{(r^a)^k} \cdot Pb^k=\overline{b^k} \cdot b^k \cdot P\equiv P (mod \ p)
      
      
       
        
        
        
         D
        
        
         (
        
        
         C
        
        
         )
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          
           
            
             
             
             
              
               
                γ
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
        
         δ
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          
           
            
             
             
             
              
               
                r
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      
                       ka
                      
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         P
        
        
         
          b
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          
           
            
             
             
             
              
               (
              
              
               
                r
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      a
                     
                    
                   
                  
                 
                
               
              
              
               
                )
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      k
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
           
            
           
          
          
           
            
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         P
        
        
         
          b
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
        
        
         =
        
        
        
       
       
        
        
        
         
          
           
            
             
             
             
              
               
                b
               
               
                
                 
                  
                   
                    
                    
                    
                     
                      k
                     
                    
                   
                  
                 
                
               
              
             
            
            
             
             
             
             
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         
          b
         
         
          
           
            
             
              
              
              
               
                k
               
              
             
            
           
          
         
        
        
        
        
         ⋅
        
        
        
       
       
        
        
        
         P
        
        
        
        
         ≡
        
        
        
       
       
        
        
        
         P
        
        
         (
        
        
         m
        
        
         o
        
        
         d
        
        
        
        
         p
        
        
         )
        
       
      
     
    
   
 
