Security

Takami Torao
  • このエントリーをはてなブックマークに追加

セキュリティに関するあれこれ。

暗号技術は当事者間の通信を秘匿する目的で歴史的に古くから使用されてきた。現代においても以下のセキュリティ機能によってデジタル社会の多くの問題を解決することのできる重要なサービスである。

  • 機密性 (confidentiality) - 意図した受信者だけがそのメッセージを読むことができることを保証する。
  • 認証 (authentication) - 通信相手が正しいことを保証する。
  • 完全性 (integrity) - 受信したメッセージが改変されていないことを保証する。
  • 否認防止 (non-repudiation) - メッセージの送信者がそれを否認することができないことを保証する。

暗号と証明

暗号プリミティブ

ハッシュ関数

ハッシュ関数 (hash function) は任意長のビット列をある固定の長さのビット列に変換する関数。\(k\) ビット値への変換を行うハッシュ関数 \(h\) は数学記号で \(h: \{0,1\}^* \to \{0,1\}^k\) と記述することができる。…

2019年2月4日(Mon) #SHA3 #SHAKE

電子署名

電子署名 (digital signature) は文書に対する承認と、文書内容の保障を電子的に付け加えるための暗号技術。公開鍵を使用することにより他人によって行われた署名でないことと、署名された時点から文書内容に変更がないことの 2 点を証明することができる。…

2008年3月21日(Fri)

暗号プリミティブのパフォーマンス比較

2021年7月14日(Wed) #RSA #ECDSA #Schnorr #BLS

共通鍵暗号

2008年3月22日(Sat) #AES

鍵共有アルゴリズム

暗号技術における鍵共有 (key exchange) とは、共通の秘匿情報を持たない当事者間で公にされている情報のみを用いて、すべての当事者サイドで通信内容を保護するための共通の鍵を生成する方法。…

2019年9月17日(Tue) #鍵共有 #DH #PTP

メッセージ認証コード

メッセージ認証コード (MAC; message authentication code) はメッセージの完全性を認証付きで保証する暗号学的手法である。鍵の所有者 \(A\) によりメッセージが発行されてから破損や改ざんを受けていないことを同じ鍵の所有者 \(B\) が検証することができる (\(A\) と \(B\) は同一でも良い)。…

2019年3月17日(Sun) Java 11 #MAC #HMAC

鍵導出アルゴリズム

鍵導出 (key derivation) は 1 つの秘密から複数の秘密を導出する手法である。より具体的には、ある鍵素体 (key material) から暗号論的強度を持つ 1 つ以上の秘密鍵を決定論的に導出するために用いられる。…

2023年10月4日(Wed) #鍵導出 #KDF #HKDF

応用暗号

秘密分散共有

秘密分散共有 (secret sharing) または単に秘密分散は秘密情報 \(S\) を \(n\) 個の分散情報に符号化する暗号化アルゴリズムの一種。特に (k,n) しきい値法では \(n\) 個の分散情報のうち任意の \(k\) 個が揃えば元の秘密情報 \(S\) を再構築することができる (\(k\) 個に満たない場合は再構築することができない)。…

2019年11月3日(Sun) #SecretSharing #VSS

Verifiable Random Function

VRF (verifiable random function) は公開鍵ペアを使用する暗号学的ハッシュ関数である。VRF 関数は秘密鍵を使ってある入力値に対するハッシュ値を算出することができる。…

2019年9月1日(Sun) #VRF #暗号抽選 #暗号選挙

準同型暗号

準同型暗号 (homomorphic encryption; HE) は暗号化したデータを復号化せず演算することで、復号化により計算結果を得ることができる暗号スキーム。データの内容を秘匿したままクラウドのようなサードパーティの計算リソースを使用することができる。…

2020年2月29日(Sat) #準同型暗号 #HE #FHE

ゼロ知識証明

ゼロ知識証明 (ZKP; zero-knowledge proof) は、ある命題 (statement) が真であるという証明者 (prover) の主張を、それ以上の情報を明かすことなく検証者 (verifier) が確実に知る (受理する/拒否する) ことのできるスキームである。…

2021年7月13日(Tue) #zkp #SNARG #SNARK #zk-SNARK #ゼロ知識証明

Merkle Tree

マークルツリー (Merkle tree; ハッシュ木) はあるデータセットのハッシュ値を再帰的にハッシュ化することで得られるツリー構造。このツリーのルートにあたるルートハッシュはすべてのデータのハッシュ特性を含んだ固定サイズの値であるため、後で一部のデータを検証するのに都合が良い。…

2020年7月17日(Fri) #merkletree #hash

ホワイトボックス暗号

ホワイトボックス暗号 (white-box cryptography; WBC) は攻撃者が暗号プリミティブの実装やその実行プラットフォームに対して特権的アクセスを持つ状況においても暗号鍵そのものの漏洩 (つまり鍵復元) を防止することを目的とした難読化 (obfuscation) の手法である。…

2021年12月23日(Thu) #WBC #DRM

公開鍵暗号アルゴリズム

秘匿マルチパーティ計算

E2E 暗号

TEE

ハイブリッド暗号

ポスト量子暗号

論文翻訳

論文翻訳: Short Signatures from the Weil Pairing

Gap Diffie-Hellman 群でのヴェイユペアリングを使用することで、一般的な RSA や DSA での署名と比べて同じ強度で短い署名を生成する方法を示す 2001 年の論文。

2019年9月15日(Sun) 2001年の論文 #BLS署名 #GDH

論文翻訳: Aggregate and Verifiably Encrypted Signatures from Bilinear Maps

GAP Diffie-Hellman と双線形写像を使用して BLS 署名派生スキーム、集約署名、ブラインド署名、リング署名を紹介する 2003 年の論文。集約署名は異なるユーザによる異なるメッセージに対する署名を単一の署名に集約する

2019年10月8日(Tue) 2003年の論文 作業中

論文翻訳: Compact Multi-Signatures for Smaller Blockchains

マルチ署名、公開鍵集約を使用してブロックチェーンサイズを小さくするための 2018 年の論文。

2019年10月15日(Tue) 2018年の論文 #マルチ署名

論文翻訳: Practical Threshold Signatures

RSA に基づく非インタラクティブな署名分散の方法についての 1999 年の論文。

2019年9月4日(Wed) 2000年の論文 #SignatureSharing #ThresholdSignature #署名分散 #しきい値署名

論文翻訳: Threshold Signatures, Multisignatures and Blind Signatures Based on the Gap-Diffie-Hellman-Group Signature Scheme

(8) の Gap Diffie-Hellman 群を 1) BLS 署名を秘密分散のスキームに拡張したしきい値署名、2) 複数の署名分散から一つの署名を作成するマルチ署名、3) メッセージを秘匿するブラインド署名のそれぞれに応用した 2002 年の論文。…

2019年9月8日(Sun) 2002年の論文 #BLS署名 #署名分散 #しきい値署名 #マルチ署名 #ブラインド署名

論文翻訳: Verifiable Random Functions

2019年9月2日(Mon) 1999年の論文 #VRF 作業中

翻訳: Verifiable Random Functions (VRFs)

Verifiable Random Functions (VRF) は公開鍵をキーとする暗号化ハッシュのバージョンである。秘密鍵の所有者のみがハッシュを算出できるが、公開鍵を持つ人であれば誰でもハッシュの正当性を検証できる。…

2019年5月29日(Wed) 2019年 IETF Draft 4 #VRF #IETF 作業中

論文翻訳: Curve25519: new Diffie-Hellman speed records

通常の楕円曲線アルゴリズム (EC) より高速で鍵の小さい Curve25519 を使用した暗号計算に関する 2006 年の論文。

2019年11月7日(Thu) 2006年の論文 #楕円曲線暗号 #curve25519 #ed25519 作業中

論文翻訳: High-speed high-security signatures

楕円曲線暗号アルゴリズムの一種であるエドワーズ曲線デジタル署名 (EdDSA; ed25519, ed448) の速度やセキュリティ優位性に関する 2011 年の論文。

2019年11月25日(Mon) 2011年の論文 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448

RFC翻訳: Edwards-Curve Digital Signature Algorithm (EdDSA)

2019年11月10日(Sun) RFC 8032 #楕円曲線暗号 #EdDSA #Ed25519 #Ed448 作業中

論文翻訳: Quadratic Span Programs and Succinct NIZKs without PCPs

2019年11月25日(Mon) 2013年の論文 #zk-SNARK 作業中

論文翻訳: Pinocchio: Nearly Practical Verifiable Computation

2019年11月25日(Mon) 2013年の論文 #zk-SNARK #Pinocchio 作業中

論文翻訳: On the Size of Pairing-based Non-interactive Arguments\(\star\)

2016 年の論文。

2019年12月1日(Sun) 2016年の論文 #zk-SNARK 作業中

論文翻訳: On Span Programs

Span Program に関する 1993 年の論文。

2020年2月25日(Tue) 1993年の論文 #SP 作業中

論文翻訳: Fast Multiparty Threshold ECDSA with Fast Trustless Setup

2020年10月27日(Tue) 2018年の論文

論文翻訳: Bulletproofs: Short Proofs for Confidential Transactions and More

高速でデータサイズの小さいレンジプルーフ (範囲証明) のゼロ知識証明である Bulletproofs に関する 2018 年の論文。

2020年12月24日(Thu) 2018年の論文 #Bulletproofs #zkp #ゼロ知識証明

論文翻訳: On White-Box Cryptography

white-box 暗号について Q&A 形式で解説する 2008 年の論文。発表当時の状況に依存する記述も多いので現状どうなっているかは追加で知る必要がある。

2021年12月21日(Tue) 2008年の論文

論文翻訳: WHITE-BOX CRYPTOGRAPHY: HIDING KEYS IN SOFTWARE

ホワイトボックス暗号に関する概要と 2012 年時点の現状をサーベイした論文。

2021年12月29日(Wed) 2012年の論文 #WBC #ホワイトボックス暗号

TRANSCRIBE: Completeness Theorems for Non-Cryptographic Fault-Tolerant Distributed Computation

A 1988 paper on Secure multi-party computation. A transcription of an old PDF for the purpose of reading it in machine translation.

2022年12月29日(Thu) 1988年の論文 #BFT #SecureMultipartyComputation

TRANSCRIBE: Non-Interactive Oblivious Transfer

A 1990 paper on non-interactive oblivious transfer. A transcription of an old PDF for the purpose of reading it in machine translation.

2023年2月28日(Tue) 1990年の論文 #MPC #OT

仕様翻訳: SHA-3 Standard: Permutation-Based Hash and Extendable-Output Functions - 転置に基づくハッシュ関数と拡張可能出力関数

暗号論的ハッシュ関数である SHA-3、および可変長出力が可能な SHAKE に関する 2015 年の NIST 仕様。

2023年9月9日(Sat) FIPS 202 2015年の仕様 #SHA3 #SHAKE #Keccak #FIPS202

RFC翻訳: HMAC-based Extract-and-Expand Key Derivation Function (HKDF)

ある秘密鍵に基づいて複数の鍵を生成するスキームを規定している RFC 5869 についての仕様文書。

2023年9月29日(Fri) 2010年の仕様 RFC 5869 #鍵導出 #KDF