DES轮函数题目

题目:在DES加密中,设第一轮迭代的F函数输入为0x20200402,该轮的轮密钥为0x123456789abc,假设8个S盒都使用S1,求加密后F的输出。

题解

1.选择扩展运算(将输入由32比特扩展为48比特)

(1)先将原文转为二进制

   

原输入

转二进制

2

0

0

1

0

0

0

0

0

0

2

0

0

1

0

0

0

0

0

0

0

0

0

0

0

4

0

1

0

0

0

0

0

0

0

2

0

0

1

0

(2)得到的4*8的表,原表最后一列放到最前并循环下移一位,原表最前一列放到最后并循环上移一位,得到一个6*8的新表

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

2.将轮密钥转化为类似的格式

将轮密钥0x123456789abc从左至右转换为二进制,按照从左至右,从上到下的顺序填充6*8的表格

0

0

0

1

0

0

1

0

0

0

1

1

0

1

0

0

0

1

0

1

0

1

1

0

0

1

1

1

1

0

0

0

1

0

0

1

1

0

1

0

1

0

1

1

1

1

0

0

3.扩展后的48比特表格内容与轮密钥的表格内容一一对应异或

结果:

0

0

0

0

0

0

1

0

0

0

1

1

0

1

0

1

0

1

0

1

0

1

1

0

0

1

1

1

1

0

0

0

0

0

0

1

1

0

1

0

1

0

1

1

1

0

0

0

4.利用盒压缩,从48比特到32比特

本来1到8行应该分别一一对应从s1到s8盒取出一个数,这里降低难度,都用s1盒转换

(1)介绍s1盒利用方法:

比如上述结果的第二行是100011,第一个数在前第六个数在后组成一个二进制数:11,转为十进制就是3,这就是行值,将剩下的中间的数也当作二进制(0001)转为10进制数是1,这是列值,在s1表中我们找到对应值:12,转换成功

(2)转换结果

第1行转换值

14

第2行转换值

12

第3行转换值

12

第4行转换值

12

第5行转换值

7

第6行转换值

0

第7行转换值

6

第8行转换值

3

(3)将转换结果化为二进制,一个4*8的表格

1

1

1

0

1

1

0

0

1

1

0

0

1

1

0

0

0

1

1

1

0

0

0

0

0

1

1

0

0

0

1

1

(4)附完整s盒:

5.置换运算(P盒置换)

(1)用法介绍

假设我们要置换表y(4*8格式),p盒上的数字16代表着表y原来在16位置的数据被放到了一行一列。

P盒置换表:

(2)置换结果

0

0

1

0

0

0

0

0

1

1

0

1

1

1

1

1

1

0

0

1

1

1

1

1

1

1

0

1

0

0

0

0

(3)转为10进制

2,0,D,F,9,F,D, 0

6.相关知识,可看可不看

密码学(Cryptology)作为一门古老而又充满活力的学科,自古以来就在人类的信息交流中扮演着至关重要的角色。从古代斯巴达人的“塞塔式密码”到现代复杂的公钥密码学,密码学的发展历史充满了智慧的火花和技术的飞跃。本文将详细介绍密码学的基础知识、发展历程、分类及应用,并探讨其在当代社会中的重要性和未来趋势。

密码学是研究如何通过技术手段实现信息的保密性、完整性和认证性的科学。它包含两个主要分支:密码编码学(Cryptography)和密码分析学(Cryptanalysis)。密码编码学旨在设计安全有效的加密算法和协议,以隐藏信息的真实内容;而密码分析学则致力于破解这些算法和协议,分析密文以获取原始信息。

密码算法通常由密钥产生函数、加密函数和解密函数构成。密钥是加密和解密过程中用于控制变换的关键参数,它可以是公开的(如公钥密码学中的公钥),也可以是保密的(如对称密码学中的密钥)。加密函数将明文(原始信息)转化为密文(加密后的信息),而解密函数则是加密函数的逆过程,将密文还原为明文。

密码学的发展可以大致分为三个阶段:古典密码学阶段、现代密码学阶段和公钥密码学阶段。

此外,密码学还可以根据应用场景的不同分为密码协议、杂凑函数等。密码协议用于在通信双方之间安全地交换信息,如SSL/TLS协议;杂凑函数则用于将任意长度的输入映射为固定长度的输出,常用于文件校验、数字签名等领域。

  1. 古典密码学阶段:公元前400多年,斯巴达人发明的“塞塔式密码”是已知最早的密码技术。古典密码学主要依靠简单的代换和置换方法来加密信息,如凯撒密码、维吉尼亚密码等。这些密码方法虽然简单,但在当时的技术条件下足以保护信息的安全。

  2. 现代密码学阶段:1949年,克劳德·香农(Claude Shannon)发表《保密系统的通信理论》,标志着密码学成为了一门科学。这一时期,密码学的研究开始采用数学方法和计算机技术,提出了更复杂的加密算法,如DES(数据加密标准)等。

  3. 公钥密码学阶段:1976年,迪菲(W. Diffie)和赫尔曼(M. Hellman)在《密码学的新方向》一文中首次提出了公钥密码学的概念。公钥密码学实现了加密密钥和解密密钥的分离,解决了对称密码体制中通信双方必须共享密钥的问题。这一创举对密码学的发展产生了深远影响,为后续的网络安全和电子商务等领域的发展奠定了基础。

    密码学可以根据不同的标准进行分类,但最基本的分类是按照密钥的特点分为对称密码学和非对称密码学。

  4. 对称密码学:在对称密码学中,加密和解密使用相同的密钥。这种密码体制的优点是算法简单、加解密速度快,但缺点是密钥管理和分发复杂。常见的对称密码算法有DES、AES等。

  5. 非对称密码学:非对称密码学又称公钥密码学,它使用一对密钥:公钥和私钥。公钥可以公开给任何人,而私钥则必须保密。公钥用于加密信息,私钥用于解密信息。这种密码体制的优点是密钥管理和分发简单,但缺点是加解密速度相对较慢。常见的非对称密码算法有RSA、ECC(椭圆曲线密码学)等。

随着信息技术的飞速发展,密码学在各个领域的应用越来越广泛。以下是密码学的主要应用领域:

  1. 网络通信安全:密码学在网络通信中扮演着重要角色。通过加密算法,信息在传输前会被转化为难以理解的代码,只有拥有相应密钥的接收方才能解密并获取原始信息。这样,即使信息在传输过程中被截获,攻击者也无法读取其中的内容,从而保护了通信双方的隐私和安全。

  2. 数据存储安全:在数据存储领域,密码学同样发挥着重要作用。许多软件和服务都会要求用户设置密码来保护他们的账户和数据。在这些情况下,密码学确保了只有知道正确密码的人才能够访问数据。即使数据被非法获取,如果没有正确的密码,数据依然无法被访问或修改。

  3. 电子交易安全:在电子商务和在线支付系统中,密码学确保了交易的安全性和用户的财产安全。交易双方可以通过加密技术保护交易信息,防止被第三方窃取或篡改。数字签名技术也用于验证交易方的身份和交易的完整性。

  4. 数字版权保护:密码学还被用于保护数字内容的版权。通过数字版权管理系统和加密技术,可以追踪和保护数字作品的分发和使用情况,防止未经授权的复制和传播。

  5. 量子密码学:随着量子计算技术的发展,传统密码学,量子计算机由于其强大的计算能力,有可能在短时间内破解目前广泛使用的加密算法,如RSA和ECC。因此,量子密码学(Quantum Cryptography)应运而生,成为应对量子计算威胁的重要研究方向。

    量子密码学利用量子力学的基本原理来确保信息的安全传输,其中最著名的应用是量子密钥分发(Quantum Key Distribution, QKD)。QKD利用量子态的不可克隆性(No-Cloning Theorem)和不确定性原理(Uncertainty Principle)来保证通信双方能够安全地共享密钥,而无需担心被第三方窃听或篡改。

    在QKD过程中,发送方通过量子信道(如光纤)向接收方发送一系列单光子,每个光子都携带着随机选择的量子态(如偏振态)。由于量子态的不可克隆性,任何试图拦截这些光子的第三方都会不可避免地改变它们的量子态,从而被发送方和接收方检测到。通过一系列经典通信步骤(如基矢比对和错误纠正),通信双方最终能够协商出一个共同的安全密钥,用于后续的加密通信。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值