密码学
梦之痕bhl
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
九 随机数 - 不可预测性的源泉
为什么需要随机数?生成密钥用于对称密码和消息认证码生成公钥密码用于生成公钥密码和数字签名生成初始化向量 IV用于分组密码中的 CBC、CFB、OFB 模式生成 nonce用于防御重放攻击和分组密码中的 CTR 模式生成盐用于基于口令密码的 PBE 等用随机数的目的是为了提高密文的不可预测性,让攻击者无法一眼看穿。什么是随机数?给随机数下一个严密的定义很难。只能从性质...原创 2020-02-08 22:17:17 · 1657 阅读 · 0 评论 -
八 密钥 - 秘密的精华
为什么需要密钥?我们知道对称密码,公钥密码,消息认证码,数字签名,公钥证书,这些密码技术都需要一个密钥。密钥保护了信息的机密性。密钥最重要的是密钥空间的大下。密钥的长度决定了密钥空间的大小。密钥空间越大,暴力破解越困难。各种不同的密钥密钥仅仅是一个比特序列,但是它所具有的价值和明文等价。密钥的种类主要分为以下几种:对称密码的密钥和公钥密码的密钥在对称加密中,加密和解密都用同一个密钥,也...原创 2020-02-08 22:13:33 · 1185 阅读 · 0 评论 -
七 证书 - 为公钥加上数字签名
为什么需要公钥证书?数字签名可以识别篡改或者发送者身份是否被伪装,也就是验证消息的完整性,还可以对消息进行认证。还可以防止抵赖。看似一切完美,但是他的弱点也在他的优点上,数字签名需要用公钥来确认发送者的身份。我们需要从一个没有被伪装的发送者那里得到没有被篡改的公钥才行,为了验证得到的公钥是否合法,必须使用公钥证书。证书是将公钥当做一条消息,由一个可信的第三方对其签名后所得到的公钥。公钥证书...原创 2020-02-08 22:09:11 · 607 阅读 · 0 评论 -
六 数字签名 - 消息到底是谁写的
从上一篇文章里面我们知道,消息认证码可以识别篡改或者发送者身份是否被伪装,也就是验证消息的完整性,还可以对消息进行认证。但是消息认证码的缺陷就在于它的共享密钥上面。由于双方都有共享秘钥,第三方无法确认是哪一方发出,导致无法防止抵赖。数字签名就是为了解决抵赖的问题的。解决的方法是使用公钥密码,用私钥加密相当于生成签名,用公钥解密相当于验证签名。公钥密码与数字签名如下图对照公钥密码和数字签名的...原创 2020-02-08 22:05:07 · 356 阅读 · 0 评论 -
五 消息认证码 - 消息被正确传送了吗
什么是消息认证码消息认证码是密码学家工具箱中6个重要的工具之一。回忆一下,这6个重要的工具分别是:对称密码、公钥密码、单向散列函数、消息认证码、数字签名和伪随机数生成器。消息认证码(Message Authentication Code)是一种确认完整性并进行认证的计算,取三个单词的首字母,简称MAC。根据任意长度的消息输出固定长度的数据,这一点和单向散列函数很类似。但是单向散列函数中计算...原创 2020-02-08 22:01:18 · 1391 阅读 · 0 评论 -
四 单向散列函数 - 获取消息的“指纹”
什么是单向散列函数单向散列函数(one-way hash function)有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。散列值的长度和消息的长度无关。无论是1比特,还是100MB,甚至100GB,单向散列函数都会计算出固定长度的散列值。以SHA-256单向散...原创 2020-02-08 21:57:32 · 532 阅读 · 0 评论 -
什么是AEAD加密
Authenticated Encryption with Associated Data (AEAD) 是一种同时具备保密性,完整性和可认证性的加密形式。AEAD 产生的原因很简单,单纯的对称加密算法,其解密步骤是无法确认密钥是否正确的。也就是说,加密后的数据可以用任何密钥执行解密运算,得到一组疑似原始数据,而不知道密钥是否是正确的,也不知道解密出来的原始数据是否正确。因此,需要在单纯的...转载 2020-01-19 17:56:10 · 10596 阅读 · 1 评论 -
AES加密算法详解
简介为比利时密码学家 Joan Daemen 和 Vincent Rijmen 所设计,又称 Rijndael 加密算法常用填充算法:PKCS7常用分组工作模式:GCMAES的三种密钥长度AES的分组长度为128位(16字节)AES密钥长度(32位比特)分组长度(32位比特)加密轮数AES-1284410AES-1926412AE...原创 2020-01-18 18:28:37 · 758 阅读 · 0 评论 -
分组密码模式的填充
分组加密在密码学中,分组加密(Block cipher),又称分块加密或块密码,是一种对称密钥算法。 它将明文分成多个等长的模块(block),使用确定的算法和对称密钥对每组分别加密解密。常见的分组加密算法有: DES、3DES、AES、IDEA。常见分组密码算法分组长度和秘钥长度如下表:密码算法分组长度秘钥长度DES64 bit/8 byte64(56+8) b...原创 2020-01-18 18:13:37 · 2269 阅读 · 0 评论 -
几种分组密码的模式对比
ECB模式加密解密CBC模式每次加密时都会随机产生一个不同的比特序列来作为初始化向量。加密解密CFB模式加密解密OFB模式加密解密CTR模式加密解密对比总结模式名称优点缺点备注ECB模式电子密码本模式简单快速支持并行计算(加密、解密)明文中的重复排列会反映在密文中通过删除、替换密文分组可以对明文进行操作对包含某些...原创 2020-01-17 14:00:10 · 1392 阅读 · 0 评论 -
三 公钥密码
RSARSA是使用最广泛的的公钥密码算法,它的名字是由它的三位开发者,即Ron Rivest、Adi Shamir和Leonard Adleman的姓氏的首字母组成的。RSA可以被用于公钥密码和数字签名。RSA加密在RSA中,明文、密钥和密文都是数字。RSA的加密过程可以用下列公司来表达:密文 = 明文^E mod N (RSA加密)也就是说,RSA的密文是对代表明文的数字的E次方求...原创 2020-01-17 13:58:18 · 386 阅读 · 0 评论 -
二 分组密码模式
分组密码的模式简介前面介绍的DES和AES都属于分组密码,它们只能加密固定长度的明文,如果需要加密任意长度的明文,就需要对分组密码进行迭代,而分组密码进行迭代,而分组密码的迭代方法就被称为分组密码的“模式”。分组密码有很多种模式,如果模式的选择不恰当,就无法充分保证机密性。主要介绍分组密码与流密码,然后逐一介绍主要的分组密码的模式,最后再来考察一下到底应该使用哪种模式。分组密码与流密码...原创 2020-01-17 13:56:30 · 721 阅读 · 0 评论 -
一 对称密码
一次性密码本一次性密码本是一种非常简单,它的原理是“将明文与一串随机的比特序列进行XOR运算”。如果将硬币的证明设为0,反面设为1,则通过不断掷硬币就能产生这样一串随机的比特序列。加密解密正如上面所讲到的那样,一次性密码本是一种非常简单的密码,如此简单的密码居然无法破译,这真是让人匪夷所思。这里说的无法破译,并不是指在现实的时间内难以破译,而是指即便拥有一种运算能力无穷大的计算机,可以...原创 2020-01-17 11:26:39 · 602 阅读 · 0 评论 -
CBC模式解读
一什么是CBC模式CBC模式的全称是CipherBlockChaining模式(密文分组链接模式),之所以叫这个名字,是因为密文分组像链条一样相互连接在一起。在CBC模式中,首先将明文分组与前一个密文分组进行XOR运算,然后再进行加密。CBC模式加解密过程如下:我们来比较一下ECB模式与CBC模式的区别ECB模式只进行了加密,而CBC模式则在加密之前进...转载 2020-01-17 11:20:00 · 3144 阅读 · 0 评论
分享