密码学学习笔记(一):密码学引言、基础概念与对称加密

什么是密码学?

密码学是一门旨在保护协议免受攻击者破坏的科学。什么是协议?协议是一个人或多个人为了完成某件事情而必须遵循的一系列步骤。

安全的通信(和存储)至关重要:

  • 电子商务、电子银行、即时通讯、移动网络、无人机、航空...

但密码系统的用途远不止于此:

  • 电子政府、电子参与、电子民主,
  • 安全外包计算和存储,
  • 隐私保护协议,
  • 匿名凭证系统,
  • 加密货币,
  • 安全举报、反审查…

密码学不等于安全,但对它做出了重大贡献。

密码学自古以来就是“艺术”。

  • 密码学家从经受住时间考验的设计中学习
  • 通过提出新系统的循环过程进行设计,以承受已知的攻击,其他人发现新的攻击。
  • 优点:倾向于产生更高效的系统
  • 缺点:只涵盖已知的攻击,只包括试图破坏它的力量

自20世纪70年代以来,密码学被视为“科学”。

  • 密码学家从一套定义明确的设计原则和模型中学习
  • 通过定义对手目标和资源的模型进行设计,证明模型中的安全性,除非基本数学问题得到解决。
  • 优点:系统的可重复使用技术,涵盖任何策略
  • 缺点:只有和模型一样好,证明可能很复杂

在古代,当统治者和将军们互相背叛并各自策划秘密行动时,他们面临最大的问题就是如何与他们信任的人分享机密信息。在此背景下,密码学的相关概念和技术应运而生。

在理解加密之前需要先理解一些概念:

  • 明文:明文指的是未被加密过的原始数据。
  • 密文:明文被某种加密算法加密之后,会变成密文。密文也可以被解密,得到原始的明文。
  • 密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。

现代加密方法:

  • 定义伪随机排列(PRP):如果具有能力X的识别器D实现目标Y的概率可以忽略不计,则F是PRP
  • 定义一个安全的加密方案:在选择的明文攻击下不可区分(IND-CPA):如果具有能力X的对手a实现目标Y的概率可以忽略不计,则加密为IND-CPA

对称加密

对称加密(Symmetric Encryption) 是密码学的重要概念之一。对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快,适合于对大数据量进行加密。

Alice和Bob生成并共享密钥K
•Alice使用K加密明文M,获得密文C,并将其发送给Bob
•Bob使用K解密密文C并得到M

加密过程如下:明文 + 加密算法 + 私钥 => 密文
解密过程如下:密文 + 解密算法 + 私钥 => 明文

对称加密方案是3种算法的集合:
•密钥生成算法(随机):
•输入:安全参数𝑛, 输出:𝑛-位键𝐾


•加密算法(可能是随机的):
•输入:键𝐾, 消息/明文𝑀, 输出:密文𝐶


•解密算法(确定性):
•输入:键𝐾, 密文𝐶, 输出:明文𝑀
 

 

Kerckhoff原则:只有密钥保密

Kerckhoff原则(1883):“The cipher method must not be required to be secret, and it must be able to fall into the hands of the enemy without inconvenience.”

按照柯克霍夫原则,一个保密系统中最重要的是密匙。只要保护好密匙,其他环节都不怕泄密,例如,算法可以公开,系统设计原理可以公开,但系统的密匙需要严格保密,这样就能实现加密的功能。然而,攻破一个密码算法的方式有很多种。对于加密算法,我们可以通过以下方式来攻击这个算法:将密钥泄露给攻击者、在没有密钥的情况下解密消息、仅仅通过观察加密的消息就可以知道消息本身等。任何对算法假设的削弱也可以认为算法被攻破。我们以高级加密标准AES (Advanced Encryption Standard) 加密算法为例。AES算法是一个由美国国家标准与技术研究院NIST (National Institute of Standards and Technology) 组织的国际竞赛的产物。 历经数年的公开分析,人们对候选算法产生了足够的信心、最终将一个最具有竞争力的算法提名为AES算法。如今,人们普遍认为AES算法是一个可靠、应用光辉反对加密算法。例如,我们每天浏览网页就会用到这个算法加密。

以公开方式构造密码算法标准的思路与Kerckhoff原则有关,该原则可以理解为:依靠保密算法来实现安全是不明智的,因为敌手很容易知道我们所使用的密码算法。因此,我们会选择公开密码算法。

如果Alice和Bob的敌手知道他们加密信息的算法,那么他们的加密算法还怎么保证安全呢?答案是密钥。协议的安全依赖密钥,而与算法本身是否保密无关。无论是我们将要学习的密码算法还是现实世界中使用的密码算法,我们通常都可以自由地进行研究和使用。

来源:

《深入浅出密码学》

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值