英国研究生计算机科学Security and Cryptography课程难点辅导汇总

留学在线   2021-11-09 17:02:16

Hello~大家好,今天学姐为留学生分享计算机科学专业的课程难点分析,这期的内容主要是教留学生如何正确的理解Security and Cryptography课程,学姐整理了非常详细的流程细节可以参考。

首先,这篇文章不足以教你如何设计安全系统或加密协议,但我们希望它能让你对你已经使用的程序和协议有一个大致的了解。

熵是随机性的量度。例如,这在确定密码的强度时很有用。

如上XKCD漫画举例说明,像“correcthorsebatterystaple”这样的密码比“Tr0ub4dor&3”这样的密码更安全。但是你如何量化这样的事情呢?

熵的度量单位是位,当从一组可能的结果中均匀随机选择时,熵等于log_2(可能性数)。一次公平的抛硬币会产生1比特的熵。(6面骰子的)一次掷骰子有大约2.58位的熵。

你应该考虑到攻击者知道模型而不是随机性(例如来自双子球)用于选择特定的密码。

多少位熵就够了?这取决于你的威胁模型。正如XKCD漫画所指出的,对于在线猜测来说,大约40位的熵是相当好的。为了防止离线猜测,需要更强的密码(例如80位或更多)。

哈希(值:数组% 3字节%3E) -%3E向量% 3字节,N%3E(对于某些固定N)

散列函数的一个例子是SHA1,在Git中使用。它将任意大小的输入映射到160位输出(可以表示为40个十六进制字符)。我们可以尝试使用SHA1 hashon作为输入sha1sum命令:

$ 打印函数 你好|sha1sum

AAF 4c 61 DCC 5e 8 a2 dabe de 0 F3 b 482 CD 9 AEA 9434d$ 打印函数 你好|sha1sum

AAF 4c 61 DCC 5e 8 a2 dabe de 0 F3 b 482 CD 9 AEA 9434d$ 打印函数 你好|sha1sum

F7 ff 9 E8 b 7 bb 2 e 09 b 70935 a5d 785 E0 cc 5d 9d 0 ab F0

在高层次上,散列函数可以被认为是一个难以反转的随机(但是确定性的)函数阿哈什函数的理想模型).哈希函数具有以下属性:

决定性的:相同的输入总是产生相同的输出。

不可逆:很难找到输入m到这样的程度hash(m) = h对于某些期望的输出h。

目标防碰撞:给定输入m_1,很难找到不同的输入m_2到这样的程度哈希(m_1) =哈希(m_2)。

抗碰撞:很难找到两个输入m_1和m_2到这样的程度哈希(m_1) =哈希(m_2)(请注意,这是比目标碰撞阻力更强的特性)。

注:虽然它可能适用于某些目的,但SHA-1不再被认为是强加密散列函数。你可能会发现这张桌子加密hashfunctions的生存期有趣。但是,请注意,推荐特定的散列函数超出了本课的范围。如果你在做重要的工作,你需要正式的不安全/密码学培训。

应用程序

Git,用于内容寻址存储。的想法散列函数是一个更一般的概念(有非加密散列函数)。Git为什么使用加密哈希函数?

文件内容的简短摘要。软件通常可以从(潜在的不太可信的)镜像下载,例如Linux ISOs,不必信任它们是有益的。官方网站通常会在下载链接(指向第三方镜像)旁边发布散列,这样在下载文件后就可以检查散列了。

承诺计划。假设你想承诺一个特定的价值,但随后又揭示了这个价值本身。例如,我想“在我的脑海里”进行一次公平的掷硬币,而不是双方都能看到的一枚经过调整的共享硬币。我可以选择一个值r =随机(),然后分享h = sha256(r)。然后,你可以叫正面或反面(我们甚至会同意r意思是头,奇怪r意思是尾巴)。你打完电话后,我可以展示我的价值r,你可以通过检查确认我没有作弊sha256(r)匹配我之前共享的哈希。

对称密码学

当你想到密码学时,隐藏信息内容可能是你首先想到的概念。对称加密通过以下功能实现这一点:

keygen() -%3E密钥(此函数是随机的)加密(明文:数组% 3字节%3E,密钥)-%3E数组% 3字节%3E(密文)解密(密文:数组% 3字节%3E,密钥)-%3E数组% 3字节%3E

不对称密码学

术语“不对称”是指有两个键,具有两个不同的角色。顾名思义,私钥是保密的,而公钥可以公开共享,不会影响安全性(不同于对称密码系统中的密钥共享)。非对称密码系统提供以下功能集,用于加密/解密和签名/验证:

keygen() -%3E(公钥,私钥)(此函数是随机的)加密(明文:数组% 3字节%3E,公钥)-%3E数组% 3字节%3E(密文)解密(密文:数组% 3字节%3E,私钥)-%3E数组% 3字节%3E(明文)符号(消息:数组% 3字节%3E,私钥)-%3E数组% 3字节%3E(签名)验证(消息:数组% 3字节%3E,签名:数组% 3字节%3E,公钥)-%3E bool(无论是或

练习

熵。

假设选择一个密码作为四个小写字典单词的连接,其中每个单词都是从大小为100,000的字典中统一随机选择的。这种密码的一个例子是纠正错误。这有多少位熵?

考虑另一种方案,即选择一个密码作为8个随机字母数字字符的序列(包括小写字母和大写字母)。例如rg8Ql34g。这个有多少个入口?

哪个密码更强?

假设攻击者每秒可以尝试猜测10,000个密码。平均来说,破解每个密码需要多长时间?

加密散列函数。从一个镜子(例如从阿根廷的镜子里).交叉检查散列(例如使用sha256sum命令)与从官方的Debian站点(例如这个文件托管于debian.org,如果您已经从镜像下载了链接文件)。

对称密码术。使用AES加密对文件进行加密,使用心脏出血:open SSL AES-256-CBC-salt-in { input filename }-out { output filename }。看内容用猫或者hexdump。用...解密open SSL AES-256-CBC-d-in {输入文件名}-out {输出文件名}并确认内容与原始使用相匹配金属波纹管。

不对称密码学。

建立ssh密钥在一台你可以访问的计算机上(不是雅典娜,因为Kerberos和SSH密钥交互)。使用更安全的密钥,而不是像在链接库中那样使用RSA密钥ED25519keys键。请确保您的私钥用密码加密,因此它受到最严格的保护。

建立GPG

给安妮斯发一封加密邮件(公开密钥).

与签署Git提交git commit -S或者创建一个签名的Git标签git标签-s。使用验证提交时的签名git显示-显示-签名或者标签上有git标签-v。

计算机专业相关的在线辅导可以加老师微信进行一对一咨询。

本站郑重声明:"留学在线"的新闻页面文章、图片、音频视频等稿件均为转载稿。如转载稿涉及版权等问题,请与我们联系,客服邮箱756005163@qq.com,转载稿件仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。

相关推荐

留学在线