NISP | 密码学

2024-09-07 07:28
文章标签 密码学 nisp

本文主要是介绍NISP | 密码学,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客

通过上一章的学习,我们知道了,网络安全的 CIA 模型,而本期学习的“密码学”,则能为 CIA 模型提供很好的技术支持:

面临的攻击威胁所破坏的信息安全属性解决问题所采用的密码学技术
截获(泄露信息)机密性对称密码和非对称密码
篡改(修改信息)完整性哈希函数、数字签名、 对称密码和非对称密码
伪造(伪造信息来源)真实性数字签名
否认(事后否认发送信息和行为)不可否认性数字签名

0x01:密码学的发展

密码学的发展大致可以分为如下四个阶段:

  • 第一个阶段是从古代到 19 世纪末 —— 古典密码学

  • 第二个阶段是从 20 世纪初到 1949 年 —— 近代密码学

  • 第三个阶段是从 C.E.Shannon(香农)于 1949 年发表的划时代论文 “The Communication Theory of Secret Systems” 开始 —— 现代密码学

  • 第四个阶段是从 1976 年 W.Diffie 和 M.Hellman 发表论文“New Directions in Cryptography” 开始 —— 公钥密码学

0x0101:古典密码学

古典密码体质的安全性在于保持算法本身的保密性,受到了算法的限制。其具有以下特点:

  • 不适合大规模生产(手工计算)

  • 不适合较大的或者人员变动较大的组织

  • 用户无法了解算法的安全性

0x0102:近代密码学

近代密码学是从 20 世纪初到 1949 年,其主要标志是机械密码/机电密码,用机电代替手工

近代密码体质是用机械或电动机械实现的,其中最著名的就是转轮机(Rotor Machine)。

转轮密码机 ENIGMA,由 Arthur Scherbius 于 1919 年发明。在二次世界大战期间,Enigma 曾经作为德国陆、海、空三军最高密码机,其外形如下:

与转轮机相对应的还有英国的 TYPEX 打字密码机,其在英国通信中使用广泛,且在破译密钥后帮助破解德国信号:

感兴趣的小伙伴可以到下面这个网站详细了解一下它的历史:

Typexicon-default.png?t=O83Ahttps://www.cryptomuseum.com/crypto/uk/typex/index.htm

0x0103:现代密码学

现代密码学是从 1949 年 ~ 1975 年,这期间密码届发生了这些大事:

  • 1949 年,Shannon 发表论文 “The Communication Theory of Secret Systems”。

  • 1967 年,David Kahn 的专著 《The Code Breakers》问世。

  • 1971 年 ~ 1973 年,IBM Wastson 实验室的 Horst Feistel 等人发表的几篇技术报告。

  • 1974 年,IBM 提交了算法 LUCIFER,后来成为了 DES。

该时期密码学的主要特点就是,数据的安全基于密钥而不是算法的保密

0x0104:公钥密码学

公钥密码学主要是 1976 年以后,这期间主要有这么几件大事:

  • 1976 年,Diffie & Hellman 的 “New Directions in Cryptography” 提出了非对称密钥密码。

  • 1977 年,Rivest,Shamir & Adleman 提出了 RSA 公钥算法。

  • 20 世纪 90 年代,逐步出现椭圆曲线等其他公钥算法。

公钥密码的出现使得发送端和接收端无密钥传输的保密通信成为可能!

0x02:加密与解密

信息在传播的过程中有可能被截获。为了避免被截获,必须对信息进行加密。有了加密,就必须有解密。

0x0201:加密与解密的基础概念

该部分主要是介绍与加解密相关的一些基础概念,方便后续的理解:

  • 明文(Plaintext): 原始消息,被隐蔽消息,未经加密的消息。

  • 密文(Ciphertext): 又称为密报(Cryptogram),明文经密码变换而成的一种隐蔽形式。

  • 加密员或密码员(Cryptographer): 对明文进行加密操作的人员。

  • 截获: 指一个非授权方介入系统,窃听传输的信息,导致信息泄露。它破坏了信息的保密性。

    • 非授权方可以是一个人,也可以是一个程序。

  • 截获攻击: 通过嗅探和监听等手段截获信息,从而推测出有用的信息,如用户口令、账号、文件或程序的不正当复制等。

  • 加密(Encryption): 将明文变换为密文的过程。加密可以采用密码算法来实现,密码算法从密钥使用角度,可分对称密码算法和非对称密码算法。

    • 把可懂的语言变换成(人类/机器)不可懂的语言。

  • 解密(Decryption): 由密文恢复出明文的过程。

    • 加密的逆过程。

    • 即把不可懂的语言变换成变换成可懂的语言。

0x0202:对称加密算法

对称加密算法(也称为单钥或私钥密码算法),即加密密钥和解密密钥相同,或实质上等同,即从一个易于推出另一个。

常见的对称加密算法有:DES、3DES、IDEA、AES

对称加密算法的特点就是密钥相对较短,一般采用 128,192 或 256 比特的长度。

其加解密流程如下图所示,可以看到,其加密和解密使用的是同一个密钥:

对称加密算法的优缺点如下:

  • 优点:

    • 效率搞,算法简单,系统开销小

    • 适合加密大量数据

    • 明文长度与密文长度相等

  • 缺点:

    • 需要以安全方式进行密钥交换

    • 密钥管理复杂

    • 无法解决消息的篡改、否认等问题

0x0203:非对称加密算法

非对称加密算法,又叫公钥密码算法(Public-key cipher):加密密钥和解密密钥不同,从一个很难推出另外一个。其中,对外公开的密钥,称为公开密钥(Public Key),简称公钥;必须秘密存储的密钥,称为私有密钥(Private Key),简称私钥。

公钥密钥算法的典型代表有:RSA、ECC、ElGamal。

公钥密码算法的特点如下:

  • 公钥加密,私钥解密。

  • 私钥加密,公钥解密。

  • 密钥长度 512 - 2048 位。

其加解密流程如下图所示,可以看到,其加密和解密使用的不是同一个密钥:

非对称加密算法的优缺点如下:

  • 优点:

    • 密钥分发数目与参与者数目相同。

    • 在有大量参与者的情况下易于密钥管理。

    • 安全

    • 支持数字签名和不可否认性。

    • 无需事先与对方建立关系,交换密钥。

  • 缺点

    • 速度相对较慢。

    • 可能比同等强度的对称加密算法慢 10 倍到 100 倍。

    • 加密后,密文变长。

0x0204:混合加密

混合加密是在对称加密和非对称加密的基础上,综合了二者的优点发明出来的。

对称加密,速度快,且能加密大量数据,但是其需要以安全方式交换密钥。

非对称加密,速度慢,但是其无需事先与对方建立关系,交换密钥。

那我们可以综合二者特长,在第一次建立链接的时候,让对称加密的密钥,通过非对称加密进行传输,当对方安全拿到对称加密的密钥后,后续传输再使用对称加密的方式快速交换数据。

下面,我们详细讲解一下混合加密的流程:

在第一次传输时,发送者先随机产生一个对称加密的密钥,并将该密钥通过接收者的公钥进行加密。接收者利用自己的私钥解密,获取到发送者的对称加密密钥:

在随后的传输中,双方直接使用对称加密密钥来对信息进行加密:

0x03:哈希函数

对称加密和非对称加密算法主要解决信息的机密性问题,而实际系统和网络中还可能受到消息篡改的攻击。篡改攻击主要包括:修改信息内容,改变程序使使其不能正确运行等。而哈希函数可以用来确保信息的完整性。

哈希(Hash)函数(又称为杂凑函数或单向散列函数)接收一个消息作为输入,产生一个称为哈希值的输出。输出的哈希值也可称为散列值、消息摘要(Message Digest,MD)。

哈希函数的工作流程如下图所示:

发送端将待发送的数据和该数据的哈希值一起传递给接收端,接收端接收后,再对数据计算一遍哈希值,如果计算结果与发送端发送的哈希值一致,则说明接收的数据有效,反之,数据经过的篡改。

接下来我们简单介绍几种常见的哈希算法:

0x0301:MD5 算法

MD5 算法可以对输入的任意长度的消息进行运算,并产生一个 128 位的消息摘要。

MD5 算法具有以下特点:

  • 输入:接受任意长度的消息。

  • 输出:128 位的消息摘要。

  • 处理:以 512 位输入数据块为单位。

0x0302:SHA-1 算法

SHA(Secure Hash Algorithm,安全哈希算法)由美国国家标准技术研究所开发,1993 年作为联邦信息处理标准发布,2008 年又有更新。

SHA-1 算法具有以下特点:

  • 输入:最大长度为 264 位的消息。

  • 输出:160 位的消息摘要。

  • 处理:输入以 512 位数据块为单位处理。

0x0303:HSA-1 算法与 MD5 算法比较

  • 散列值长度:

    • MD5:128 bits

    • SHA-1:160 bits

  • 安全性:

    • SHA-1 算法被视为 MD5 的替代候选算法。

  • 速度:

    • SHA-1 慢些

0x04:数字签名

除了保护信息的机密性和完整性,密码学技术也可以解决信息的可鉴别性(真实性或认证性)或不可否认性问题。

数字签名的工作流程如下图所示:

发送端先计算出待发送数据的哈希值,然后将此哈希值连同数据使用自己的私钥进行加密。加密完成后,将数据发送给接收端。接收端收到数据后,先利用发送端的公钥从数据包中解出哈希值和原始数据,然后接收端利用和发送端相同的哈希算法,计算出收到的数据的哈希值,然后将此哈希值和发送端发送的哈希值相比较。如果哈希值匹配,则说明该数据由该发送端的私钥签名。

实际签名的时候,我们一般是对文件的哈希值签名,而不是对文件本身签名。这是因为,一般要签名的文件体积比较大,使用非对称加密的话,签名时间比较长。而对哈希值签名,哈希值一般比较短,所以签名时间也会比较短。这样能大大提高签名的效率,又因为哈希值的特性,又能够保证数据的完整性。

0x0401:数字签名的特点

数字签名的特点如下,其与传统签名的特点具有相似性:

  • 传统签名的基本特点:

    • 能与被签的文件在物理上不可分割。

    • 签名者不能否认自己的签名。

    • 签名不能被伪造。

    • 容易被验证。

  • 数字签名是传统签名的数字化,其基本特点如下:

    • 能与所签文件 “绑定”。

    • 签名者不能否认自己的签名。

    • 签名不能被伪造。

    • 容易被验证。

0x0402:数字签名的应用

  1. 可信性: 签名让文件的接收者相信签名者是慎重地在文件上签名的。

  2. 不可重用性: 签名不可重用,即使同一消息在不同时刻的签名也是有区别的。如果将签名部分提取出来,附加在别的消息后面,验证签名会失败。这是因为签名和所签名消息之间是一一对应的,消息不同签名内容也不同,因此签名无法重复使用。

  3. 数据完整性: 在文件签名后,文件不能改变。

  4. 不可伪造性: 签名能够证明是签名者而不是其他人在文件上签名,任何人都不能伪造签名。

  5. 不可否认性: 在签名者否认自己的签名时,签名接收者可以请求可信第三方进行仲裁。

这篇关于NISP | 密码学的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144442

相关文章

密码学读书笔记小结

密码学是保证消息的私密性和完整性以及消息认证的基础。加密算法的选择和密钥的管理是安全机制的效率、性能和可用性的关键。 公钥加密算法: 分发密钥比较容易,但是对大数据量的加密性能较差密钥加密算法: 更适合大批的加密任务混合型加密协议: 例如TLS,先用公钥加密建立一个安全通道,然后使用通道交换密钥,并将此密钥用于后续数据交换。 对分布式系统攻击的分类: 窃听: 未经授权获得消息副本伪装: 在未

公钥密码学

1. 非对称密码学         非对称密码学(Asymmetric Cryptography) 中的 “非对称” 指的是用于加密数据的密钥和用于解密数据的密钥是不一样的(如果一样,那就是对称密码学)。对称密码学也称为共享密钥密码学。类似地,非对称密码学也有一个别称,即公钥密码学(Public Key Cryptography)。这是因为它使用一对公钥和私钥分别加密和解密数据。目前使用的非对称

对称密码学

1. 使用OpenSSL 命令行         在 Ubuntu Linux Distribution (发行版)中, OpenSSL 通常可用。当然,如果不可用的话,也可以使用下以下命令安装 OpenSSL: $ sudo apt-get install openssl 安装完后可以使用以下命令检查 OpenSSL 版本: $ openssl version 其输出将如下所示: O

信息安全(密码学)---数字证书、kpi体系结构、密钥管理、安全协议、密码学安全应用

数字证书 数字证书 (Digital Certificate,类似身份证的作用)----防伪标志 CA(Certificate Authority,电子商务认证授权机构)----ca用自己私钥进行数字签名 数字证书 姓名,地址,组织 所有者公钥 证书有效期 认证机构数字签名 ■ 公钥证书的种类与用途 ■ 证书示例  ·序列号04 ·签名算法md5RSA ·颁发者

Python密码学:cryptography库

在数字时代,确保数据的安全性和隐私至关重要。Python中的cryptography库是一个全面的包,为Python开发者提供了密码学原语和配方。它支持高级配方和常见密码学算法的低级接口。 cryptography库概述 cryptography库旨在易于使用且默认安全。它包括各种密码学操作的高级和低级API,如: 对称加密非对称加密哈希函数消息认证码(MAC)数字签名密钥管理 crypt

区块链应用,密码学会议书籍推荐以及隐私保护知识整理

基于区块链技术的安全多方计算项目示例 1. iCube——全球首个安全多方计算区块链金融项目 iCube团队通过与美国普渡大学区块链人工智能实验室深度合作,实现了区块链的安全多方计算。iCube建立了面向信息的终极抽象基础层和基于个人工智能的算法模型层,内置图灵完备编程语言和自主开发的MPC 算法沙盒,从而实现了区块链的多方安全计算。其整个架构如下: 从以上架构图可以看出,与传统区块

读软件开发安全之道:概念、设计与实施08密码学(下)

1. 对称加密 1.1. symmetric encryption 1.2. 使用各方共享的密钥来隐藏数据 1.2.1. 对称加密在本质上依赖共享密钥 1.3. 所有加密都是通过对明文进行转换,把明文消息(或者原始消息)变成无法识别的形式(也称为密文)​,从而隐藏原始消息内容的 1.4. 可逆的转换称为对称加密,因为只要知道密钥,我们就既可以进行加密,也可以进行解密 1.4.1.

密码学之广播加密

1.什么是广播加密 广播加密是一种支持在不安全的公开信道上实现多用户数据安全共享的加密技术,适用于一对多安全传输场景。 2.广播加密的工作原理 数据拥有者首先选取一组接收者,运行广播加密算法,将加密得到的密文发布到公开信道,监听该信道的所有用户均可获取密文,但只有授权用户可利用解密密钥正确解密,未授权用户不能从密文中获取任何明文信息。 3.应用场景 广播加密在付费电视、数字版权保护及区块

密码学之RSA算法

文章目录 1. RSA算法介绍1.2 算法历史与发展1.3 算法应用场景 2. RSA密钥生成2.1 选择素数2.2 计算公钥和私钥2.3 密钥长度与安全性 3 算法原理3.1 加密原理3.2 加密方法3.3 加密示例3.4 代码实现 4. 总结 1. RSA算法介绍 1.2 算法历史与发展 RSA算法由Ron Rivest、Adi Shamir和Leonard Adleman

密码学之AES算法

文章目录 1. AES简介1.1 AES算法的历史背景1.2 AES算法的应用领域 2. AES加解密流程图2. AES算法原理2.1 AES加密过程2.2 AES解密过程 1. AES简介 1.1 AES算法的历史背景 AES算法,全称为Advanced Encryption Standard(高级加密标准),是由美国国家标准与技术研究所(NIST)于2001年正式采纳的一