2017年の夏休み(8,9月)まとめ
学部での最後の夏休みが終わった。進路と近況報告、あとは備忘録的に8,9月のまとめ
8月
大学院に合格した
大学院に合格した。大阪大学の情報科学研究科に進学が決まった。研究テーマはまだ決まってない
期末試験
院試の直後に情報系の学科の離散数学と暗号理論の期末試験があった。正直院試があったので直前1日しか勉強してないが、それまでの課題等は真面目にこなしていたので特段難しい問題はなかった。成績はBだったから、まぁそんなもんだろう。もっとがんばれたような気もするけどそれは今後頑張ればいいかと思った。どうせ専攻違う科目なので卒業要件には入らないし気にならない。
セキュリティ・キャンプ全国大会2017に参加した。
院試と期末が終わってからはセキュキャンの事前課題に追われていた。当日何してたかは以下のエントリを見て
katagaitai勉強会に参加した。
katagaitai CTF勉強会 #9 - 関東|easyに参加した。rev問実はまだ手をつけたまま復習が途中になっている。独自VM問題はVMの命令セットを解読するのにめちゃくちゃ気合がいるので、効率よく特徴をつかむことが必要かも知れない。
9月
twctfに参加した。
twctfにバイト先の仲間と参加した。warmup2問くらいしか解けなかった。writeupはこちら。
ここで解けなかったpwnの3問も復習がまだ1問しかできていない。がんばる。
BasicSecCapがおわった
専攻外だけど履修してたBasicSecCapの講義が終了した。2,3日にはJAISTでMathematicaを使って秘密分散の実装と、攻撃を行う演習に取り組んだ。BasicSecCapや離散数学と暗号理論の講義を通して、暗号や代数の基礎的なところを勉強することができてよかったと思う。正直これまで大学で受講した講義の中で満足度が一番高い講義だった。今考えると講義の演習でとけなかった問題とかは、どのみち勉強しないと行けないことだなぁと思った。頭良くなりたい。
具体的にはこんなプログラムが組まれているので、来年度以降で受講に興味ある人は調べてみるといいかも。
マルウェア解析の講義は一部toggeterでまとめました。来年はプログラム編成変わるので参考になるかわかりませんが。
バイト先のメンツでBBQをした
楽しかった。いい休日だった。リア充っぽかったけどそこにいたのは皆オタクでした。
研究テーマっぽいのが決まりそうになった
弊研究室の専門は数理最適化、統計、グラフ理論とかなんだが、耐量子暗号をすることになった。一応、調べてみると離散最適化の話との関連があったり、機械学習とも関連があったり。とはいえ、まだ基礎の勉強ばかりで離散幾何の本を進めるくらいしかしてないけど。実験系というよりは理論に近い分野だと思う。流行りの分野ではあるが、最近の話が多い。
正直今考えると学部3年のときはpracticalなことに取り組みたいと思っていたんだが、理論に近いことをすることになるとは思わかなった。感化されやすい人間なので、研究室に理論つよい人がいたというのはとても大きい要因だと思う。
サーベイ読み始めた
完全に出遅れ感あるが、大学院進学前提の大学はこんなもんだろうと思い聞かせている。90ページくらいある去年にでたサーベイを読んでいる。今3章の基本的な問題を紹介する章までよんだ。4章は最近の研究に使われている基礎なので、そこまで理解できれば最近出ている論文も理解できるくらいになるだろう。最後の章にあるOpenQuestions読んだけどなにもわからないということがわかった。

A Decade of Lattice Cryptography (Foundations and Trends in Theoretical Computer Science)
- 作者: Chris Peikert
- 出版社/メーカー: Now Publishers
- 発売日: 2016/03/24
- メディア: ペーパーバック
- この商品を含むブログを見る
Amazonで本も販売されているが、ググれば元のサーベイのpdfが出てくる。興味ある人は一読してみるといいかも知れない。
離散幾何学講義を読んだ
丸善の黄色い本。2章だけ読んで証明とか追ってみた。初学者向けなのでオススメ。

- 作者: J.マトウシェク,岡本吉央
- 出版社/メーカー: 丸善出版
- 発売日: 2015/07/01
- メディア: 単行本
- この商品を含むブログを見る
LLLアルゴリズム
LLLアルゴリズムの勉強と実装をしている。今は2次元の基底簡約まで理解したが、n次元への一般化のところやアルゴリズムが多項式時間で停止することの証明を理解するのに苦しんでいる。 Pythonでnumpyとsympyをつかって2次元の基底簡約を行うアルゴリズムを実装したが、これはやるだけだった。Mathematicaだと行列演算が楽だったことを思い出し、Mathematica使いたくなった。sageでlllがビルトインで実装されているので、sageで実装してみて評価を行いたいと思っている。
バイト先でLTした
バイト先の十数名かで集まってLTをした。僕はリバーシング入門ということでハリネズミ本参考にしながらLTしようと思ったんだけど、そもそもバイナリを読む前の前提知識(仮想メモリとかレジスタとかスタックフレームとか)がたくさん必要なことに直前になって気づいた。入力を逆順にしてXORするだけの簡単なrev問書いたけどループ処理とかのとこまで話せなかった。20分とかでやるものじゃないなと思った。
久しぶりにガンプラ組んだ
何年ぶりかわからない。小学生か中学生のときにガンプラ組んだとこあった記憶はあるが、そのあとはまったくなかった。最近ガンダムを見始めたせいで、ガンプラを組みたい気持ちが高まり、RGダブルオーライザーを買ってきて素組とスミ入れまで完成させた。つや消しでフィニッシュしたかったが、最寄りの専門店になかったのでこんどヨドバシいったときにでも探しに行く予定。充実した休日になった。
まとめ
こうやって思い返すとこの2ヶ月何やってたか見えてくるので良いと思った。思ったより進捗は出てない気もする。8月は院試、期末、セキュキャンとあとBasicSecCapがほぼ毎週あった。9月は本一章読んで理解してサーベイを3章分読んだくらい。何もしてない気持ちがしてきた。最近はもっぱら暗号とか数学をしていて、PCでやることといえばスライド作るかtex書くだけみたいになってきた。進捗が出てきて落ち着いたら院試終わりのご褒美に買ったx86エミュの本とかやりたいしCTFをやりたい。
来月の目標(追記)
振り返りポエムを書くだけ書いて満足してしまっていた。来月やりたいことは以下のとおり
サーベイの4章まで読んで見る
とりあえず最近の動向を知るの大事
LWE格子暗号やRing-LWE格子暗号について勉強する
最近PQCryptoという耐量子暗号カンファレンスで、グローバーのアルゴリズムを用いて基底簡約を行うLWEへの攻撃手法が発表されたらしく、それを読んでみたいと思っている
楕円曲線暗号
ところで量子コンピュータで実現されるShorのアルゴリズムによってRSA暗号が破られるというのは有名な話だが、なぜこのようなことが可能なのだろうか??それを理解するためには楕円曲線上での離散対数問題の理解が必要である。ということで勉強する。
量子コンピュータ
量子コンピュータを使ったアルゴリズムを理解し、構築するためには量子コンピュータについて学ばないと行けない。幸い、学ぶべきことははっきりしているし、量子力学ほど挙動を詳細に考えることでもないだろうと思っている。 勉強するのに慶応が出してる以下の講義動画を見ている。
このシリーズは全15回を通して量子コンピュータで何ができるのか?その基礎と応用について触れている。幸い、動画なのでご飯食べながらでも見ることができる。とてもいい時代になった。
TWCTFの復習
先程書いた。その周辺にもいい練習問題があるそうなので、それにも取り組む予定。欲をいえばpwnable.twとかも取り組んでいきたい。
katagaitaiでのrev問題(DonnBeach)の復習
これは正直めちゃくちゃ根気がいる気がする。独自VMを書いてみて、それを練習問題にしてみてもいいかも知れない。
x86エミュレータ本
プラモ作ってて思ったけど、プラモデルも本も、書いてある手順通りにパーツを組み立てていくという過程は同じである。最初はよくわからないことも、全体像が見えてくる頃には、感覚がつかめているものである。まずは手を動かしてみることが大切ではないかと思う。
健康な生活を送る
最近ビタミンCのサプリを買った。自炊にしろ外食にしろ、一人暮らしだと十分な栄養を摂取することは難しい。去年は毎日キレートレモンを飲んでいたが、毎日あれ買ってたらコスパ悪いのでサプリ買ってみたので、健康に気をつける。