• λ我爱Aspx >> C#.Net >> 密码学概述(2)
  • 密码学概述(2)

  • :aspxer  Դ:internet  :2007-5-12 7:53:08  ؼ:
  • 前面我们已经大致了解了公钥体系的算法,问题是,具体的加密是如何实现的呢?下面我们先简单的看看如何实现加密,再通过一个实例来进行详细说明。

    我们知道,公钥体制中是有一对密码的,给别人用的就叫公钥,给自己用的就叫私钥,这两个可以互相并且只有为对方加解密的份儿,用公钥加密后的东东,只有私钥能解。连它自己也没有办法解掉,同样,用私钥加密的东东,只有公钥能解。如下图:

    下面我们来看一个示例:

    首先我们把上一节的RSA算法排列成下面的步骤:

    ①选择两个大质数户和p和q,每个都大于10100

    ②计算n =p*q和z= (p一1)*(q一1);

    ③选择一个与z 有关的质数,令其为d ;

    ④找到一个e使满足e*d=1(模z)。 d保密。

    事先计算好这些参数,我们就可以准备加密了。将明码(当作位串看待)划分成块,使得每个明码报文P落在0<P<n之间,这可以通过将明码分成每块有k位的组来实现,并且屋是使得zk<n成立的最大整数。

    加密一个报文P,计算C=Pe(模n) 。解密C,计算P=Cd(模n)。可以证明,在确定的范围内,加密和解密函数是互逆的。为实现加密你需要e和n。为实现解密你需要d和n。所以公钥由(e,n)组成,私钥由(d,n)或只是d组成。现在我们就来看这个简单的例子。我们选择了p=3,q=11,则n=33,g=20。d的一个适合的值是d=7,因为7和20没有公共因子。选定这些值后,e可以通过求解式7e=1(模20)得出,即e=3。明码报文P的一个密码C,则由C=P3(模33)将密文解密。图中给出明码“SUZANNE”的加密作为例子。

    因为我们的质数选择得很小,所以P必须小于33,因此,每个明码块只能包含一个字符。结果形成了一个单一字母表代换密码。

    明文 密文 解密 字母 序号 P3 P3(MOD 33) C7 C7(MOD 33) 字母 S

    U

    Z

    A

    N

    N

    E 19

    21

    26

    01

    14

    14

    05 6859

    9261

    17576

    1

    2744

    2744

    125 28

    21

    20

    1

    5

    5

    Ҷƪл˵?
  • һƪVB Script教学-VBScript编码约定
    һƪASP讲座之九:ASP与数据库(四)