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

CCC2026.2 Crypto

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

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