《图解密码技术》[01] 密码概述

《图解密码技术》(点击查看详情


1、写在前面的话

因为接触了微信公众号开发,之中涉及支付功能时用到了大量签名加密之类的东西,对于密码安全这一块,其实一直不是很明白,大部分方法自己在用到时也是去直接google,然后复制粘贴,可以说完全不知其所以然。

加密这一块查了下有很多人推荐这本书,于是就决定看看。我个人涉及到真正的加密技术的实际应用可能不算那么多,所以这里笔记准备记录一些浅显和核心的东西。


2、加密和解密

发送信息和接受信息的过程中,因为传递过程涉及多方,可能会存在窃听者。就像你给别人写了一封信,在寄出的途中,如果有人恶意想要偷窥信件的内容,是完全可能的,比如邮递员。

如果不想让别人看到明确的信息,就要对信息进行加密,接收者进行解密,这样就算中途被人看到信息,他也看不明白信息的内容。

加密之前的消息称为“明文”,即明白的谁都看得懂的信息,加密之后的消息则称为“密文”。

  

接收者还原密文称之为“解密”,如果是第三方试图还原,则称之为“破译”。

另外,密码安全涉及的信息方面很广,主要在机密性、完整性、认证和不可否认性上做文章。而相应的,也就诞生了用来应对的密码技术:


3、隐写术和数字水印

密码主要是一种能够让消息内容变得无法解读的技术。除此之外,还有另外一种技术,不是将消息内容变得无法解读,而是能够隐藏信息,这种技术叫做隐写术。

隐写术的第一个典型就是大家都知道的藏头诗:

  1. 我画蓝江水悠悠,
  2. 爱晚亭上枫叶愁。
  3. 秋月溶溶照佛寺,
  4. 香烟袅袅绕经楼。

隐写术在计算机中的应用,数字水印就是其中的一种,将著作权拥有者及购买者的信息嵌入文件中的技术,但仅凭数字水印技术是无法对信息进行保密的,因此需要和其他技术配合使用。

比如将密码和隐写术结合使用,将明文加密后通过隐写术隐藏到图片中,这样即便有人发现了密文的存在,也无法读取内容。密码隐藏的是消息内容,隐写书隐藏的是消息本身


4、历史上的密码

4.1 恺撒密码

假设我们要保密的信息为 yoshiko 这个女性的名字,我们将每个字母按字母表顺序向后平移3位并转换为大写字母,即:

  • y --> B
  • o --> R
  • s --> V
  • h --> K
  • i --> L
  • k --> N
  • o --> R

于是,yoshiko 经过加密就变成了 BRVKLNR 。在这里,将字母平移n位替换,就是密码的算法,这里平移的数量n就是密钥,这种加密叫做恺撒密码

当然,解密的话,接收者也要知道密钥,即这里是3,反向平移即可得到明文。如果是第三方想要破解该密文,因为字母表只有26个字母,所以密钥实际上也只有0到25共26种,破译者只要从0到25挨个尝试密钥破解,总会得到明文。这种方法称之为暴力破解,也称之为穷举搜索

4.2 简单替换密码

恺撒密码实际上也是简单替换密码的一种,因为其本质就是字母的替换,但是因为替换的规则是确定的,所以更为简单。

字母之间一对一的对应替换,则是简单替换密码,例如:

当然,简单替换密码的解密就必须要依赖替换表了,所以发送者和接收者都必须同时拥有替换表,而这份替换表也就相当于简单替换密码的密钥。

另外,一个密码能够使用的“所有密钥的集合”称之为密钥空间,密钥空间越大,暴力破解就越困难。简单替换密码中,每个字母可以随意对应字母表中无匹配的任意一个,所以实际上密钥空间为 36*25*...*2*1 = 403291461126605635584000000;而凯撒密码只有0-25共26种,所以简单替换密码更难通过暴力破解来破译,但是,使用“频率分析”的密码破译方法,则能够破译简单替换密码。(频率分析的破译方法在书中有详细例子page27,很有意思,这里不再展开)


5、加密算法和密钥

凯撒密码:

  • 加密算法:将明文中的各个字母按照指定的字母数平移
  • 密钥:平移的字母数量

简单替换密码:

  • 加密算法:按照替换表对字母表进行替换
  • 密钥:替换表

不难看出,加密算法是固定的,密钥是可变的。因为如果每次加密都必须完全产生新的加密算法,那太麻烦了,于是我们喜欢加密算法可以重复使用,但是随着重复使用的次数其破译可能性也逐渐增大,所以准备了可变的部分,即密钥。所以加密算法和密钥分开考虑,就解决了加密算法希望得到重复利用,但重复使用会增加风险这个难题。

时间: 2024-08-07 14:53:24

《图解密码技术》[01] 密码概述的相关文章

图解密码技术一些笔记

因为明年的工作可能要涉及到加密的问题,所以要看一下加密方面,刚好之前对于web开发方面的加密,https也一直有疑问,于是就买了本图解密码技术来看看 1.如何保证数据只能单向解密: 比较流行的一个就是公钥和私钥,公钥负责加密,私钥负责解密,只要私钥没有被拿到,数据就不会被破解,比较流行的 就是RSA算法,公司项目也用过,不过当时搞不清公钥和私钥,迷迷糊糊的 2.如何保证收到的数据没有被修改过利用私钥加密,然后用公钥解密 这个就是数字签名,在发送给客户端的时候,除了原有的数据以外,还要再发送一个对

《图解密码技术》——记录1

[MENU] 主要角色 名称 说明 Alice 一般角色 Bob 一般角色 Eve 窃听者,可窃听通讯内容 Mallory 主动攻击者,可妨碍通信.伪造消息等 Trent 可信的第三方 Victor 验证者 关键词 加密前的消息称为明文,加密后的消息称为密文. 对称密码是指在加密和解密时使用同一密钥的方式. 对称密码的别名:公共密钥密码.传统密码.私钥密码.共享密钥密码等. 首次见到此书.读此书,是在学校的图书馆. 参考资料 图解密码技术,结城浩 著 原文地址:https://www.cnblo

《图解密码技术》-1.环游密码世界

1.对称密码和公钥密码 对称密码:是指在加密和解密时使用同一秘钥的方式 公钥密码:又称非对称加密,指在加密和解码时使用的不是用一秘钥的方式 2.混合密码系统 将对称密码和非对称密码结合起来的密码方式称为混合密码系统, 这种系统结合了对称加密和非对称加密的优势. 3.其他密码技术 1.单项散列函数:是一种保证完整性的密码技术. 2.消息认证码:消息认证码是一种能够保证完整性和提供认证的密码技术. 3.数字签名:能够防止伪装.篡改.和否认等威胁的技术. 4.伪随机数生成器:是一种能够模拟产生出随机数

阅《图解密码技术》一笔记1

1.密码保证了消息的机密性 2.密码算法:由将明文生成密文的加密算法和由密文解密成明文的解密算法组成. 密钥是密码算法中进行运算的key. 3.对称密码(symmetric cryptography):是指在加密和解密时使用同一密钥的方式. 4.公钥密码(public-key crypography):是指在加密和解密时使用不同密钥的方式.也称非对称密码(asymmetric cryptography) 5.其它密码技术 a.单向散列函数    ------>不保证机密性,保证完整性,用于检测数

密码技术小总结

密码技术与编码技术不同,但现在很多人把两者的技术混在一起,但两者某些地方界限确实有些模糊.密码技术与信息隐藏也不同,密码技术是让你看得到但是看不懂,信息隐藏是让你看不到找不到 参考和查看更多内容推荐 本文只是简要总结 http://www.mamicode.com/info-detail-2252602.html https://blog.csdn.net/pdsu161530247/article/details/75667218 <码书 解码与编码的战争> <图解密码技术 第三版&g

深入理解密码技术

对称加密: DES DES是1977年美国联邦信息处理标准中使用的一种对称密码技术,曾今被美国和其他国家政府银行使用. 不过现在已被暴力破解,我们除了用它解密以前的密文外,已不再使用DES了.不过这里我们可以用它来了解下什么是对称加密. <!--more--> 加密和解密 DES是一种把64比特明文加密成64比特的密文的对称密码算法,密钥长度56位,其中每隔7比特有个错误检查比特.结果DES密钥总长度为64比特. 分组密码 DES以64比特明文为一个单位进行加密,这64比特单位称为分组.so,

什么是私有密钥密码技术——密钥加密算法采用同一把密钥进行加密和解密

什么是私有密钥密码技术 私有密钥(Symmetric Key),又叫对称密钥.密钥加密算法采用同一把密钥进行加密和解密.它的优点是加密和解密速度非常快,但密钥的分发和管理比较困难.信息的发送者和接收者必须明确同一把密钥.因此,必须进行密钥交流,这通常需要其他更安全的信道来传送密钥.另外,每一对用户都需要有自己的一个独一无二的密钥.因此,如果一个发送者与很多人通信,就需要管理很多密钥.主要的对称密钥加密算法有DES.3DES.RC2.RC4.RC5.Blowtish和CAST等.在VPN中常用的有

用servlet进行用户名和密码校验01

用servlet进行用户名和密码校验01 编写一个servlet进行用户名和密码校验,获取登录页面的用户名密码,并显示出来 1.工作目录结构 2.首先是一个login.html,包含非常简单的登录表单 3.在servlet的doGet方法中 (中间数据库检验部分省略) 4.运行效果 登录成功效果如下,显示用户名密码 登录失败效果如下, 5.文件链接:https://pan.baidu.com/s/1H2cZzwak29VhBGJJBlcD3A 提取码:l3cs 原文地址:https://www.

密码技术之认证

第二部分:认证 当比较两条消息是否一致时,我们不必直接对比消息本身的内容,只要对比它们的“指纹”就行了. 一.单向散列函数(one-way hash function) 单向散列函数也称为消息摘要函数(message digest function).哈希函数或者杂凑函数. 单向散列函数有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value)也称为消息摘要(message digest)或者指纹.单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被