Attempts of illegal software usages have been increasing. It is an important problem to protect software from these attempts. In order to protect software, we complicate the structures of software and/or make software tamper-resistant. We achieve protection mechanisms combining these two methods properly. In this paper, we focus on the obfuscation that tries to complicate the structures of software. Traditional obfuscation methods request computational costs that depend mostly on the methods. On the other hand, our method requests the costs that software determines. We show that we can easily control the costs of the method to adapt situations. Generally, the levels of the protections imply the costs. Consequently, we can control the levels of the protections.%ソフトウェアを不正に利用する試みが増加しており,そのような攻撃からソフトウェアを保護することは重要な課題である.ソフトウェアを保護するには,攻撃者に対しソフトウェアの仕組みを理解させないこと,ソフトウェアに対し攻撃者の改変に耐性を持たせることが重要である.これらを適切に組み合わせることで,ソフトウェアの保護機構は実現されている.本稿では前者に相当する難読化について扱う.従来の難読化方式は実行時の保護コストが難読化アルゴリズムに大きく依存するのに対し,実行時の保護コストがソフトウェアの性質に依存する方式を提案する.この方式における保護コストの傾向を示し,調整が容易であることを示す.一般に保護強度を増すことは保護コストの増加を生むが,本方式では保護コストの調整が容易なため,結果として保護強度の調整を行うことができる.
展开▼