分组密码

密码学总结(一)

二次信任 提交于 2020-03-07 23:56:59
一、密码常识 1.1 信息安全面临的问题以及解决方案 记住: 不要过于依赖密码保证信息安全,因为任何密码都会有被破解的一天; 不要使用低强度的密码; 不要使用保密的密码算法; 信息安全是一个系统的问题,密码只是信息安全的一部分; 1.2 加密三要素 明文和密文:加密处理的数据。 秘钥(key):用于生成明文的一串数字。 算法(algorithm):用于解决复杂问题的步骤。从明文生成密文的步骤,也就是加密的步骤,称为“加密算法",而解密的步骤则称为“解密算法"。 1.3 凯撒密码 恺撒密码(Caesar cipher)是一种相传尤利乌斯·恺撒曾使用过的密码。恺撒于公元前100年左右诞生于古罗马,是一位著名的军事统帅。 恺撤密码是通过将明文中所使用的字母表按照一定的字数“平移”来进行加密的。 为了讲解方便,我们用小写字母(a,b,c,…)来表示明文,用大写字母(A,B,C,…)来表示密文。 现在我们将字母表平移3个字母,于是,明文中的a在加密后就变成了与其相隔3个字母的D,以此类推。b变成E,c变成F,d变成G…v变成Y,w变成Z,而x则会回到字母表的开头而变成A,相应地,y变成B,z变成C。通过下图我们可以很容易地理解“平移"的具体工作方式。 比如英文 hello ,加密后的数据变为 KHOOR 。 恺撒密码的解密过程是使用与加密时相同的密钥进行反向的平移操作。比如上面例子

分组密码

隐身守侯 提交于 2020-03-05 18:28:08
分组密码 概述 所谓分组密码,简单地说就是对明文进行分组,每组的长度都相同,然后对每组明文使用密钥进行加密得密文,解密即对每组明文使用密钥进行解密得到明文。 通常情况是明文、密文等长。(好处是处理速度快,节约了存储,避免了浪费带宽.) 定义 分组密码包含5个部分{M,C,K,E,D}, M=F(2,n)明文空间 K=F(2,k)密钥空间 C=F(2,n)密文空间 E加密变换; D解密变换 明文m1m2……mn通过密钥k加密算法得到密文c1c2……cn 分组密码是一种映射: E:M*K->C D:C*K->M 注:分组密码实际上是{0,1,2,……,2^n-1}到其自身的一一映射,密钥k不同映射不同。 基本要求 分组长度足够长(防止明文穷举攻击) 密钥长度足够长(防止密钥穷举攻击) 加解密算法要足够复杂(能抗击各种已知攻击) 分组密码的原则 为有效抵抗对密码体质的通知分析,香农提出了两个原则:扩展原则和混乱原则。 扩散:指每1bit明文的变化尽可能多地影响密文序列的bit,以隐蔽明文的统计特性,防止对密钥进行逐段攻击破译; 混乱:指加密变换过程中明文、密钥以及密文之间的关系尽可能的复杂,以防止破译者采用统计分析方法进行攻击。 分组密码的结构(SP网络) 需求分析: 一个分组密码既要难于分析(复杂),又要易于实现(简单),迭代密码可克服这一对矛盾。其加密变换一般采取如下结构:

密码学:第四讲

老子叫甜甜 提交于 2020-03-02 18:55:28
第三章:分组密码 首先回顾一下密码学基本概念,一个密码系统由5个部分组成,包括明文空间、密文空间、密钥空间、加密算法、解密算法。 具体地说,什么是分组密码?(了解并掌握) 为了保证信息安全,分组密码采用了两个重要的结构。一、SPN置换结构;二、Feistel网络结构 3.1 SPN结构,可以简称SP结构 3.1.1 由两个部分组成,S代表Substitution的首字母,表示一个黑盒 当我们输入一组数据,输出另外一组数据 这个输入输出的情况可能是等进等出,多进少出,这两个例子我们在后面的例子中会介绍到,我们称它为S盒 为了保证数据安全,S盒用到了两种技术, 混淆和扩散 混淆的功能保证S盒能抵御统计攻击,这是密码攻击的基本安全保证,它们所起的作用是 3.1.2 第二个结构是P置换(Permutation) 用于交换各数据位的位置。 SP结构结合在一起,下面这个是一个两轮的示意图 3.2 第二个Feistel结构 DES特点(熟练掌握) 来源: CSDN 作者: Homyee King 链接: https://blog.csdn.net/weixin_43840538/article/details/104614153

《现代密码学》习题

被刻印的时光 ゝ 提交于 2020-02-29 04:54:56
第一章 1.1949年,Shannon发表题为《保密系统的通信理论》的文章,为密码系统建立了理论基础,从此密码学成为一门科学。 2.一个加密系统至少由明文、密文、加密算法、解密算法和密钥组成,其安全性是用密钥决定的。 3.计算和估计出破译密码系统的计算量下限,利用已有的最好方法破译他的所需要的代价超出了破译者的破译能力(时间、空间、资金等资源),那么该密码系统的安全性是 计算安全。 4.根据密码分析者所掌握的分析资料的不同,密码分析一般可以分为4类:唯密文攻击、已知明文攻击、选择明文攻击,选择密文攻击,其中破译难度最大的是选择密文攻击。 5.1976年,Diffie和Helman在《密码学的新方向》中提出立了公开密钥密码的思想,开创了现代密码学的新领域。 6.密码学发展过程中,两个质的飞跃分别指1949年香农发表的保密系统的通信理论和公钥密码思想。 7.密码学是研究信息寄信息系统安全的科学,密码学又分为密码编码学和密码分析学。 8.一个保密系统一般是明文、密文、密钥、加密算法和解密算法五部分组成的。 9.密码体制是指实现加密和解密功能的密码方案,从使用密钥策略上,可分为对称和非对称。 10.对称密码体制又称为秘密密钥体制,包括分组密密码和序列密码。 第二章 1.字母频率分析法对单表带换密码算法最有效。 2.希尔密码算法抵御频率分析攻击能力最强,而对已知明文攻击最弱。 3

《图解密码技术》阅读笔记

妖精的绣舞 提交于 2019-12-06 08:52:10
第一章 密码与信息安全常识 不要使用保密的密码算法: 密码算法的秘密早晚会公诸于世 试图通过密码算法本身的保密性来保证安全称之为隐蔽式安全,很蠢。 使用低强度的密码比不进行任何加密更危险 任何密码总有一天会被破解 第二章 凯撒密码: 位移实现加密 知道位移量即可进行逆向移动解密(也可以暴力穷举破解) 替换密码: 将明文中所有字母变替换为另一套字母表 密钥空间:所有密钥的集合 频率分析:明文中字母出现的频率与密文中字母出现的频率是一致的 破译技巧: 高频字母和低频字母都能成为线索 字母连成单词 Enigma 国防军密码本的“每日密码”通信密码 通信密码是3位,写两次共6位 每日密码加密后的通信密码和通信密码加密后的密文被拼接发送给对端 弱点: 将通信密码连续输入两次 通信密码是人为选定的 必须派发国防军密码本 第三章 XOR(异或) 两个相同的数进行异或运算的结果一定为0 一次性密码本 即使可以遍历整个密码空间,遍历解密得到明文,也无法确认哪个是正确的明文 一次性密码是无条件安全的,在理论上是无法破译的 不实用: 密钥在两边配送 密钥保存 密钥重用 密钥同步 密钥生成 DES DES是一种将64位明文加密成64位密文的对称密码算法 密钥长度是56bit(64bit,每隔7位有1bit错误检验bit) 轮: 将输入的数据(64bit)等分为左右两部分

密码 | 对称加密 - AES

北城余情 提交于 2019-12-04 20:00:49
AES 算法简介 高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准,用来替换原先的 DES. 背景介绍:1997年1月2号,美国国家标准技术研究所(National Institute of Standards and Technology: NIST)宣布希望征集高级加密标准(Advanced Encryption Standard: AES),用以取代DES。AES得到了全世界很多密码工作者的响应,先后有很多人提交了自己设计的算法。最终有5个候选算法进入最后一轮: Rijndael , Serpent , Twofish , RC6 和MARS。最终经过安全性分析、软硬件性能评估等严格的步骤,Rijndael算法获胜。 AES 算法的区块长度固定为128位(16 字节),密钥长度则可为128位,192位,256位。加密模式可采用 ECB,CBC,CTR,OFB,CFB 等模式进行加密。 其中 ECB 与 CBC 模式是对数据原文做加密处理,原文长度的必须为 16 或 16 的倍数方可加密成功,不足16倍数的部分则需进行 Padding 处理(Padding 方式为 PKCS5 Padding 或 PKCS7 Padding)。 CTR,OFB,CFB

分组密码体制【密码学笔记】

与世无争的帅哥 提交于 2019-12-04 01:58:36
分组密码的基本概念 ​ 分组密码在加密过程中不是将明文按字符逐位加密,而是首先要将待加密的明文进行分组,每组的长度相同,然后对每组明文分别加密得到密文。加密和解密过程采用相同的密钥,称为对称密码体制。 ​ 例如将明文分为 \(m\) 块: \(P_{0},P_{1},P_2,…,P_{m-1}\) ,每个块在密钥作用下执行相同的变换,生成 \(m\) 个密文块: \(C_0,C_1,C_2,…,C_{m-1}\) ,每块的大小可以是任意长度,但通常是每块的大小大于等于64位(块大小为1比特位时,分组密码就变为序列密码)。 如下图所示是通信双方最常用的分组密码基本通信模型。 ​ 一个分组密码系统(Block Cipher System,简称BCS)可以用一个五元组来表示: \(BCS=\{P,C,K,E,D\}\) 。其中,P(plaintext)、C(ciphertext)、K(key)、E(encryption)、D(decode)分别代表明文空间、密文空间、密钥空间、加密算法、解密算法。 设 \(X=\{x_0,x_1,…,x_{n-2},x_{n-1}\}\) 为一组长度为 \(n\) 的明文块,在密钥 \(K=\{k_0,k_1,…,k_{t-1}\}\) 的加密作用下得到密文块 \(Y=\{y_0,y_1,…,y_{m-2},y_{m-1}\}\) ,其中 \(x_i,y

分组密码CBC加密缺陷

心已入冬 提交于 2019-12-03 13:52:53
title: 分组密码CBC加密缺陷 date: 2017-05-15 10:04:47 tags: ["密码学"] --- 关于密码学的种种漏洞以及利用网上也有不少,但是比较零散,有关介绍比较局限,导致一些东西晦涩难懂不易理解,这里是一个有关于CBC分组加密的一个讲解 CBC加密模式 首先上图 这里文字描述不如看图直观,还是大致描述一下,CBC模式的加密方式是通过一个初始向量(IV)先和明文分组第一组异或后使用秘钥K加密,作为第一组密文,同时又与后一分组的明文异或后进行加密产生下一组密文,依次重复。 其解密和加密是对称的,密文先解密,再异或。 关于这个初始向量IV的完整性要比其保密性更为重要。在CBC模式下,最好是每发一个消息,都改变IV,比如将其值加一。 这里说说有关于CBC的错误传播,有利于之后字节翻转攻击的理解 其特点如下: 明文有一组中有错,会使以后的密文组都受影响,但经解密后的恢复结果,除原有误的一组外,其后各组明文都正确地恢复。 解密时,有一组秘钥错误,该错误会影响下一分组相同位置的解密 若在传送过程中,某组密文组出错时,则该组恢复的明文和下一组恢复数据出错。再后面的组将不会受中错误比特的影响。 字节翻转攻击 概述 有关于这里的攻击,没有下面那种方式刺激,但是效果也还是可以 这里最大的效果就是: 在不知道Key(秘钥)的情况下篡改明文 。 通过上面的错误传播

维吉尼亚密码

匿名 (未验证) 提交于 2019-12-03 00:40:02
代码已上传到 GitHub ―― Vigenere.java 人们在恺撒移位密码的基础上扩展出多表密码,称为维吉尼亚密码。该方法最早记录在吉奥万・巴蒂斯塔・贝拉索( Giovan Battista Bellaso)于1553年所著的书《吉奥万・巴蒂斯塔・贝拉索先生的密码》 第一行代表明文字母,第一列代表密钥字母,它的明码表后有26个密码表,每个表相对前一个发生一次移位 如果只用其中某一个进行加密,那么只是简单的恺撒移位密码。但用方阵中不同的行加密不同的字母,它就是一种强大的密码了 加密者可用第7行来加密第一个字母,再用第25行来加密第二个字母,然后根据第8行来加密第三个字母等 维吉尼亚密码引入了“密钥”的概念,即根据密钥来决定用哪一行的密表来进行替换,以此来对抗字频统计 确定密钥 首先,和消息接收方需要在密钥上达成一致,加密解密都是同一个密钥,比如选用 BIG 排列明文 把明文转换为大写字母排列出来,对应着重复排列密钥,直到明文结尾 明文:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER 密钥:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB 1 2 加密明文 然后,每一组的两个字母就成了我们的坐标。在维吉尼亚坐标图中分别横向纵向找出它们。横坐标和纵坐标的交点就是加密后的字母

信息安全-加密:SM4.0

北战南征 提交于 2019-11-29 18:15:51
ylbtech-信息安全-加密:SM4.0 SM4.0(原名SMS4.0)是中华人民共和国政府采用的一种 分组密码 标准,由 国家密码管理局 于2012年3月21日发布。相关标准为“GM/T 0002-2012《SM4分组密码算法》(原SMS4分组密码算法)”。 1. 返回顶部 2. 返回顶部 3. 返回顶部 4. 返回顶部 5. 返回顶部 1、 https://baike.baidu.com/item/SM4.0 2、 6. 返回顶部 作者: ylbtech 出处: http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 来源: https://www.cnblogs.com/storebook/p/9869451.html