毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

C++RSA算法文件加密解决方案RSA论文 第11页

更新时间:2010-3-7:  来源:毕业论文
C++RSA算法文件加密解决方案RSA论文 第11页
在C#使用Windows kernel32.dll中的API实现精确计时的类源代码
 public class HighResolutionTimer
 {
  private long start;
  private long stop;
  private long frequency;
  public HighResolutionTimer()
  {
   QueryPerformanceFrequency (ref frequency);
  }
  public void Start ()
  {
   QueryPerformanceCounter (ref start);
  }
  public void Stop ()
  {
   QueryPerformanceCounter (ref stop);
  }
  public float ElapsedTime
  {
   get
   {
    float elapsed = (((float)(stop - start)) / ((float) frequency));
    return elapsed;
   }
  }
  [System.Runtime.InteropServices.DllImport("KERNEL32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto)]
  private static extern bool QueryPerformanceCounter(ref long performanceCount);
  [System.Runtime.InteropServices.DllImport("KERNEL32.dll", CharSet=System.Runtime.InteropServices.CharSet.Auto)]
  private static extern bool QueryPerformanceFrequency(ref long frequency);
 }

加密解密测试时使用的两组密钥
密钥位数并不精确,可能有几位的差距。
512bit私有密钥(两行分别为d、n)
11C6EBA27BEA0A998C517D522DAE7ADA203F7325576C97853584C9253CD867B0FD6217579F8240F7FCB7474F1B532B8532794605C704D94513B240700BF04C9
195F9E4D3ABD729F6C7E7B7B6AF58DA89A10147DB6ADF0F4F3FA988E4C2441C2130C449852A68E19E32768FB3B41775DD4EF97F92674F3D21547249CD6D70C5
512bit公开密钥(两行分别为e、n)
C359
195F9E4D3ABD729F6C7E7B7B6AF58DA89A10147DB6ADF0F4F3FA988E4C2441C2130C449852A68E19E32768FB3B41775DD4EF97F92674F3D21547249CD6D70C5
1024bit私有密钥(两行分别为d、n)
79113601A430BCE489C6CBD825161014211DCC3D090D86C8F56E0F6324C0994A4E22596588C08B38354BA08C31DB6857BF919B8A67FDC0054A2C5BC783EEDEC3C1900A3AE66FAE1498562C6953FD9B7E0DD6EA515FE190D8123C31933328F79A5F1C63320499D09A4AC8F242E06F6BE903349570CE902197E6B24F3B8AB7D59
90640C3AA06DEC9ED00B8C232812B96F51979338282E782E8A10C5650D162781AC030747B0DEF22C42078036DDC6D42BC5728F5300CD6EDA1FFEC01D1F0B4FC06117BEC185E6429CA536D7BFB9B7235C6CC42A5C50C0C4798A04705212FC345170DEAB00A03E27D26292B7DE39F63874DC4FEB13DBE9C40B6DB9B593869EFD3
1024bit公开密钥(两行分别为e、n)
C359
90640C3AA06DEC9ED00B8C232812B96F51979338282E782E8A10C5650D162781AC030747B0DEF22C42078036DDC6D42BC5728F5300CD6EDA1FFEC01D1F0B4FC06117BEC185E6429CA536D7BFB9B7235C6CC42A5C50C0C4798A04705212FC345170DEAB00A03E27D26292B7DE39F63874DC4FEB13DBE9C40B6DB9B593869EFD3

RSA算法可行性的证明
求证:
<命题1-1> 若 p, q 是相异素数, e×d = 1 mod (p-1)×(q-1),
a 是任意一个正整数, 
则有 c = a mod (p×q)
证明:
∵ d×e = 1 mod (p-1)×(q-1)
∴ d×e = k×(p-1)×(q-1) + 1, 其中 k 是整数
∵ 在 mod 中是 preserve 乘法的 (x = y mod z and u = v mod z  x×u = y×v mod z),
∴ 
首先,素数p、q要么能整除a,要么与a互素。
1. 如果 a 不是 p 的倍数, 也不是 q 的倍数时,
则   (费马小定理)   (根据质数算术基本定理,a与素数p互素,则am也与p互素,m是整数)
  (费马小定理)  
∴ p, q 均能整除   - 1  p×q |   - 1
即   = 1 mod p×q
 c =   = a mod p×q
2. 如果 a 是 p 的倍数, 但不是 q 的倍数时,
则   (费马小定理)
   = 1 mod q
 c =   = a mod q
 q | c - a
∵ p | a
 c =   = 0 mod p
 p | c - a
∴ p×q | c - a  c = a mod p×q
3. 如果 a 是 q 的倍数,但不是 p 的倍数时,证明同2理显然
4. 如果 a 同时是 p 和 q 的倍数时,
则 p×q | a
 c =   = 0 mod p×q
 p×q | c - a
 c = a mod p×q
证毕□
费马小定理叙述:e 是任一素数, n 是任一整数, 则  = n mod e (即如果 n 和 e 互质, 则   = 1 mod e) 运用群论知识可以证出费马小定理。
命题1-1说明 a 经过编码为 b 再经过解码为 c 时, a = c mod n (n = p×q),但在做编码解码时, 由于限制 0 <= a < n, 0 <= c < n, 此时显然 a = c, 所以这个过程能做到编码解码的功能。中国余数定理的简单介绍
令n=n1n2...nk,其中ni是两两互质的数,则对0<=a<n与0<=ai<ni且ai=a mod ni,a与(a1,a2...,ak)之间有一种一一对应的关系,一切对a的操作均可被等价的转换为对对应k元组中的每一元进行同样的操作。因此我们可以将一种表达经过简单的转换后得出另一种表达,其中从a到(a1,a2...,ak)的转换十分容易,而从(a1,a2...,ak)推得对应的a则要稍微复杂一些。
首先定义mi=n/ni(i=1,2...k),则mi是除了ni以外的所有nj的乘积,接下来令ci=mi与模n意义下mi的逆元的积,则a为(a1c1+a2c2+...+akck) (mod n)。
例如,已知a模5余2 且 模13余3,那么a1=2,n1=m2=5,a2=3,n2=m1=13,则有c1=13*(2 mod 5)=26,c2=5*(8 mod 13)=40,所以a=(2*26+3*40)(mod 65)=42。

 << 上一页  [11] 

C++RSA算法文件加密解决方案RSA论文 第11页下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。