文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | firefox | WPS | 杀毒软件 | Picasa
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形图像 办公软件 媒体动画 精文荟萃 常用软件 网页编程 技术开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院工具软件加密破解分析:各种常见加密方案的应用
精品推荐
特别推荐
·常用破解网络密码的方法多个
·攻破Windows系统加密保护之EFS解密
·巧用系统自带功能给文件夹加密
·加密文件看见“照妖镜”还不显原型
·破解入门教学(二)
·破解光盘加密:把DVD大片拷到硬盘上看
·远程主机探测技术FAQ集 - 扫描篇
·网络游戏封包基础
·轻松破解:打开丢失密码的笔记本
·轻松破解丢失密码的笔记本电脑
·软件狗[Dongles]的加密与解密技术
·CMOS破解完全手册
·五种windows密码设置及破解
·共享软件杀手:黑客常用十大破解工具
·如何学好破解这门技术
·借助工具 为BitComet轻松去广告
·七种加密解密
·破解windowsXP,window2000的开机密码
·破解程序及注册机使用方法
·解密宝典——十招教你学会软件破解
热点TOP10
·常用破解网络密码的方法多个
·破解windowsXP,window2000的开机密码
·网络游戏封包基础
·破解程序及注册机使用方法
·破解入门教学(二)
·算法分析 好冷清啊,来一篇破文吧
·共享软件杀手:黑客常用十大破解工具
·软件狗[Dongles]的加密与解密技术
·深思3的狗加密的软件
·加密也挡不住我 网站访问一步到位!
·解密宝典——十招教你学会软件破解
·对称加密算法技术概述
·软件狗[Dongles]的加密与解密技术
·Md5密码破解武器大揭密
·破解基础知识汇编
·openssl的man中文文档
·破解的一部分注册码!希望能帮到大家,
·五种windows密码设置及破解
·十招教你学会破解
·显卡可用来破解密码 速度要快上25倍

分析:各种常见加密方案的应用

日期:2008年3月27日 作者: 查看:[大字体 中字体 小字体]



  RSA加密算法使用了两个非常大的素数来产生公钥和私钥。即使从一个公钥中通过因数分解可以得到私钥,但这个运算所包含的计算量是非常巨大的,以至于在现实上是不可行的。加密算法本身也是很慢的,这使得使用RSA算法加密大量的数据变的有些不可行。这就使得一些现实中加密算法都基于RSA加密算法。PGP算法(以及大多数基于RSA算法的加密方法)使用公钥来加密一个对称加密算法的密钥,然后再利用一个快速的对称加密算法来加密数据。这个对称算法的密钥是随机产生的,是保密的,因此,得到这个密钥的唯一方法就是使用私钥来解密。

  我们举一个例子:假定现在要加密一些数据使用密钥‘12345’。利用RSA公钥,使用RSA算法加密这个密钥‘12345’,并把它放在要加密的数据的前面(可能后面跟着一个分割符或文件长度,以区分数据和密钥),然后,使用对称加密算法加密正文,使用的密钥就是‘12345’。当对方收到时,解密程序找到加密过的密钥,并利用RSA私钥解密出来,然后再确定出数据的开始位置,利用密钥‘12345’来解密数据。这样就使得一个可靠的经过高效加密的数据安全地传输和解密。

  五、一个崭新的多步加密算法

  现在又出现了一种新的加密算法,据说是几乎不可能被破译的。这个算法在1998年6月1日才正式公布的。下面详细的介绍这个算法:

  使用一系列的数字(比如说128位密钥),来产生一个可重复的但高度随机化的伪随机的数字的序列。一次使用256个表项,使用随机数序列来产生密码转表,如下所示:

  把256个随机数放在一个距阵中,然后对他们进行排序,使用这样一种方式(我们要记住最初的位置)使用最初的位置来产生一个表,随意排序的表,表中的数字在0到255之间。如果不是很明白如何来做,就可以不管它。但是,下面也提供了一些原码(在下面)是我们明白是如何来做的。现在,产生了一个具体的256字节的表。让这个随机数产生器接着来产生这个表中的其余的数,以至于每个表是不同的。下一步,使用"shotgun technique"技术来产生解码表。基本上说,如果 a映射到b,那么b一定可以映射到a,所以b[a[n]] = n.(n是一个在0到255之间的数)。在一个循环中赋值,使用一个256字节的解码表它对应于我们刚才在上一步产生的256字节的加密表。

  使用这个方法,已经可以产生这样的一个表,表的顺序是随机,所以产生这256个字节的随机数使用的是二次伪随机,使用了两个额外的16位的密码.现在,已经有了两张转换表,基本的加密解密是如下这样工作的。前一个字节密文是这个256字节的表的索引。或者,为了提高加密效果,可以使用多余8位的值,甚至使用校验和或者CRC算法来产生索引字节。假定这个表是256*256的数组,将会是下面的样子:

  crypto1 = a[crypto0][value]

  变量'crypto1'是加密后的数据,'crypto0'是前一个加密数据(或着是前面几个加密数据的一个函数值)。很自然的,第一个数据需要一个“种子”,这个“种子” 是我们必须记住的。如果使用256*256的表,这样做将会增加密文的长度。或者,可以使用你产生出随机数序列所用的密码,也可能是它的CRC校验和。顺便提及的是曾作过这样一个测试: 使用16个字节来产生表的索引,以128位的密钥作为这16个字节的初始的"种子"。然后,在产生出这些随机数的表之后,就可以用来加密数据,速度达到每秒钟100k个字节。一定要保证在加密与解密时都使用加密的值作为表的索引,而且这两次一定要匹配。

  加密时所产生的伪随机序列是很随意的,可以设计成想要的任何序列。没有关于这个随机序列的详细的信息,解密密文是不现实的。例如:一些ASCII码的序列,如“eeeeeeee"可能被转化成一些随机的没有任何意义的乱码,每一个字节都依赖于其前一个字节的密文,而不是实际的值。对于任一个单个的字符的这种变换来说,隐藏了加密数据的有效的真正的长度。

  如果确实不理解如何来产生一个随机数序列,就考虑FIBBONACCI数列,使用2个双字(64位)的数作为产生随机数的种子,再加上第三个双字来做XOR操作。 这个算法产生了一系列的随机数。算法如下:

  unsigned long dw1, dw2, dw3, dwMask;

  int i1;

  unsigned long aRandom[256]
  
dw1 = {seed #1};

  dw2 = {seed #2};

  dwMask = {seed #3};

  // this gives you 3 32-bit "seeds", or 96 bits total

  for(i1=0; i1 < 256; i1++)

  {

  dw3 = (dw1 + dw2) ^ dwMask;

aRandom[i1] = dw3;

  dw1 = dw2;

  dw2 = dw3;

  }

  如果想产生一系列的随机数字,比如说,在0和列表中所有的随机数之间的一些数,就可以使用下面的方法:

  int __cdecl MySortProc(void *p1, void *p2)

  {

  unsigned long **pp1 = (unsigned long **)p1;

  unsigned long **pp2 = (unsigned long **)p2; 

  if(**pp1 < **pp2)

  return(-1);

  else if(**pp1 > *pp2)

  return(1);

  return(0);


  }

   ...

  int i1;

  unsigned long *apRandom[256];

  unsigned long aRandom[256]; // same array as before, in this case

  int aResult[256]; // results go here

  for(i1=0; i1 < 256; i1++)

  {

   apRandom[i1] = aRandom + i1;

  }

  // now sort it

  qsort(apRandom, 256, sizeof(*apRandom), MySortProc);

上一页 [1] [2] [3] [4] [5] 下一页 




上一篇:剖析Linux病毒工作过程和关键环节

下一篇:谈浅五十K的稳心态与实战技巧

分析:各种常见加密方案的应用 相关文章:
·每周电脑应用技巧荟萃
·软件限制策略的简单应用
·Windows XP系统应用技巧之安装与开关机篇
·实用的WIN XP注册表应用技巧汇集
·Windows XP最新应用技巧六则
·几何图形英文字体创意设计及应用作品欣赏
·WinXP技巧:应用篇
·nc.exe高级技巧应用汇总
·电脑高手应用技巧荟萃
·Windows XP 的超级应用技巧28例
分析:各种常见加密方案的应用 相关软件:
·AutoCAD应用技巧与常见问题你问我答
·中文版 AutoCAD2004 应用实例与技巧
·注册表实例应用视频教程swf
·计算机绘图应用教程——CAXA电子图板XP
·Excel应用宝典
·全国专业技术人员计算机应用能力考试模拟
·C++语言程序设计及应用实例PDF电子书
·全国专业技术人员计算机应用能力考试模拟 V2.1
·CorelDRAW9应用速成
·嵌入式系统应用开发技术 wmv 视频教程

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.viphot.com
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.viphot.com All Rights Reserved. 鄂ICP备05000083号Powered by:vipcn