著者
塚田 恭章
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.46, no.1, pp.236-246, 2005-01-15

悪性プログラムから計算機を守るためプログラム本体とそれが正しく安全に動作することの数学的証明を同時に流通させる方式(Proof-Carrying Code)が近年提案され,電子署名に基づく現行方式より高い安全性を保証する新技術として期待が集まっている.この方式の課題であった証明サイズの爆発の問題も,対話的・確率的手法に基づく効率的な証明検証技法を応用した対話型安全性証明つきプログラム配信方式の適用により対処できる.しかし,証明をそのまま流通させることは証明の盗用や悪用(たとえば証明を利用したリバースエンジニアリングなど)を招く恐れがある.この問題を解決するため,本論文において,安全性証明の存在をゼロ知識対話型プロトコルを利用して保証する方式を提案する.本方式により,証明の盗用・悪用を防ぐことができる.特に,証明の所有者が正規のプログラム開発者に限られるため,証明の所有をプログラム著作権の保持と見なすことも可能となる.すなわち,提案方式は,プログラムの安全性を効率的に検証したいという利用者側の要求とプログラムの著作権を保護したいという開発者側の要求を同時に満たすことができる.
著者
塚田 恭章
出版者
一般社団法人情報処理学会
雑誌
情報処理学会論文誌 (ISSN:18827764)
巻号頁・発行日
vol.46, no.1, pp.236-246, 2005-01-15

悪性プログラムから計算機を守るためプログラム本体とそれが正しく安全に動作することの数学的証明を同時に流通させる方式(Proof-Carrying Code)が近年提案され,電子署名に基づく現行方式より高い安全性を保証する新技術として期待が集まっている.この方式の課題であった証明サイズの爆発の問題も,対話的・確率的手法に基づく効率的な証明検証技法を応用した対話型安全性証明つきプログラム配信方式の適用により対処できる.しかし,証明をそのまま流通させることは証明の盗用や悪用(たとえば証明を利用したリバースエンジニアリングなど)を招く恐れがある.この問題を解決するため,本論文において,安全性証明の存在をゼロ知識対話型プロトコルを利用して保証する方式を提案する.本方式により,証明の盗用・悪用を防ぐことができる.特に,証明の所有者が正規のプログラム開発者に限られるため,証明の所有をプログラム著作権の保持と見なすことも可能となる.すなわち,提案方式は,プログラムの安全性を効率的に検証したいという利用者側の要求とプログラムの著作権を保護したいという開発者側の要求を同時に満たすことができる.Proof-carrying code (PCC) is a promising new mechanism that can protect computers from unreliable and possibly malicious foreign programs transmitted by untrusted hosts. One problem with PCC is that safety proofs carried by codes are inherently complex and often larger than the codes themselves and hence proof checking would be an intractable task for each code consumer. This problem was solved by extending the simple certification mechanism of PCC to make it interactive and probabilistic. Another problem is that safety proofs are open and can be used by stealth. To solve this problem, the present paper proposes the use of zero-knowledge protocols, with which proofs in the interactive and probabilistic extension of PCC can be hidden. The proposed mechanism is shown to have a potential application to the proofs-as-copyrights interpretation. In other words, the proposed mechanism has an advantage in that it not only efficiently ensures "safety" (which is requested from the code consumer's side) but also guarantees "copyright" (which is important for the code producer's side) at the same time.