简介
信息在企业、组织、军方等的运作中起着至关重要的作用。不当使用信息会导致企业损失或灾难性后果。 为了保护通信,企业可以使用密码学来加密信息。密码学涉及将信息转换为非人类可读的格式,反之亦然。
在本文中,我们将向您介绍密码学领域,以及如何确保信息不会落入他人之手。
- 什么是密码学?
- 什么是密码分析?
- 加密算法
- 破解实践
什么是密码学?
密码学通过将信息转换为非人类可读的格式来隐藏信息的真正含义,反之亦然。
假设您要发送消息“I LOVE APPLES”,则可以用字母中的第三个连续字母替换短语中的每个字母。 加密的消息将为“K NQXG CRRNGV”。 要解密我们的消息,我们必须使用要解密的字母返回字母表中的三个字母。 下图显示了转换的完成方式。
将信息转换为非人类可读形式的过程称为加密。反向加密的过程称为解密。加密的信息称为密码 。
什么是密码分析?
密码分析是一种尝试在不使用密钥的情况下解密的技术。密码分析使用数学分析和算法来解密密码。
密码分析攻击的成功取决于
- 可用时间
- 可用的计算能力
- 可用存储容量
以下是常用的密码分析攻击的列表;
- 暴力攻击
这种类型的攻击使用的算法尝试猜测所有可能的明文逻辑组合,然后将其加密并与原始密码进行比较。
- 字典攻击
使用单词表来查找明文或密钥的匹配项。 它通常在尝试破解加密密码时使用。
- 彩虹表攻击
这种攻击将密文与预先计算的哈希值进行比较以找到匹配项。
- 猜测
比如默认出厂密码
- 爬虫
常用加密算法
- MD5
Message-Digest 5的首字母缩写。它用于创建128位哈希值。 从理论上讲,哈希不能转换成原始的纯文本。 MD5用于加密密码以及检查数据完整性。很难找到两个相同的 MD5。
- SHA
安全哈希算法(Secure Hash Algorithm)的缩写。 SHA算法用于生成消息的简明表示形式(消息摘要)。 它具有各种版本; SHA-0 :产生120位哈希值。 由于存在重大缺陷而将其撤回使用,并由SHA-1取代。 SHA-1 :产生160位哈希值。 它与MD5的早期版本相似。 它具有加密弱点,自2010年以来不建议使用。 SHA-2 :它具有两个哈希函数,即SHA-256和SHA-512。 SHA-256使用32位字,而SHA-512使用64位字。 SHA-3 :此算法的正式名称为Keccak。 RC4 –此算法用于创建流密码。 它主要用于安全套接字层(SSL)等协议中以加密Internet通信,以及用于保护无线网络的有线等效保密性(WEP) 。 BLOWFISH –此算法用于创建对称密钥。 它可以用来加密密码和其他数据。
使用CrypTool 加密
在这种实际情况下,我们将使用RC4算法创建一个简单的密码。 然后,我们将尝试使用蛮力攻击将其解密。 对于本练习,让我们假设我们知道加密密钥为24位。 我们将使用此信息来破解密码。
我们将使用CrypTool 1作为我们的加密工具。 CrypTool 1是一个用于密码学研究的开源教育工具。
创建RC4流密码:我们将加密以下短语"Never underestimate the determination of a kid who is time-rich and cash-poor",我们将使用00 00 00作为加密密钥。
- 打开CrypTool 1
文本替换
单击 Encrypt/Decrypt菜单
使用CrypTool 解密
- 单击Analysis 菜单
MD5
<code>md5sum
password
5f4dcc3b5aa765d61d8327deb882cf99
/<code>
<code>import
hashlib h = hashlib.md5() h.update("password"
.encode('utf-8'
))
<code>password
5f4dcc3b5aa765d61d8327deb882cf99 password1 7c6a180b36896a0a8c02787eeafb0e4c password@Test001
43afc7177d19f57e59b4858fe1a3c154 /<code>
小结
- 密码学是对消息进行加密和解密的科学。
- 密码是一种已被转换为非人类可读格式的消息。
- 解密将密码转换为原始文本。
- 密码分析在不知道用于加密密码的密钥的情况下解密密码。
- 密码学结合了密码学和密码分析技术。
最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取