版权归原作者所有,如有侵权,请联系我们

[科普中国]-密码函数

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏
定义

密码是仅与符号或位的序列有关的编码。在加密码时,以具有一定含义的字或组作为编码单位,以一个密钥(Key),又称键作为参数,作一个函数变换,得到加密文件。

在大多数加密机制中,密钥(键)是不公开的,因为持有这种密钥就可以访问相应的数据或文本。在公用键加密系统中,加密键是公开的,但解密键不公开。所谓解密,是指根据密约规则,把密码文件变成常规文件的过程。

控制加密过程和解密过程的参数分别称为加密密钥和解密密钥。加密过程中使用的变换叫加密算法(加密函数),解密过程中使用的变换称为解密算法(解密函数),加密函数和解密函数统称为密码函数。2密码函数也称密码算法,是为保密和(或)鉴别目的,将一组符号对应到只有授权者才可解读的符号集合上的对应函数。1

分类加密函数

加密过程中使用的变换叫加密算法(加密函数),

加密函数是DES的核心部分,它的作用在于第次加密迭代中,用子密钥加密,其框架图如右图所示。

在第次加密迭代中,选择运算对32位的进行选择和重新排列,通过将1,4,5,8,9,12,1 3,1 6,l 7,20,21,24,25,28,29和32位重复,而将32位扩展到48位。此48位数据和48位的子密钥模二相加,将其和分成8个6bit组,分别送到8个不同的盒(=1,2,…,8)。每个盒子有6位输入,产生4位输出,选择的结果为32位数据,再经过一个置换将其各位打乱重排,其输出便是的输出

盒子是DES的核心部分,它的实质是进行非线性压缩。在DES中其余部分都是线性变换,只有盒是非线性变换。

的选择置换规则是,输入6位二进制数的第一和第六两位所组成的二逆制数值代表选中矩阵中的行号,其余4位所组成的二进制数值代表选中的矩阵的列号。而处在被选中的行和列交未处的数字的二进制码,便为该盒子的输出。 3

解密函数

解密过程中使用的变换称为解密算法(解密函数),在对称密码体制中,解密函数就是加密函数的逆过程,当DES进行解密时,其过程如下:

把64位密文当作明文输入,而且第一次迭代用子密钥进行,第二次迭代用子密钥进行,……,第16次迭代用进行,最后的输出便是明文。3

一般特征

最有用的密码就是不扩充正文。以位为一块的块密码把个不同普通文值映射成个不同密码文值。实际上这是这些个值的置换,每个置换随键值而变化。可能有的置换数为。这一般要比键空间为大。所以许多可能有的置换并不会出现。在各种实际应用中,置换在一种很强加密方法中应作随机选择使用。否则如果它有明显规律性,则就有可能被对手识破。

就一给定键k值而言,若x的范围涉及所有可能值,则范围也涉及所有值。另一方面,若保持常数而范围涉及其所有键空间,则生成的值可以看成是随机性选择。一些值可能不出现,一些值可能出现不止一次。

无数据扩充的情况下,等式含义是,另一等式成立。换言之,加密和解密可以互换。若有数据扩充的情况下,则使得正文容易压缩,上述的第二等式就可能不成立。应当注意,在加密和解密做交换时,虽然他们拥有全部加密解密形式上的特性,但还是会失去一些有用的特性。

如右图A所示的函数类型,称为双射函数,该函数把一值集变换成等量的另一值集。每个值正好变换成相应的另一值,两者对应于函数及其反函数,这就是一对一映射。

另一类密码就是自乘(积)函数,即函数具有的特性,在一种密码函数场合下,其自乘为。这表明,加密和解密相间。用一个设备生成密码时,“自反“密码函数就有其优点。因为这种设备用于发送或接收端就无需修改。自乘函数作密码用的例子很多。两自乘的积未必是自乘函数,如右图B所示。设一个积的两个分量是已知的,若加密为,并且为自乘函数,则该积的反函数很容易求得。该解密函数表达式为。一系列自乘变换可以产生安全密码,并且很容易求反。

可以有两种形式用于掩蔽信息。一种是把信息隐藏起来,使其本身的确切存在含糊不清。这种技术称为隐蔽学。还有一种是信息明显存在,但其变换后难于理解。这种技术称为密码学。。密码技术的基本形式也有两种。一种是替换加密,即用其他字母取代一字母。另一种是倒换加密,即把现有字母的次序颠倒。4