密码学基础

目录

一. 完美保密

二. 密码学中随机性

2.1 基本介绍

2.2 举例

三. 密码方案

3.1 密钥生成算法Gen

3.2 加密算法Enc

3.3 解密算法Dec

四. 小结


一. 完美保密

如果敌手的计算能力是无限的,某密码方案也是可证明安全的,则称之为完美保密(perfectly secret)。区别于经典密码学(classical cryptography),现代密码学(modern cryprography)都可以采用严格的数学方法来证明安全性。现代密码学起源于1970年,完美保密性是不依赖于未证明的计算性假设。

密码学的方案通常包含概率性试验和随机性算法。比如在私钥加密中(其实就是对称加密),通信的双方会产生随机的密钥。随机性对网络安全性影响巨大,接下来我们将简单解释下密码学中所用的随机性。

二. 密码学中随机性

2.1 基本介绍

随机性来源于独立或均匀的随机比特,从而产生非确定性的算法。举个简单例子,我们可以通过手动抛硬币来产生少量的随机且均匀的比特串。

密码学中把产生随机数的模块叫做随机数生成器(random number generation),其内部的运行可以简单的分成两步。

第一步:高熵的数据源

我们知道事件不确定性越大,其熵也就越大。首先收集来自高熵源的数据,这些数据可以来源外部输入,比如网络延迟率,硬盘写入时间,键盘敲击次数,鼠标移动路径等等。当然也可以利用更加随机且不可预测的事件来作为熵源。从硬件角度来看,包括热噪声,散粒噪声(shot noise),放射性衰变(radioactive decay).部分因特尔处理器在芯片上利用率热噪声来产生高熵的数据源。硬件角度的随机数生成器比外部随机数源产生高熵数据的速率要更快。

第二步:产生均匀且随机的比特串

将高熵的数据源转为均匀且随机的比特串。

2.2 举例

假设某个数据源产生1的概率为p,产生0的概率为1-p。在未知p的情况下,如何将该分布转变为均匀且随机的比特串,也就是产生1和0的概率均为0.5?

解:

如果看到10,则记作0,此概率为p(1-p)

如果看到01,则记作1,此概率为p(1-p)

如果看到00或11,则直接舍去

由此0的概率和1的概率,经过归一化后则都为0.5。

以上则是最经典的把高熵的数据源转变为均匀且随机的比特串。

密码学对随机性的要求非常严格,比如C语言库有个函数为rand(),这是产生的随机数是不满足密码学的安全性的。

三. 密码方案

密码学的方案包含三个基本的算法:

生成参数:Gen

加密算法:Enc

解密算法:Dec

部分参数也是需要提前给定的,比如说明文空间M,满足:

|M|>1

3.1 密钥生成算法Gen

密钥生成算法Gen是一个概率性算法,该算法会根据某些分布来输出密钥k,将所有可能得密钥集合在一起则称之为密钥空间K。通常密钥空间是有限的。

3.2 加密算法Enc

从密钥中选择k\in K,从明文空间中选择m\in M,借助加密算法Enc则形成密文c。将以上过程写做:

c\leftarrow Enc_k(m)

加密过程也是一个概率性算法,也就是对于同一个密钥和明文,可能会输出不同的密文。在未给特殊说明时,密码学中的选取通常为均匀且随机的选择。

如果是确定性的加密过程,则会写做:

c=Enc_k(m)

将所有的密文集合称之为密文空间C。这其中包含了明文空间,密文空间,加密时使用的随机性。

3.3 解密算法Dec

加密算法的输入是密钥k,密文c,输出是明文m(也写作message)。对于给定的密钥k和密文c,如果加密的正确率为1,则称之为完美正确性(perfect correctness)。写做:

Dec_k(c)=m

很显然,明文只有一个m,所以解密算法肯定为确定性算法。

四. 小结

密码学包括密码编码学和密码分析学两部分。

密码编码学是研究设计构造一个符合规定安全要求的密码系统,即如何设计相应的加密和解密算法、密钥和安全协议,使得密码系统能够达到所需要的安全性。密码分析学是研究在解密密钥和密码体制未知的情况下如何恢复明文的科学。

这两部分既对立又统一,正是这两者的对立和统一推动了密码学的发展。密码分析学的具体内容涉及很多数学和网络安全的知识。

密码攻击的目标有不同的层次,可以分为如下4种:

1. 完全攻破(Total Break):发现密码系统所用的密钥,使得所有密文均可破译,并且攻击者可以按照自己的需要产生假冒的密文。

2. 全局演绎(Global Deduction):攻击者找到解密算法的一个等价算法,无须密钥便可进行解密。3. 局部演绎(Local Deduction):攻击者发现一个或多个密文所对应的明文,这将为发现实际使用的密钥提供线索,对有些算法还可实施完整性攻击。

4. 信息演绎(Information Deduction):密码分析者发现了与实际系统使用的密钥或明文有关的信息,如密钥的部分、明文的格式甚至是一些关键词等,这些信息将有助于进一步进行密码分析。

针对一种密码攻击方法的有效性和复杂性,主要从时间、空间、数据等几个方面的指标综合衡量,具体如下:

(1)时间复杂度:完成攻击所需要的时间,包括数据采集时间和分析处理时间,为统一不同设备运算频率的不同,一般用加解密的次数进行衡量。

(2)空间复杂度:用进行攻击所需要的存储空间大小进行衡量。

(3)数据复杂度:用攻击者所需要收集的数据总量进行衡量。

(4)成功概率:攻击者实施攻击后成功恢复密钥的概率。攻击的复杂性取决于以上因素的最小复杂度,在实际实施攻击时往往要考虑这种复杂性的折中,如存储需求越大,攻击可能越快。此外,计算复杂度越高也表示加密系统的安全性越好。在密码分析中,计算复杂度或攻击复杂度通常是指时间复杂度和空间复杂度。

  • 28
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Dan Boneh 是一位著名的密码家和计算机科家,他开设的密码基础课程被广泛认为是密码的理想选择。 在 Boneh 的密码基础课程中,生将密码的基本概念、原则和技术。课程内容涵盖了对称加密、公钥加密、哈希函数、数字签名等关键密码算法和协议的深入讲解。 在课程开始的阶段,Boneh 会简要介绍密码的历史背景和基本概念,然后逐步引入重要的密码算法。生将习如何使用对称加密算法来保护数据的机密性,如何使用公钥加密算法来实现安全的通信,以及如何使用哈希函数来验证数据的完整性。 此外,课程还将涵盖一些高级密码主题,如数字签名和零知识证明等。生将习如何使用数字签名算法来验证数据的身份和完整性,以及如何使用零知识证明来实现安全的认证和身份验证。 Boneh 的密码基础课程注重理论与实践相结合,生将有机会参与编写和分析密码算法的代码。通过实践,生将更深入地理解密码的核心概念和实际应用。 总而言之,Dan Boneh 的密码基础课程是一门全面且深入的密码课程,能够帮助生建立扎实的密码基础,为深入研究密码或从事密码相关工作打下坚实的基础。毫无疑问,这是一门高品质的密码课程,值得推荐给对密码感兴趣的生和从业人员。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唠嗑!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值