Skip to content

Instantly share code, notes, and snippets.

View mokkunsuzuki-code's full-sized avatar

QKD(量子鍵配送) mokkunsuzuki-code

  • Joined Oct 8, 2025
View GitHub Profile
@mokkunsuzuki-code
mokkunsuzuki-code / gist:df1cf876aa8051d2d72bf07a3a5d24f2
Created October 13, 2025 23:25
QKD通信システムをマルチプラットフォーム対応に拡張し、 暗号鍵とラチェット状態の安全な永続化を各OSのネイティブ機能で実現。 macOSではKeychain、LinuxではSecret Service(libsecret)、 WindowsではDPAPIを利用し、いずれの環境でも鍵素材を安全に保管。 フォールバックとして環境変数またはパスフレーズ(scrypt)生成にも対応。 クラッシュや再起動後もQKD通信を安全に復旧できる 「クロスプラットフォーム一体型QKDプロバイダ」を完成。 依存は引き続き cryptography のみ。
# qkd56.py — 段階56 完全修正版(Audit暗号化のInvalidTag根絶)
# 依存: cryptography (AESGCM)
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Dict, List, Tuple, Optional
import secrets, base64, hmac, hashlib, struct
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
@mokkunsuzuki-code
mokkunsuzuki-code / gist:7784ddf2ee843f92d6f61d0f5bcd95e9
Created October 12, 2025 23:27
QKD(量子鍵配送)で生成された鍵を 安全に保存し、改ざん検出つきで復号できる仕組みを実装。 AES-GCMによる「暗号化+認証タグ」と、 タグ検証(InvalidTag対策)を組み合わせ、 安全な鍵ラップ(wrap)/アンラップ(unwrap)処理を確認。
# qkd55_fixed.py — 段階55: ラップ/アンラップを堅牢化(InvalidTag根絶)
# 依存: cryptography (AESGCM), 標準ライブラリのみ
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Optional, Dict
import secrets, hmac, hashlib, base64
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
@mokkunsuzuki-code
mokkunsuzuki-code / gist:f978e7828838c9ced487cfcdc085f6ad
Created October 12, 2025 09:14
🧩 QKD学習 Day54: 仮想ノード間での実ネットワーク通信を実装。 QKD鍵で暗号化されたメッセージを複数端末間で安全同期。 AES-GCM+HMAC+再エポック化で、量子鍵通信が現実空間へ🌐🚀
# stage54_key_wrapping_rotation.py
# 段階54:二重鍵化(Key Wrapping: scrypt+AES-GCM)+ パスフレーズ保護 + 鍵ローテーション + 監査鍵分離
# 依存: cryptography
# 実行: pip install cryptography && python stage54_key_wrapping_rotation.py
import os, sys, time, json, base64, random, hmac, hashlib, getpass
from dataclasses import dataclass, field
from typing import Dict, Tuple, List, Optional, Any
from cryptography.hazmat.primitives.kdf.scrypt import Scrypt
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
@mokkunsuzuki-code
mokkunsuzuki-code / gist:36dfa27f46f212d4a6575a318553990e
Created October 9, 2025 23:34
クラッシュからの安全復帰」。 AES-GCM暗号化により、鍵、ラチェット状態、未達再送キューなどの全機密状態を安全に永続化。再起動時には、保存ファイルから即座に通信を続行可能。ハッシュチェーンHMACによる監査ログで改ざんを検出し、データ完全性を保証。
# stage52_persistent_state.py
# 段階52:安全な永続化(AES-GCM暗号化)+ 再起動復帰 + 監査ログ(HMACチェーン)
# 実行: pip install cryptography && python stage52_persistent_state.py
import os, time, json, base64, random, hmac, hashlib, collections
from dataclasses import dataclass, asdict, field
from typing import Dict, Tuple, List, Optional, Any
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.hkdf import HKDF
from cryptography.hazmat.primitives.ciphers.aead import AESGCM
@mokkunsuzuki-code
mokkunsuzuki-code / stage51_group_reliable.py
Last active October 8, 2025 23:25
段階50で構築した「グループ信頼配送プロトコル」をさらに発展させ、 メッセージ順序の整列・再送制御・重複排除アルゴリズムを強化。 ネットワーク遅延や並び替えが発生しても、 各ノードが独立してメッセージの正しい順番を復元できるよう設計。 整列制御(ordering control)とACK再送を組み合わせて、 実用的な量子安全グループ通信を実現する。 量子鍵配送で共有された鍵素材(QKDテープ)を活用し、 各エポックごとにHKDFで派生鍵を生成。 前方秘匿性(PFS)+完全性(Integrity)+信頼性(Reliability) を兼ね備えた、量子通信プロトコルの中核実装。
# stage51_dynamic_group_reliable.py
# 段階51:動的メンバー管理(JOIN/LEAVE+即REKEY)× 信頼配送(ACK/再送)
# + ダブルラチェット(Sender Keys)でPFS
# 依存: cryptography
# 実行: pip install cryptography && python stage51_dynamic_group_reliable.py
import os, time, random, hmac, hashlib, collections
from dataclasses import dataclass
from typing import Dict, Tuple, List, Optional
from cryptography.hazmat.primitives import hashes
@mokkunsuzuki-code
mokkunsuzuki-code / stage50_group_reliable.py
Last active October 8, 2025 23:24
量子鍵配送(QKD)で生成した共通鍵を用いて、 グループ通信を安全かつ信頼的に行うプロトコルの試作実装。 本段階では「ダブルラチェット(Sender Keys)」を導入し、 メッセージごとに鍵を更新(前方秘匿性:PFS)しながら、 AES-GCMで暗号化を行う。 さらにACK再送・順序整列・重複排除などを実装し、 不安定なネットワーク環境でも確実に全メッセージが届く “信頼配送(Reliable Delivery)”を実現。 QKDで得た鍵を実際の暗号通信プロトコルに統合する、 安全通信の完成形に近い段階。
# stage50_group_reliable.py
# 段階50:グループ通信 × ダブルラチェット(Sender Keys) × 信頼配送(ACK/再送/順序整列/重複排除)
# 実行: pip install cryptography && python stage50_group_reliable.py
import os, time, random, hmac, hashlib, collections
from dataclasses import dataclass
from typing import Dict, Tuple, List, Optional
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.hkdf import HKDF
from cryptography.hazmat.primitives.ciphers.aead import AESGCM