tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

暗号学をCouseraで学び直した。ソフトウェアエンジニアに役立つ内容だった

修了書

couseraでスタンフォード大学が提供する暗号学のコースを修了しました。新生児の誕生という忙しい時期で心折れかけましたが、早起きや歩きながら講義を受けたりしなんとか乗り切りました。

www.coursera.org

内容素晴らしかったので、おすすめの理由を書きます。ソフトウェアエンジニアなら受けて損ないです。

暗号手法の紹介とプログラミングに直結する実践的な内容

まず、このコースでは安全な暗号手法とその実用方法について深い理解が得られます。例えば Web Crypto API encrypt関数を使う場合、複数の暗号アルゴリズム(AES-CTRなど)がありますが、それぞれの特徴やどれが推奨されているのか理解が深まります。

講義内容がひたすら濃い

講義内容は濃く、暗号学の大家であるDan boneh教授が担当しています。暗号学の基礎からスタートして応用的な内容までカバーしています。まじで濃度が高いので視聴だけでは追っつかないので、講義ノートを取ることをおすすめします。実際この講義メモだけでA3大学ノート1冊を使い切りました。
正直6週間で行う内容じゃないでしょ…と内心思いました。ちなみに自分は 9週間かかりました。

ノートの最後の扉まで使い切った

数学、整数論も学べる

コースを通じて数学、特に整数論に関しての理解が深まります。
公開鍵交換暗号において整数論が非常に重要な役割を持ちます。 この講義では整数論に関して1週間まるまる使って概要を解説してくれるので整数論に関する理解も深まりました。毎週テストがあるので、苦手だろうがなんだろうが頑張ってとかないといけません。

暗号学における独特な記述手法について学べる

暗号学には固有の記述手法があり、今まで論文を読んでいる時やゼロ知識証明で数理回路を組み立てている時にいまいちピンと来ていなかったのですが、この講義を通じてそのしきたりについて理解することができました。 例えば ⊥ とか。

bottom: 含まれないの意

最後に

おすすめな理由は以上なんですが、このコースを取る上で気をつけておきたいのが想定しているより時間がかかるということです。 特に自分は暗号学における基本的な知識が足りていなかったので20分の動画を理解するまでに2時間以上の時間を費やしたりしました。動画を視聴、徘徊、ノートを書くを繰り返してなんとか理解しました。

場合によっては その他の書籍などを参考にして理解を進めるといった工夫も必要です。最後に、この辺の話を最近のポッドキャストで話しているので、良かったら聴いてくださいませ!

‎Today I Learned:Apple Podcast内の78. 暗号学を学びなおす