Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CCC2026.2 Crypto

CCC2026.2 Crypto

CCC2026.2においてCrypto分野について解説したスライド

Avatar for Saku0512

Saku0512

July 04, 2026

More Decks by Saku0512

Other Decks in Technology

Transcript

  1. Crypto(暗号)とは? 情報セキュリティの基礎技術 データを第三者に読めないように変換する技術。 • 通信の機密性を保つ • データの改ざんを防ぐ • 身分の確認ができる CTFにおける暗号問題

    暗号文から元の平文(Flag)を復元するパズル。 • 問題文のヒントをもとに解く • 暗号化手法を特定する必要がある • Flag 形式 (NITSC{...}) で回答 平文 (Plaintext) 読めてしまう文章 暗号化 (Encryption) 変換の仕組み 暗号文 (Ciphertext) 読めない文章 Campus Cyber Challenge 2026 2 / 16
  2. 重要な区別:エンコード vs 暗号化 エンコード (Encoding) データの形式を変えるだけ。「鍵」は不要で、ルールを知って いれば誰でも戻せる。 テキストを別の形式に変換 Base64, ASCIIなど

    復号化する必要がない 簡単に復元できる 暗号化 (Encryption) 「鍵」がないと元に戻せない。データを安全に保護するための 技術。 データを意図しない者から隠す AES, RSAなど 秘密の鍵が必要 鍵があれば復元できる 初心者はここを混同しやすいので注意! エンコードと暗号化は全く異なる概念です。 Campus Cyber Challenge 2026 3 / 16
  3. ① Base64(エンコード) Base64とは データを64種類の文字で表現する方式。 • 平文データをテキスト形式で表現するための手法 • 主にバイナリデータをメールやWebで扱うために使われる Base64文字セット A-Z

    (26文字) a-z (26文字) / 0-9 (10文字) / + / = (パディング) A B C D E F G H I J K L M N O P Q R S T U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9 + / = 特徴 • 末尾に「=」や「==」が付くことが多い(パディング) • バイナリデータをテキストとして扱いたい時によく使われる • エンコードなので、密码化するのではなく、 形式を変えるだけ 例 平文 Base64 C C C Q 0 N D C CCC → Q0NDCg== パディングの「==」は、3の倍数のバイトに満たないため Campus Cyber Challenge 2026 4 / 16 g = =
  4. Base64演習の解答 問題 Q0NDMjAyNg== Base64文字列 Q0NDMjAyNg== デコード CCC2026 完成 CCC2026 解説

    • Base64は64種類の文字(A-Z, a-z, 0-9, +, /)でデータを表現する方式 • 末尾の「==」はパディングと呼ばれ、データの長さを示すためのマーク • パディングがない場合、文字列の末尾に「=」や「==」がつくことがあ る 解法 • Linux: echo "Q0NDMjAyNg==" | base64 -d • Online Tools: CyberChefやBase64デコードツールを使用 • プログラミング: Pythonのbase64モジュールや他の言語の同等機能を使用 用 答え: CCC2026 Campus Cyber Challenge 2026 6 / 16
  5. ② ROT13(シーザー暗号の一種) アルファベットを13文字ずらすだけのシンプルな換字式暗号。 A B C D E F G

    N O P Q R S T A→N, B→O, C→P, ... 特徴 13文字ずらすので、2回やると元に戻る(A→N→A) 暗号と復号に同じキーを使う(シングルパス) CTFでの利用 歴史的な暗号手法だが、CTFの基本中の基本 簡単なパズルとして出題されることが多い Campus Cyber Challenge 2026 7 / 16
  6. 【演習】ROT13を解読せよ 問題: 次の文字列は何と書いてある? P33_vfa'g_f3p4e3 P 3 3 _ v C

    3 3 _ i ヒント 数字や記号はそのままで、アルファベットだけ13個ずらす。 アルファベットが26文字あるので、13個ずらすと元に戻る性質があるよ。 回答は NITSC{...} 形式で入力してください Campus Cyber Challenge 2026 8 / 16
  7. ROT13演習の解答 問題: P33_vfa'g_f3p4e3 解読手順 ROT13はアルファベットを13文字ずらすだけの暗号です。 A→N, B→O, ..., M→Z, N→A,

    ..., Z→M と入れ替わります。 A → N B → O C → P D → Q E → R F → S G → T H → U I → V J → W K → X L → Y M → Z N → A O → B P → C Q → D R → E S → F T → G U → H V → I W → J X → K Y → L Z → M P C 3 3 3 3 _ _ 答え C33_isn't_s3c4r3 ROT13は2回かけると元に戻るため、 再びROT13をかけると元の文章に戻りま す。 Campus Cyber Challenge 2026 9 / 16
  8. ③ XOR(排他的論理和) XORとは? コンピュータの計算の基礎となるビット演算。 ルール: 同じなら0、違えば1 A B A XOR

    B 0 0 0 0 1 1 1 0 1 1 1 0 XORの可逆性 最大の特徴: (A XOR B) XOR B = A A XOR B C XOR B A 鍵(B)さえ分かれば、同じ演算をすることで元に戻る! CTFで重要な理由 • CTFで最も頻出する演算 • 鍵を使って平文を復元可能 Campus Cyber Challenge 2026 10 / 16
  9. 【演習】XORの計算 問題: 次の計算をせよ 1 0 1 0 XOR 1 1

    0 0 = ? 計算手順 1 XOR 1 0 1桁目: 1と1は同じ → 0 0 XOR 1 1 2桁目: 0と1は違う → 1 1 XOR 0 1 3桁目: 1と0は違う → 1 0 XOR 0 0 4桁目: 0と0は同じ → 0 Campus Cyber Challenge 2026 11 / 16
  10. XOR演習の解答 1 0 1 0 ⊕ 1 1 0 0

    = 0 1 1 0 1桁目 0 ⊕ 0 = 0 同じ bits → 0 2桁目 1 ⊕ 0 = 1 違う bits → 1 3桁目 0 ⊕ 1 = 1 違う bits → 1 4桁目 1 ⊕ 1 = 0 同じ bits → 0 XOR 演算の特徴 • XORは「同じなら0、違えば1」のルール • 最大の特徴「可逆性」: (A XOR B) XOR B = A • 鍵(B)さえ分かれば、同じ演算をするだけで元に戻る! • CTFで最も頻出する演算 Campus Cyber Challenge 2026 12 / 16
  11. ④ RSA暗号(公開鍵暗号) 現代のインターネットを守る最強の技術。鍵が2つある特殊な暗号方式。 公開鍵 (Public Key) • みんなに配る鍵 • 暗号化に使う

    • 誰でも使えるが、複合はできない 秘密鍵 (Private Key) • 自分だけが持つ鍵 • 復号に使う • 公開してはいけない RSAの仕組み 平文 公開鍵で暗号化 暗号文 秘密鍵で復号 平文 数学的根拠: 巨大な素数同士の掛け算は簡単だが、逆に積を素因数分解するのは困難です。
  12. RSA演習の解答 問題の再確認 アリスがボブに秘密のメッセージを送りたい場合、どちらの鍵を使ってメッセージを暗号化すべきか? 正解: B. ボブの公開鍵 なぜボブの公開鍵か? • ボブだけが自分の秘密鍵を持っています •

    秘密鍵でのみメッセージを解読できるようになります • 送り手(アリス)が分からないと解読できないようにするため • これが公開鍵暗号の基本的な使い方です アリス メッセージ ボブ 公開鍵 暗号化に使用 秘密鍵 復号に使用 重要なポイント: 公開鍵暗号では、暗号化には相手の公開鍵を使い、復号には自分の秘密鍵を使うのです。 Campus Cyber Challenge 2026 15 / 16
  13. Day 2 まとめ Base64 エンコード 64種類の文字でデータを表現 末尾に「=」が付くことが多い ROT13 シーザー暗号の一種 アルファベットを13文字ずらす

    2回やると元に戻る XOR 排他的論理和 ビット演算の基礎 可逆性: (A XOR B) XOR B = A RSA暗号 公開鍵暗号 2つの鍵を持つ 素因数分解の困難さを利用 次は? 「Webセキュリティ」について学びます。 • HTML/CSS/JavaScriptのセキュリティ問題 • OWASP Top 10の確認 • 基本的な攻撃手法と防御方法 TODO 今日紹介したツールをブックマークしておくこと。 • CyberChef (https://gchq.github.io/CyberChef/) • 暗号化・復号化の練習に便利 • 今後も頻繁に使用します Campus Cyber Challenge 2026 16 / 16