【必須回答】
■ あなたに関する問い(1,200 字以内)
あなたは今までどのようなことをやってきましたか.
どのようなことができて,どのようなことが得意で,どのようなことに自信がありますか.
どのようなものを作りましたか.
どのような情報を発信してきましたか.
どのようにしてそうしたことをやってきましたか.
なぜ,そのようなことをやってきましたか.やってきてどう思いましたか.
参加できた場合,セキュリティ・キャンプ ネクストにどのようなことを期待し,どのようなことをやってみたいですか.
回答
私は大学の講義でPythonやJavaScript、SwiftによるiOSアプリ開発を経験し、所属する研究室では、C言語に関する考察を研究テーマとして挙げました。そして、C言語を勉強する中で、情報工学と関連する数学に強い興味を抱きました。現在履修している教職課程を通じて、情報科目が中高の数学と深く関わっていること、またデジタルマーケティングなど商業科目とも接点があることを学びました。そのため、卒業後は教壇に立ちながら通信制大学で学び、高校情報だけでなく数学と商業の教員免許も取得する計画を立てています。
大学の所属学科では数学を学ぶ機会が限られていたため、学外の学生とオンラインセミナーを立ち上げ、週1回1時間半の枠で環論や線形代数、多様体などの輪講を行ってきました。その過程で特に意識したのは「なぜそうなるのか」を自分の言葉で説明できるようにすることです。証明を読んだ後に自身の不明点や、失念していた既定の概念を整理し直すことで、時には新たな問いを立て、仲間と協力しながら主体的に学び続ける力を養いました。
数学を学ぶ中で、私は情報理論と出会いました。「ノイズのある通信路でも、理論上は誤りなく情報を伝えられる限界がある」というシャノンの通信路符号化定理を知ったとき、情報量やエントロピーという概念が通信の本質を数学的に記述していることに感銘を受け、データ圧縮や誤り訂正の原理など、情報通信をより深く学びたいと考えるようになりました。さらに大学3年次にはセキュリティ・ミニキャンプにも参加し、暗号理論やコンピュータ内部の処理への理解を深めました。
また、学んだことのアウトプットとしてブログ記事の作成にも注力してきました。「プログラミングにおける圏論の活用」や「高校数学について」をテーマに、自分が当時知りたかった情報を届ける意識で執筆しています。発信を続ける中で「わかりやすさ」と「厳密さ」の両立の難しさを実感しましたが、読者からのフィードバックを活かすことで、自分なりの情報の整理の仕方を確立できました。現在は夏のコミックマーケットで頒布する同人誌への寄稿に向け、高校情報の授業実践例を調査しています。
セキュリティ・キャンプ ネクストに参加できた際は、N6講義を通じて、これまで理論として学んできた概念を自分の手でゼロから組み上げる経験をしたいと考えています。この経験は、将来教壇に立ったときに教師としての言葉に説得力を生むと信じています。また、大学内では数理科学に関心を持つ学生との議論の場が限られていたため、同世代の優れた仲間と独自の考えや疑問をぶつけ合えることに強く期待しています。ここで議論を深めて知識を吸収するだけでなく、得られた出会いや知見を今後の卒業研究や教育活動への糧にしたいと考えています。
■ 課題への姿勢に関する問い(1,200 字以内)
自身で何らかの技術的な疑問を設定し,その疑問を解決しようと取り組み,その過程を示すことで,自身の技術力や課題に取り組むやりかたを説明してください.
(疑問の例:実行ファイルはどのような構造になっているのだろう? pingコマンドを実行すると何が起きるんだろう? オンラインゲームはどうやって通信対戦を実現しているのだろう? といったようなことです)
設定する疑問は何でも構いませんし,解決しなくても構いません.
解決できたかどうかではなく,いかに課題に取り組むかという点を評価します.
回答
大学の講義でハフマン符号を学んだ際、アルゴリズムの手順自体は理解できたものの、符号化の過程で「確率の小さい2つのシンボルを統合する」という操作を繰り返しても、途中の選択が最終的な平均符号長に影響を与えない点に疑問を持った。
取り組み
1:具体例での観察
まず、簡単な4シンボル情報源 {A:0.5,B:0.25,C:0.125,D:0.125}を設定し、符号木を作る際の結合の順序を変更して、最終的な平均符号長を比較した(実装コードは別添資料1)。
結果としては、結合の順番にかかわらず、最終的に導かれる平均符号長は1.75ビットとなり、この値は変化しないことを確認した。 この結果を見て私は、ハフマン符号には理論に関して必然性が存在しているのではないかと考えた。
2:自主学習
大学の講義で使用した教科書には証明が掲載されていなかったため、追加で北海道大学の情報理論の講義資料を使い、符号化の理論の理解を深めた。
その中で、
・補題(兄弟ノードの存在)
任意の最適符号において、最も確率の小さい2つのシンボルは符号木の同じ親を持つ兄弟ノードとして配置できること。
・帰納法による最適性の証明
n 個のシンボルに対する最適符号は、最小2つを統合した n−1 個のシンボルに対する最適符号から構成できること。
を知った。
また、「最小2つを統合する」 という操作がアルゴリズムの「貪欲法」の考え方と一致しており、これは、ハフマン符号化では「確率の小さいシンボルほど符号長が長い」という性質が任意の最適符号で成立していることとこの操作自体が最適性を損なわないことを保証しているため、平均符号長の削減につながっていることも知れた。
3;ほかの例を調べる
「貪欲法で最適解が得られない」状況を作れないかを試しました。確率分布を極端に歪ませ、 {A:0.9,B:0.05,C:0.03,D:0.02} のようなケースにおいて、ハフマン符号の平均符号長を算出した(別添資料2)。
平均符号長は1.150ビットとなった。一方、情報源のエントロピーは約0.64ビットであり、理論的にはさらに小さい平均情報量で表現可能であることが分かった。
ただ、ハフマン符号では符号長が整数ビットに制限されるため、理想的な符号長とはかけ離れることは珍しくない、講義内で強調されていた「出現確率が高い記号には短い符号を与えることで、平均ビット数を削減できる」ということを再確認することができた
4:可視化
NetworkXライブラリを用いて符号木を図示することも行った(別添資料3)。
確率の小さいシンボルが木の深い位置(長い符号)に配置され、統合の順序を変えても「重み付き平均深さ = 平均符号長」が変わらないことを確認できた。
以上の取り組みを通して、ハフマン符号の最適性は兄弟ノードの存在や帰納法によって厳密に証明できること、また、エントロピーと平均符号長を比較することで符号化効率を定量的に評価できることを理解した。さらに、理論を学ぶだけでなく、自ら実験を行い結果を比較・考察することが、理解をより深めるうえで重要であると実感した。今後は、3分木以上の場合にどのように統合数を決定すれば最適となるのかについても調べていきたい。
【選択回答】
:以下より1つ以上問いを選択し,回答してください
■ 興味ある分野に関する問い
セキュリティ・キャンプ ネクストの講義の一覧を見て,その中から興味のある講義を選び,その講義で扱うテーマに対して自分が考えること,興味,疑問,課題,自分なりの考察などを説明してください.
その分野について知識があるかどうかではなく,いかに興味や疑問を持ち,課題を考え,自分なりに調べて考察するかといった点を評価します.
私はN6の講義内容に強く興味を持っています。その理由は、社会が法規という形でセキュリティを管理する必要性と限界を理解したいと考えたからです。
大学の実習でプログラミングを学ぶ中で、当初は「良い設計をすれば安全になり、それは開発者の意識次第で達成できる」と考えていました。しかし実際には、企業ごとにコストや開発期間、技術力が異なるため、すべての企業が自主的に十分な対策を行うとは限りません。特にIoT機器では、安価で便利であることが優先され、セキュリティ更新機能すら十分に備わっていない製品も存在します。NOTICEのような注意喚起の取り組みはありますが、ネットワーク設計に関わる立場として、注意喚起だけでなく技術的な知見からもアプローチしたいと考えています。
このような状況において、法規や認証制度が最低限遵守すべき共通基準を定めることは有用だと感じました。しかし同時に、法規があることで最低基準は引き上げられる一方、企業や機関が「認証を通すこと」自体を目的化してしまう可能性もあると考えます。つまり、本質的な安全性よりも「監査で問題にならない書類を作ること」が重視される状態です。これは情報セキュリティだけでなく、さまざまな分野で起こり得る問題だと思います。
具体例として、教育現場のセキュリティ基準について調べました。MEXCBT(メクビット)という新しいシステムの運用では、パブリッククラウド利用や個人情報保護法の改訂に伴う見直しがされています。不正アクセス対策として、利用者認証(多要素認証)、端末認証、アクセス経路の監視・制御などを組み合わせたセキュリティ対策を「強固なアクセス制御」と表現しています。また、暗号化技術を使った拠点間VPNや、無線LAN認証装置により、事前に登録された端末以外をネットワークから排除する仕組みも明記されています。
しかし、学校内での独立したネットワークにおいて、これらの対策が実効性を持つか疑問を感じます。私の母校では、不注意で教員がパスワードを生徒と共有してしまっていたり、USBで成績データなどの機密情報を管理することで情報漏洩の被害を出した例がありました。法規上の基準を満たしていても、運用レベルでのリスクが残る現実を目の当たりにしました。
この経験から、法規だけで安全を実現するのではなく、現場の技術者が継続的にリスク分析を行い、実際の脅威を踏まえて改善していく文化が重要なのではないかと考えました。利用者が脆弱性対策情報のデータベースなどを活用して情報収集し、リスクのある製品を「使わない」という選択をすることも一つの対策ですが、それだけで十分だとは思いません。
この講義では、単に法律を学ぶだけでなく、「なぜその法規が必要とされたのか」「法規だけでは解決できない問題とは何か」を考えられる点に魅力を感じています。私は将来、情報科教諭として教壇に立つ際、生徒にセキュリティを技術だけの問題としてではなく、社会制度や企業活動、人間の行動も含めた総合的な問題として伝えたいと考えています。そのため、この講義を通じて、技術と社会をつなぐ視点を深く学び、教育現場で実践できる知識を身につけたいです。
■ N6「サイバーセキュリティに関する法規って本当に必要?
自動車・製品セキュリティを例に,法規の重要性と限界を考える」に関する問い
自社製品に外部ソフトウェア(オープンソース/商用/無償ライブラリ等)を組み込むとします.それらのソフトウェアがセキュアであることをどう説明しますか?必要な考え方,説明に必要な情報,規制当局への説明方法など,第三者に納得してもらうことができる方法を考えてください.
回答
私はN6の講義内容に強く興味を持っています。その理由は、社会が法規という形でセキュリティを管理する必要性と限界を理解したいと考えたからです。
大学の実習でプログラミングを学ぶ中で、当初は「良い設計をすれば安全になり、それは開発者の意識次第で達成できる」と考えていました。しかし実際には、企業ごとにコストや開発期間、技術力が異なるため、すべての企業が自主的に十分な対策を行うとは限りません。特にIoT機器では、安価で便利であることが優先され、セキュリティ更新機能すら十分に備わっていない製品も存在します。NOTICEのような注意喚起の取り組みはありますが、ネットワーク設計に関わる立場として、注意喚起だけでなく技術的な知見からもアプローチしたいと考えています。
このような状況において、法規や認証制度が最低限遵守すべき共通基準を定めることは有用だと感じました。しかし同時に、法規があることで最低基準は引き上げられる一方、企業や機関が「認証を通すこと」自体を目的化してしまう可能性もあると考えます。つまり、本質的な安全性よりも「監査で問題にならない書類を作ること」が重視される状態です。これは情報セキュリティだけでなく、さまざまな分野で起こり得る問題だと思います。
具体例として、教育現場のセキュリティ基準について調べました。MEXCBT(メクビット)という新しいシステムの運用では、パブリッククラウド利用や個人情報保護法の改訂に伴う見直しがされています。不正アクセス対策として、利用者認証(多要素認証)、端末認証、アクセス経路の監視・制御などを組み合わせたセキュリティ対策を「強固なアクセス制御」と表現しています。また、暗号化技術を使った拠点間VPNや、無線LAN認証装置により、事前に登録された端末以外をネットワークから排除する仕組みも明記されています。
しかし、学校内での独立したネットワークにおいて、これらの対策が実効性を持つか疑問を感じます。私の母校では、不注意で教員がパスワードを生徒と共有してしまっていたり、USBで成績データなどの機密情報を管理することで情報漏洩の被害を出した例がありました。法規上の基準を満たしていても、運用レベルでのリスクが残る現実を目の当たりにしました。
この経験から、法規だけで安全を実現するのではなく、現場の技術者が継続的にリスク分析を行い、実際の脅威を踏まえて改善していく文化が重要なのではないかと考えました。利用者が脆弱性対策情報のデータベースなどを活用して情報収集し、リスクのある製品を「使わない」という選択をすることも一つの対策ですが、それだけでは十分ではありません。
この講義では、単に法律を学ぶだけでなく、「なぜその法規が必要とされたのか」「法規だけでは解決できない問題は何か」を考えられる点に魅力を感じています。私は将来、情報科教諭として教壇に立つ際、生徒にセキュリティを技術だけの問題としてではなく、社会制度や企業活動、人間の行動も含めた総合的な問題として伝えたいと考えています。そのため、この講義を通じて、技術と社会をつなぐ視点を深く学び、教育現場で実践できる知識を身につけたいです。
時間があったので、こちらにも追加で回答をしました。
■ N3「C++ の進化とライブラリ設計」に関する問い
技術を他人に説明することは,自身の理解を深く定着させる方法の 1 つです.
次の 3 トピックから 1 つを選び,解説記事を Markdown で作成してください.
① C++ の「クラス」 ② std::optional ③ std::span
補足説明
【必須事項】冒頭に以下を明記すること- 対象読者(例:他言語経験者 / 既存の C++ ユーザ)
- この記事で得られること(箇条書きで 2〜5 点)
【方針】仕様の網羅は不要です(むしろ避けてください).
読み切れる分量で,理解が積み上がる構成と「なぜ・いつ使うか」への納得感を重視します.
独自の切り口やコード例など,個性の発揮を歓迎します.
【任意事項】
- 参考にした資料があれば末尾への記載を推奨します
- ブログ・Zenn・Qiita 等での外部公開も歓迎します
【提出形式】以下のいずれか
- Markdown 本文
- 外部公開記事 / GitHub Gist / 公開リポジトリ等の URL
記事を書いたので、見てほしいです。
どうだったでしょうか?
私は23の代かつ院進しない学部4年ということで、最初で最後のネクスト挑戦でしたが、奇跡的に選考通過ができました。
全国大会、ジュニア大会には出たことがなかったので、お作法的なものは何も知らなかったのですが、
応募課題を書く時に、実装経験がほぼないため、最初からコードを書くことは諦め、文章の量を増やすことを意識しました。
あと、C++ に関する記事も先駆者の方々が書いた記事を大量に読み、裏を取った情報を盛り込むことを意識しました。
本当にプログラミングの経験が浅いので、今から事前学習におびえていますが、自分の全力を出し切りたいです!!
もし、自分に聞きたいことがあれば(ない気もするけど)、
Xのアカウントを貼っておくので気軽に連絡してください!
最後までみてくださりありがとうございました!