セキュリティ・ネクストキャンプを修了しました
ネクストキャンプについて
まずはネクストキャンプってやつを紹介します。
セキュリティ・ネクストキャンプは、セキュリティ・キャンプ全国大会に対してさらに高度な教育を行うための特別プログラムです。 参加可能な年齢の上限を25歳に引き上げ、セキュリティ・キャンプ全国大会の過去の修了生も参加可能として、若干名を募集します。(ただしセキュリティ・キャンプ全国大会との併願は不可) 参加者は、受講料や教材費などの負担なく参加することができる点は、セキュリティ・キャンプ全国大会と同様です。 用意された講義は多分野に渡り、さらに高度なものになっています。 既存の価値観にとらわれないことで新たな脅威に先取りして備え、セキュリティの多様なシーンに対応し、新たな価値を生み出していけるトップオブトップの人材を発掘・育成します。
というですね、とにかくヤバめなイベントです。しかも講義内容が幅広すぎてどうみても一人では対応できない意味不明な難易度でした。
応募課題も厳しくて、僕は7日くらいかけて書きました。別のブログで応募課題は晒します。あと、枠は10人で受付番号70番位で受かっている人がいたので、倍率は7~8倍なんじゃないかなぁ......
セキュリティ・キャンプ全国大会2019(not ネクスト)の話
2019年度の全国大会ではXトラックの暗号化通信ゼミに参加しました。このゼミはなんでもいいから暗号や通信に関する好きなものを実装してみてその仕組みを理解するゼミです。僕は当時ほとんど開発経験がなく乏しい状態でしたが、応募課題で講師の緑川さんに「自分で考えた暗号方式があって、これが良さそうなら実装してみたいです!!」って熱意をいっぱい書いた覚えがあります。
結果的に実装も案も拙いものではありましたが、その時に学んだ綺麗なコードの書き方、世の中の暗号の仕組み、論文の読み方・書き方など今でも通用する多くの技術が学べました。
また、あの時は全国の受講生だったのに、今では10人しかいないネクストの受講生にまで来れて、緑川さんや当時チューターだったお二人、ゼミの仲間には本当に感謝しています。という話を(ネクストの講義と講義の間のあまり時間がない中)緑川さんに軽くお伝えできてよかったです。
1日目から5日目
1日目
つきました!着いたので一枚、スポンサー多い!w
まずは飯、うますぎ(ちょっと多かった)
スポンサーのおかげで毎年恒例のお水見れました!!
そして今年は4年ぶりのスイーツパーティ!!!企業さんや他の受講生との交流ができましたが、15分くらいしか時間がありませんでした......😭
あ、これ夕食でした。4年前と違って最終日以外の夕食も豪華でした!
2日目
朝・昼・夜情報です。
2日目の講義はそんなに難しくなく、終わった後はぐっすり寝ました。
3日目
朝・昼・夜情報です。ここら辺で朝のお茶漬けうめ〜〜〜〜ってなっていました。
3日目から難しくなってきましたね。特に4日目の競技自作入門の準備やCanSatの準備で夜は大変でした。
4日目
昼・夜情報です。朝は眠くて撮り忘れました。鶏肉が最後焼けなくて(ろうそくみたいなので焼くタイプだった)少し残したのが悲しかったです。
5日目
朝は寝坊して食べれませんでした。
というのも、この日は朝8:30から講義で移動だったにもかかわらず、前日(というか当日)3時か4時ごろまでCanSatのコード書いてたら寝坊しました。マジですみませんでした。 でも前日の夜だけで全然動かなかったプログラムがある程度考えて動くようになり、非常に面白かったです。最終日のレース(?)もなんかなんとなくいい感じに動いている気がしたようなしなかったような気がします。
そして修了証!!!!!かっこいい!!!!!!!!経済産業大臣のサインいただき!!!!!!!!!
2019年に修了した時の修了証は今でも自室に飾っているので、これも飾ろうかと思います!
講義に関して
N1・N13『学んだ技術の本質から魅力や価値を引き出そう』
本講義は他のネクストキャンプの講義で得られた知識をより活かせるようにするための講義でした。特に、N13の方では自分の得意な技術、好きな技術からそれをどのように組み合わせることができるのか考察し、それを実現するためにはどのような技術が必要なのかを考えることができました。また、その組み合わせたり追加したりした技術から、どのようなプロダクトが作れるか検討し、発表しました。
N2・N12『低レベルGPUプログラミング』
個人的に一番面白かった講義でした。多くのエンジニアは普段CPUを使ったり、CUDAなどあまりGPUのことを意識せずにプログラムを書くことが多いです。しかし、本講義ではGPGPUへ直接命令を書いたり、GPUメモリを直接操作するなどして高速に処理できるGPGPUプログラミングを学びました。また、GPUの仕組みや、今のGPUが出来上がった歴史についても学びました。本講義の特に面白かった点としては、N12の最後の方に行われた講師によって与えられたプログラムをどのように書き換えたら高速になるか検討できたことです。話は少し変わりますが、僕は以前競技プログラミングを頻繁にやっていました。競技プログラミングで定数倍高速化を行うことはよくあると思いますが、本講義はGPGPUプログラミングで定数倍高速化をする話だったので、より奇抜な発想が必要になるテクニックが必要で面白かったです。
具体的にはネクストキャンプ成果発表会で説明した、以下のコードを高速化するテクニックを学びました。最初のコードは元のコードの抜粋で、r3
をrotate
してからr4
とr5
の積をr0
に、rf[i-1]
とr0
の和をrf[i-1]
に入れています。
for i in range(0, 16): rotate(r5rep, r3, -i) fmul(ro, r4, r5) fadd(rf[i-1], rf[i-1], r0)
しかし、0 bitのrotate
はする必要はないこと、またfadd
とfmul
は合わせて1ステップで実行することができることを利用しました。また、このコードは4重ループの一番深い箇所のコードだったため、約0.3Gflops早くなりました。
mov(r5rep, r3) nop().fmul(r0, r4, r5) for i in range(1, 16): rotate(r5rep, r3, -i) fadd(rf[i-1], rf[i-1], r0).fmul(r0, r4, r5) fadd(rf[15], rf[15], r0)
N3・N9『オリジナルCPUを創る』
本講義では事前に与えられたCPUの命令セットで、かつプログラムカウンタが4bitしかないCPUでどのようなプログラムが作れるか検討しました。また、後半では新しくどのような命令を追加するとより便利なCPUになるか検討しました。本講義で面白かった点として、他の受講生がPC(プログラムカウンタ)を乱用(?)していたところです。まず本CPUではリテラルの作成が大変です。そのため、リテラルXを作るためにPCをXまで進めてPCの値をACCにmoveするなどして命令長を極端に短くしていました。
N4『TDD+モブプログラミング』
(ここら辺で執筆する指が疲れてきた) 本講義ではTDDとモブプログラミングを同時に使用してソフトウェアを開発する方法を学びました。本講義では特に、頭の中に浮かんだ設計を他人に伝えるということが非常に難しく、ドライバは適度に抽象度の高い説明をしつつ、具体的は説明はしないということが重要だと学びました。
N5・N8『SimHでPDP-7ベアメタルプログラミング』
本講義は2番目に面白かったです。本講義では1960年代のコンピュータであるPDP-7をSimHというシミュレータを用いて実行し、コンピュータの仕組みについて深く学べる講義でした。また、今のUnix系のコンピュータがなかったらどのようなコンピュータができていたか検討しました。SimHというコンピュータではベクタスキャンディプレイという今とは全く違う形式のディスプレイを使っており、そのディスプレイを使って図形を描く楽しさを知ることができました。
N6・N10・N14『CanSatをはじめよう』
本講義では空き缶サイズの模擬人工衛星であるCanSatを制御するプログラムを書きました。CanSatはGPS、ジャイロセンサ、地磁気センサなど様々なセンサがついていますが、そのどれも精度が低くて制御が大変でした。深夜にデバッグしまくってどうにかなんとか動いたような動かなかったようなものができて面白かったです。
↓CanSatを散歩させているの図
↓深夜ソロデバッグの図(割と楽しかった)
N7・N11『競技自作入門』
本講義では新しいセキュリティ系の競技が作れないか検討しました。僕は鍵を開錠する時間を競う競技と、宝探しとOSINT CTFを混ぜた競技を提案しました。後者を実際にやってみて課題は多かったものの、概ね楽しく実施することができました。
(こんな感じの写真を使いました)
講義以外に関して
LT会
1日目の発表でした。発表当日の朝電車の中で書きました。まさかセキュリティ業界のプロ200人くらいの前で話すとは思わず、少し驚きましたが、発表慣れしてきたのか思ったより緊張せずに落ち着いて話せました。2019年の成果発表の時はガチガチに緊張したのに......
会場ではウケを狙ったスライドで結構笑いが起きて、非常に有意義な時間でした。
終わりに
セキュリティ・ネクストキャンプは君を待ってます!!!!!!!
応募課題とか全国大会どのコース行けばいいとか相談いつでも乗るのでTwitterとかで連絡いただければ...!!
↓あと、これは目元を隠したら怪しい人っぽくなった俺です
終わり