密码学对称加密算法
对称加密算法的概念

对称密码算法有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。
在大多数对称算法中,加密解密密钥是相同的。
这些算法也叫秘密密钥算法或单密钥算法,它要求发送者和接收者在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都能对消息进行加密解密。
只要通信需要保密,密钥就必须保密。
对称算法的加密和解密表示为:Ek(M)=CDk(C)=M对称算法可分为两类[8]。
一次只对明文中的单个位(有时对字节)运算的算法称为序列算法或序列密码。
另一类算法是对明文的一组位进行运算,这些位组称为分组,相应的算法称为分组算法或分组密码。
现代计算机密码算法的典型分组长度为64位――这个长度大到足以防止分析破译,但又小到足以方便作用。
这种算法具有如下的特性:Dk(Ek(M))=M常用的采用对称密码术的加密方案有5个组成部分(如图3所示):l)明文:原始信息。
2)加密算法:以密钥为参数,对明文进行多种置换和转换的规则和步骤,变换结果为密文。
3)密钥:加密与解密算法的参数,直接影响对明文进行变换的结果。
4)密文:对明文进行变换的结果。
5)解密算法:加密算法的逆变换,以密文为输入、密钥为参数,变换结果为明文。
对称密码术的优点在于效率高(加/解密速度能达到数十兆/秒或更多),算法简单,系统开销小,适合加密大量数据。
尽管对称密码术有一些很好的特性,但它也存在着明显的缺陷,包括:l)迸行安全通信前需要以安全方式进行密钥交换。
这一步骤,在某种情况下是可行的,但在某些情况下会非常困难,甚至无法实现。
2)规模复杂。
举例来说,A与B两人之间的密钥必须不同于A和C两人之间的密钥,否则给B的消息的安全性就会受到威胁。
在有1000个用户的团体中,A需要保持至少999个密钥(更确切的说是1000个,如果她需要留一个密钥给他自己加密数据)。
对于该团体中的其它用户,此种倩况同样存在。
这样,这个团体一共需要将近50万个不同的密钥!推而广之,n个用户的团体需要N2/2个不同的密钥。
密码学中的对称加密算法与非对称加密算法比较

密码学中的对称加密算法与非对称加密算法比较密码学中的对称加密算法和非对称加密算法是两种常见的加密方式。
它们各有优势和不足,下面我将从三个方面进行对比:基本原理、安全性、应用领域。
一、基本原理对比对称加密算法使用相同的密钥进行加密和解密。
常见的对称加密算法有DES、3DES、AES等。
对称加密算法中,明文被分成若干个固定长度的数据块,然后通过一系列的加密操作将明文转换为密文,加密和解密操作是互逆的,即密钥相同时,加密操作的逆操作就是解密操作。
非对称加密算法使用一对密钥,即公钥和私钥进行加密和解密。
常见的非对称加密算法有RSA、ECC等。
公钥可以公开给任何人使用,而私钥必须保密。
非对称加密算法中,通过公钥对明文进行加密,然后使用私钥对密文进行解密。
二、安全性对比对称加密算法的安全性主要依赖于密钥的保密性。
由于加密和解密使用相同的密钥,所以密钥的泄露可能导致所有的加密数据被破解。
因此,对称加密算法的密钥管理非常重要。
另外,由于对称加密算法的加密速度较快,因此很适合对大量数据进行加密。
非对称加密算法的安全性主要依赖于数学难题的复杂性,如大数分解问题、离散对数问题等。
通过使用不同的密钥进行加密和解密,非对称加密算法可以实现相对较高的安全性。
但是,由于非对称加密算法的计算复杂度较高,所以在对大量数据进行加密时,效率较低。
三、应用领域对比对称加密算法通常用于保证数据的机密性,如文件加密、网络通信加密等。
由于对称加密算法的加密速度快,因此在需要高效加密和解密的场景下很常用。
非对称加密算法除了保证数据的机密性,还可以实现数字签名、密钥交换等功能。
数字签名用于对数据的完整性和认证性进行保护,密钥交换用于在通信双方之间安全地传输对称加密算法的密钥。
非对称加密算法由于其安全性较高的特点,适用于需要保证数据安全性和身份验证的场景。
总的来说,对称加密算法和非对称加密算法各有优势,可以根据具体的需求选择合适的加密方式。
对称加密算法适用于加密大量数据,并需要高效加密和解密的场景;非对称加密算法适用于保证数据安全性和身份验证的场景,但在加密速度方面相对较低。
对称加密算法与非对称加密算法

对称加密算法与非对称加密算法对称加密算法,也称为秘密密钥算法,是使用同一个密钥进行加密和解密的一种加密算法。
对称加密算法的主要特点是加密和解密过程使用的密钥是相同的,即发送方和接收方使用相同的密钥对数据进行加密和解密。
常见的对称加密算法有DES、3DES、AES等。
非对称加密算法,也称为公钥密码算法,是使用不同的密钥进行加密和解密的一种加密算法。
非对称加密算法的主要特点是加密和解密过程使用的密钥是不同的,发送方和接收方使用不同的密钥对数据进行加密和解密。
常见的非对称加密算法有RSA、DSA等。
非对称加密算法的原理是使用一对密钥,分别称为公钥和私钥。
公钥可以公开向外界传播,私钥只有持有者自己知道。
发送方使用接收方的公钥进行加密,接收方使用自己的私钥进行解密。
这样,即使公钥被截获,也无法获取到私钥,保证了数据的安全性。
非对称加密算法的优点是密钥的传输和管理较为简单,发送方和接收方无需共享密钥。
然而,非对称加密算法的缺点是算法运算速度较慢,适合对少量数据进行加密和解密。
对称加密算法和非对称加密算法在实际应用中有不同的应用场景。
对称加密算法适用于需要高效加密和解密大量数据的场景,比如网络传输中的数据加密、文件加密等。
非对称加密算法适用于需要保证数据安全性的场景,比如数字签名、加密密钥的分发等。
综上所述,对称加密算法和非对称加密算法是现代密码学中常用的两种加密算法。
它们在加密和解密的原理、密钥的使用方式、应用场景等方面有所差异。
对称加密算法适用于高效加密大量数据的场景,非对称加密算法适用于保证数据安全性的场景。
在实际应用中,可以根据具体需求选择适合的加密算法。
数学与密码学加密算法的数学基础

数学与密码学加密算法的数学基础密码学加密算法是现代通信和信息安全领域至关重要的技术之一。
而实现这些加密算法的核心就是数学。
在本文中,我们将探讨数学与密码学加密算法之间的密切关系,以及这些加密算法背后的数学基础。
一、对称加密算法对称加密算法是最早也是最简单的加密算法之一。
它使用相同的密钥进行加密和解密操作。
这些算法的核心基于数学方法,例如位运算、模运算和异或运算等。
位运算是一种对二进制数据进行操作的数学运算,广泛应用于密码学中。
通过对数据进行按位和异或运算,可以实现高效、快速的加密和解密过程。
例如,常见的对称加密算法DES(Data Encryption Standard)使用了复杂的置换和替换运算,利用二进制编码的数据处理方式实现数据保护。
这些操作背后依赖了离散数学中的置换群和线性代数等数学理论。
二、非对称加密算法与对称加密算法不同,非对称加密算法使用一对密钥,即公钥和私钥。
公钥可以公开给其他人使用,而私钥则保密。
非对称加密算法的数学基础是基于数论中的一些难题,例如大素数分解问题和离散对数问题。
RSA算法是最著名的非对称加密算法之一。
该算法是基于数论中的欧拉函数和模取幂运算等数学概念。
通过选择合适的大素数,并进行一系列数学运算,可以生成非常强大的加密算法。
三、哈希函数哈希函数是一种重要的密码学工具,用于将任意长度的输入数据转换为固定长度的输出数据。
哈希函数具有不可逆性和唯一性的特性,也就是说,无法通过输出数据反推出输入数据,并且不同的输入数据会产生不同的输出。
经典的哈希函数,例如MD5和SHA(Secure Hash Algorithm),都是基于数学原理设计的。
这些函数利用了位运算、模运算和异或运算等数学方法,以及数论中的散列函数定理和模取幂运算等概念。
通过这些数学基础,哈希函数可以提供高度的数据安全性和完整性。
四、椭圆曲线密码学(ECC)椭圆曲线密码学是近年来发展起来的一种密码学分支,它利用了椭圆曲线上的数学性质来实现加密算法。
对称加密和公钥加密算法的基本原理

对称加密和公钥加密算法的基本原理对称加密和公钥加密算法是现代密码学中常用的两种加密方式。
它们都具有保护数据安全的重要作用,但在原理和应用方面有所不同。
一、对称加密算法的基本原理对称加密算法也称为私钥加密算法,其基本原理是使用相同的密钥进行加密和解密。
在对称加密中,发送方和接收方共享一个密钥,发送方使用该密钥对数据进行加密,接收方使用相同密钥对加密数据进行解密。
对称加密算法的加密过程如下:1. 发送方选择一个密钥,并将该密钥与明文数据一起进行加密操作。
2. 加密后的数据通过网络传输到接收方。
3. 接收方使用相同的密钥对收到的加密数据进行解密操作,还原出明文数据。
对称加密算法的核心是密钥的安全性。
由于发送方和接收方使用相同的密钥,因此如果密钥被泄露,攻击者就能够轻易地解密密文数据。
为了确保密钥的安全,对称加密算法通常要求在密钥的传输和存储过程中采取特定的安全措施。
常见的对称加密算法有DES(Data Encryption Standard)、AES (Advanced Encryption Standard)等。
它们在保证数据安全性的具有高效性和速度快的特点。
对称加密算法主要应用于保护大量数据传输的场景,如文件传输、数据库加密等。
二、公钥加密算法的基本原理公钥加密算法也称为非对称加密算法,与对称加密算法不同,它使用一对密钥进行加密和解密,这对密钥分别称为公钥和私钥。
公钥可以公开传输和分享,用于加密数据;私钥则保密并由接收方使用,用于解密数据。
公钥加密算法的加密过程如下:1. 接收方生成一对密钥:公钥和私钥。
私钥保密,而公钥可以发布给任何人。
2. 发送方使用接收方的公钥对数据进行加密操作。
3. 加密后的数据通过网络传输到接收方。
4. 接收方使用自己的私钥对收到的加密数据进行解密操作,还原出明文数据。
公钥加密算法的核心是数学上的难题,如大素数的因数分解、离散对数等。
这些问题在计算上是难以求解的,保证了数据的安全性。
密码学基础(一)常见密码算法分类

密码学基础(一)常见密码算法分类对称算法是指一种加密密钥和解密密钥相同的密码算法,也称为密钥算法或单密钥算法。
该算法又分为分组密码算法(Block cipher)和流密码算法(Stream cipher)。
•分组密码算法o又称块加密算法o加密步骤一:将明文拆分为 N 个固定长度的明文块o加密步骤二:用相同的秘钥和算法对每个明文块加密得到 N 个等长的密文块o加密步骤三:然后将 N 个密文块按照顺序组合起来得到密文•流密码算法o又称序列密码算法o加密:每次只加密一位或一字节明文o解密:每次只解密一位或一字节密文常见的分组密码算法包括 AES、SM1(国密)、SM4(国密)、DES、3DES、IDEA、RC2 等;常见的流密码算法包括 RC4 等。
•AES:目前安全强度较高、应用范围较广的对称加密算法•SM1:国密,采用硬件实现•SM4:国密,可使用软件实现•DES/3DES:已被淘汰或逐步淘汰的常用对称加密算法二、非对称密码算法(Asymmetric-key Algorithm)非对称算法是指一种加密密钥和解密密钥不同的密码算法,也称为公开密码算法或公钥算法。
该算法使用一个密钥进行加密,另一个密钥进行解密。
•加密秘钥可以公开,又称为公钥•解密秘钥必须保密,又称为私钥常见非对称算法包括 RSA、SM2(国密)、DH、DSA、ECDSA、ECC 等。
三、摘要算法(Digest Algorithm)算法是指将任意长度的输入消息数据转换成固定长度的输出数据的密码算法,也称为哈希函数、哈希函数、哈希函数、单向函数等。
算法生成的定长输出数据称为摘要值、哈希值或哈希值,摘要算法没有密钥。
算法通常用于判断数据的完整性,即对数据进行哈希处理,然后比较汇总值是否一致。
摘要算法主要分为三大类:MD(Message Digest,消息摘要算法)、SHA-1(Secure Hash Algorithm,安全散列算法)和MAC(Message Authentication Code,消息认证码算法);另国密标准 SM3 也属于摘要算法。
密码学知识

密码学知识
密码学是研究如何保护信息安全和实现安全通信的学科。
它主要关注以下几个方面的内容:
1. 对称加密:对称加密算法使用同一个密钥进行加密和解密。
常见的对称加密算法有DES、AES等。
对称加密算法的优点是加密和解密速度快,但需要确保密钥的安全性。
2. 非对称加密:非对称加密算法使用一对密钥,包括公钥和私钥。
公钥用于加密,私钥用于解密。
常见的非对称加密算法有RSA、ElGamal等。
非对称加密算法的优点是密钥的分发和管理相对较简单,但加解密速度较慢。
3. 散列函数:散列函数将任意大小的数据映射为固定长度的散列值。
常见的散列函数有MD5、SHA-1、SHA-256等。
散列函数的主要应用包括数据完整性检验和密码存储。
4. 数字签名:数字签名用于验证信息的真实性和完整性。
发送者使用私钥对信息进行签名,接收者使用发送者的公钥验证签名是否有效。
常见的数字签名算法有RSA、DSA等。
5. 随机数生成:密码学中需要大量的随机数,它们被用于生成密钥、初始化向量等。
随机数生成器的质量对密码系统的安全性至关重要。
6. 密码协议:密码协议用于安全地传输和交换密钥,保证通信的机密性和完整性。
常见的密码协议有SSL/TLS、SSH等。
密码学的目标是确保信息的机密性、完整性和可用性。
它在互联
网、电子商务、移动通信等领域起着重要的作用,保护用户的隐私和数据安全。
密码学基本概念

密码学基本概念
密码学是一门研究保护信息安全的学科,其基本目标是保证信息在传输过程中不被非法获取和篡改。
在密码学中,有一些基本概念需要了解。
1. 密码学基础
密码学基础包括加密、解密、密钥、明文和密文等概念。
加密是将明文转换为密文的过程,解密则是将密文还原为明文的过程。
密钥是用于加密和解密的秘密码,明文是未经过加密的原始信息,密文则是加密后的信息。
2. 对称加密算法
对称加密算法指的是加密和解密时使用同一个密钥的算法,如DES、AES等。
在对称加密算法中,密钥必须保密,否则会被攻击者轻易获取并进行破解。
3. 非对称加密算法
非对称加密算法指的是加密和解密时使用不同密钥的算法,如RSA、DSA等。
在非对称加密算法中,公钥用于加密,私钥用于解密。
公钥可以公开,私钥必须保密,否则会被攻击者轻易获取并进行破解。
4. 数字签名
数字签名是用于保证信息的完整性和真实性的技术。
数字签名使用非对称加密算法,签名者使用私钥对信息进行加密,接收者使用公钥进行验证。
如果验证通过,则说明信息未被篡改过。
5. Hash函数
Hash函数是一种将任意长度的消息压缩成固定长度摘要的函数,常用于数字签名和消息验证。
Hash函数具有不可逆性,即无法通过消息摘要还原出原始数据。
以上就是密码学的基本概念,掌握这些概念对于理解密码学的原理和应用非常重要。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对称加密算法一、网络安全1.网络安全(1) 网络的安全问题:有以下四个方面A. 端-端的安全问题,主要指用户(包括代理)之间的加密、鉴别和数据完整性维护。
B. 端系统的安全问题,主要涉及防火墙技术C. 安全服务质量问题,主要指如何保护合法用户的带宽,防止用户非法占用带宽。
D. 安全的网络基础设施,主要涉及路由器、DNS服务器,以及网络控制信息和管理信息的安全问题。
(2)网络的安全服务:有以下五个方面A.身份认证:这是考虑到在网络的应用环境下,验证身份的双方一般是通过网络而非直接交互,所以传统的验证手段如根据对方的指纹等方法就无法应用。
同时大量的黑客随时都可能尝试向网络渗透,截获合法用户的口令并冒充顶替,以合法身份入网。
所以应该提供一种安全可靠的身份认证的手段。
B.授权控制:授权控制是控制不同用户对信息资源的访问权限。
授权控制是以身份认证为基础的。
通过给不同用户的提供严格的不同层次和不同程度的权限,同时结合可靠的身份认机制,可以从很大程度上减少非法入侵事件发生的机会。
C.数据加密:数据加密技术顾名思义。
在互联网上应用加密技术来保证信息交换的可靠性已经的到了人们普遍的认可,已经进入了应用阶段。
目前的加密技术主要有两大类:一类是基于对称密钥加密的算法,另一类是基于非对称密钥加密的算法。
它们都已经达到了一个很高的强度,同时加密算法在理论上也已经相当的成熟,形成了一门独立的学科。
而从应用方式上,一般分成软件加密和硬件加密。
前者成本低而且实用灵活,更换也方便;而后者加密效率高,本身安全性高。
在应用中,可以根据不同的需要来进行选择。
D.数据完整性:数据完整性是指通过网上传输的数据应该防止被修改、删除、插入、替换或重发,以保证合法用户接收和使用该数据的真实性。
E.防止否认:在网上传输数据时,网络应提供两种防止否认的机制:一是防止发送方否认自己发送过的信息,而谎称对方收到的信息是别人冒名或篡改过的;二是防止接收方否认自己收到过信息。
利用非对称加密技术可以很好的实现第一个否认机制。
二、加密技术(1) 加密技术的产生和发展A. 古代,目前记录的比较早的是一个在公元前2世纪,由一个希腊人提出来的,26个字母放在一个5×5的表格里,这样所有的源文都可以行列号来表示。
B. 近代,在第二次世界大战里,密码机(如紫罗兰)得到了比较广泛的已经技术,同时破译密码的技术也得到了发展,出现了一次性密码技术。
同时密码技术也促进了计算机的发展。
C. 现代,由于计算机和计算机网络的出现,对密码技术提出了更高的需求。
密码学的论文和会议不断的增加,以密码技术为主的商业公司开始出现,密码算法层出不穷,并开始走向国际标准化的道路,出现了DES,AES等国家(美国的)标准。
同时各个国家和政府对密码技术也越来越重视,都加密技术的出口和进口都作了相当严格的规定。
(2) 加密技术的分类A.对称加密技术a. 描述对称算法(symmetric algorithm),有时又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。
而在大多数的对称算法中,加密密钥和解密密钥是相同的。
所以也称这种加密算法为秘密密钥算法或单密钥算法。
它要求发送方和接收方在安全通信之前,商定一个密钥。
对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信性至关重要。
b.特点分析对称加密的优点在于算法实现后的效率高、速度快。
对称加密的缺点在于密钥的管理过于复杂。
如果任何一对发送方和接收方都有他们各自商议的密钥的话,那么很明显,假设有N个用户进行对称加密通信,如果按照上述方法,则他们要产生N(N-1)把密钥,每一个用户要记住或保留N-1把密钥,当N很大时,记住是不可能的,而保留起来又会引起密钥泄漏可能性的增加。
常用的对称加密算法有DES,DEA等。
B.非对称加密技术a.描述非对称加密(dissymmetrical encryption),有时又叫公开密钥算法(public key algorithm)。
这种加密算法是这样设计的:用作加密的密钥不同于用作解密的密钥,而且解密密钥不能根据加密密钥计算出来(至少在合理假定的长时间内)。
之所以又叫做公开密钥算法是由于加密密钥可以公开,即陌生人可以得到它并用来加密信息,但只有用相应的解密密钥才能解密信息。
在这种加密算法中,加密密钥被叫做公开密钥(public key),而解密密钥被叫做私有密钥(private key)。
b.特点分析非对称加密的缺点在于算法实现后的效率低、速度慢。
非对称加密的优点在于用户不必记忆大量的提前商定好的密钥,因为发送方和接收方事先根本不必商定密钥,发放方只要可以得到可靠的接收方的公开密钥就可以给他发送信息了,而且即使双方根本互不相识。
但为了保证可靠性,非对称加密算法需要一种与之相配合使用的公开密钥管理机制,这种公开密钥管理机制还要解决其他一些公开密钥所带来的问题。
常用的非对称加密算法有RSA等。
(3) 关于密码技术密码技术包括加密技术和密码分析技术,也即加密和解密技术两个方面。
在一个新的加密算法的研发需要有相应的数学理论证明,证明这个算法的安全性有多高,同时还要从密码分析的角度对这个算法进行安全证明,说明这个算法对于所知的分析方法来说是有防范作用的。
三、对称加密算法分析对称加密算法的分类对称加密算法可以分成两类:一类为序列算法(stream algorithm):一次只对明文中单个位(有时为字节)加密或解密运算。
另一类为分组算法(block algorithm):一次明文的一组固定长度的字节加密或解密运算。
现代计算机密码算法一般采用的都是分组算法,而且一般分组的长度为64位,之所以如此是由于这个长度大到足以防止分析破译,但又小到足以方便使用。
1.DES加密算法(Data Encryption Standard )(1)算法简介1973 年 5 月 15 日,美国国家标准局 (NBS) 在“联邦注册”上发布了一条通知,征求密码算法,用于在传输和存储期间保护数据。
IBM 提交了一个候选算法,它是 IBM 内部开发的,名为LUCIFER。
在美国国家安全局(NSA) 的“指导”下完成了算法评估之后,在1977 年 7 月 15 日,NBS 采纳了 LUCIFER 算法的修正版作为新的数据加密标准。
原先规定使用10年,但由于新的加密标准还没有完成,所以DES算法及其的变形算法一直广泛的应用于信息加密方面。
(2) 算法描述 (包括加密和解密)Feistel结构(画图说明)。
DES 的工作方式:可怕的细节DES 将消息分成 64 位(即 16 个十六进制数)一组进行加密。
DES 使用“密钥”进行加密,从符号的角度来看,“密钥”的长度是 16 个十六进制数(或 64 位)。
但是,由于某些原因(可能是因为 NSA 给 NBS 的“指引”),DES 算法中每逢第 8 位就被忽略。
这造成密钥的实际大小变成 56 位。
编码系统对“强行”或“野蛮”攻击的抵抗力与其密钥空间或者系统可能有多少密钥有直接关系。
使用的位数越多转换出的密钥也越多。
密钥越多,就意味着强行攻击中计算密钥空间中可能的密钥范围所需的时间就越长。
从总长度中切除 8 位就会在很大程度上限制了密钥空间,这样系统就更容易受到破坏。
DES 是块加密算法。
这表示它处理特定大小的纯文本块(通常是64 位),然后返回相同大小的密码块。
这样,64 位(每位不是 0 就是 1)有 264 种可能排列,DES 将生成其中的一种排列。
每个 64 位的块都被分成 L、R 左右两块,每块 32 位。
DES 算法使用以下步骤:1.创建16 个子密钥,每个长度是48 位。
根据指定的顺序或“表”置换64 位的密钥。
如果表中的第一项是"27",这表示原始密钥K 中的第27 位将变成置换后的密钥K+ 的第一位。
如果表的第二项是36,则这表示原始密钥中的第36 位将变成置换后密钥的第二位,以此类推。
这是一个线性替换方法,它创建了一种线性排列。
置换后的密钥中只出现了原始密钥中的 56 位。
2. 接着,将这个密钥分成左右两半,C0 和 D0,每一半 28 位。
定义了 C0 和 D0 之后,创建 16 个 Cn 和 Dn 块,其中 1<=n<=16。
每一对 Cn 和 Dn 块都通过使用标识“左移位”的表分别从前一对 Cn-1 和 Dn-1 形成,n = 1, 2, ..., 16,而“左移位”表说明了要对哪一位进行操作。
在所有情况下,单一左移位表示这些位轮流向左移动一个位置。
在一次左移位之后,28 个位置中的这些位分别是以前的第 2、3……28 位。
通过将另一个置换表应用于每一个 CnDn 连接对,从而形成密钥 Kn,1<=n<=16。
每一对有56 位,而置换表只使用其中的 48 位,因为每逢第 8 位都将被忽略。
3. 编码每个 64 位的数据块。
64 位的消息数据M 有一个初始置换IP。
这将根据置换表重新排列这些位,置换表中的项按这些位的初始顺序描述了它们新的排列。
我们以前见过这种线性表结构。
使用函数f 来生成一个32 位的块,函数f 对两个块进行操作,一个是32 位的数据块,一个是 48 位的密钥 Kn,连续迭代 16 次,其中 1<=n<=16。
用 + 表示 XOR 加法(逐位相加,模除 2)。
然后,n 从 1 到 16,计算Ln = Rn-1 Rn = Ln-1 + f(Rn-1,Kn)。
即在每次迭代中,我们用前一结果的右边 32 位,并使它们成为当前步骤中的左边 32 位。
对于当前步骤中的右边 32 位,我们用算法 f XOR 前一步骤中的左边 32 位。
要计算 f,首先将每一块 Rn-1 从 32 位扩展到 48 位。
可以使用选择表来重复 Rn-1 中的一些位来完成这一操作。
这个选择表的使用就成了函数f。
因此f(Rn-1) 的输入块是32 位,输出块是 48 位。
f 的输出是 48 位,写成 8 块,每块 6 位,这是通过根据已知表按顺序选择输入中的位来实现的。
我们已经使用选择表将 Rn-1 从 32 位扩展成 48 位,并将结果 XOR 密钥 Kn。
现在有48 位,或者是 8 组,每组 6 位。
每组中的 6 位现在将经历一次变换,该变换是算法的核心部分:在叫做“S 盒”的表中,我们将这些位当作地址使用。
每组 6 位在不同的 S 盒中表示不同的地址。
该地址中是一个 4 位数字,它将替换原来的 6 位。
最终结果是 8 组,每组 6 位变换成 8 组,每组 4 位(S 盒的 4 位输出),总共 32 位。
f 计算的最后阶段是对S 盒输出执行置换P,以得到f 的最终值。