现代密码学复习总结(一)保密学基础

保密学基本概念

保密学分为密码学(编码隐蔽)和密码分析学(破译密码)。

明文(消息):被隐蔽消息。
密文或密报:明文经密码变换成的一种隐蔽形式。
加密:将明文变换为密文的过程。
解密:加密的逆过程,即由密文恢复出原明文的过程。
加密员或密码员:对明文进行加密操作的人员称作。

加密算法:密码员对明文进行加密时所采用的一组规则。
接收者:传送消息的预定对象。
解密算法:接收者对密文进行解密时所采用的一组规则。
密钥(Key):控制加密和解密算法操作的数据处理,分别称作加密密钥和解密密钥。
截收者:在信息传输和处理系统中的非受权者,通过搭线窃听、电磁窃听、声音窃听等来窃取机密信息。

密码分析:截收者试图通过分析从截获的密文推断出原来的明文或密钥。
密码分析员:从事密码分析的人。
被动攻击:对一个保密系统采取截获密文进行分析的攻击。
主动攻击:非法入侵者、攻击者或黑客主动向系统窜扰,采用删除、增添、重放、伪造、等篡改手**段向系统注入假消息,达到利己害人的目的。

在这里插入图片描述

明文消息空间 M;明文 m∈M。
密文消息空间 C;密文 c∈C。
密钥空间 K1、K2。单钥时,K1=K2=K。密钥 k∈K。
加密变换 E_k1∈E,c = E_k1(m)。
解密变换 D_k2∈D,m = D_k2(c)。

密码学三要素:机密性、完整性、认证性。

密码体制有两大类:单钥体制、双钥体制。

其中单钥分为流密码和分组密码。
双钥体制如下:ka1、kb1是公钥,ka2、kb2是私钥。

双钥体制加解密: m = D_kb2(c) = D_kb2(E_kb1(m))
双钥认证体制:用户A以自己的秘密钥ka2对消息m进行A的专用变换D_ka2, A计算密文:c=D_ka2(m)送给用户B, B验证m:m = E_ka1(c) = E_ka1(D_ka2(m))

双钥保密和认证体制
A计算的密文:c = E_kb1(D_ka2(m))
B验证和解密:m = E_ka1(D_kb2(c )) = E_ka1(D_kb2(E_kb1(D_ka2(m)))) = E_ka1(D_ka2(c))

古典密码

分为置换密码和代换密码。
置换密码指明文字母保持不变,但顺序打乱;代换密码指明文字母被替换,但顺序不变。
// 置换密码举例:斯巴达密码棒。

代换密码又可继续下分为单表代换、多表代换、多字母代换。
单表代换:一个明文字母对应的密文字母是确定的。
多表代换:一个明文字母表示为多个密文字母。
多字母代换:用密钥字母和其他字母构造密钥表矩阵,加密是则采用代换规则。

所以代换密码的加密变换实际上就是在密钥空间下的,在f(关系)和k(密钥)作用下字母表之间的映射。
一般选择q=q’,即明文和密文字母表相同。此时,如果L=L’,则是一对一的映射;如果L<L’,则有数据拓展;如果L>L’,则有数据压缩。

综上,当L=1时,称为单字母代换,也叫流密码。在A=A’、q=q’、L=1时,用一个固定的代换表,则为单表代换。用一个以上的代换表,则为多表代换。当L>1时,就是多字母代换。

单字母代换密码类型举例:
单表代换
1、移位代换密码,也叫加法密码。(例子:凯撒)E_k(i) = i+k ≡ jmodq (q为表长)
2、乘数密码,又叫采样密码。E_k(i) = i*k = jmodq
3、仿射密码。E_k(i) = ik1+k0 ≡ jmodq,其中以[k1, k0]表示密钥。
4、多项式代换密码。前三种实际上都是它的特例。
5、密钥短语密码。选一个短语,去掉重复字母,依次排列,构成字母表。
多表代换:(分为周期和非周期)
1、维吉尼亚密码。
2、博福特密码。
3、滚动密钥密码。
4、弗纳姆密码。
5、转轮密码。

初等密码分析

攻击

破译或攻击密码方法

穷举破译法,又称作强力法。

分析法,有确定性和统计性两类。分为确定性分析法和统计分析法。

密码可能经受的不同水平的攻击

惟密文破译。分析者从仅知道的截获密文进行分析,试图得出明文或密钥。

已知明文破译。分析者除了有截获的密文外,还有一些已知的明文-密文对(通过各种手段得到的),试图从中得出明文或密钥。

选择明文破译。分析者可以选定任何明文-密文对来进行攻击,以确定未知的密钥。

选择密文攻击。分析者可以利用解密机,按他所选的密文解密出相应的明文。双钥体制下,类似于选择明文攻击,他可以得到任意多的密文对密码进行分析。

这几类攻击的强度依次增大,唯密文攻击最弱。

无条件安全和计算安全

对密码体制的任何攻击,都不优于(对明文)完全盲目的猜测,这样的密码体制就称为无条件安全的(或完善保密的)。

计算安全是一个模糊的概念。广义上被定义为三个级别。超出攻击者计算能力为最高级;代价大于收益或破译时间大于密钥有效期,为第二级。

  • 29
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用 JavaScript 编写的记忆游戏(附源代码)   项目:JavaScript 记忆游戏(附源代码) 记忆检查游戏是一个使用 HTML5、CSS 和 JavaScript 开发的简单项目。这个游戏是关于测试你的短期 记忆技能。玩这个游戏 时,一系列图像会出现在一个盒子形状的区域中 。玩家必须找到两个相同的图像并单击它们以使它们消失。 如何运行游戏? 记忆游戏项目仅包含 HTML、CSS 和 JavaScript。谈到此游戏的功能,用户必须单击两个相同的图像才能使它们消失。 点击卡片或按下键盘键,通过 2 乘 2 旋转来重建鸟儿对,并发现隐藏在下面的图像! 如果翻开的牌面相同(一对),您就赢了,并且该对牌将从游戏中消失! 否则,卡片会自动翻面朝下,您需要重新尝试! 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox, 以获得更好、更优化的游戏体验。要玩游戏,首先,通过单击 memorygame-index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
使用 JavaScript 编写的 Squareshooter 游戏及其源代码   项目:使用 JavaScript 编写的 Squareshooter 游戏(附源代码) 这款游戏是双人游戏。这是一款使用 JavaScript 编写的射击游戏,带有门户和强化道具。在这里,每个玩家都必须控制方形盒子(作为射手)。这款射击游戏的主要目标是射击对手玩家以求生存。当它射击对手时,它会获得一分。 游戏制作 该游戏仅使用 HTML 和 JavaScript 开发。该游戏的 PC 控制也很简单。 对于玩家 1: T:朝你上次动作的方向射击 A:向左移动 D:向右移动 W:向上移动 S:向下移动 对于玩家2: L:朝你上次移动的方向射击 左箭头:向左移动 右箭头:向右移动 向上箭头:向上移动 向下箭头:向下移动 游戏会一直进行,直到您成功射击对手或对手射击您为止。游戏得分显示在顶部。所有游戏功能均由 JavaScript 设置,而布局和其他次要功能则由 HTML 设置。 如何运行该项目? 要运行此项目,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要运行此游戏,首先,通过单击 index.html 文件在浏览器中打开项目。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值