首页 百科知识 加密密钥和解密密钥类型

加密密钥和解密密钥类型

时间:2022-10-04 百科知识 版权反馈
【摘要】:数据加密的目的是防止机密信息的泄密,同时还可以验证传输信息的真实性,验证收到数据的完整性。加密前的数据称为明文,加密后的数据称为密文。对称加密算法是应用较早的加密算法,技术较为成熟。非对称加密技术将密钥分解成一对,一个用于加密,另一个用于解密。3DES使用两个密钥,对每个数据块使用三次DES加密算法。

随着网络技术的发展,网上业务的普及,网络安全问题越来越突出,其中密码技术是对计算机信息进行保护的最实用和最可靠的办法。密码技术是一门古老又年轻的学科,其历史可以追溯到几千年前。在古希腊时代,加密技术就被用于消息传递,第二次世界大战后,密码技术随着计算机技术的迅速发展而快速发展起来,逐渐发展为一个独立的学科,形成了成熟、多样的密码技术。

10.2.1 数据加密技术

数据加密的目的是防止机密信息的泄密,同时还可以验证传输信息的真实性,验证收到数据的完整性。加密通常需要进行隐蔽的转换,这个转换需要使用密钥进行加密。加密前的数据称为明文,加密后的数据称为密文。

在密码中密钥是一种只有双方才知道的信息,通过密钥将明文转换成密文的过程为加密,而通过密钥将密文转换成明文的过程为解密,加密技术主要就是研究加密、解密以及密钥的技术。

一般的加密模型如图10-1所示,在发送端,明文用加密算法和加密密钥加密成密文,然后以密文方式进行网络传输,到达接收方后,对密文进行解密,还原为明文。密文在传输过程中密文可能被非法截获,但由于没有解密密钥而无法将密文还原为明文。

图10-1 一般的加密模型

在加密方法中,存在对称加密和非对称加密两种方式。在一种加密方法中,用一个密钥同时用作信息的加密密钥和解密密钥,这种加密方法称为对称加密。而在一种加密方法中加密方法中,使用两个密钥,一个用于加密,另一个用于解密,这种加密方法称为非对称加密。

(1)对称加密

对称加密算法是应用较早的加密算法,技术较为成熟。在对称加密算法中,实现加密的过程是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,使用加密的密钥及相同算法的逆算法对密文进行解密,使其恢复成明文。在对称加密算法中,使用的密钥只有一个,发送方和接收方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。

历史上典型的对称加密例子是“恺撒密码”,恺撒密码使用的密钥是3,也就是甲方的加密过程为将明文中的每个字母在字母表中的位置都向后移动了3位,即将明文中的一个字母换成后3位位置上的另外一个字母。如a换成d,b换成e,c换成f……x换成a,y换成b,z换成c。图10-2为恺撒密码示例。

图10-2 恺撒密码

在发送方,明文shot经过加密就变成密文vkrw。该密文发到接收方后,如果接收方知道密钥是3,通过逆运算,就可以将密文解密为原来的shot。在恺撒密码中,数据的和使用了相同的密钥,即key1=key2。

由于恺撒密码中仅使用了26个字母,其加密算法为:将某个小写英文字母用排列在该字母后面的第K个字母进行替换。在恺撒密码中K=3,对称加密的数学表达式为如下形式:

加密过程:E=(M+K)mod(26)

解密过程:E=(M-K)mod(26)

其中,M表示英文小写字母从0~25的排序序号,E表示加密后的序号,mod意思为取模。

对称加密的安全程度依赖于密钥的秘密性,而不是算法的秘密性,容易通过硬件方式实现加密、解密的处理,实现较高的加解密处理速度,在实际应用中具有其优越的一面。

对称加密系统由于加密方和解密方都使用相同的密钥,每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长。如果一个用户要与网上的N个人进行保密通信,他就需要N个不同的对称密码,如果一个网络有N个用户,他们之间要进行相互的保密通信时,这时网络共需N(N-1)/2个密钥(每个用户都要保存N-1个密钥),这样大的密钥量分配和管理是极不容易的。

(2)非对称加密

非对称加密技术将密钥分解成一对,一个用于加密,另一个用于解密。这两个密钥一个称为公钥,一个称为私钥。公钥可以通过非保密方式向他人公开,公钥用在加密时使用。私钥是不公开的,是需要保密的,私钥用在解密时使用。非对称加密的这对密钥中的任何一个都可以作为公钥,相应的另外一个就作为私钥。图10-3为非对称加密的示例。

图10-3 非对称加密

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

非对称加密算法实现机密信息交换的基本过程是:甲乙双方生成一对密钥并将其中的一把作为公用密钥向对方公开,得到乙方公钥的甲方(乙方)使用该公钥对数据进行加密后再发送给乙方(甲方);乙方再用自己保存的私钥对加密后的信息进行解密。

相对对称加密方式,如果一个网络有N个用户,他们之间存在秘密通信的需要时,这时每个用户需要保存N-1个密钥,网络需要生成N对密钥,并分发N个公钥。由于公钥是可以公开的(类似公开电话号码),用户只要保管好自己的私钥即可,因此非对称加密密钥的分发将变得十分简单。在非对称加密方式中,由于每个用户的私钥是唯一的,接收信息的用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息,及具有不可抵赖性,这也是非对称加密的一大优点。非对称加密的缺点是加解密过程相对复杂,速度要远远慢于对称加密。

非对称加密方式只要某一用户知道其他用户的公钥就可以实现安全通信,也就是说非对称加密方式中,通信双方无需事先交换密钥就可建立安全通信,正是由于它具有这样的优越性,非对称加密被广泛用于身份认证、数字签名等信息交换领域。

10.2.2 数据加密标准

数据加密标准DES(Data Encryption Standard),是一个广泛用于商用数据保密的公开密码算法,于1977年由美国国家标准局颁布。DES采用对称加密,分组密码的加密技术,DES采用56位密钥对64位二进制数据块进行加密。DES加密处理时,先将明文划分成若干组64位的数据块,然后对每一个64位数据块进行16轮编码,经一系列替换和移位后,形成与原始数据完全不同的密文。

由于DES具有运算速度快、密钥产生容易,适合在计算机上实现等优点,推出后得到迅速的推广使用。大量计算机厂家还生产了以DES为基本算法的加密机,专用芯片、专用软件,形成了以DES为核心的数据安全加密产品。但DES也存在它的不足,由于密钥容量仅有56位,安全度不够高。

为了克服DES的不足,美国1985年推出三重数据加密3DES。3DES使用两个密钥,对每个数据块使用三次DES加密算法。3DES密钥长度达112位,具有足够的安全度。3DES加密时使用加密、解密、加密的方式,解密时使用解密、加密、解密的方式,实现了对DES的兼容。及当key1=key2时,3DES的效果完全等同于DES。3DES加密示例如图10-4所示。

图10-4 3DES加密

在DES的基础上,国际数据加密算法IDEA(International Data Encryption Algorithm)发展起来,IDEA仍然是对称加密方法,IDEA的明文和密文都是64位,但密钥长度为128位,使得密码的破译更加不容易实现,因而具有更高的安全性。

IDEA与DES相似,也是先将明文化成一个个64位的数据块,然后将每个64位数据经过8轮编码和一次变换,得出64位密文,对于每一轮编码,每一个输出比特都与每一个输入比特有关。IDEA比DES加密性好、运算速度快、实现容易,得到广泛的应用。

10.2.3 数字签名技术

传统事务中存在大量人工签名情况,签名的目的是证明签名者的身份和所签信息的真实性,实际上也是提供一种证实信息。既然签名是一种信息,也就可以用数字技术的形式出现,这就是数字签名。

数字签名就是附加在报文中一起传送的一串经过加密的代码,对方通过解密代码来证实报文的真实性。数据签名必须满足以下要求:

①发送者对报文的签名,接收者能够核实;

②发送者(事后)也不能否认(抵赖)对报文的签名;

③接收者也不能伪造和修改发送者对报文的签名;

④网络中的其他用户不能冒充成为报文的发送者和接收者。

手写签名一般都能满足以上条件,因而得到了司法的支持,具有一定的法律效力,数字签名采用密码技术使其具有与手写签名同样的功效。

数字签名采用非对称密码技术,一般使用双重解密,传输的A、B双方进行数字签名的过程如下:

①签名:在数字签名过程中,A使用自己的私有密钥SKa对明文X进行加密,通过加密实现了签名。由于是使用A自己的私钥对明文X进行加密,A自己的私钥只有A自己知道,所以除了A以外,无人能产生出密文,所以被加密的报文就证实了一定是来自A的报文,也就是证实了签名。

②鉴别:若A要抵赖曾经发送过信息给B,B可以将经签名的密文交给第三方证实确实A发送了信息给B,所以起到了不可抵赖的作用。

以上第一个过程的完成就已经实现了签名和能够实现签名的鉴别,但是还不能实现对传输明文的保密。因为凡是知道发送者身份的人,都可以获得发送者的公钥。对于以上情况,A的公钥是公开的,只要某人截获到签名的报文Dsk(x),利用公钥就可解密密文成明文X。

为了既能实现数字签名,还能实现通信保密,数字签名在完成A利用自己的私有密钥SKa对报文进行加密(签名)后,还要接着对经过签名的报文Dsk利用B的公钥再进行加密,这次加密的目的是保证数据通信的保密性。

所以,传输的A、B双方进行数字签名的完整过程应该是,首先A利用自己的私有密钥SKa对报文X进行加密(签名),接着对经过签名的报文Dsk(x)利用B的公钥再进行加密,形成传输加密报文Epk(Dsk(x)),该报文传到对方后,B先利用的私有密钥进行解密,还原出签名报文Dsk(x),接着再用发送的公开密钥进行第二次解密,还原出明文x。通过这样的方式达到鉴别签名的真实性,同时也实现了数据通信的保密性。数字签名过程示例如图10-5所示。

图10-5 数字签名过程

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈