密码学- 块加密法

合集下载

几种加密、算法的概念

几种加密、算法的概念

几种加密、算法的概念信息安全技术的几个概念1、IDEA(对称加密算法)IDEA国际数据加密算法这种算法是在DES算法的基础上发展出来的,类似于三重DES,和DES一样IDEA也是属于对称密钥算法。

发展IDEA也是因为感到DES具有密钥太短等缺点,已经过时。

IDEA的密钥为128位,这么长的密钥在今后若干年内应该是安全的。

类似于DES,IDEA算法也是一种数据块加密算法,它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。

与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。

2、DES(对称加密算法)数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的。

DES 使用一个56 位的密钥以及附加的8 位奇偶校验位,产生最大64 位的分组大小。

这是一个迭代的分组密码,使用称为Feistel 的技术,其中将加密的文本块分成两半。

使用子密钥对其中一半应用循环功能,然后将输出与另一半进行“异或”运算;接着交换这两半,这一过程会继续下去,但最后一个循环不交换。

DES 使用16 个循环,使用异或,置换,代换,移位操作四种基本运算。

3、AES(对称加密算法)密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。

2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。

4、MD5(非对称加密算法)对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。

密码学习题集参考答案

密码学习题集参考答案

1、请分别举例说明什么是保密性原则?完整性原则?认证原则?不可抵赖原则?访问控制原则?可用性原则?为了实现这六个安全原则,主要采用哪些密码技术?答:(1)保密性原则是指不经过授权,不能访问或利用信息,只有发送者和接受者能访问信息内容,信息不能被截获;(2)完整性原则是指信息不经过授权,不能被修改的特性,即信息在传输的过程中不能被偶然或蓄意的修改、删除或者插入,即不能被篡改;(3)认证原则是指信息需要明确的身份证明,通过认证过程保证正确的消息来源,和信息接收方建立信任关系,缺乏认证机制可能会导致伪造;(4)不可抵赖原则是指信息的发送者不可否认已发出的信息,(5)访问控制原则是指定和控制用户能够访问哪些信息,能够有什么样的操作,通常包括角色管理和规则管理;(6)可用性原则是指是信息可被授权实体访问并按需求使用的特性,不因中断等攻击停止服务或降低服务标准。

可以通过信息加密、信息隐形、夹带信息等方式来实现信息的保密性,可以通过特定的安全协议、信息摘要、密码校验和等方法实现信息的完整性,通过口令认证、认证令牌、数字证书、消息认证码、公钥算法等方式实现信息的认证,通过数字签名的方法实现信息的完整性和不可抵赖性,通过用户角色认证、防火墙和IDS等方式实现访问控制和可用性原则。

2、一般病毒、蠕虫、特洛伊木马三者之间最主要的差别是什么?答:病毒可以将自己的代码嵌入到其他合法的程序中,导致计算机系统或网络的破坏;蠕虫一般不篡改程序,只是不断的复制自己,最终导致计算机资源或网络大量的消耗从而无法使用,蠕虫不进行任何的破坏性操作,只是耗尽系统,使其停滞;特洛伊木马也像病毒一样具有隐蔽性,但一般不像病毒和蠕虫那样不断复制自己,其主要的目的是为入侵者获得某些用户的保密信息。

简单的说,病毒破坏你的信息,木马窃取你的信息,而蠕虫则攻击系统和网络服务能力。

3、什么是密码技术?替换加密法与置换加密法有什么区别?请分别举例说明替换加密法与置换加密法。

密码学运算符号介绍

密码学运算符号介绍

密码学运算符号介绍密码学是研究如何保护信息安全的科学,它涉及到各种不同的运算符号。

以下是密码学中常见的几种运算符号介绍:1.加密算法符号加密算法是用于将明文转换为密文的算法,常见的加密算法有对称加密算法和非对称加密算法。

在对称加密算法中,加密和解密使用相同的密钥,而在非对称加密算法中,加密和解密使用不同的密钥。

以下是两种常见的加密算法符号:(1)DES(Data Encryption Standard)算法符号DES是一种对称加密算法,它将明文分成64位块,然后使用56位密钥进行加密。

在DES算法中,将每个64位块分为两个32位块,然后对每个32位块进行16轮相同的运算。

最后一轮运算将两个32位块合并成一个64位块,形成密文。

(2)RSA(Rivest-Shamir-Adleman)算法符号RSA是一种非对称加密算法,它由三个部分组成:密钥生成、加密和解密。

在密钥生成中,选择两个不同的大素数,计算它们的乘积,并选取一个适当的模数。

公钥包括模数和其中一个素数的指数,私钥包括模数和另一个素数的指数。

加密使用公钥对明文进行加密,解密使用私钥对密文进行解密。

2.运算符号密码学中使用的运算符号包括加法、减法、乘法、除法、模运算等。

模运算是一种取模运算,通常用于计算余数。

在密码学中,模运算经常被用于限制密钥的取值范围。

例如,在RSA算法中,模运算被用于计算指数和幂。

3.逻辑运算符号逻辑运算包括与、或、非等操作。

在密码学中,逻辑运算被用于实现各种逻辑功能,例如比较操作、位操作等。

例如,在实现数据完整性校验时,通常会使用逻辑运算符来组合多个数据块。

4.数学符号密码学中使用的数学符号包括大括号、括号、根号等。

这些符号在数学表达式中用于表示集合、函数和公式等。

例如,在公钥密码学中使用的指数函数通常用符号表示。

5.特殊符号除了上述符号外,密码学中还使用了一些特殊符号,例如哈希函数符号、对称密钥协商协议符号等。

哈希函数将任意长度的数据映射为固定长度的哈希值,常用于数字签名和数据完整性校验。

分组加密的四种模式(ECB、CBC、CFB、OFB)

分组加密的四种模式(ECB、CBC、CFB、OFB)

分组加密的四种模式(ECB、CBC、CFB、OFB)加密⼀般分为对称加密(Symmetric Key Encryption)和⾮对称加密(Asymmetric Key Encryption)。

对称加密⼜分为分组加密和序列密码。

分组密码,也叫块加密(block cyphers),⼀次加密明⽂中的⼀个块。

是将明⽂按⼀定的位长分组,明⽂组经过加密运算得到密⽂组,密⽂组经过解密运算(加密运算的逆运算),还原成明⽂组。

序列密码,也叫流加密(stream cyphers),⼀次加密明⽂中的⼀个位。

是指利⽤少量的密钥(制乱元素)通过某种复杂的运算(密码算法)产⽣⼤量的伪随机位流,⽤于对明⽂位流的加密。

解密是指⽤同样的密钥和密码算法及与加密相同的伪随机位流,⽤以还原明⽂位流。

分组加密算法中,有ECB,CBC,CFB,OFB这⼏种算法模式。

1)ECB(Electronic Code Book)/电码本模式DES ECB(电⼦密本⽅式)其实⾮常简单,就是将数据按照8个字节⼀段进⾏DES加密或解密得到⼀段8个字节的密⽂或者明⽂,最后⼀段不⾜8个字节,按照需求补⾜8个字节进⾏计算,之后按照顺序将计算所得的数据连在⼀起即可,各段数据之间互不影响。

特点:1.简单,有利于并⾏计算,误差不会被传送;2.不能隐藏明⽂的模式;repetitions in message may show in cipher text/在密⽂中出现明⽂消息的重复3.可能对明⽂进⾏主动攻击;加密消息块相互独⽴成为被攻击的弱点/weakness due to encrypted message blocks being independent2)CBC(Cipher Block Chaining)/密⽂分组链接⽅式DES CBC(密⽂分组链接⽅式)有点⿇烦,它的实现机制使加密的各段数据之间有了联系。

其实现的机理如下:加密步骤如下:1)⾸先将数据按照8个字节⼀组进⾏分组得到D1D2......Dn(若数据不是8的整数倍,⽤指定的PADDING数据补位)2)第⼀组数据D1与初始化向量I异或后的结果进⾏DES加密得到第⼀组密⽂C1(初始化向量I为全零)3)第⼆组数据D2与第⼀组的加密结果C1异或以后的结果进⾏DES加密,得到第⼆组密⽂C24)之后的数据以此类推,得到Cn5)按顺序连为即为加密结果。

密码学基础(一)常见密码算法分类

密码学基础(一)常见密码算法分类

密码学基础(一)常见密码算法分类对称算法是指一种加密密钥和解密密钥相同的密码算法,也称为密钥算法或单密钥算法。

该算法又分为分组密码算法(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. 密码学概述基本认知1. 科学密码学是科学、有严格的规范,设计密码学算法需要具备深厚的数学知识2. 公开密码学算法的实现原理是公开的,经过长时间的考验3. 相对安全计算机处理速度越来越快,某个密码学算法的数学基础可能受到挑战,现阶段安全密码算法,未来可能就不安全了4. 攻击⽅法多样⼤部分密码学算法需要秘钥,最简单的破解⽅法就是获取秘钥(暴⼒破解、彩虹表等)5. 应⽤标准未来正确使⽤密码学算法,并依据标椎使⽤(⽐如:PKCS),可以不了解密码学算法原理,但必须掌握应⽤标准6. 不⽐具备很强数学知识很多密码学算法并⾮计算机专家创建,⽽是数学家.(不妨碍我们使⽤密码学算法)7. 解决特定问题每种算法都有应⽤场景,解决特定的问题⽬标1. 机密性信息在存储,运输、处理过程中的安全保密,要求信息不会泄露给未经授权的⼈.对称加密算法和公开秘钥算法都能保护机密性2. 完整性接受⽅接受到的信息就是发送⽅发送的原始信息,如数据被篡改,接受⽅有策略数据被篡改,那传输的数据就具备完整性.在密码学中,主要使⽤消息验证码(MAC)算法保证完整性3. 不可抵赖性在密码学中,使⽤数字签名技术避免抵赖4. ⾝份验证通信双⽅(发送⽅、接收⽅)必须确保对端就是通信对象.在密码学中,⼀般使⽤数字签名确认⾝份常⽤密码库1. MIRACL由Shamus软件公司开发,包括了:RSA、AES、DSA、ECC和Diffie-Hellman秘钥交换算法2. CryptoAPI微软在Windows中的⼀个安全加密应⽤框架密码应⽤程序接⼝,密码服务提供者模块3. OpenSSL开放源代码的软件库包,三个只要的功能部分:SSL协议库、应⽤程序以及密码算法库2. 密码学算法分类类型哈希算法(Hash)1. 国内:SM32. 国际:MD5、SHA-1、SHA-2、SHA-33. 说明:SM3的256位保密强度⾼于MD5对称加密算法1. 国内:SM1、SM4、ZUC2. 国际:DES、3DES、AES3. 说明:SM1的128位保密强度和性能与AES相当,SM4的128位已升级为国际标准公开秘钥算法1. 国内:SM22. 国际:RSA、ECC3. 说明:SM2的256位基于ECC算法,安全性⽐RSA1024有明显优势随机数类型1. 真正的随机数⽣成器硬件⽣成效率⾼、随机性、不可预测性、不可重现性需要物理设备获取2. 伪随机数⽣成器软件⽣成效率⾼、随机性通过算法获取3. 密码学伪随机数⽣成器软件⽣成效率⾼、随机性、不可预测性⽤于密码学⼯作原理1. ⽣成器内部维护⼀个状态(internal state),其数值来源于外部,成为熵:动态时间、温度、声⾳变化等2. 伪随机数内部状态来源模拟的数值,称为种⼦(seed)可⽣成密码学随机数的算法1. 块密码算法CTR模式:对称加密算法2. 摘要函数:单向性3. 流密码算法:对称加密算法⽤途1. 密钥对称加密算法、公开密钥算法、MAC算法都会⽤到密钥,密钥本质上是⼀个随机数2. 初始化向量(IV)块密码算法中很多迭代模式会使⽤(IV)3. nonce块密码算法中的CTR模式、AEAD加密模式也会⽤到nonce4. salt基于⼝令的加密算法会⽤到,通过salt⽣成⼀个密钥Hash函数加密基元1. 基于密码学Hash算法产⽣的其他密码算法:MAC消息验证码、伪随机数⽣成器、基于⼝令的加密算法、数字签名等等Hash特性1. 摘要/散列/指纹=hash(消息)2. 相同的消息获得相同摘要值、速度快、单向性(不可逆)、原始消息变化摘要值也会变化、不同摘要值不同Hash算法⽤途1. ⽂件⽐较2. ⾝份校验Hash算法分类1. MD5算法:MD5、输出值长度:128⽐特、输⼊值最⼤长度:⽆限制、说明:实践中已经产⽣碰撞,理论上不具备弱抗碰撞性2. SHA-1算法:SHA-1、输出值长度:160⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:实践中已经产⽣碰撞3. SHA-2算法:SHA-256、输出值长度:256⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA-512、输出值长度:512⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤算法:SHA-224、输出值长度:224⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA-384、输出值长度:384⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤4. SHA-3算法:SHA3-256、输出值长度:256⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-512、输出值长度:512⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-224、输出值长度:224⽐特、输⼊值最⼤长度:2的64次⽅减⼀⽐特、说明:安全使⽤算法:SHA3-384、输出值长度:384⽐特、输⼊值最⼤长度:2的128次⽅减⼀⽐特、说明:安全使⽤对称加密算法原理1. 密⽂=E(明⽂、算法、秘钥)2. 明⽂=D(密⽂、算法、秘钥)3.分类1. 块密码算法:DES、3DES、AES2. 流密码算法:RC4模式1. ECB(Electronic Codebook)、特点:运算快速,⽀持并⾏处理,需要填充、说明:不推荐使⽤2. CBC(Cipher Block Chaining)、特点:⽀持并⾏处理,需要填充、说明:推荐使⽤3. CFB(Cipher Feedback)、特点:⽀持并⾏处理,不需要填充、说明:不推荐使⽤4. OFB(Output Feedback)、特点:迭代运算使⽤流密码模式,不需要填充、说明:不推荐使⽤5. CTR(Counter)、特点:迭代运算使⽤流密码模式,⽀持并⾏处理,不需要填充、说明:推荐使⽤6. XTS(XEX-based tweaked-codebook)、特点:不需要填充、说明:⽤于本地硬盘存储解决⽅案中标准1. 填充标准:明⽂长度必须是分组长度的倍数,如不是倍数,则必须有填充机制2. PKCS#7填充:可处理的分组长度是1到255个字节3. AES算法使⽤标准,⽐如:AES-128-CBC-PKCS#7,其中秘钥长度128,分组模式CBC,填充标准PKCS#7,AES算法默认分组128bit消息验证码Hash算法能够完成密码学⽬标之⼀的完整性校验,但却不能避免消息被篡改,为避免消息被篡改,需要⽤到消息验证码.消息验证码⾮常重要,⼀般结合加密算法⼀起使⽤消息验证码的模型:MAC值 = mac(消息、密钥)MAC⼀般和原始消息⼀起传输,原始消息可以选择加密,也可以选择不加密,通信双⽅会以相同的⽅式⽣成MAC值,然后进⾏⽐较MAC算法种类:CBC-MAC算法和HMAC算法,http中使⽤最多的为HMAC算法.1. CBC-MAC算法:CBC-MAC算法从块密码算法的CBC分组模式演变⽽来,简单的说就是最后⼀个密钥分组的值就是MAC值2. HMAC算法:使⽤Hash算法作为加密基元,结合Hash算法有多种变种(HMAC-SHA-1、HMAC-SHA256、HMAC-SHA512)对称算法和MAC算法结合加密算法不能提供完整性,加密的同时必须引⼊MAC算法避免消息被篡改结合对称加密算法和MAC算法提供机密性额完整性的模式叫Authenticated Encryption(AE)加密模式,有三种:1. E&M模式:消息分别进⾏加密运算和MAC运算,然后将两个运算结果结合起来发送2. MtE模式:先对消息进⾏MAC计算,然后将消息和MAC值组合,再进⾏加密,最终加密值发送出去(http使⽤)3. EtM模式:先对消息进⾏加密得到密⽂,然后对密⽂再计算MAC值,最终将密⽂和MAC值组合在⼀起发送保证数据加密和完整性的三种模式:1. AEAD模式:在底层组合了加密算法和MAC算法,同事保证数据加密和完整性.2. CCM模式:使⽤CBC-MAC算法保证完整性,使⽤AES算法CTR模式保证加密3. GCM模式:GHASH进⾏MAC运算,AES算法CTR模式进⾏加密运算,拥有⼗分不错的效率和性能公开密钥算法特点:1. 功能不⼀样:对称算法主要⽤于加密和解密,⽽公开秘钥算法可以⽤于加密解密、秘钥协商、数字签名2. 运算速度很慢:相⽐对称加密算法来说,公开秘钥算法尤其是RSA算法运算⾮常慢3. 秘钥是⼀对:对称加密算法中,密钥是⼀串数字,加密者和解密者使⽤同样的密钥.公开密钥算法是⼀对,分别为公钥和私钥标准:1. RSA算法主要使⽤PKCS#I定义了两种机制处理填充问题,从⽽保证同样的明⽂、同样的密钥经过RSA加密,每次的密⽂都是不⼀样的2. 两种填充机制分别是RSAES-PKCSI-VI_5和RSAES-OAEP,⽬前推荐使⽤的填充标准是RSAES-OAEP,OpenSSL命令⾏默认使⽤的标准是RSAES-PKCSI-VI_5秘钥(安全性)是什么?1. 对称加密算法、MAC算法使⽤的密钥就是⼀串数字2. 公开密钥算法中的密钥四⼀对,由多个部分组成,但是本质上也可以认为由多个数字组成作⽤1. 名称:对称加密算法秘钥、作⽤:加密解密、说明:秘钥不能泄露2. 名称:⾮对称加密算法秘钥、作⽤:加密解密、说明:公钥可以公开,秘钥不能泄露3. 名称:MAC算法加密、作⽤:消息验证、说明:秘钥不能泄露4. 名称:数字签名算法秘钥、作⽤:⾝份验证、说明:公钥可以公开,秘钥不能泄露5. 名称:会话秘钥、作⽤:加密解密、说明:密钥不能泄密,该密钥⼀般配合对称加密算法进⾏加密解密6. 名称:基于⼝令的密钥、作⽤:进⾏权限校验,加密解密等、说明:⼝令不能泄密⽣命周期1. ⽣成(伪随机数⽣成器⼝令加密[PBE]算法、伪随机数⽣成器)2. 存储(静态秘钥[长期秘钥]、动态秘钥[会话秘钥])3. 解密4. 传输(硬编码在代码中⼝头、邮件)(秘钥协商算法[不⽤存储])秘钥协商算法密钥协商算法就是为解决密钥分配、存储、传输等问题,其也是公开秘钥算法的⼀种秘钥协商算法种类1. RSA秘钥协商算法:⾸先使⽤客户端⽣成⼀个会话秘钥,然后使⽤公钥加密发哥服务器,服务器解密会话秘钥.接下来服务端和客户端使⽤对称加密算法和会话秘钥加解密数据.2. DH秘钥协商算法:DH算法在进⾏密钥协商的时候,通信双⽅的任何⼀⽅⽆法独⾃计算出会话密钥,通信双⽅各⾃保留⼀部分关键信息,再将另外⼀部分信息告诉对⽅,双⽅有了全部信息告诉对⽅,双⽅有了全部信息才能共同计算出相同的会话密钥.ECC1. 为了保证DH的密钥对不被破解,提升安全性的主要⼿段就是增加密钥对的长度,但是长度越长,性能越低.为了解决性能问题,就有了椭圆曲线密码学(Elliptic Curv e Cryptography),简称ECC.2. ECC是新⼀代公开秘钥算法,主要优点就是安全性,极短的密钥能够提供很⼤的安全性,同时性能也很⾼.⽐如224⽐特的ECC密钥和2048⽐特的RSA密钥可以达到同样的安全⽔平,由于ECC密钥具有很短的长度,运算速度⾮常快.3. 在具体应⽤的时候,ECC可以结合其他公开密钥算法形成更快、更安全的公开密钥算法,⽐如结合DH密钥协商算法组成ECDH密钥协商算法,结合数学签名DSA算法组成ECDSA数字签名算法.4. ECC本质上就是⼀个数学公式,任何⼈基于公式都可以设计出椭圆曲线.[尽量选择性能更⾼、安全系数更⾼的命名曲线]数字签名1. 公开密钥算法的另外⼀种⽤途就是数字签名技术2. 解决⽅案:RSA签名算法DSA签名算法3. 数字签名⽤途防篡改:数据不会被修改,MAC算法也有这个特点防抵赖:消息签署者不能抵赖防伪造:发送的消息不能够伪造,MAC算法也有这个特点4. 数字签名流程:⽣成流程1. 发送者对消息计算摘要值2. 发送者⽤私钥对摘要值进⾏签名得到签名值3. 发送者将原始消息和签名值⼀同发给接受者4.验证流程1. 接收者接收到消息后,拆分出消息和消息签名值A2. 接收者使⽤公钥对消息进⾏运算得到摘要值B3. 接收者对摘要值B和签名值A进⾏⽐较,如果相同表⽰签名验证成功,否则就会验证失败4.3. 密码学算法应⽤场景算法安全预测摩尔定律应⽤场景Hash算法(信息摘要算法)1. 算法:MD5、SHA-1、SHA-2、SHA-32. 性能:机密性、完整性3. 应⽤场景:存储账号和⼝令(hash算法加salt)⽣成信息摘要,校验数据完整对称加密算法1. 算法:DES、3DES、AES、RC42. 性能:机密性3. 应⽤场景:对效率有要求的实时数据加密通信(使⽤VPN或者代理进⾏加密通信时)⼤批量数据加密时HTTP加密通讯时公开秘钥算法1. 算法:RSA、DSA、ECC2. 性能:机密性3. 应⽤场景:秘钥加密数字签名单向加密双向加密消息验证码(MAC)1. 算法:CBC-MAC、HMAC2. 性能:完整性3. 应⽤场景:对机密性要求不⾼,只保障完整性和不被篡改时数字签名算法1. 算法:RSA数字签名算法、DSA数字签名算法、ECDSA数字签名算法2. 性能:⾝份验证、不可抵赖性3. 应⽤场景:防篡改防抵赖防伪造4. 密码学算法安全性和性能秘钥长度与算法安全安全的关键要素是秘钥的长度,理论上秘钥越长就越安全,但是秘钥越长性能就下降很多密码学算法性能性能和安全是密码学算法重要指标,在选择时尽量选择安全性⾼的算法,在此基础上在选择性能⾼的算法5. 总结机密性对称算法公开秘钥算法完整性Hash函数算法MAC:基于Hash函数算法、基于对称算法(CBC)数字签名算法⾝份验证HMAC数字签名算法不可抵赖性数字签名算法。

加密算法常识及密码学基本知识

加密算法常识及密码学基本知识

标题:加密算法的一些常识admin等级:管理员文章:94积分:493门派:无门无派注册:2002年5月19日楼主-------------------------------------------------------------------------------- 加密算法的一些常识加密算法很容易理解啦,就是把明文变成人家看不懂的东西,然后送给自己想要的送到的地方,接收方用配套的解密算法又把密文解开成明文,这样就不怕在路世上如果密文给人家截获而泄密。

加密算法有俩大类,第一种是不基于KEY的,举个简单的例子,我要加密"fordesign"这么一串字符,就把每个字符都变成它的后一个字符,那么就是"gpseftjhm"了,这样的东西人家当然看不明白,接收方用相反的方法就可以得到原文。

当然这只是个例子,现在应该没人用这么搞笑的加密算法了吧。

不基于KEY的加密算法好象一直用到了计算机出现。

我记得古中国军事机密都是用这种方式加密的。

打战的时候好象军队那些电报员也要带着密码本,也应该是用这种方式加密的。

这种算法的安全性以保持算法的保密为前提。

这种加密算法的缺点太明显了,就是一旦你的加密算法给人家知道,就肯定挂。

日本中途岛惨败好象就是密码给老米破了。

设计一种算法是很麻烦的,一旦给人破了就没用了,这也忑浪费。

我们现在使用的加密算法一般是基于key的,也就是说在加密过程中需要一个key,用这个key来对明文进行加密。

这样的算法即使一次被破,下次改个key,还可以继续用。

key是一个什么东西呢?随便你,可以是一个随机产生的数字,或者一个单词,啥都行,只要你用的算法认为你选来做key的那玩意合法就行。

这样的算法最重要的是:其安全性取决于key,一般来说取决于key的长度。

也就是说应该保证人家在知道这个算法而不知道key的情况下,破解也相当困难。

其实现在常用的基于KEY的加密算法在网络上都可以找到,很多革命同志(都是老外)都在想办法破解基于key的加密算法又包括俩类:对称加密和不对称加密。

网络信息安全-密码学基本概念

网络信息安全-密码学基本概念

密码学基本概念一.学科分类密码术(Cryptology)(1)密码学(Cryptography)研究如何构建强大、有效的加密/解密方法体系的学科(2)密码分析学(Cryptanalysis)研究加密/解密方法体系所存在的弱点,找出破译密码方法的学科二. 基本加密通信模型Alice Bob & Eve 的加密通信:Alice和Bob 要进行通信,而Eve将会截获他们的消息,所以他们使用加密的方法通信1. 基本概念明文(Plaintext)是一组Alice和Bob都能够理解其含义的消息或者数据密文(Cipher text )是一组变换后的数据或消息,它使得非法用户不能理解其中的信息密钥(Key)能控制变化结果的参数信息加密(Encryption)使用一套变换方法,使其输出的密文依赖于输入的明文和加密密钥(eKey)解密(Decryption)使用一套变换方法,使其输出的明文依赖于输入的密文和解密密钥(dKey)用符号表示加密:Cipher text = Encryption (Plaintext, eKey)解密:Plaintext = Decryption (Cipher text, dKey)2. 体系划分以加密密钥和解密密钥的关系来划分为体系:1。

如果加密密钥(eKey)和解密密钥(dKey)相同,或者实质上相同,这样的加密体系称为单钥或对称密钥体系2。

如果加密密钥(eKey)和解密密钥(dKey)不相同,或者很难从其中一个密钥推导出另一个密钥,这样的加密体系称为双钥或非对称密钥体系三. 实例1 对称密钥在经典加密方法中使用两种类型进行变换:(1)换位法(Permutation cipher / Transposition cipher):明文中的每个字母或符号没有改变,但它们在密文中的位置进行了重新排列。

经典换位加密法(2)替换法(Substitution cipher):将明文中每个字母、数字、符号按一定规则替换成另外一个符号。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– It is simple enough so that you can explore the operation of DES and some of its weaknesses. – It operates on 8-bit data blocks (in other words, single characters) using a 10-bit key (only 210 = 1024 possibilities) and two stages
Right 32 bits
1 2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
EBox
32 4 8 1 5 9 2 6 3 7 4 8 5 9 10 11 12 13
12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1

任何新的加密法必须安全,能防止被人破解。但随着加 密法变得越来越复杂,如何才能确信这些加密法能保护 我们那些有价值的数据呢?
–真正答案是我们永远无法确保一个加密法是安全的. –要想知道一个新的加密法是否安全,最好办法是让 安全社区的人去测试它.

如果要使一个加密法让用户可接受,那么它必须具有以 下特征: –首先,密钥必须足够大,使强力攻击法无效或至少 得不偿失.
Column 15
Input: 0 1 1 1 1 0
0 1 2 3 4 5 6 7 4 8 9 9 7 10 11 12 13 14 15 2 13 12 0 Row 0 0 15 1 8 14 6 11 3 1 3 13 4
7 15 2
8 14 12 0
1 10 6
2 0 14 7 11 10 4 13 1 5 8 12 6 9 3 13 8 10 1 3 15 4 2 11 6 7 12 0

PC-2从56位中选取48位,按照下列方式重排
– – – – 14 17 11 23 19 12 41 52 31 44 49 39 15 27 51 50 6 20 45 36 21 13 33 29 10 2 48 32
DES Stages

DES 的每个阶段使用的是不同的子密钥 和上一阶段的输出,但执行的操作相同. 这些操作定义在三种盒中:
64 bit key
PC-1
28 bit C0 Left Shift
28 bit D0 Left Shift
28 bit C1
28 bit D1 PC-2
K1
Left Shift
Left Shift
交换选择

PC-1从密钥中选取56位,按照下列方式重排
– – – – 57 10 63 14 49 2 55 6 41 59 47 61 33 51 39 53 24 4 37 56 25 43 31 45 1 26 47 34 17 35 23 37 5 8 55 53 9 1 58 27 19 11 15 7 62 29 21 13 3 16 30 46 28 7 40 42 50 3 54 5 42 60 46 28 34 52 38 20 26 44 30 12 18 36 22 4

CAP provides an implementation of DES
Run Avalanche tests
CAP also provides a simple version of DES

S-DES

S-DES (Simplified-DES) was developed by Dr. Edward Schaefer at Santa Clara University in 1996.
5 10 9 11 5 3 2 5 5 14 9
Output: 1 0 1 0
S2
P-Box

经过 S-Box 操作之后剩下 32位,按照下 面的P-Box进行置换操作:
SBox Outputs
1 2
3
4
5
6
7
8
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
11001100 11001100 11001100 11001100 01010101 01010101 01010101 01010101 01010101 01010101 01010101 01010101 10100001 00101110 10111101 01110001

Using CAP
第八讲
块加密法
内容纲要
块加密法模式 乘积加密法
数据加密标准(DES)
Cipher Structures ...
Classical Stream Block
Transposition
Substitution
RC4
Column
polyalphabetic
monoalphabetic
Nihilist
Vigenere
Hill
MultiLiteral
Keyword
Affine
Shift
Block Cipher

块加密法是最常见的加密类型
– 定义计算机的位块表示几个字母 – 一次加密整个块
Block of Bits
KEY
Algorithm
Block of Bits
Modes of Operation

块加密法的三种标准模式:
Row
2 11 15 12 9 7 3 10 5 0 1 7 5 11 3 14 10 0 6 13
Working with the S-Boxes

一个 S-Box 的6位输入包含了行与列的索引.
– 行索引由1,6位给出,列索引由2-5位给出. – S-Box 的输出需要查找行-列索引对应的数值,将该 十进制数表示成二进制输出
Note the duplication
S-Boxes

S-Boxes 真正体现了DES的强大:
– S-Boxes一共有8种 – 每个S盒接收一个6位的输入,输出一个4位的 输出. – 每个S-box 有16 列,4 行 ,它的每个元素是 一个4位的块,通常用十进制表示
0 1 2 3 4 5 Column 6 7 8 9 10 11 12 13 14 15 9 5 0 3 7 8 0 14 4 13 1 2 15 11 8 3 10 6 12 5 1 0 15 7 4 14 2 13 1 10 6 12 11 9 2 4 1 14 8 13 6 3 15 12 8 2 4 9
使用块加密法为流加密法生成一个随机位 流,密钥和块加密法的初始输入启动加密 过程
Mi
KEY
Ri
Ek
Ri+1
Ci
General Structure

1973年, Feistel 提出一种乘积加密法,它成 为今天所用的对称块加密法的体系结构基础
– 处理过程包括多个阶段的替换以及换位. – 主密钥分成一个子密钥集,每个阶段使用一个子 密钥. – 每个阶段中,数据块分成了左右两部分,进行交 换,其中一个部分与子密钥混合,用于该阶段. – 这种类型的加密法又称为替换—置换加密法.
Plaintext block
8 bits
1 2 3 4 5 6 7 8 2 6 3 1 4 8 5 7
10 bit key PC-1
C0
Left Shift 1 bit
IP

D0
Left Shift 1 bit
In spite of the simplifi cations, S-DES looks much like our basic DES.
– 扩充盒(expansion box ,E盒) – 替换盒( substitution box ,S盒) – 置换盒(the permutation box ,P盒).
Example Stage
Right 32 bits Key
Left 32 bits
E-Box 将64位的右边32位的输入扩充为48位;
PBox
16 7 20 21 29 12 28 17 1 5 2 15 23 26 18 31 10 8 24 14 3 9 6 25
32 27
19 13 30 22 11 4
Final Step


最后的操作是将初始右半边的32位作为左半 边,而初始左半边的32位与P盒的32位进行 XOR逻辑运算,并将结果作为右半边的32位。 该过程进行16轮,每轮使用不用的子密钥 将DES一个阶段的输入和输出做一个对比, 两个位串有约多于一半的位发生了变化。
数据加密标准

20世纪70年代中期,美国政府认为需要一个 功能强大的标准加密系统。
–由美国标准局提出要求,多家公司提交建议, 最后IBM的Lucifer加密系统入选。 –1977年, 根据美国国家安全局的建议进行修改 后,Lucifer 的方案成为数据加密标准(DES) –后来发展成为高级加密标准 (AES)
48 bits 48 bits
XOR
56 bits Key Box
48 bits
S Boxes
32 bits
P Box
32 bits
XOR
32 bits
32 bits
E-Box

The EBox expands its 32-bit input into 48bits by duplicating some of the input bits.
相关文档
最新文档