密码学基础
szlzeng
这个作者很懒,什么都没留下…
展开
-
Cryp.1.大整数相乘---分治法
1. “两个n位数相乘”的任务被分解为几个形式相同但规模较小的任务,即“两个n/2位数相乘”。我们连续分解,直到任务成为“一位数相乘”; 2. 将规模为n的任务分解为规模为n/2的任务时,设法分解成3个子问题,而不是4个。转载 2017-09-04 16:34:28 · 1201 阅读 · 0 评论 -
crypt.2.最大公约数:欧几里得算法
欧几里得算法1 If a<b 交换a和b;2 While b>03 计算整数q, r, 满足 a=q×b+r, 其中0£r<b;4 a:=b; b:=r;5 输出a转载 2017-09-04 17:24:22 · 357 阅读 · 0 评论 -
crypt.3. 计算素数表: 埃拉托色尼筛法
1 procedure PRIME NUMBER TABLE2 begin3 将2到n的所有整数列在一个表中;4 for i:=2 to sqlt(n) do5 if i在列表中 then6 for k:=sqlt(n/i) to i step -1 do7 if k在列表中 then8 从列表中删除i×k9 endif10 Endfor11 Endif12 End转载 2017-09-04 18:42:06 · 441 阅读 · 0 评论 -
crypt.4.单向函数的陷阱
如果一种操作很容易执行,而其反函数则很难,这样的函数称为单向函数。单向函数对文本加密很有用。在需要发送文本M时,我们将单向函数用于对文本M加密,用加密后的文本替代原文本发送给对方。根据单向函数的特性,加密很容易,而用其反函数解密则很难计算。这样攻击者就没有机会将密件还原为文本M。转载 2017-09-04 18:48:19 · 1124 阅读 · 0 评论 -
crypt.5. 一次性加密算法 – 最简单最安全的保密方式
OneTimePad算法(短版本)”1 Procedure OneTimePad(A, key)2 begin3 for i:=1 to n do4 A[i]:=A[i] xor key[i]5 Endfor6 End转载 2017-09-04 18:51:57 · 4732 阅读 · 0 评论 -
crypt.7. 如何共享秘密
假如发现一个秘密需要的时间长到实际上不可能接受,我们就可以说这个秘密是安全的。转载 2017-09-04 19:03:16 · 361 阅读 · 0 评论 -
crypt.6. 公钥密码
整个过程分三部分,首先是生成公钥和私钥,接下来是加密,最后是解码。创建密钥我们需要两个密钥,一个保密,另一个公开。信件是Bob发给Alice的,所以Alice需要一个私钥用于解码。为了创建私钥,Alice想出两个数并计算它们的乘积。这两个数中的第一个是私钥,另一个乘数以及乘积即为公钥。换句话说,私钥是一个数(乘数之一),公钥是两个数(一个乘数以及乘积)。公钥和私钥P 私钥(保密的乘数)11 公开的乘数143 公开的乘积转载 2017-09-04 18:54:04 · 321 阅读 · 0 评论 -
crypt.8. 网上玩牌
from:2017 CCF计算机课程改革导教班. 陈道蓄18本章将探讨并非坐在一起的玩者如何玩扑克之类的纸牌游戏。牌经由电子邮件分发。与网上的商业扑克游戏系统不同,由玩者洗牌发牌。并不需要一个所有玩者必须信任的控牌人。显然其中有些难处:玩者必须通过电子邮件发送信息以实现洗牌与发牌,但却不能因此获得有关自己发出的牌的任何信息。而且任何牌不能被发两次,这就要求发牌人知道哪些牌已经发过了。最转载 2017-09-04 19:07:28 · 333 阅读 · 1 评论