小中高生・学生のための「図解でわかるインターネット・暗号・AIのしくみ」
——探究学習・自由研究にも使える計算機科学入門
この記事の要点と4つの章のご案内
| 章構成 | 主なテーマ | 要点と確認ポイント |
|---|---|---|
| 1. 基本と全体像 | 基本と全体像|スマホの裏側で動く「3つの科学」 | 【身近なたとえ話:巨大な恐竜のプラモデルを友だちの家に送るとき、どうやって運ぶ?】 |
| 2. 現場での進め方と対策 | 現場での進め方と対策|自由研究・探究学習で気をつけたい注意点と実験リスト | 組み立てた後の全長5メートルの恐竜のプラモデルをそのままトラックに乗せたら、道路がいっぱいになって他の車が通れなくなってしまいます。そこで、パーツを100個の小さな箱に分けて、箱の外側に「01 送り先の住所(IPアドレス)」「02 全100箱のうち何番目の箱か(TCPシーケンス番号)」「03 中身が壊れていないかのチェック数字」を書いて送れば、普通の郵便車でもスイスイ運べて、届いた先で元通りに組み立てられます。これがインターネットの「パケット通信」のアイデアです。 |
| 3. 関連する制度とルール | 関連する制度とルール 学習指導要領「情報I・情報II」および場面別の活用ポイント | 「クラウド」や「無線通信」と聞くと空の上を飛んでいるように思えますが、実はスマホの電波はお近くの基地局から地下に入り、太平洋や大西洋の深い海の底に敷かれた光ファイバーケーブルを秒速約20万kmの光となって走っています。 |
| 4. 詳しい技術仕様としくみ | スマートフォンで送った写真や動画は、どうやって世界中の友だちのスマホへ一瞬で届くのですか? | 学校で習う「割り算の余り」や「素数」は、実はネットショッピングやLINEの暗号化で大活躍しています。「g^a を素数 p で割った余り」は一瞬で計算できますが、余りから元の a を逆算するのはスパコンでも困難なため、安全な鍵が作れます。 |
- 01 インターネットは「デジタル小包(パケット)のバケツリレー」:写真や動画を小さな箱(パケット)に分けて番号を振り、世界中のルーターが空き道を選んで届けます。
- 02 暗号は「混ぜると元に戻せない数学の絵の具」:掛け算や余りの計算を使って「誰でも閉められるけれど、秘密の鍵を持つ本人しか開けられない箱」を作っています。
- 03 生成AIは「次に来る言葉の確率を計算するパートナー」:AIは意味を考えて話しているのではなく、統計と確率で言葉をつないでいるため、人間が事実を確かめる力が一番の武器になります。
1. 基本と全体像|スマホの裏側で動く「3つの科学」
Packets, Cryptography & AI Probabilities【身近なたとえ話:巨大な恐竜のプラモデルを友だちの家に送るとき、どうやって運ぶ?】
組み立てた後の全長5メートルの恐竜のプラモデルをそのままトラックに乗せたら、道路がいっぱいになって他の車が通れなくなってしまいます。そこで、パーツを100個の小さな箱に分けて、箱の外側に「01 送り先の住所(IPアドレス)」「02 全100箱のうち何番目の箱か(TCPシーケンス番号)」「03 中身が壊れていないかのチェック数字」を書いて送れば、普通の郵便車でもスイスイ運べて、届いた先で元通りに組み立てられます。これがインターネットの「パケット通信」のアイデアです。
世界の通信の99%は「海底の光ファイバーケーブル」
「クラウド」や「無線通信」と聞くと空の上を飛んでいるように思えますが、実はスマホの電波はお近くの基地局から地下に入り、太平洋や大西洋の深い海の底に敷かれた光ファイバーケーブルを秒速約20万kmの光となって走っています。
時計の針の計算(合同式)がネットの鍵になる
学校で習う「割り算の余り」や「素数」は、実はネットショッピングやLINEの暗号化で大活躍しています。「g^a を素数 p で割った余り」は一瞬で計算できますが、余りから元の a を逆算するのはスパコンでも困難なため、安全な鍵が作れます。
言葉を「数字の矢印(ベクトル)」に変えて計算
コンピュータは文字の意味をそのままでは理解できないため、「王様 − 男性 + 女性 = 女王」のように言葉を何百次元もの数字の座標(ベクトル)に変換し、次に来る確率が一番高い言葉を高速な行列計算で予測しています。
01. 学校の「算数・数学」は、実はスマホの中で毎秒何億回も使われています
学校で素数や文字式、関数、確率を習っているとき、「これって将来の生活で何の役に立つんだろう?」と疑問に思ったことがあるかもしれません。実は、あなたが今このページをスマートフォンで開いた瞬間にも、裏側では素数と余りの計算(暗号通信)や行列と確率の計算(AIと画面描画)が1秒間に何億回も実行されています。
たとえば、「7 × 13 = 91」という掛け算は暗算でもすぐにできますが、「256桁の素数 × 256桁の素数 の答えから、元の2つの素数を見つけ出しなさい」という逆向きの問題になると、世界中のスーパーコンピュータを束ねても何千年もかかってしまいます。この「行きは簡単だけど、帰りはとてつもなく難しい(一方向性関数)」という数学の美しい性質のおかげで、私たちは見知らぬ人にパスワードやメッセージを盗み見られずにインターネットを使えるのです。
02. 生成AIと上手に付き合うコツ:「丸写し」ではなく「壁打ち相手」にしよう
生成AIは、私たちが質問を入力すると、まるでものしりな博士のようにすらすらと答えを返してくれます。しかしその仕組みは、「これまで人類が書いた膨大な文章の統計から、文脈に一番合いそうな次の言葉(トークン)を確率で選んでいる」というものです。
そのため、AIは「知らないこと」であっても、自信満々にそれっぽい年号や存在しない本のタイトルを作ってしまうことがあります(これを専門用語でハルシネーション=幻覚と呼びます)。探究学習やレポートでAIを使うときは、AIが出した答えをそのまま丸写しするのではなく、「アイデアを広げる相談相手(壁打ち相手)」として使い、数字や事実は必ず図書館の本や官公庁・研究機関の一次データで裏付けを取る習慣を身につけましょう。
2. 現場での進め方と対策|自由研究・探究学習で気をつけたい注意点と実験リスト
Student Inquiry & Safe AI Practice現場で陥りやすい落とし穴と回避策
学生のみなさんがスマホやAI、SNSを使うときに気をつけたい3つの落とし穴と、賢い使い方のポイントです。
| 場面・テーマ | 現場で陥りやすい落とし穴(NG例) | 情報科学を活かす賢い使い方(推奨策) |
|---|---|---|
| AIでの調べ学習・宿題 | AIに「〇〇についての感想文やレポートを書いて」と頼み、出てきた文章を確認せずそのまま提出する。 | 「〇〇について調べるための視点を3つ教えて」と質問し、統計データは国や自治体の公式資料で自分の目で確認する。 |
| AIへの個人情報の入力 | 無料のチャットAIや画像加工アプリに、自分や友だちの顔写真、本名、学校名、住所をそのまま入力する。 | 一度ネットや外部AIに送ったデータは消せないと考え、個人を特定できる名前や顔写真は原則として入力・アップロードしない。 |
| SNSでの写真投稿 | 家の近所の風景や制服、マンホールの蓋、電柱の番号が写った写真を「鍵なしアカウント」で投稿してしまう。 | 背景の小さな文字や影の向きからでも場所が特定されることを理解し、位置情報(GPS)と背景を必ず確認する。 |
探究学習・情報モラル「未来のエンジニア 3項目チェックリスト」
達成状況:0 / 3 項目あなたがインターネットとAIのしくみを理解して使いこなせているか、チェックしてみましょう!
理解を深める確認クイズと関連コラム・豆知識
【確認クイズ】インターネットでデータを送るとき、大きなデータを「パケット」という小さな小包に分割して送る一番のメリットは何でしょうか?
選択肢 A:1つの回線を1人が独占せずにみんなで分け合えて、途中で1箱だけ消えてもその1箱だけ送り直せば済むから クリックして判定 →
大正解です! もし小分けにせず1本の長い列車のようにデータを流してしまうと、その人が送り終わるまで他の人が回線を使えなくなってしまいます。パケットに分けることで、世界中の何十億人ものデータが同じ光ファイバーを仲良く通り抜けられるのです。
選択肢 B:データを細かく切ると、スマートフォンの電池が勝手に充電されるから クリックして判定 →
残念ながらパケットに分けても電池は充電されませんね。回線の渋滞を防ぎ、エラーが起きたときのやり直しを最小限にするための工夫です。正解は選択肢Aです!
選択肢 C:小さな箱に分けるだけで、パスワードを設定しなくても勝手に暗号になるから クリックして判定 →
パケットに分けただけでは、途中のルーターで中身を読めてしまいます。だからこそ、パケットの中身を「暗号化(TLS)」して鍵をかける仕組みが組み合わされています。正解は選択肢Aです!
「深さ8,000メートルの海の底を走るインターネットの線は、ホースくらいの太さ!」
日本とアメリカやアジアを結ぶ海底光ファイバーケーブルは、深海では直径わずか2〜3センチメートル(お庭の水撒きホースくらい)の太さしかありません。その中心にある髪の毛ほど細いガラスの繊維の中を、1秒間に何テラビットもの光の点滅が走っています。浅い海ではサメにかじられたり船のイカリが当たったりしても切れないよう、頑丈な鉄のワイヤーで何重にも鎧のように守られています。
小中学校・高校への出前授業・情報モラル講話のご案内
高槻・北摂地域の学校や教育機関へ、情報セキュリティとAI科学のゲストティーチャー講話を行っています。
3. 関連する制度とルール 学習指導要領「情報I・情報II」および場面別の活用ポイント
夏休みの自由研究や学校の調べ学習で「インターネットやAIってどう動いているの?」をテーマにしたいとき、図解と実験アイデアをそのまま使えます。
共通テストでも必修となった高校「情報I・情報II」の重要単元(TCP/IP階層モデル、公開鍵暗号・電子署名、大規模言語モデルの確率計算)が直感的に腑に落ちます。
続く Step 4 では、有限体 𝔽_p 上のディフィー・ヘルマン鍵交換とSoftmaxトークン確率計算を実際のRust 2024コードで検証できます。
TCP/IP パケットカプセル化の数理、有限体 𝔽_p 上の離散対数・ディフィー・ヘルマン鍵共有、および自己回帰型 LLM の温度付き Softmax 確率分布
本モノグラフでは、高等学校「情報I・情報II」から大学情報科学専攻へと接続する3つの基礎数理モデルを厳密に定式化する。(1) RFC 9293 (TCP) および RFC 791/8200 (IPv4/IPv6) におけるヘッダカプセル化と 1の補数和チェックサム、(2) 素数位数有限体 𝔽_p におけるモジュラべき乗(Modular Exponentiation: バイナリ法 O(log e))と離散対数問題(DLP)の計算量的非対称性、および (3) Transformer 自己回帰言語モデルにおけるロジットベクトル z から温度パラメータ T を介した Softmax 確率分布への変換を Rust 2024 で実装する。
01. 有限体 𝔽_p 上の Diffie-Hellman 鍵共有と離散対数問題(DLP): 大きな安全素数 p とその乗法群 (ℤ/pℤ)^× の原始根(生成元)g を公開パラメータとする。アリスは秘密整数 a ∈ [2, p-2] を選び公開値 A = g^a mod p をボブへ送信し、ボブは秘密整数 b ∈ [2, p-2] を選び公開値 B = g^b mod p をアリスへ送信する。このとき双方が独立に計算する共有鍵 K は、指数法則と剰余演算の準同型性により構造的に一致する。
順方向の計算 a ↦ g^a mod p はバイナリ法(繰り返し二乗法)により高々 2 \lfloor log₂ a \rfloor 回の乗算(多項式時間 O(log p))で完了するのに対し、公開情報 (p, g, g^a mod p) から秘密指数 a を求める逆演算(離散対数問題)は準指数時間アルゴリズム(数体篩法)でも計算不能となる。
02. 自己回帰型言語モデル(Autoregressive LLM)における温度付き Softmax 分布: 語彙集合 V(サイズ |V| = V)上のトークン列 w_1:t-1 が与えられたとき、ニューラルネットワークの最終線形層が出力する未正規化スコア(ロジット)を z = (z_1, z_2, …, z_V) ∈ ℝ^V、サンプリング温度を T > 0 とする。浮動小数点オーバーフローを防ぐため、最大値 z_max = max_k z_k を差し引いた数値安定化 Softmax 関数によって次トークン w_t = i の生成確率 P(w_t = i | w_1:t-1) が算出される。
| Domain | Core Mathematical / Protocol Primitive | Forward Complexity | Real-World Application |
|---|---|---|---|
| Packet Networking | TCP Sequence Numbering & 16-bit 1's Complement Sum | O(N_bytes) Linear Scan | Lossless Packet Reassembly over Internet |
| Public-Key Crypto | Modular Exponentiation g^a mod p / ECDH | O(log₂ a) Multiplications | TLS 1.3 HTTPS Handshake & Passkeys |
| Cryptographic Hash | SHA-256 / BLAKE3 Compression Function | O(N_blocks) One-Way | Digital Signatures & File Integrity |
| Generative AI (LLM) | Scaled Dot-Product Attention & Softmax | O(V) Token Distribution | Next-Token Probabilistic Prediction |
//! crates/ok-cs-primer/src/fundamentals.rs
//! RFC 1071 16-bit 1's Complement Checksum, Finite Field ModPow & Numerically Stable Softmax
/// RFC 1071 準拠 16ビット1の補数和チェックサムの算出
pub fn rfc1071_checksum(payload: &[u8]) -> u16 {
let mut sum: u32 = 0;
let mut chunks = payload.chunks_exact(2);
for chunk in &mut chunks {
sum += u16::from_be_bytes([chunk[0], chunk[1]]) as u32;
}
if let Some(&rem) = chunks.remainder().first() {
sum += u16::from_be_bytes([rem, 0]) as u32;
}
while (sum >> 16) != 0 {
sum = (sum & 0xFFFF) + (sum >> 16);
}
!(sum as u16)
}
/// 繰り返し二乗法 O(log_2 exp) による有限体 F_p 上のべき乗剰余 g^exp mod p
pub fn mod_pow(mut base: u128, mut exp: u128, modulus: u128) -> u128 {
if modulus == 1 { return 0; }
let mut result: u128 = 1;
base %= modulus;
while exp > 0 {
if exp & 1 == 1 {
result = (result * base) % modulus;
}
exp >>= 1;
base = (base * base) % modulus;
}
result
}
/// 数値安定化温度付き Softmax 確率分布 P(w_t = i | z; T)
pub fn stable_softmax(logits: &[f64], temperature: f64) -> Vec<f64> {
let temp = temperature.max(1e-6);
let max_logit = logits.iter().copied().fold(f64::NEG_INFINITY, f64::max);
let exps: Vec<f64> = logits.iter().map(|&z| ((z - max_logit) / temp).exp()).collect();
let sum_exp: f64 = exps.iter().sum();
exps.into_iter().map(|e| e / sum_exp).collect()
}