仕事で使っているnCipherのHSMには、OCS (Operator Card Set) protected keyという、ICカードを使用した認証を行なわないと鍵を使用出来ないようにする機能がある。前々から実装に使われている理論が気になっていたので軽く調査してみた。
まずは、簡単にOCS protected keyの説明。OCS protected keyは鍵を使用する際にICカードによる認証を強制する機能だ。nCipherのHSMではOCS protected keyを作成するときに、K of Nというパラメーターを指定する。Kは認証時に必要なICカードの数を表しており、NはICカードの総数を示している。
例えば、あるOCS保護鍵を作成したときに2 of 3のパラメーターを指定したとする。この場合、その鍵を使用する際は3枚(N=3のため)のうち最低2枚のICカードによる認証をパスする必要がある(K=2のため)。カードが1枚しか無い場合は鍵を使用する事ができない。実際の用途としては、「ある書類にデジタル署名を行なうには、担当者2名による承認が必要。予備カードが1枚必要」といった用途に使用できる。
で、実際にどのような理論を用いているのか調べてみると、どうやら「秘密分散技術」 (Secret Sharing Scheme: SSSと略される)というジャンルの技術を使っているらしいことが解った。ちなみに、この分野のブレイクスルーは1979年にShamir大先生(RSAの"S"の人ね)とBlakleyと言う人が別々の論文を発表したことによって起こったそうな。Shamirは多項式補完に基づいており、Blakleyはベクトル空間に基づいているらしい。nCipherのHSMが実際にどんなアルゴリズムを使っているかは解らないが、振る舞いから推測するに、「(k, n)しきい値法」に属するアルゴリズムを使っているのは間違いなさそうだ。
理論の中身もチェックしてみたが、サッパリ解らなかった(ガロア理論とか初等整数論とか出て来ちゃってさ...orz)。でも、情報理論的安全性が確認されているらしいので安心して使っていいとのこと。
やっぱり暗号関連は真面目に勉強して行くと初等整数論にぶつかるなぁ。なんとかしないと思いつつも、手を出しにくい分野だよ。
0 件のコメント:
コメントを投稿