浅谈密码学

文章目录

每日一句正能量

人生在世,谁也不能做到让任何人都喜欢,所以没必要去讨好别人,更不必纠结于别人对自己的评价,珍惜那些珍惜自己的人,忽略哪些忽略我们的人,做自己喜欢的自己就好。

前言

密码学作为一门研究信息安全的学科,扮演着保护我们数字化生活的重要角色。在当今信息时代,我们的个人和商业数据面临着越来越多的威胁,如黑客攻击、数据泄露等。而密码学的出现为我们提供了一种科学的方法,能够确保我们的信息在传输和存储过程中不被未授权的人访问和篡改。本文将简要介绍密码学的基本原理和应用领域,以及其在保护数字化生活中的重要性。通过了解密码学的基础知识,我们将能更好地保护个人隐私和敏感信息,建立一个安全可信的网络环境。

什么是密码学

密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。电报最早是由美国的摩尔斯在1844年发明的,故也被叫做摩尔斯电码。它由两种基本信号和不同的间隔时间组成:短促的点信号 .,读 的 (Di);保持一定时间的长信号---,读答 (Da)。间隔时间:滴,1t;答,3t;滴答间,1t;字母间,3t;字间,5t。

引用自百度百科

**官方定义:**密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律,应用于编制密码以保守通信秘密的,称为编码学;应用于破译密码以获取通信情报的,称为破译学,总称密码学。

通俗理解:密码学是隐藏信息的科学和艺术,因此它们是保密的,然后"取消隐藏"它们,以便只有预期的接收者才能阅读它们。基本上,我们可以说密码学是秘密消息传递的科学。

对称加密简述

经典密码学关注的是对密码的设计和使用,使得在有第三方窃听者监听消息的情况下,双方能够发送消息而不被监听者看到。监听者可以监视他们之间的所有消息。上面所说的"密码"就是后面我们要说的"加密方案"。所有经典密码学的安全性都依赖于一个秘密------密钥 (key)------由通信双方提前生成并交换而窃听者无法获取。这种方式就是private-key encryption。

在密码学中,我们将加密方案分为private-key (symmetric) encryption和public-key (asymmetric) encryption。

在private-key encryption中,当通信双方想要秘密通信的时候,提前交换一个key。其中一方可以使用这个key来加密一条消息,或者叫明文 (plaintext),然后发送给另一方。因此可以说,其中一方将一个密文ciphertext发送给了另一方。接收者使用key解密这个密文,得到了原始消息。这里的key都是相同的,并且用于明文和密文之间的转换。这也是为什么人们将之称为symmetric encryption。然而asymmetric encryption与之相反,其加密和解密使用的是不同的key。

加密语法

正式地,一个private-key encryption方案由一个消息空间M和三个算法 (Gen 、Enc和Dec) 组成。

  • Gen:密钥生成算法

  • Enc:加密算法

  • Dec:解密算法

这三个算法的功能描述如下:

  1. Gen是一个概率算法,根据某种分布,输出一个密钥k。

  2. Enc将一个密钥k和一个明文消息m作为输入,输出一个密文c,即Enck(m)表示用密钥k对明文消息m进行加密。

  3. Dec将一个密钥k和一个密文c作为输入,输出一个明文消息m。即Deck©表示用密钥k对密文消息c进行解密。

所有由Gen生成的密钥k组成了一个密钥空间,记为K。由Dec生成的密文c 组成了一个明文空间,记为C。

一个加密方案必须满足如下确定性要求:对于每一个由Gen输出的密钥k和每一个明文消息m∈M,Deck (Enck(m) = m

对称加密流程:运行Gen来生成密钥k,当一方想要发送明文消息m给另一方时,

他计算c : = Enck(m),

然后在公开信道中将密文c发送给对方。

接收者收到密文c后,

计算m : = Deck©来得到原始消息。

" := "表示确定性等式,假设此处的Enc是确定性的,Enc是概率性的算法

Kerckhoffs原则

"加密方案没有必要保密,它可以被敌人轻易获得。"

也就是说,即使窃听者知道加密方案的所有细节,只要攻击者不知道正在使用的密钥k,这个加密方案应该是安全的。故,Kerckhoffs的原则要求安全性仅仅依赖于密钥k的保密。

理由:

  1. 保密一个密钥k比保密一个相对复杂的加密方案更加容易,尤其是在加密方案被广泛使用的情况下。

  2. 如果诚实方共享的秘密信息被泄漏,更换密钥比更换加密方案容易得多。此外,生成一个新的随机密钥是相对简单的,而设计一个新的加密方案则是一个巨大的工程。

  3. 在广泛部署加密方案之前,鼓励公众对该方案进行审查以检查可能存在的弱点,这是一个显著的好处。进一步地,标准化加密方案可以确保不同用户之间的兼容性,公众将使用经过公开审查的强大的加密方案。这更加令人信服。

故,广泛、公开地传播加密方案的全部细节是有利的。

常用的加密算法

常用的加密算法包括以下几种:

  1. 对称加密算法:对称加密算法使用相同的密钥来进行加密和解密。常见的对称加密算法有DES(Data Encryption Standard)、AES(Advanced Encryption Standard)和3DES(Triple Data Encryption Algorithm)。

  2. 非对称加密算法:非对称加密算法使用一对密钥,一个是公钥用于加密,另一个是私钥用于解密。常见的非对称加密算法有RSA(Rivest-Shamir-Adleman)、Diffie-Hellman和ECC(Elliptic Curve Cryptography)。

  3. 散列算法:散列算法将任意长度的数据转换为定长的哈希值。常见的散列算法有MD5(Message Digest 5)、SHA-1(Secure Hash Algorithm 1)、SHA-256等。

  4. 数字签名算法:数字签名算法使用私钥对消息进行签名,以确保消息的完整性、认证性和不可否认性。常见的数字签名算法有RSA、DSA(Digital Signature Algorithm)和ECDSA(Elliptic Curve Digital Signature Algorithm)。

  5. 密码哈希函数:密码哈希函数是对输入的密码进行哈希运算,以便在存储密码时保护用户的隐私。常见的密码哈希函数有bcrypt、PBKDF2(Password-Based Key Derivation Function 2)和scrypt。

这些加密算法在不同的应用场景中有不同的优势和适用性,选择适合的加密算法取决于安全需求和性能要求。

现代密码学的原则

  • 原则一:形式化定义:明确"安全"到底是什么意思

  • 原则二:精确的假设:事实证明,大多数密码证明依赖于关于某些数学问题的算法难度的目前未被证明的假设

  • 原则三:安全性证明:任何这样的假设都必须明确并精确地陈述。

安全的加密方案应该保证:不管攻击者已经拥有什么信息,密文都不应该泄露关于底层明文的额外信息。

威胁模型(按强度增加的顺序)

  1. 唯密文攻击(Ciphertext-only attack):敌手只观察一个密文(或多个密文),并试图确定关于底层明文(或多个明文)的信息。

  2. 已知明文攻击(Known-plaintext attack):在这里,对手能够学习使用某个密钥生成的一个或多个明文/密文对。然后,对手的目标是推断使用相同密钥产生的其他密文的基础明文的信息。

  3. 选择明文攻击(Chosen-plaintext attack):在这种攻击中,对手可以获得如上所述的明文/密文对,用于其选择的明文。

  4. 选择密文攻击(Chosen-ciphertext attack):攻击者能够额外获得其选择的密文的解密(一些信息),例如,解密攻击者选择的一些密文是否会产生有效的消息。同样,对手的目标是了解使用相同密钥生成的其他密文(对手无法直接获得其解密)的底层明文信息。

密码学的应用领域

密码学的应用领域非常广泛,包括但不限于以下几个方面:

  1. 数据保护和隐私保护:密码学可以用于保护个人数据、商业数据和政府数据的安全。例如,通过加密算法对敏感数据进行加密,使其只能被授权的用户或组织访问。

  2. 网络安全:密码学在网络通信和互联网安全中起着重要作用。例如,SSL/TLS协议使用公钥加密算法和数字签名算法来保证网络通信的安全性和完整性。

  3. 数字货币和区块链:密码学技术支持数字货币(如比特币)的安全交易和账本的可靠性。区块链中的密码学算法确保了交易的匿名性和完整性。

  4. 身份验证和访问控制:密码学技术可以用于验证用户的身份,确保只有合法用户可以访问系统资源。例如,密码学中的哈希函数和数字签名算法可以用于对用户身份进行验证。

  5. 数字版权保护:密码学可以用于保护数字内容的版权。数字水印技术使用密码学算法将一些隐藏的标记嵌入到数字内容中,以便识别和追踪盗版。

  6. 电子投票和选举:密码学也可以用于保证选举和投票的公正性和安全性。通过密码学算法,可以确保选民的投票保密性和选票的完整性。

  7. 安全协议和身份管理:在复杂的网络环境中,密码学可以用于设计安全协议和身份管理系统,以确保通信和交互的安全性。

总之,密码学是保护信息安全和隐私的关键技术,它在各个领域中都有广泛的应用。

后记

密码学是研究如何保护信息的科学和技术领域。它涵盖了加密、解密、认证、数字签名和密钥管理等方面的内容,旨在确保信息在传输和存储过程中的保密性、完整性和可用性。

在现代社会中,我们的个人和商业信息都需要得到保护,以免受到未经授权的访问和篡改。密码学的应用领域非常广泛,涵盖了各个行业和领域,包括网络通信、电子商务、电子支付、云计算、物联网、数字版权保护等。

密码学的核心在于加密算法。通过使用不同类型的加密算法,可以将原始数据转换为密文,以保护数据的机密性。对称加密算法使用相同的密钥进行加密和解密,速度较快,适合用于大量数据的加密。非对称加密算法使用一对密钥进行加密和解密,安全性更高,适合用于密钥的分发和数字签名。

然而,密码学并不是绝对安全的。随着计算机技术的发展和攻击手段的进步,一些加密算法最终会变得不安全。因此,密码学的研究和发展是一个不断进行的过程。专家们致力于研究新的加密算法、协议和技术,以应对不断变化的安全威胁。

在实际应用中,正确使用密码学也非常重要。强密码的选择、密钥管理和安全协议的设计都是保证密码学有效性的关键因素。此外,用户教育和安全意识的提高也是密码学应用的重要组成部分。

总之,密码学在保护信息安全和隐私方面起着重要的作用。对于个人和企业来说,了解密码学的基本概念和原理,正确使用密码学技术,可以有效地提高信息安全水平,保护重要数据免受未经授权的访问和攻击。

转载自:https://blog.csdn.net/u014727709/article/details/135256474

欢迎 👍点赞✍评论⭐收藏,欢迎指正

相关推荐
应长天1 天前
密码学(斯坦福)
密码学
Turbo正则2 天前
量子计算基础概念以及八大分支
密码学·量子计算
网安INF13 天前
公钥加密与签名算法计算详解(含计算题例子)
网络·算法·网络安全·密码学
KWMax13 天前
RSA加密原理及推导
加密·rsa
电院工程师14 天前
基于机器学习的侧信道分析(MLSCA)Python实现(带测试)
人工智能·python·嵌入式硬件·安全·机器学习·密码学
亚林瓜子14 天前
设置AWS EC2默认使用加密磁盘
云计算·磁盘·aws·加密
电院工程师15 天前
SM3算法C语言实现(无第三方库,带测试)
c语言·算法·安全·密码学
GettingReal16 天前
Python 构建壳来启动加密的 SpringBoot Jar 包,增加反编译难度
spring boot·python·jar·加密
小七mod17 天前
【BTC】密码学原理
web3·区块链·密码学·比特币·btc·肖臻·北大区块链
liulilittle21 天前
通过高级处理器硬件指令集AES-NI实现AES-256-CFB算法并通过OPENSSL加密验证算法正确性。
linux·服务器·c++·算法·安全·加密·openssl