# 秘密分散 ## 定義 秘密分散(secret sharing)とは、1つの秘密(解錠コード・復号鍵・署名鍵など)を複数の当事者に分割して配布し、あらかじめ定めたしきい値以上の当事者が協力したときにのみ秘密を復元・行使できるようにする暗号数学の手法である。BlakleyとShamirが1979年に独立に考案した。幾何学的構成では、秘密を表す点Cを通る直線を無作為に引き、直線上の点を各当事者に配ることで任意の2点から直線とCが復元でき、同様に直線を含む平面を使えば3者しきい値が構成できる。この構成をn次元の幾何学、あるいは線形・平面に限らない一般の代数構造に一般化することで、「大臣2名、または将軍3名、または大臣1名+将軍2名」のように任意の複雑な組み合わせ規則を、利用可能な通信路容量の許す範囲で表現できる。単純に鍵を2人に半分ずつ渡す方式(片方が寝返っても元の安全パラメータを維持するには鍵長を2倍にする必要がある)や、2つの数を加算して鍵にする方式(現金自動預払機の鍵管理で使われるが、無条件安全な認証符号の文脈でのみ安全で、API攻撃を招く場合がある)よりも柔軟である。(Source: ch.15 §15.4) ## 横断的知見 - **軍事の共有制御方式(shared control schemes)と暗号学の「しきい値暗号(threshold cryptography)」は同一の秘密分散数学に基づくが、動機と要求が異なる**: 第15章は、ソビエトの斬首攻撃で国家指揮権限が破壊されても兵器庫が無傷で残る懸念という軍事的な脅威モデルから出発し、Blakley・Shamirの幾何学的構成を「大臣2名または将軍3名」のような複雑な組織的しきい値規則を表現する手段として導入する。一方、第5章はこれを「鍵をn人に分散しk人で復号・署名する」という暗号プリミティブの一種(しきい値暗号)として簡潔に触れるにとどまり、盲署名と並ぶ「特殊用途プリミティブ」の一項目として扱う。第15章の記述と突き合わせると、第5章が触れる「しきい値暗号」は、核指揮統制という高負荷な脅威モデル(斬首攻撃・戦闘損耗)への対処として発展した数学が、より一般的な暗号プリミティブへと抽象化されたものであることが分かる。(Source: [[@2020__Wiley__Security Engineering 3e - Chapter 15 Nuclear Command and Control]] ch.15 §15.4, [[@2020__Wiley__Security Engineering 3e - Chapter 5 Cryptography]] ch.5 §5.7.7) - 第15章はこの技術が後に「暗号で保護されたコールドビットコインウォレットを起動するには取引所の副社長2名の承認を要する」のような民生アプリケーションのしきい値署名方式にも応用されたと述べており、軍事起源の技術が金融分野の内部統制(→[[複式簿記による内部統制]]のdual control)にも接続する経路がある。(Source: ch.15 §15.4) ## 未解決の問い - 第5章の「しきい値暗号」の記述はごく簡潔(§5.7.7の1文)であり、第15章が説明する幾何学的構成との対応関係(第5章の暗号ライブラリ実装が同じBlakley/Shamir構成を使っているか、別の代数的しきい値署名方式を使っているか)は、両ソースの突き合わせだけでは確定できない。 - 鍵を2人に分割し中間状態(1人の承認待ち)を追跡する必要があるdual control(→[[複式簿記による内部統制]])と、Blakley/Shamirのしきい値秘密分散は、どちらも「複数当事者の合意」を実現するが、前者は状態を持つ運用手続き、後者は暗号数学的な鍵分割である。両者を組み合わせた実装(例えば銀行の大口送金承認をしきい値署名で実装する場合)における設計上のトレードオフは、本章の範囲では扱われていない。 - 死亡した指揮官の副官が鍵の両半分を持ってしまう事態を防ぐ運用規則など、しきい値の「n」の設計(離脱・死亡・裏切りにどう耐えるか)に関する体系的な方法論は、第15章では個別の注意点(戦闘損耗を見込んで十分大きなnを取る、後継者に両方の鍵を渡さない)として触れられるにとどまり、一般化された設計指針は示されない。 ## 関連 - ソース: [[@2020__Wiley__Security Engineering 3e - Chapter 15 Nuclear Command and Control]](§15.4) / [[@2020__Wiley__Security Engineering 3e - Chapter 5 Cryptography]](§5.7.7) - 概念: [[複式簿記による内部統制]](dual controlという運用的な多者承認との対比) / [[暗号利用モード]] - 実体: [[Gus Simmons]] ## 出典 - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 15, §15.4. - Ross Anderson, *Security Engineering: A Guide to Building Dependable Distributed Systems*, 3rd Edition, John Wiley & Sons, 2020, Chapter 5, §5.7.7.