对称、非对称、哈希等等……

密码学,是运用一系列被称为算法的规则计算方法以及某些数学概念,来保障信息和通信安全的一门技术,它确保只有授权人员才能理解这些信息。

此技术在防止未经许可的信息访问方面发挥着至关重要的作用。

“密码学”(Cryptography)一词起源于希腊语“kryptos”,意为“隐藏”。“crypto”意指“隐藏”,而“graphy”则表示“书写”。

本文旨在全面介绍密码学的基础原理,通过实例分析其各种类型,并探讨其面临的挑战和未来的发展趋势。目标是提供一个既涵盖主要概念又涉及次要概念的全面概述。

密码学在各种系统和应用中保护数字通信和信息,确保机密性和数据安全,防止数据遭到未授权的访问。

让我们看看密码学的运作方式:

  • 过程始于发送方,他有消息或数据需要发送。
  • 接下来,使用一种叫做加密的方法,将明文(即原始消息)转化为难以理解的格式。
  • 接收方使用密钥将密文(难以理解的格式)还原为可读的格式,这个过程称为解密。
  • 解密后的消息恢复为明文形式,与发送方最初发送的消息一致。
  • 此时,接收方就拥有了原始的消息。
  • 现在,让我们深入探讨密码学的基本原理。

    密码学的基本原则

    密码学主要有四大原则:

    #1. 机密性:只有预定的接收者才能访问信息,确保其对他人保密。

    #2. 完整性:信息在存储或传输过程中,任何未经授权的更改都会被检测到。

    #3. 不可否认性:发送方事后不能否认自己发送过信息。

    #4. 身份验证:确认发送方和接收方的身份,验证信息的来源和目的地。

    在深入讨论之前,让我们先回顾一些关键术语。

    词汇表:

    密码学:一种利用算法和数学概念来保护信息和通信的技术,确保只有授权人员才能理解。密码算法:一种用于加密和解密数据的方法或算法。加密:将明文转换为密文的过程。明文:原始的、未加密的数据或文本。密文:加密后的数据(数据的编码形式)或文本。解密:使用解密密钥将密文还原为明文的逆过程。密钥:一条信息,通常是一串位,用于控制加密和解密过程。密钥交换:发送方和接收方之间安全传输加密密钥。密码学术语表

    密码学主要分为三种基本类型:

  • 对称密钥密码学
  • 非对称密钥密码学
  • 哈希函数
  • 对称密钥密码学

    对称密钥加密,又称为单密钥加密,是一种依赖于单一密钥进行数据加密和解密的加密技术。

    在这种方法中,发送方和接收方都必须使用完全相同的密钥来理解数据。其工作原理是通过使用密钥和特定的数学过程,将普通数据转换成秘密代码(即密文)。

    当接收者收到秘密编码的消息,并且也知晓密钥时,他们可以使用相同的数学过程将其转换回正常数据。这样,接收者便可以从密文中获取原始信息。

    对称密码学

    让我们通过以下步骤来理解这个过程:

    • 该算法使用密钥将原始文本(明文)转化为密文。
    • 然后,发送方通过通信渠道将此密文发送给接收方。 此通信渠道可以是私密的或公开的。
    • 接收方使用相同的密钥来解密密文,并将其还原为原始文本。

    这种对称加密过程确保了发送方和接收方之间的通信安全。然而,密钥需要保密。

    为了确保机密性和完整性,双方都必须安全地管理和保护此密钥。

    对称加密密码主要有两种类型:

  • 流密码
  • 分组密码
  • 流密码分组密码以固定长度的数据块为单位进行加密。当系统对数据进行加密时,会将其保存在内存中,等待整个数据块准备好进行处理。逐位或逐字节地加密数据。对固定大小的数据块进行加密,如 8 位密钥,或 64 位以上密钥。比分组密码更复杂。比流密码简单。以固定大小的数据块加密数据,速度慢,适合离线应用。使用CFB和OFB模式。使用ECB和CBC模式。流密码与分组密码

    对称加密算法的一些例子包括:

    • AES(高级加密标准):以其安全性和效率而闻名,广泛应用于保护敏感数据,例如无线安全、云计算、银行业和电子商务。
    • DES(数据加密标准):一种较旧的加密方法,已被 AES 和 3DES 取代,它使用 56 位密钥。
    • IDEA(国际数据加密算法):使用 128 位密钥,应用于各种领域。
    • Blowfish:旨在替代 DES 或 IDEA 的算法。
    • RC4(Rivest Cipher 4):由 Ron Rivest 开发,以其简单性和速度而闻名,但在某些实现中存在安全漏洞。
    • RC5(Rivest Cipher 5):设计高效且安全,具有可变的块大小和密钥大小。
    • RC6(Rivest Cipher 6):旨在比早期版本提供更高的安全性和性能。

    AES、DES、IDEA、Blowfish、RC5 和 RC6 都是分组密码。

    RC4 是一种流密码。

    对称密钥加密的优势

    • 比非对称加密更快、更高效。
    • 密钥大小较小,可以生成更强的密码。
    • 生成强密码的成本相对较低。
    • AES 是一种安全的算法。

    对称密钥加密的劣势

    • 安全地与需要安全通信的所有各方共享加密密钥是对称密码学的主要挑战。
    • 如果密钥在传输过程中被攻击者截获或泄露,整个系统的安全性就会受到威胁。
    • 对称加密系统需要严格的密钥管理措施,包括密钥的生成、存储、更新和撤销。密钥管理不当可能导致安全漏洞。
    • 攻击者可能拦截通过不安全渠道交换的密钥,导致通信被破坏。

    尽管存在这些缺点,对称加密仍然是现代密码学的重要组成部分,在许多应用中得到广泛使用。

    强有力的密钥管理措施和安全的密钥交换方法可以帮助克服对称加密的一些挑战。

    非对称密钥密码学

    非对称加密使用一对密钥:一个保密的私钥和一个公开共享的公钥。 您可以使用某人的公钥来加密消息,并且只有他们可以使用其私钥来解密该消息。

    这种方法通过允许安全通信而无需共享密钥来增强数字安全,这在我们的网络世界中至关重要。

    它对于安全通信非常有用,因为接收者只需要您的公钥。 这消除了共享秘密对称密钥的风险。

    这些“公钥算法”使用一对密钥来保护数据。

    以下是一个更简单的分解:

    对称与非对称密码学

    • 存在两把密钥:每个人都可以访问的公钥和保密的私钥。
    • 公钥用于加密或锁定数据。
    • 私钥用于解密或解锁数据。

    重要的是要理解,您无法从公钥推导出私钥。此外,公钥通常会由一个称为证书颁发机构的组织与身份关联起来。

    安全通信:发送方和接收方可以在不泄露私钥的情况下交换安全消息。

    这些算法依赖于整数分解和离散对数等数学难题来创建数字签名并建立/分发会话密钥,例如在 TLS 协议中。

    非对称加密算法的一些例子包括:

    • RSA (Rivest-Shamir-Adleman):RSA 是应用最广泛的非对称加密算法之一。它基于大素数的数学特性,常用于安全密钥交换和数字签名。
    • 椭圆曲线密码学 (ECC):它基于有限域上的椭圆曲线的代数结构。与依赖于普通伽罗瓦域的非 EC 加密技术相比,ECC具有密钥大小更小的优势。ECC 主要用于生成伪随机数和数字签名。
    • Diffie-Hellman 密钥交换:此算法用于安全密钥交换。使用此方法创建的密钥可以用于使用对称算法进行加密。Diffie-Hellman 的主要目标是使两方能够通过不安全的通信通道建立共享密钥。

    非对称密码学的优势

    • 与对称加密相比,非对称加密提供了更高的安全性。
    • 接收方可以验证发送方的身份。
    • 非对称加密解决了对称密钥加密中提到的密钥分发问题。
    • 消息的接收者可以检测到消息在传输过程中是否被更改。

    非对称密钥加密的劣势

    • 非对称加密的过程比对称加密慢。
    • 非对称加密和解密比对称加密需要更多的计算资源。
    • 非对称加密依赖于公钥和私钥。安全地管理这些密钥可能非常复杂和具有挑战性,尤其是在大型系统中。
    • 非对称密码学最明显的潜在缺点是它对量子计算机的脆弱性。 量子计算机有可能比传统计算机更有效地解决某些数学问题,例如整数分解和离散对数。

    然而,无需担心,各组织和研究人员正在积极努力转向这些抗量子密码技术。

    让我们转向下一种类型的密码学:

    哈希函数

    加密哈希函数与其他类型的加密不同,它们不加密数据。相反,它们使用复杂的数学方法将任何数据转化为由字母和数字组成的唯一代码。

    这些代码被称为哈希码、哈希值或消息摘要。它们对于检查数据的安全性至关重要:当发送或存储数据时,其哈希码会被计算出来并与数据一同发送或保存。

    接收者可以重新计算他们收到的数据的代码,并将其与发送的数据进行比较。如果代码匹配,则意味着数据在传输和存储过程中是安全的。

    以下是一个简单的逐步解释:

    哈希函数

    发送方:

  • 发送方使用哈希函数为提供的数据创建唯一的哈希值。
  • 创建哈希值后,发送方通过不安全的通道将原始消息和哈希码发送给接收方。
  • 接收方:

  • 接收方接收到消息和哈希码。
  • 接收方还使用相同的特殊工具(哈希函数)为接收到的消息创建新的哈希码。
  • 接收方将新的哈希码与发送方发送的哈希码进行比较。
  • 结果:

    • 如果哈希码匹配,则意味着消息在传输过程中没有被更改,可以被认为是安全的。
    • 如果哈希码不匹配,则表明消息可能已被更改,不能被认为是安全的。

    以下是哈希函数的一些有用属性:

    哈希函数的性质:

  • 确定性:对于相同的输入,它始终产生相同的输出。
  • 均匀性和无碰撞性:一个好的哈希函数应该产生均匀分布的输出,有助于避免碰撞。
  • 高效性:哈希函数的设计计算效率高,允许它们快速处理大量数据。
  • 固定大小输出:无论输入大小如何,它都会生成固定大小的输出。此属性至关重要,因为它使得数据的存储和检索更加高效。
  • 哈希函数在计算机科学和信息安全领域具有广泛应用,包括密码学、数据完整性检查、数据索引、数据指纹、密码存储、数字取证和区块链。

    常用的加密哈希函数包括:

    存在两个广泛使用的加密哈希函数系列:MD 系列(MD = 消息摘要)和 SHA 系列(SHA = 安全哈希算法)。

    • SHA-1(安全哈希算法 1):曾经是广泛使用的哈希函数之一。但是,由于存在允许实际碰撞攻击的漏洞,SHA-1 现在被认为是弱的,不再用于大多数安全应用。
    • MD5(消息摘要算法 5):MD5 过去很受欢迎,但现在由于冲突漏洞而被认为是弱的,通常不用于安全敏感的应用。
    • SHA-3:SHA-3 是通过美国国家标准与技术研究院(NIST)的竞争而选出的一个较新的哈希函数系列。它具有强大的安全性,旨在抵御某些类型的攻击。

    尽管哈希函数不加密消息,但它们是密码学中不可或缺的一部分,因为它们在保护和验证数据(这是密码学的关键目标)方面发挥着至关重要的作用。

    哈希函数的优势

    • 安全的哈希函数确保了高抗碰撞性。
    • 通过哈希可以轻松比较两个文件的相等性。
    • 哈希函数非常快速且高效。
    • 在 DBMS 中,哈希用于查找数据的位置,而无需使用索引结构。

    哈希函数的劣势

    • 当存在大量冲突时,哈希函数的工作效率可能会降低。
    • 不允许有空值。
    • 由于哈希表的复杂性,实现哈希表可能是一项具有挑战性的任务。
    • 实际上,在处理大量潜在密钥时,几乎不可能完全避免哈希冲突。

    另请阅读:如何保护自己免受彩虹表攻击

    密码学的实际应用

    • 身份验证/数字签名:身份验证是确认数据真实性、验证文档来源、验证发送者身份、时间戳的准确性以及确保计算机或用户身份合法性的重要过程。数字签名采用涉及哈希函数和私钥的加密方法来验证和安全地签署文档。
    • 云存储加密:采用加密技术来保护存储在云中以及在云服务之间传输的文件。
    • 电子货币:电子货币涉及各方之间的电子资金转移,可以是借记或贷记,可以是匿名的或可识别的。它使用加密、数字签名和公钥加密技术来确保安全,支持各种类型的交易。
    • 电子邮件中的加密/解密:电子邮件加密使用公钥加密技术来保护电子邮件内容免遭未经授权的访问。每个用户都拥有一对公钥和私钥,公钥用于加密,只有私钥才能解密消息。
    • WhatsApp 中的加密:WhatsApp 使用信号协议进行加密,结合对称和非对称密钥加密技术来实现机密性、完整性、身份验证和不可否认性。基于 Curve25519 的算法用于密钥交换。
    • Instagram 中的加密:Instagram 通信通过端口 443 使用 SSL/TLS 进行加密,防止窃听用户和 Instagram 服务器之间交换的数据。
    • SIM 卡身份验证:SIM 卡身份验证涉及通过生成随机数并使用密钥 Ki 应用 A3 等算法来验证 SIM 卡对网络的访问。 加密依赖于 A8 算法和会话密钥 KC,与 A5 算法一起使用来进行数据加密/解密。

    密码学面临的挑战

    • 密钥管理仍然是一项挑战,因为安全分发和管理加密密钥很复杂,尤其是在大型系统中。 密钥存储和恢复机制需要稳健。
    • 当许多用户需要安全通信时,对称加密技术可能会变得低效。 每对用户都需要一个唯一的密钥,随着用户数量的增加,这可能会变得难以管理。
    • 非对称加密通常需要比对称加密更长的密钥才能实现相同级别的安全性,这可能导致处理速度变慢并增加资源需求。
    • 发现哈希函数中的漏洞或弱点可能会导致安全漏洞。 加密社区必须不断分析和调整哈希函数以减轻此类风险。
    • 在使用哈希函数存储密码的应用中,需要对密码进行适当的加盐以防止彩虹表攻击。挑战在于确保盐的独特性和秘密性。
    • 量子计算的出现对密码学领域提出了重大挑战。 量子计算机利用量子物理的特殊原理来实现非凡的计算能力,在解决特定数学问题方面异常迅速。

    这种速度威胁到了当前密码系统的基础,该系统依赖于某些数学难题的复杂性来确保数据安全。 量子计算机有能力比传统计算机更快地解决这些难题,这可能会损害加密方法的安全性。

    量子计算机利用的量子力学的基本原理非常独特,它使量子计算机能够执行传统计算机无法完成的任务。

    因此,开发能够抵御量子攻击的新型密码技术的需求日益紧迫,这给密码学领域带来了持续的挑战。

    密码学的未来趋势

    • 开发和采用能够抵抗量子攻击的后量子密码算法将是一个重要趋势。诸如基于格的密码学之类的算法正在被探索。
    • 人们越来越接受基于云的加密和密钥管理,尤其是在金融领域。同态加密允许在不解密的情况下对加密数据进行计算,可以增强云计算和数据处理的隐私性。
    • 密码学在保护区块链技术方面发挥着至关重要的作用,两者在未来将继续紧密相连。
    • 随着 GDPR 等数据保护法规的加强,标记化在医疗保健、金融服务和企业中的使用越来越频繁。标记化用对黑客来说毫无价值的令牌替换实际数据。

    结语

    密码学是一个广阔的领域,值得深入探索,我们通过介绍密码学的基础知识仅仅触及了表面。

    我们涵盖了密码学、其原理、密码学类型、哈希函数、挑战、未来趋势和实际应用。

    然而,还有更多的东西有待发现。

    接下来是云计算密码学:入门指南和 Google Cloud 案例研究。