我如何最终开始学习密码学等新事物

我接受Coursera提供的斯坦福大学密码学I课程的经验。
密码学的第一个规则是永远不要自己实现。 “任何知道自己在做什么的人都会把它粉碎掉”

mithi /简单密码术

我所知道的生活

我确实相信,每个生活深处的人都认为密码术(一种编写和解决代码的艺术)令人着迷,并考虑对其进行更多了解。 人们想保守秘密,人们想知道别人的秘密。

当我还是个孩子的时候,我经常和我的朋友们一起做“密码算法”。 这些基本上只是替换密码,其中添加了一些复杂但完全无用的规则。 这很尴尬,也很愚蠢,但我想我们在大多数童年游戏中都玩得很开心。 然后, “生活发生了”,我从来没有真正去探索密码学。

高中来了,我遇到了西蒙·辛格Simon Singh )撰写的《密码本:从古埃及到量子密码学的保密科学》 (隶属链接),这本引人入胜的书描述了密码学历史上的亮点。 作者无法更好地表述该书的主要主题:“代码开发者与代码破坏者之间正在进行的进化之战”。 想要更多地了解代码制作和破坏的感觉又回来了。 然后, “生活发生了” ,我再也没有真正去研究密码学。

六年多以前,当Coursera推出时,他们的头几门课程之一是基于Dan Boneh教授在斯坦福大学攻读研究生课程的密码学I。 他们说,这是一个非常短的过程,大约需要30个小时才能完成。 这太酷了! 该课程不到30个小时,“我一定会尽快参加!” 我告诉自己。 但是,岁月流逝,又一次(您猜对了) “生活发生了” ,我从来没有真正去研究过密码学。

“生活 ”总是“发生”并且您决定, “是的,很好,虽然这很有趣,但是其他所有事情都更重要”,真是太可惜了。 当生活阻碍了生活时,这是一种奇怪而又令人悲伤的感觉。

暴跌

几周前,实际细节还很模糊,我开始了上述短期课程。 目前,该课程的平均评分为4.8星,有2,400多个评分和493条评论,“注册”的学生超过200,000。 太棒了!

我之所以选择不获得证书,主要是因为我觉得仅仅完成30个小时的工作并没有使我真正具备任职资格,因此该证书几乎100%无用(例如我的童年“密码算法”)。 人们购买证书的原因之一是因为它可以帮助他们完成课程。 就我个人而言,我认为这种心理不适用于我。 我的意思是,它对健身没有帮助。 😔

以我的经验,最有帮助的是在这个课程中有一个问责伙伴,一个同学。 您不仅有“压力”来完成课程,而且还可以互相启发想法,更重要的是,它更有趣!

入门

该课程分为六个部分-六套一口大小的视频,并附带测验和编程作业。 一切之后都要进行“期末考试”。 测验和期末考试各有10–16个选择题。 您可以使用所需的任何编程语言进行编程任务,因为该课程仅在给定特定输入的情况下验证程序的输出。

我认为,进行测验是课程中最重要甚至最重要的事情之一。 当然,编程任务是我最喜欢的也是最有趣的部分,但是测验确实测试了您的理解。

这可能与传统的课堂教学背道而驰,但是我认为讨论您的思考过程并就为什么您认为在提交之前与同学认为您对给定问题的答案是正确的进行交流也是一个很好的主意。 即使经过讨论,我仍然得到一些错误的答案! 我希望每个测验还有更多问题。

简而言之,用我自己的话说,我认为密码学就是关于构造,分析和破坏旨在防止他人读取私人消息的系统。 同时,这是关于确保收到的消息是实际发送的消息。 实际上,现代密码学已远远超过了此范围,例如在去中心化系统,数字签名,匿名通信,匿名数字现金等方面起着关键作用。

“如果没有受信任的权威机构可以做的任何事情,也可以做到。”

Dan Boneh教授为我们设定的目标是学习密码原语如何工作以及如何正确使用密码以及安全性的原因。 他建议记笔记并经常暂停视频以考虑材料。 这绝对是有帮助的。 同样,这确实有一个责任心合作伙伴和同学来参加本课程。

尽管加密是一种强大的工具,并且是许多安全机制的基础,但Dan强调说,加密并不是解决所有安全问题的解决方案,除非可靠实施和使用,否则它是不可靠的,也不应该尝试自己发明。 他多次强调。

在整个课程中,他将讨论许多已在现实世界中部署的破坏密码系统的示例:

加密虽然非常有用,但也非常脆弱。 最安全的密码系统可能由于单一规范或编程错误而变得完全不安全。 大量的单元测试都不会发现密码系统中的安全漏洞。

他继续解释说,在某些合理的假设下,我们必须依靠数学建模和证明来证明该特定系统如何满足安全属性。 他还强调,该课程是关于在精确假设下给出精确安全目标的情况下构建实用密码系统的。

上面的图像是该课程随附的本书草稿的序言。 本课程涉及第一部分和第二部分的第一部分
我最喜欢的部分

我说过,尽管我认为测验是最重要的,但编程任务却是最有趣的,当然也是我最喜欢的部分。 尽管它们是“玩具问题”,但它们帮助巩固了我对这个问题的理解和理解。

我必须解密使用相同密钥加密的“截取的”流密文( 一个流密文绝不能使用超过一次 !)。 我必须从头开始实现分组密码和基本教科书RSA。 我建立了一个玩具文件验证系统,该系统可以模拟如何在下载视频块时进行验证和播放,而不必等待整个文件。 我编写了一些脚本,以在公共模数生成不正确时破解RSA(这是您不应该自己实现密码系统的另一证明!)。 我编写的代码演示了“ padding oracle攻击”和“遇到中间攻击”。

这是我的合作伙伴在Rust中对某些加密攻击的实现

我遇到了Cryptopal ,涉及的不是通过上课或读书,而是通过编码问题的解决方案来学习密码学。 我期待着花时间去做Cryptopals提供的八组挑战。

与上课或读书相比,这是学习加密技术的另一种方式。 我们给您解决的问题。 它们源自现实系统和现代密码构造中的弱点。 我们会为您提供足够的信息,以便您自己了解底层的加密概念。 完成后,您不仅会学到很多有关如何构建密码系统的知识,而且还将了解它们是如何受到攻击的。

结论

总而言之,我发现这门长达30小时的课程内容丰富,有趣并且值得我花时间学习。 编程任务确实很有趣。 拥有一个可以与您分享这次旅程的责任伙伴的确有帮助(并且更加有趣!)。

我之所以选择不获得证书,主要是因为我觉得仅仅完成30个小时的工作并不能真正让我具备任何资格。 遗憾的是,该课程的第二部分尚不可用。

我仍处于密码学旅程的开始。 我的下一个意图是解决Cryptopals的挑战,这是了解加密的另一种方式。

促使我踏上这一旅程的主要因素之一是,当“生活 ”总是“发生”,而您决定“是的,虽然这很有趣,但其他所有事情都更加重要”时,我的感觉真是太可惜了。 当生活阻碍了生活时,这是一种奇怪而又令人悲伤的感觉。 我想只是为了学习而学习一些东西,这只是一种陌生的被遗忘的冲动,这是值得的。 ❤❤❤

From: https://hackernoon.com/learning-new-things-like-cryptography-ebabc87c8b8

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值