天天看點

密碼學學習_我最終如何開始學習密碼學等新事物

密碼學學習

我參加了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攻擊”和“遇到中間攻擊”。

  • 密斯坦/斯坦福密碼學
  • mithi /簡單密碼術
密碼學學習_我最終如何開始學習密碼學等新事物
密碼學學習_我最終如何開始學習密碼學等新事物

這是我的合作夥伴在Rust中對某些加密攻擊的實作 。

我遇到了Cryptopals ,涉及的不是通過上課或讀書而不是通過編碼問題的解決方案來學習密碼學。 我期待着花時間去做Cryptopals提供的八組挑戰。

與上課或讀書相比,這是學習加密技術的另一種方式。 我們給您解決的問題。 它們源于現實世界系統和現代密碼構造中的弱點。 我們會為您提供足夠的資訊,以便您自己了解底層的加密概念。 完成後,您不僅會學到很多有關如何建構密碼系統的知識,而且還将了解它們是如何受到攻擊的。
密碼學學習_我最終如何開始學習密碼學等新事物

結論

總而言之,我發現這門長達30小時的課程内容豐富,有趣且值得我花時間學習, 程式設計任務确實很有趣。 擁有一個可以與您分享這次旅程的責任夥伴的确有幫助(并且更加有趣!)。

我之是以選擇不獲得證書,主要是因為我覺得僅僅完成30個小時的工作并不能真正讓我具備任何資格。 遺憾的是,該課程的第二部分尚不可用。

我仍處于密碼學旅程的開始。 我的下一個意圖是解決Cryptopals的挑戰,這是了解加密的另一種方式。

促使我踏上這一旅程的主要因素之一是,當“生活 ”總是“發生”并且您決定“是的,雖然這很有趣,但其他所有事情都更重要”時,我的感覺實在是太可惜了。 當生活阻礙了生活時,這是一種奇怪而又令人悲傷的感覺。 我想隻是為了學習而學習一些東西,這隻是一種陌生的被遺忘的沖動,這是值得的。 ❤❤❤

翻譯自: https://hackernoon.com/learning-new-things-like-cryptography-ebabc87c8b8

密碼學學習