密码学定义
密码学是隐藏或编码信息的过程,以便只有消息的预期对象才能读取它。密码学艺术已经用于编码消息数千年,并继续用于银行卡,计算机密码和电子商务。
现代加密技术包括支持加密和解密信息的算法和密码,例如 128 位和 256 位加密密钥。现代密码,如高级加密标准(AES),被认为几乎牢不可破。
常见的加密定义是编码信息的做法,以确保只有为其编写消息的人才能读取和处理信息。这种网络安全实践,也称为密码学,结合了计算机科学、工程和数学等各种学科,以创建隐藏消息真正含义的复杂代码。
密码学可以追溯到古埃及象形文字,但对于保护传输中的通信和信息以及防止其被不受信任的各方读取仍然至关重要。它使用算法和数学概念,通过加密密钥和数字签名等技术将消息转换为难以破译的代码,以保护数据隐私、信用卡交易、电子邮件和网页浏览。
密码学的重要性
密码学对于保护数据和用户、确保机密性以及防止网络犯罪分子拦截敏感的公司信息仍然很重要。加密的常见用途和示例包括:
隐私和保密
个人和组织每天都使用加密技术来保护他们的隐私,并对他们的对话和数据保密。加密通过使用只有发件人和收件人知道的密钥的算法来加密已发送的消息,从而确保机密性。一个常见的例子是消息传递工具WhatsApp,它加密人与人之间的对话,以确保他们不会被黑客入侵或拦截。
加密还可以保护浏览,例如使用虚拟专用网络 (VPN),它使用加密隧道、非对称加密以及公钥和私钥共享密钥。
身份验证
与密码学如何确认消息的真实性类似,它也可以证明发送和接收的信息的完整性。加密可确保信息在存储过程中或在发件人和预期收件人之间传输过程中不会更改。例如,数字签名可以检测软件分发和金融交易中的伪造或篡改。
不可否认性
密码学确认消息发送者的责任和责任,这意味着他们以后在创建或传输信息时不能否认他们的意图。数字签名就是一个很好的例子,因为它们确保发件人不能声称他们创建的消息、合同或文档是欺诈性的。此外,在电子邮件不可否认性中,电子邮件跟踪可确保发件人无法拒绝发送邮件,收件人无法拒绝接收邮件。
密钥交换
密钥交换是用于在发件人和收件人之间共享加密密钥的方法。
加密算法的类型
有许多类型的加密算法可用。它们的复杂性和安全性各不相同,具体取决于通信类型和所共享信息的敏感性。
密钥加密
密钥加密(也称为对称加密)使用单个密钥来加密和解密消息。发件人使用密钥加密纯文本消息,并将其发送给收件人,然后收件人使用相同的密钥对其进行解密并解锁原始纯文本消息。
流密码
流密码随时处理单个位或字节,并使用反馈机制不断更改密钥。自同步流密码通过识别解密在位密钥流中的位置,确保解密过程与加密过程保持同步。同步流密码独立于消息流生成密钥流,并在发送方和接收方生成相同的密钥流函数。
分组密码
分组密码一次加密一个固定大小的数据块。当使用相同的密钥时,它将始终将明文数据块加密为相同的密文。一个很好的例子是Feistel密码,它使用密钥扩展,排列和替换的元素在密码中造成巨大的混乱和扩散。
加密和解密的阶段即使不相同,也是相似的,这意味着反转密钥可以减少在软件或硬件中实现密码所需的代码大小和电路。
公钥加密
公钥加密(PKC)或非对称加密使用数学函数来创建异常难以破解的代码。它使人们能够通过不安全的通信通道进行安全通信,而无需密钥。例如,代理重新加密使代理实体能够将数据从一个公钥重新加密到另一个公钥,而无需访问明文或私钥。
常见的PKC类型是乘法与因式分解,它采用两个大的素数并将它们相乘以创建一个巨大的结果数字,这使得破译变得困难。PKC 的另一种形式是幂与对数,例如 256 位加密,它增加了保护,以至于即使是每秒能够搜索数万亿种组合的计算机也无法破解它。
PKC 的通用形式使用两个在数学上相关的键,但不能确定任何一个键。简而言之,发件人可以使用其私钥加密其明文消息,然后收件人使用发件人的公钥解密密文。
用于数字签名和密钥交换的常见 PKC 算法包括:
RSA
RSA 是第一个并且仍然是最常见的 PKC 实现。该算法以其麻省理工学院数学家Ronald Rivest,Adi Shamir和Leonard Adleman的名字命名,用于数据加密,数字签名和密钥交换。它使用一个大数,这是分解两个选定的素数的结果。攻击者不可能计算出主要因素,这使得RSA特别安全。
ECC
(Elliptic Curve Cryptography)ECC是一种基于密码学中使用椭圆曲线的 PKC 算法。它专为计算能力或内存有限的设备而设计,用于加密互联网流量。ECC的常见用途是嵌入式计算机,智能手机和比特币等加密货币网络,它消耗RSA所需存储空间和带宽的10%左右。
数字签名算法 (DSA)
DSA (Digital Signature Algorithm)是一种允许在邮件身份验证中使用数字签名的标准。它由美国国家标准与技术研究院 (NIST) 于 1991 年推出,以确保创建数字签名的更好方法。
基于身份的加密 (IBE)
IBE(Identity-based Encryption)国际教育局是一个PKC系统,它允许根据用户的身份(如电子邮件地址)从唯一信息中计算公钥。然后,受信任的第三方或私钥生成器使用加密算法来计算相应的私钥。这使用户能够创建自己的私钥,而无需担心分发公钥。
公钥加密标准 (PKCS)
所有 PKC (Public Key Cryptography Standards )算法和使用都受 RSA Data Security 设计的一组标准和准则的约束。具体如下:
PKCS #1 或 RFC 8017:RSA 加密标准
PKCS #3:迪菲-赫尔曼密钥协议标准
PKCS #5 和 PKCS #5 v2.1 或 RFC 8018:基于密码的密码学标准
PKCS #6:扩展证书语法标准(由 X.509v3 取代)
PKCS #7 或 RFC 2315:加密消息语法标准
PKCS #8 或 RFC 5958:私钥信息语法标准
PKCS #9 或 RFC 2985:选定的属性类型
PKCS #10 或 RFC 2986:认证请求语法标准
PKCS #11:加密令牌接口标准
PKCS #12 或 RFC 7292:个人信息交换语法标准
PKCS #13:椭圆曲线加密标准
PKCS #14:伪随机数生成标准
PKCS #15:加密令牌信息格式标准
Diffie-Hellman and Key Exchange Algorithm (KEA)
Diffie-Hellman算法由斯坦福大学教授Martin Hellman和他的研究生Whitfield Diffie于1976年设计,他们被认为负责引入PKC概念。它用于秘密密钥交换,需要两个人就一个大的质数达成一致。