セキュリティ・キャンプ全国大会2023 開発コースL1【暗号化通信ゼミ】応募課題 -------------------------- ▼ 回答に際して -------------------------- ・各設問には発展問題を追加で設定してありますが, 解いていなくても減点はされません. 「適当に全部を埋めた応募用紙より, 丁寧に書かれた発展なしの応募用紙のほうが高評価」と思ってもらって構いません. ・フォームに書ききれない場合, Gist, Qiita, 個人ブログ等の外部サービスに回答を書いてもらっても構いません. なお, 限定公開にするよう注意してください.  ・文字数制限は存在しません. 気の済むまで熱意を込めてください. ・ただ調べたことを書くだけではなく, 「どんなRFC, NIST規格, 論文, 本, Webサイト等を参照したか」のリストも書いてください. 「どの部分はどれのどこを参考にした」まで書かれている場合, これは加点対象になりますが, 無くても減点はされません.  ・これに限らず, 評価は原則として加点方式です.  ・正しく道筋を辿れている証跡があれば, 完全な正答でなくとも部分点的な評価はなされる可能性があります. ・実装問題の実装言語は問いません. ただし, 後から第三者が読んで理解できる程度のコメントを残してください. ・知らない単語ばかりに見えてしまうかもしれませんが, 「知らない」ということは「伸び幅がそこにある」ということでもあります. 是非これをきっかけとしてチャレンジしてみてください. -------------------------- ▼ 道案内 -------------------------- 本ゼミでは「プロトコルコース」「プリミティブコース」の2コースのうちいずれか片方を選択して応募していただく形となっています. それぞれ「プロトコルコース」「プリミティブコース」のセクションが用意されていますので, 選択した方のセクションに進み, そこにある設問へと回答してください. また, 2コースに共通して自己アピール問を最後に置きました. これまでの実績や, 本課題を進める過程で実装した他のスクリプト等が存在するgithubリポジトリ, はたまた学んだ結果を書いたブログ記事など, なんでもいいので書いてみてください. 何もなければ美味しいカレーの作り方でも研究室の話などでもOKです。 -------------------------- ▼ プロトコルコース -------------------------- ■ Q1. 公開鍵暗号において、相手に公開鍵を送信するときや公開鍵を受け取るときに必要な手順を、公開鍵基盤の観点から説明してください。また、考えられる解読方法について説明してください。 ■ Q2. パスワードをハッシュ化してサーバに送信して認証する方法は安全性に問題がないか説明してください。問題がある場合は、これに代わる方法を暗号プロトコルの観点から詳しく説明してください。 ■ Q3. RSA暗号化の代わりにRSA-OAEPを使用する場面や理由を説明してください。 ■ Q4. 鍵導出関数について、PBKDFとHKDFの違いを説明してください。 ■ Q5. 二要素認証として使われるTOTP(時間ベースのワンタイムパスワード)を好きな言語で実装してみてください。 ■ Q6. 自分が興味のある暗号プロトコルを一つ選び、できるだけ詳しく説明してください。余裕があれば簡単なプロトタイプを実装してみてください。GitHub等にコードがあれば、そのリンクも共有してください。 ■ Q7. 自己アピールできることがあれば, ここに書いてください. ---------------------------- ▼ プリミティブコース ---------------------------- ■ Q1. 以下の語句から一つ選び, その語句に関してできるだけ詳しく説明してください. ・AES-128-GCM ・McEliece暗号 ・Grøstl ・SIDH ■ Q1 (発展). Q1の語句に対応する発展課題を以下に示します. もしQ1が簡単だった場合, これらにもチャレンジしてみてください. なお, 複数の課題が存在する場合は全てに回答する必要はありません.  ▷「AES-128-GCM」を選択した場合   1. GCMにはnonce-reuse attackという解読手法があります. これはどのような解読手法ですか. また, 解読例を実装できますか.   2. 昨今Tweakable Block Cipherと呼ばれる方式が話題になっています. この特徴を調べ, AES-128-GCMと比較してみてください.  ▷「McEliece暗号」を選択した場合   McEliece暗号はNISTのポスト量子暗号標準化計画の候補に上がっています. なぜMcEliece暗号はポスト量子暗号として尤もらしいと考えられているのでしょうか.  ▷ 「Grøstl」を選択した場合   このハッシュ関数はSHA-3と呼ばれる標準の候補でしたが, 最終的にはKeccakという別のハッシュ関数が選ばれました. なぜGrøstlはSHA-3になれなかったのでしょうか.  ▷ 「SIDH」を選択した場合   1. 似た名前のCSIDHという手法があります. CSIDHとSIDHはどのように異なるのでしょうか.   2. 「SIDHは解読された」という報告が昨年ありました. 2023年3月時点では更に進化しているようです. 応募時点までで, SIDHの解読手法にはどのようなものがあるのでしょうか. ■ Q2. Q1で選択した暗号方式を実装してください. ■ Q2 (発展). Q2の回答に関して, 「なぜその実装は正しいのですか」と聞かれたとき, あなたならどう返答しますか? ■ Q3. あなたが面白いと思った暗号方式を一つ取り上げ, それを説明・実装してください. ■ Q3 (発展). また, その暗号が安全かどうかを説明し, 解読手法が存在するなら, それを実装してみてください. ■ Q4. 自己アピールできることがあれば, ここに書いてください.