(57)【特許請求の範囲】
【請求項１】
コンピュータシステムにて利用可能な、情報のための情報セキュリティラベルをエンコードする方法において、
情報セキュリティラベルは前記情報の特性群を含み、
前記方法は、
特性群の集合のそれぞれに一意の整数値を割り当てるステップであって、前記集合が複数の特性群を含み、前記情報は一つ以上の特性を有する、ステップと、
前記情報セキュリティラベルを記述する特性群の集合の各々の特性に割り当てられた整数値を、単一の整数値を含むエンコードされた情報セキュリティラベル内に組み合わせて、該セキュリティラベルにエンコードされた前記特性群の集合のそれぞれを不明瞭にするステップと
を含む方法。
【請求項２】
前記特性群の集合のそれぞれに割り当てられる整数値は、ｘｙの形式の指数関数に基づいて求められ、ここで、ｘおよびｙは、整数値である、請求項１に記載の方法。
【請求項３】
さらに、前記ラベルを記述する特性群のそれぞれに整数値を割り当てるステップと、前記特性群の集合それぞれについて指数ｙをインクリメントするステップとを、更に有する、請求項２に記載の方法。
【請求項４】
前記整数値は、整数値の総和をとることで組み合わせられる、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記特性群の集合のそれぞれに割り当てられる整数値は、一意の素数である、請求項１に記載の方法。
【請求項６】
前記整数値は、整数値の積をとることで組み合わせられる、請求項５に記載の方法。
【請求項７】
前記特性群の集合は、パーミッションレベルおよびコンパートメントの１つである、請求項１乃至６のいずれかに記載の方法。
【請求項８】
ユーザにコンピュータシステム内の情報に対するアクセスを許可する方法であって、
前記コンピュータシステム内の個々の情報の全てにセキュリティラベルを、請求項１に基づいて、割り当てるステップと、
前記コンピュータシステムのユーザの全てにセキュリティラベルを帰属させるステップと、
前記コンピュータシステム内のソフトウェアアプリケーションの全てにセキュリティラベルを帰属させるステップと、を有し、
特定の情報にアクセスするためには、前記ユーザおよび前記ソフトウェアアプリケーションのセキュリティラベルは、当該特定の情報に割り当てられたセキュリティラベルに優越する必要がある、方法。
【請求項９】
複数のユーザのそれぞれがコンピュータシステム内の複数の情報のそれぞれにアクセスしてよいかどうかに関する情報を含んだリストを構成する方法であって、
前記ユーザのそれぞれのセキュリティトークン、および、前記情報のそれぞれのセキュリティトークンを、請求項１乃至３のいずれかに記載の方法に基づいて、求めるステップと、
前記複数のユーザのそれぞれが前記複数の情報のそれぞれにアクセスしてよいかどうかを求めるステップと、
前記セキュリティトークンおよびアクセスパーミッションのリストを構成するステップと、を有する方法。
【請求項１０】
請求項３に記載の方法であって、
前記情報セキュリティラベルをデコードするステップを更に含み、
前記デコードするステップは、
（ａ）エンコードで用いられる底を特定するステップと、
（ｂ）コンピュータシステムにより、エンコードされた情報セキュリティラベルの特定された底（対数）に対して、対数の床値を求めることで、特性群の集合の第１の特性のための値を決定するステップと、
（ｃ）コンピュータシステムにより、エンコードされた情報セキュリティラベルから対数の床値を差し引いて剰余整数値を生成するステップと、
（ｄ）前記剰余整数値が非ゼロである場合に、コンピュータシステムにより、該剰余整数値の対数の床値を求めることにより特性群の集合の更なる特性を決定するステップと
（ｅ）コンピュータシステムにより、剰余整数値から剰余整数値の対数の床値を差し引いて更なる剰余整数値を生成するステップと、を含み、
前記更なる剰余整数値がゼロになるまで前記ステップ（ｄ）と前記ステップ（ｅ）が反復される、方法。
【請求項１１】
前記単一の整数値のモジュロを求めるステップと、
前記剰余値が非ゼロであるかどうかを判断するステップと、を有し、
前記値がゼロである場合に前記特性は前記セキュリティラベルに含まれる、請求項６に記載の方法。
【請求項１２】
一人以上のユーザによりアクセスされるデータを保護するためのコンピュータシステム内で利用可能な、情報のための情報セキュリティラベルをエンコードするシステムであって、前記情報セキュリティラベルは情報の特性群を含む、システムにおいて、
前記システムは、
コンピュータシステムにより、一意の整数値を特性群の集合の各々の特性に割り当てる手段であって、前記集合は複数の特性群を含む、手段と、
情報が一つ以上の特性を有する場合、情報セキュリティラベルを記述する特性群の集合の各々の特性に割り当てられた整数値を、エンコードされた情報セキュリティラベル内に組み合わせる手段であって、前記エンコードされた情報セキュリティラベルは前記特性群の集合の夫々の特性を不明瞭にする、手段と
を含む、システム。
【請求項１３】
前記特性群の集合のそれぞれに割り当てられる整数値は、ｘｙの形式の指数関数に基づいて求められ、ここで、ｘおよびｙは、整数値である、請求項１２に記載のシステム。
【請求項１４】
前記ラベルを記述する特性群のそれぞれに整数値を割り当てるときに、前記特性群の集合それぞれについて指数ｙをインクリメントする、請求項１２に記載のシステム。
【請求項１５】
前記整数値は、整数値の総和をとることで組み合わせられる、請求項１２乃至１４のいずれかに記載のシステム。
【請求項１６】
前記特性群の集合のそれぞれに割り当てられる帰属される整数値は、一意の素数である、請求項１２に記載のシステム。
【請求項１７】
前記整数値は、整数値の積をとることで組み合わせられる、請求項１６に記載のシステム。
【請求項１８】
前記特性群の集合は、パーミッションレベルおよびコンパートメントの１つである、請求項１２乃至１７のいずれかに記載のシステム。
【請求項１９】
ユーザにコンピュータシステム内の情報に対するアクセスを許可するためのシステムであって、
請求項１２に基づいて、前記コンピュータシステム内の個々の情報の全てにセキュリティラベルを割り当てる手段と、
前記コンピュータシステムのユーザの全てにセキュリティラベルを帰属させる手段と、
前記コンピュータシステム内のソフトウェアアプリケーションの全てにセキュリティラベルを帰属させる手段と、を有し、
特定の情報にアクセスするためには、前記ユーザおよび前記ソフトウェアアプリケーションのセキュリティラベルは、当該特定の情報に帰属されたセキュリティラベルに優越する必要がある、システム。
【請求項２０】
複数のユーザのそれぞれがコンピュータシステム内の複数の情報のそれぞれにアクセスしてよいかどうかに関する情報を含んだリストを構成するためのシステムであって、
前記ユーザのそれぞれのセキュリティトークン、および、前記情報のそれぞれのセキュリティトークンを、請求項１２乃至１４のいずれかに基づいて、求める決定手段と、
前記複数のユーザのそれぞれが前記複数の情報のそれぞれにアクセスしてよいかどうかを求める決定手段と、
前記セキュリティトークンおよびアクセスパーミッションのリストを構成する構成手段と、を有するシステム。
【請求項２１】
請求項１４に記載のシステムであって、
前記情報セキュリティラベルをデコードする手段を更に含み、
更に、
（ａ）エンコードで用いられる底を特定する手段と、
（ｂ）コンピュータシステムにより、エンコードされた情報セキュリティラベルの特定された底（対数）に対して、対数の床値を求めることで、特性群の集合の第１の特性のための値を決定する手段と、
（ｃ）コンピュータシステムにより、エンコードされた情報セキュリティラベルから対数の床値を差し引いて剰余整数値を生成する手段と、
（ｄ）前記剰余整数値が非ゼロである場合に、コンピュータシステムにより、該剰余整数値の対数の床値を求めることにより特性群の集合の更なる特性を決定する手段と
（ｅ）コンピュータシステムにより、剰余整数値から剰余整数値の対数の床値を差し引いて更なる剰余整数値を生成する手段と、を含み、
前記更なる剰余整数値がゼロになるまで前記手段（ｄ）と前記手段（ｅ）とが動作を反復する、システム。
【請求項２２】
請求項１７に記載の形態のセキュリティラベルをデコードするためのシステムであって、
前記単一の整数値のモジュロを求める決定手段と、
前記剰余値が非ゼロであるかどうかを判断する手段と、を有し、
前記値がゼロである場合に前記特性は前記セキュリティラベルに含まれる、システム。
【請求項２３】
コンピュータシステムをコントロールするための命令群を有するソフトウェアアプリケーションであって、
請求項１乃至１１のいずれかに記載の方法を実行する、ソフトウェアアプリケーション。
【請求項２４】
請求項２３に記載のソフトウェアアプリケーションを有する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、セキュリティトークン、ならびに、該セキュリティトークンを生成およびデコードするためのシステムおよび方法に関し、特に、本発明はそれに限定されるものではないが、「信頼できるパラダイム（トラステッド・パラダイム、trusted paradigm）」セキュリティシステムを用いるコンピュータシステムにおいて利用されるものに関する。
【背景技術】
【０００２】
コンピュータシステムを用いて多種の情報が保存され、カテゴライズされ、そして、多様なユーザに配信される。洗練されたデータベース構造、増強された計算パワー、新たな検索アルゴリズム、インターネットのように公衆が利用可能なコンピュータネットワークの指数関数的な成長、は、多くの企業がその商品、サービス、および、情報を、インターネットを通じて提供する態様を産み出した。
【０００３】
コンピュータシステムにおける情報セキュリティの保持は、多くの企業にとって、最優先されるべき懸案事項である。例えば、医療分野においては、患者の情報へのアクセスを厳密な法的規則に支配され、そのような規則に基づいてユーザは情報にアクセスする。
【０００４】
このような事情により、コンピュータシステムに特定の「許可レベル（パーミッションレベル、permission levels）」を設定するために複雑なシステムが構築される必要がある。つまり、多くのコンピュータシステムでは、複数層アクセスシステム（multi-tiered access system）が用意され、相異なるユーザに多種の情報に対する相異なるアクセスレベルが供される。情報にアクセスする能力は、ユーザに帰属される許可レベル、情報に帰属される許可レベル、または、これら２つの組み合わせ、にもとづいて決定可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
許可レベルは、特定の方法でエンコードされることがある。その一例としては、許可レベルを「ビットベクトル（bit vector）」にエンコードする方法がある。つまりは、ビットのアレイであって、その各ビットが許可レベルに関する相異なる側面（アスペクト、aspect）を表している。
【課題を解決するための手段】
【０００６】
第１の態様においては、本発明は、整数値を特性群の集合のそれぞれに帰属させるコンピュータシステムにおいて利用されるセキュリティラベルをエンコードする方法であって、特定のラベルについて、ラベルを記述する実際の特性群の集合それぞれに関する整数値群を組み合わせることにより単一の整数値を生成するステップを有する。
【０００７】
特性群の集合のそれぞれに帰属される整数値は、ｘｙ（ｘのｙ乗）の形式を有する指数関数を用いて決定してよく、ここで、ｘおよびｙは整数である。整数値は、整数値を合計することによって組み合わせられてよい。
【０００８】
代替実施形態においては、特性群の集合のそれぞれに帰属される整数値は、一意の素数（unique prime number）である。当該実施形態においては、整数値は、整数値を掛け算することによって（整数値の積を求めることによって）組み合わせられる。
【０００９】
本方法は、ラベルを記述する特性群の集合のそれぞれに整数値を帰属させるステップに関し、特性群の集合のそれぞれに関して指数ｙをインクリメントするステップをさらに備えてよい。
【００１０】
特性群の集合は、パーミッションレベル、または、区画（コンパートメント、compartment）の１つでよい。その組み合わせは、セキュリティラベルとして知られる。
【００１１】
第２の態様においては、本発明は、ユーザがコンピュータシステム内に存在する情報にアクセスすることを許可する方法であって、コンピュータシステム内の個々の情報（discrete pieces of information）の全てのセキュリティラベルを帰属させるステップと、該コンピュータシステムの全てのユーザにセキュリティラベルを帰属させるステップと、該コンピュータシステムに備わっている全てのソフトウェアアプリケーションにセキュリティラベルを帰属させるステップと、を有し、個々の情報にアクセスするに際しては、ソフトウェアアプリケーションおよびユーザのセキュリティラベルが、該個々の情報に帰属されたセキュリティラベルに優越（ドミネート、dominate）しなければならない。
【００１２】
第３の態様においては、本発明は、複数ユーザのそれぞれがコンピュータシステムに含まれる複数の情報要素（a plurality of pieces of information）のそれぞれにアクセス可能であるかどうかに関する情報を含んだリストを構成する方法であって、該ユーザのそれぞれのセキュリティトークンおよび情報要素のそれぞれのセキュリティトークンを、本発明の第１態様にしたがって、求めるステップと、該複数ユーザのそれぞれが該複数の情報要素のそれぞれにアクセス可能かどうかを、本発明の第２態様にしたがって、求めるステップと、アクセス許可およびセキュリティトークンのリストを構成するステップと、を有する。
【００１３】
第４の態様においては、本発明は、セキュリティラベルを、本発明の第１態様にしたがって、デコードする方法であって、単一の整数値の対数の底（log base）の床値（フロア、floor）を求めることにより特性群の集合の最初（第１の）値を求めるステップと、該整数値から該単一の整数値の対数の底の床値を差し引くことにより剰余整数値（remainder integer value）を生成するステップと、該剰余値が非ゼロである場合に該剰余整数値の対数の床値を求めることにより特性群の集合の別の１つを求めるステップと、を有し、剰余値がゼロになるまで上記プロセスが反復される。
【００１４】
第５の態様においては、本発明は、コンピュータシステムを制御する命令群を有するソフトウェアアプリケーションであって、該アプリケーションは本発明の第１態様による方法を実行する。
【００１５】
第６の態様においては、本発明は、本発明の第５態様によるソフトウェアアプリケーションを備える記録媒体である。
【００１６】
第７の態様においては、本発明は、本発明の第１、第２、および、第３の態様のいずれか１つの方法のステップを実行するシステムである。
【００１７】
添付の図面を参照しつつ実施形態を例示することにより、本発明の特徴を説明する。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態によるソフトウェアアプリケーションを実行するのに適したコンピュータシステム
【図２】本発明の実施形態によるセキュリティシステムのラベルのセットをエンコードするための代替プロセスのフローチャート
【図３】本発明の実施形態によるセキュリティシステムの特定のトークン（セキュリティラベル）をエンコードするための代替プロセスのフローチャート
【図４】本発明の実施形態によるセキュリティシステムの特定のトークン（セキュリティラベル）をデコードするための代替プロセスのフローチャート
【図５】本発明の実施形態によるセキュリティシステムのラベルのセットをエンコードするための代替プロセスのフローチャート
【図６】本発明の実施形態によるセキュリティシステムの特定のトークン（セキュリティラベル）をエンコードするための代替プロセスのフローチャート
【図７】本発明の実施形態によるセキュリティシステムの特定のトークン（セキュリティラベル）をデコードするための代替プロセスのフローチャート
【図８】本発明の実施形態によるセキュリティシステムの二元優越性関係（binary dominance relation）を決定するためのプロセスのフローチャート
【図９】本発明の実施形態によるセキュリティシステムの三元優越性関係（triadic dominance relation）を決定するためのプロセスのフローチャート
【発明を実施するための形態】
【００１９】
図１は、本発明の実施形態で用いるのに適したコンピュータシステムの概略図である。コンピュータシステム１００は、本発明の実施形態によるアプリケーションおよび／またはトーナメントストラクチャといったシステムサービスを実行することに用いることが可能である。コンピュータシステム１００は、プロセッサ１０２、リードオンリーメモリ（ＲＯＭ）１０４、ランダムアクセスメモリ（ＲＡＭ）１０６、ならびに、ディスクドライブ１０８といった入出力デバイス、キーボード１１０といった入力用周辺機器、および、ディスプレイ（もしくは、その他の出力デバイス）１１２を備えることが好ましい。コンピュータは、ＲＡＭ１０６、ＲＯＭ１０４、または、ディスクドライブ１０８に格納可能でありプロセッサ１０２により実行可能なソフトウェアアプリケーションを備える。
【００２０】
通信リンク１１４は、インターネットといったコンピュータネットワークに接続される。しかしながら、通信リンク１１４は、電話線、アンテナ、ゲートウェイ、または、その他の通信リンクに接続されることも可能である。ディスクドライブ１０８は、適当な記憶媒体、例えば、フロッピーディスクドライブ、ハードディスクドライブ、ＣＤ  ＲＯＭドライブ、または、磁気テープドライブなどを含んでよい。コンピュータシステム１００は、単一のディスクドライブ１０８、または、複数のディスクドライブを使用することが可能である。コンピュータシステム１００は、適当であればマイクロソフトウィンドウズＴＭ、ユニックスＴＭベースのオペレーティングシステムといったいかなるオペレーティングシステム１１６を用いてもよい。
【００２１】
システムは、さらに、ソフトウェアアプリケーション１１８を有する。ソフトウェアアプリケーション１１８は、本実施形態においてはデータベースを備える。ソフトウェアアプリケーション１１８は、別のソフトウェアアプリケーション１２０と相互接続されてよく、または、リモートコンピュータ（図示せず）と通信リンク１１４を介して相互接続されてよい。
【００２２】
ソフトウェアアプリケーション１１８は、本発明の一例を具体化したものであり、様々なデバイスのなかでも特にトラステッドシステムパラダイムを用いて、データベースに対するアクセスをコントロールすることに用いられる。トラステッドセキュリティパラダイムは、特定のトークン（セキュリティラベル）を定義しており、該トークンは、関連付けられる情報に固有の特性群の集合（セット、set）を表すものである。システムアクセスは、一連のレベル（およびトークンとしてのコンパートメント）により制限される。ユーザは、ユーザがアクセスしようとする情報のレベルよりも高いレベルを有さなければならない。ユーザが、アクセスを試みる情報のレベルよりも高いレベルを要する、という概念は、時には強制アクセス制御（マンダトリーアクセスコントロール、mandatory access control）と呼ばれる。例えば、トークンは、データベースに保持された特定のファイルの’セキュリティレベル’または’パーミッションレベル’を示すことも可能である。また、トークンは、１つのセキュリティレベル内における特定の’コンパートメント’といった、データにかかる別の特性を示すことに用いられることもある。
【００２３】
例えば、数学の術語体系を用いれば、トークンは、以下の意味論的表現で示すことができる。
トークン（Token）＝セキュリティレベル｛セキュリティのコンパートメントの集合（セット）｝（security_level{set of security compartments}）
【００２４】
この表現は、以下の例１を見れば簡単に理解できる。例１においては、データタイプおよびトークンは、医学的／生物学的情報を保持するセキュリティデータベースに適用可能にカスタマイズされている。
’高度にセンシティブ（Highly sensitive）’｛’個人識別子（personal id）’、’データ解析結果（data analysis results）’｝
’センシティブ（Sensitive）’｛’ＤＮＡ結果（DNA results）’、’膣鏡診結果（colposcopy results）’｝
’センシティブ（Sensitive）’｛’セキュリティ管理（security management）’｝
’制限あり（Restricted）’｛’ＨＰＶ統計量（HPV statistics）’｝
’パブリック（Public）’｛’ＨＰＶリスク因子（HPV risk factors）’｝
例１．−サンプルトークンストラクチャ  １
【００２５】
換言すれば、一連のトークンは、パーミッションレベルの数のような、概念的レベルで定義することが可能であり、各パーミッションレベルは、１つまたは複数のコンパートメント（つまり、当該パーミッションレベルに該当する情報のタイプ）と関連付けされる。例えば、個人識別用情報およびデータ解析結果は、高度にセンシティブな情報であるとみなされ、他方、ＨＰＶリスク因子のような一般的な情報は、パブリックな情報であるとみなされる。
【００２６】
従来技術にあっては、パーミッション／セキュリティレベルおよびコンパートメントをコンピュータシステムに適合可能なフォーマットに体系化するための手法において、ビットベクトル（bit vector）が用いられており、各ビット（または一連のビット）がレベルおよびコンパートメントのカテゴリを表す。体系化された情報を含んだビットベクトルが、一般に「トークン」と称される。
【００２７】
対照的に、本発明の実施形態は、トークンのセマンティックの全てを単一の整数にエンコードする。
【００２８】
本発明の一実施形態では、ｘｙの指数関数形式を利用するアルゴリズムを用いることによってラベルのセマンティックの間に距離間隔（セパレーション、separation）を設ける。ここで、ｘは共通の整数の底であり、ｙは、任意の整数の指数である。
【００２９】
よって、例１にあるような、レベルおよびコンパートメントは、以下、例２のようにエンコード可能である。
’個人識別子（personal identifiers）’＝２１＝２
’データ解析結果（data analysis results）’＝２２＝４
’ＤＮＡ結果（DNA results）’＝２３＝８
’膣鏡診結果（colposcopy results）’＝２４＝１６
’セキュリティ管理（security management）’＝２５＝３２
’ＨＰＶ統計量（HPV statistics）’＝２６＝６４
’ＨＰＶリスク因子（HPV risk factors）’＝２７＝１２８
’高度にセンシティブ（Highly sensitive）’＝２１１＝２０４８
’センシティブ（Sensitive）’＝２１０＝１０２４
’制限有り（Restricted）’＝２９＝５１２
’パブリック（Public）’＝２８＝２５６
例２．−各レベル／コンパートメントのエンコードされた値
【００３０】
図２に、ラベル群の集合のそれぞれのラベルに値を帰属させる方法ステップを示す。ステップ２００および２０２において、コンパートメントのリストが選択され、初期指数が１に選択される。換言すれば、第１のコンパートメントの値は、２１＝２である。ステップ２−４において、コンパートメントのリストがチェックされ、他にコンパートメントがあるかどうか、が求められる。もしあれば、第１のトークンが、第１のコンパートメントに帰属させられる（２０６）。
【００３１】
そして、指数がインクリメントされ、リストの次のコンパートメントが選択される（２０８）。続いて、本方法はステップ２０４に戻り、リストが空であるかどうか、が求められる。このプロセスは、コンパートメントのリストが空になるまで（２１０）反復される。
【００３２】
コンパートメントのリストが空になると、次に、同様の一連の方法ステップを用いてレベルのそれぞれにトークン値を帰属させる。先ず、レベルのリストの第１のレベルが選択される（２１２）。
【００３３】
２１４において、レベルのリストがチェックされて、まだ他のレベルが存在するかどうかが求められる。もし存在すれば、トークンが第１のレベルに帰属させられる（２１６）。
【００３４】
そして、指数がインクリメントされ、リストの次のレベルが選択される（２１８）。続いて、本方法はステップ２１４に戻り、リストが空であるかどうか、が求められる。このプロセスは、レベルのリストが空になるまで（２２０）反復される。
【００３５】
各レベル／コンパートメントに指数形式ｘｙを有する値が帰属されると、次に、特定のファイル／ユーザに帰属されるべき固有のトークンが、得られたレベル／コンパートメントの値を加えることにより、エンコードされる。
【００３６】
図３は、このプロセスの方法ステップの概要を示す図であり、ここでは、特定のラベルがエンコードされる。先ず、３００において、レベルの値がトークンに帰属される。次に、コンパートメントのリストにアクセスし、該リストが空であるかどうかが求められる（３０２）。もし、空でなければ、該ラベルの値がトークンの値に加えられる（３０４）。このプロセスは、全てのコンパートメントの値がトークンに加えられるまで反復される。全ての値が加えられれば（つまり、コンパートメントのリストが空であれば）、プロセスは終了する（３０６）。
【００３７】
本プロセスを以下の例を用いて説明する。高度にセンシティブであって、個人識別子およびデータ解析結果の両方に関係するデータは、ラベル’高度にセンシティブ’｛’個人識別子’、’データ解析結果’｝が付されており、
２１１＋２１＋２２＝２０４８＋２＋４＝２０５４
のようにエンコードされる。
【００３８】
別例においては、公開可能（publicly available）であって、ＨＰＶリスク因子に関係するデータのラベルは、ラベル’パブリック’｛’ＨＰＶリスク因子’｝が付されてよく、
２８＋２７＝２５６＋１２８＝３８４
のようにエンコードされる。
【００３９】
ｘｙの値のそれぞれ同士の間の数値的距離が、加算される値のいずれの組み合わせもそれぞれ一意の整数で表されることを保証する。
【００４０】
もし、最初のラベルが暗号化されても、本エンコードプロセスは有効であり、このアルゴリズムをなお用いることが可能である。
【００４１】
例えば、例２を参照すれば、ラベル’個人識別子’が、整数にエンコードされるよりも前に、先ず、暗号化アルゴリズムを用いて暗号化された文字列（ストリング、string）に変換されてよい。
’個人識別子’  −＞  ’＄＃＆ＲＥＲｓ＊Ｅｒ％＄ｍ＜ｙｄｆｇ’
それからこのストリングが整数にエンコードされる。
’＄＃＆ＲＥＲｓ＊Ｅｒ％＄ｍ＜ｙｄｆｇ’＝２１＝２
【００４２】
このように、ラベルをさらに分かりにくくしてもよい。
【００４３】
整数をデコードして適切なセマンティックの構造（つまり、レベルおよびコンパートメントの組み合わせ）を得るには、反復的に、（剰余を無視して）該整数にかかる最も大きな指数を特定することにより第１のレベル／コンパートメントを求め、続いて、該整数全体から最も大きな成分を差し引いて「剰余（リマインダ、remainder）」を求め、剰余が無くなるまで、上記プロセスを繰り返せばよい。
【００４４】
図４は、デコードの方法を示す図である。ステップ４００において、トークン整数（トークンインテージャ、token integer）がプロセスによって受け取られる。当該整数の対数（ログ）をとり（４０２）、当該整数のログの床値（フロア、floor）が求められる（４０４）。この値が、リストにおける第１の整数となる（この値は、当該トークンのレベルを表す）（４０６）。続いて、元のトークン整数から該整数のログの床値が差し引かれて差分トークン（ディファレンストークン、difference token）が生成される（４０８）。当該差分トークンが非ゼロであれば（コンパートメントが差分トークンにエンコードされていることがわかれば）（４１０）、差分トークンのログを取って（４１２）、差分トークンのログの床値を求める（４１４）。この値がリストの次の整数になる（この次の整数はコンパートメントのリストのコンパートメントの第１のものを表している）（つまり、第２のトークンの値）（４１６）。続いて、差分トークン整数から当該整数のログの床値が差し引かれ、第２差分トークンが生成される（４１８）。第２差分トークンが非ゼロであれば（４１０）、本方法ステップが、差分トークンがゼロになるまで（４２０）繰り返される。差分トークンがゼロになった時点において、全てのトークン（コンパートメント）がデコードされ、プロセスが終了する。
【００４５】
別例においては、整数２０５４のデコードが以下のステップを用いて行われる。
１．  ｌｏｇ２（２０５４）＝１１．００４２２０４６６３１８１９５
２．  床値（ｆｌｏｏｒ）（ｌｏｇ）＝１１
３．  最も大きな要素は２１１で、これがレベル’高度にセンシティブ’に対応
４．  ２０５４から２１１を差し引く＝２０５４−２０４８＝６
５．  ｌｏｇ２（６）＝２．５８４９６２５００７２１１５６１
６．  床値（ｌｏｇ）＝２
７．  最も大きな要素は２２で、これがコンパートメント’データ解析結果’に対応
８．  ６から２２を差し引く＝６−４＝２
９．  ｌｏｇ２（２）＝１
１０．  床値（ｌｏｇ）＝１＝２１
１１．  最も大きな要素は２１で、これがコンパートメント’個人識別子’に対応
１２．  剰余はない。よって、全てのレベル／コンパートメントは特定され、元の状態が再構成された。
【００４６】
上記の例より、整数値２０５４にかかるトークンは、
’高度にセンシティブ’｛’個人ＩＤ’、’データ解析結果’｝
となる。
例３．−サンプルトークンストラクチャ  ２
【００４７】
アルゴリズムの別の実施形態では、素数を用いることによってラベルセマンティックの距離間隔（セパレーション、separation）が設けられる。
【００４８】
再度例１を参照すれば、レベルおよびコンパートメントは以下の例３のようにエンコード可能である。
’個人識別子（personal identifiers）’＝１
’データ解析結果（data analysis results）’＝３
’ＤＮＡ結果（DNA results）’＝７
’膣鏡診結果（colposcopy results）’＝１１
’セキュリティ管理（security management）’＝１３
’ＨＰＶ統計量（HPV statistics）’＝１７
’ＨＰＶリスク因子（HPV risk factors）’＝１９
’高度にセンシティブ（Highly sensitive）’＝２３
’センシティブ（Sensitive）’＝２９
’制限有り（Restricted）’＝３１
’パブリック（Public）’＝３７
例４．−素数を用いて各レベル／コンパートメントのエンコードされた値
【００４９】
図５に、ラベル群の集合のそれぞれのラベルに値を帰属させる方法ステップを示す。ステップ５００においてコンパートメントのリストが選択され、リストは空であるかどうかが求められる（５０２）。もし空でなければ、一意の素数が当該コンパートメントラベルに割り当てられる。本方法では、続けてステップ５０２に戻ってリストが空であるかどうかが求められる。このプロセスは、コンパートメントのリストが空になるまで反復される。
【００５０】
ラベルのリストが空になると、次に、同様の一連の方法ステップを用いてレベル群のそれぞれにトークン値を帰属させる。リストが空であれば、全てのコンパートメントに割り当てがなされ、ラベルのリストの第１のレベルが選択される（５０６）。リストが空であるかどうかが求められる（５０８）。
【００５１】
もし空でなければ、素数がインクリメントされ、次のラベルに割り当てられる（５１０）。本方法では、続けてステップ５０８に戻ってリストが空であるかどうかが求められる。このプロセスは、コンパートメントのリストが空になるまで反復される。
【００５２】
ラベルのリストが空になると、次に、レベルが関連集合（関連セット、relevant sets）にグループ化される（５１２）。例えば、’高度にセンシティブ’、’センシティブ’、’制限有り’、’パブリック’は、セットとしてエンコードされる。つまり、このことは、もし’高度にセンシティブ’なるレベルが要求されれば、ラベルのセットに含まれる他のラベルもまたエンコードされることを示している。
【００５３】
レベル／コンパートメントに一意の素数が帰属されると、都議に、特定のファイル／ユーザに帰属されるべき固有のトークンが、得られたレベル／コンパートメントの値を加えることでエンコードされてよい。
【００５４】
図６は、このプロセスの方法ステップの概要を示す図であり、ここでは、特定のラベルがエンコードされる。先ず、６００において、セキュリティのラベルの第１のコンパートメントの値が設定され、ラベルの総計（ラベルトータル、label total）がゼロに設定される（６０２）。次に、コンパートメントのリストにアクセスし、まだ他にコンパートメントがあるかどうかが求められる（６０４）。もしあれば、ラベルトータルは、コンパートメントのラベルに帰属された素数とラベルトータルとの積になる（６０６）。このプロセスは、全てのコンパートメントの値がトークンに加えられるまで反復される。もう他にコンパートメントが存在しないようになると、セキュリティのラベルの第１のレベルの値が設定され（６０８）、ラベルのセット内にまだ他のレベルがあるかどうかが求められる（６１０）。もしあれば、ラベルトータルは、レベルのラベルに帰属された素数とラベルトータルとの積になる（６１２）。セットＬ内にもう他のレベルが存在しないようになると、プロセスは終了する（６１４）。
【００５５】
本プロセスを以下の例を用いて説明する。高度にセンシティブであって、個人識別子およびデータ解析結果の両方に関係するデータは、ラベル’高度にセンシティブ’｛’個人識別子’、’データ解析結果’｝が付されており、
３７×３１×２９×２３×３×５＝１１４７５７３５
のようにエンコードされる。
【００５６】
ラベル’高度にセンシティブ’、’センシティブ’、’制限有り’、’パブリック’は、セットとしてエンコードされる。つまり、もしレベル’高度にセンシティブ’が要求されれば、暗黙のうちに、その他の低位のレベルの全ては、当該ラベルセットに含まれる。別例においては、公開可能であって、ＨＰＶリスク因子に関係するデータのラベルは、ラベル’パブリック’｛’ＨＰＶリスク因子’｝が付されてよく、
２３×１９＝４３７
のようにエンコードされる。
【００５７】
素数が有する原子的性質が、あらゆる組み合わせが一意の整数で表されることを保証する。
【００５８】
もし、最初のラベルが暗号化されても、本エンコードプロセスは有効であり、このアルゴリズムをなお用いることが可能である。
【００５９】
例えば、例３を参照すれば、ラベル’個人識別子’が、整数にエンコードされるよりも前に、先ず、暗号化アルゴリズムを用いて暗号化された文字列（ストリング、string）に変換されてよい。
’個人識別子’  −＞  ’＄＃＆ＲＥＲｓ＊Ｅｒ％＄ｍ＜ｙｄｆｇ’
それからこのストリングが整数にエンコードされる。
’＄＃＆ＲＥＲｓ＊Ｅｒ％＄ｍ＜ｙｄｆｇ’＝１
【００６０】
このように、ラベルをさらに分かりにくくしてもよい。
【００６１】
整数をデコードして適切なセマンティックの構造（つまり、レベルおよびコンパートメントの組み合わせ）を得るには、モジュロ関数（modulo function）を用いて各ラベルを反復的に特定すればよい。
【００６２】
例えば、１１４７５７３５のデコードは以下の方法論を用いて行われる。
モジュロ（modulo）（１１４７５７３５，３）個人識別子−剰余０；トークンである
モジュロ（１１４７５７３５，５）データ解析結果−剰余０；トークンである
モジュロ（１１４７５７３５，７）ＤＮＡ結果−剰余５；トークンでない
モジュロ（１１４７５７３５，１１）膣鏡診結果−剰余７；トークンでない
モジュロ（１１４７５７３５，１３）セキュリティ管理−剰余１１；トークンでない
モジュロ（１１４７５７３５，１７）ＨＰＶ統計量−剰余４；トークンでない
モジュロ（１１４７５７３５，１９）ＨＰＶリスク因子−剰余１；トークンでない
モジュロ（１１４７５７３５，２３）パブリック−剰余０；トークンである
モジュロ（１１４７５７３５，２９）制限有り−剰余０；トークンである
モジュロ（１１４７５７３５，３１）センシティブ−剰余０；トークンである
モジュロ（１１４７５７３５，３７）高度にセンシティブ−剰余０；トークンである
【００６３】
このように、元のトークン
’高度にセンシティブ’｛’個人識別子’、’データ解析結果’｝
が再構成される。
【００６４】
図７は、デコードの方法を示す図である。ステップ７００において、トークン整数（トークンインテージャ、token integer）がプロセスによって受け取られる。リストの第１のコンパートメントが調べられて（７０２）、リストが空であるかどうかが求められる（７０４）。リストが空であれば、ラベルは、リストの第１のレベルになる（７０６）。リストが空でなければ、エンコードされたトークンのモジュロが求められる（７０８）。もしモジュロ関数の結果が非ゼロであれば、プロセスは、リストが空であるかどうかを求めるステップ（７０４）に戻り、そうでなければ、現在のコンパートメントのラベルが有効となり、それがコンパートメントのラベルのリストに加えられてから（７１０）、プロセスはリストが空であるかどうかを求めるステップに戻る。コンパートメントのラベルのリストが空であってレベルのラベルがリストの次のレベルになるような場合（７０６）に戻ると、リストが空であるかどうかが求められる（７１２）。リストが空であれば、もう他のラベルは存在せず、プロセスは終了する（７１４）。もしリストが空でなければ、エンコードされたトークンのモジュロが求められる（７１６）。モジュロ関数の結果が非ゼロであれば、プロセスは、リストが空であるかどうかを求めるステップ（７１２）に戻り、そうでなければ、現在のコンパートメントのラベルが有効となり、それがラベルのリストに加えられてから（７１０）、プロセスはリストが空であるかどうかを求めるステップに戻る。
【００６５】
これらの、セキュリティトークンを生成し、エンコードし、デコードする方法は、従来の’ビットベクトル’エンコードに対し多くの有利点を有する。
【００６６】
第１には、単一の整数のみを伝送すればよいので、伝送の簡便性が増す。したがって、各トークンを記述するために単一の整数のみを必要とするので、必要な容量（ストレージ）が減少する（あるいは、換言すれば、情報の圧縮度が最大化される）。
【００６７】
単一のエンコードおよびデコードの方法論を利用するので、トークンの取扱い（マニピュレーション、manipulation）もまた理想的に簡単化される。
【００６８】
さらに、トークンのエンコードおよびデコードの機構が、トークンのセマンティックス（意味論）から分離される。トークンが単一の整数として表現されるので、トークンのセマンティックスは、事情に詳しくない観察者にとっては分かりにくい。当該観察者は、トークンそれ自体からは何の情報も導き出すことができず、エンコードの方法論、用いられる底（ベース、base）、どのように整数がトークンのストラクチャに反映されるか、といった知識が要求される。
【００６９】
最後に、従来のビットベクトルによる手法は、本質的に制限的である。なぜなら、セキュリティシステムの実装に先立って、利用するレベルおよびコンパートメントの数を固定する必要があるからである。本発明の実施形態においては、実値において修正を加えることにより、セキュリティシステムの基本構造に変更を加えずに追加的なレベルおよびコンパートメントを追加することも可能である。したがって、この実施形態は、意味（セマンティック、semantics）をエンコードするに際し、さらなる柔軟性を供する。
【００７０】
当然のことだが、先述の例は、簡単のため、底が２の指数関数形式、あるいは、素数の底を用いたが、あらゆる底を使用することができる。
【００７１】
上述のエンコードシステムは、優越性関係（ドミナンスリレーション、dominance relation）と組み合わせて用いることによって、さらに、データベース内部におけるセキュリティフローを向上させることもできる。優越性関係とは、ユーザの、情報にアクセスする能力を、ユーザが情報に「優越」するかどうかによって決定するための関係性である。換言すれば、ユーザは、情報にアクセスするために必要なパーミッションレベル以上のパーミッションレベルを備えなければならない。
【００７２】
ユーザトークンは、ユーザがアクセスを試みる情報の情報トークンに優越する必要がある。ユーザトークンは、情報トークンよりも上位のレベルにある必要があり、そのコンパートメント群は、情報トークンのコンパートメントの上位集合（スーパーセット、superset）である必要がある。
【００７３】
上述したラベリングシステムの文脈（コンテキスト、context）においては、当該関係性は、二元（バイナリ、binary）であり、ユーザのラベルがリクエストされる情報に関連付けられるラベルに優越すれば、アクセスは許可される。
【００７４】
例えば、ボブなるユーザがカテゴリ’高度にセンシティブ’｛’個人識別子’、’データ解析結果’、’ＨＰＶリスク因子’｝を含むセキュリティラベルを有すれば、ボブはラベル’パブリック’｛’ＨＰＶリスク因子’｝なるラベルを有するマイクロソフトワードＴＭドキュメントに優越する。
【００７５】
上述の例は、二元優越性関係の例である。
【００７６】
本実施形態では、三元系優越性関係（triadic dominance system relation）を利用する。
【００７７】
この関係性では、３種類のトークンが存在する。ここでは、（ユーザに関連付けられる）ユーザトークン、（データベースのエントリや、ファイルといった、特定の情報の断片に関連付けられる）情報トークン、および、（ファイルやデータベースへの書き込みや、ファイルやデータベースの読み出しや、特定のソフトウェアアプリケーションを使用する情報へのアクセス等といった、ユーザがリクエストしたアクションに関連付けられる）アプリケーショントークンが存在する。
【００７８】
この三元関係性においては、’ユーザトークン’、および、該ユーザが情報にアクセス／操作するのに要求したアプリケーションの’アプリケーショントークン’（意図したアクション）が、許可を求めるアクションの対象である’情報トークン’に優越する必要がある。
【００７９】
三元関係性について例を用いて説明する。本例では、ユーザは情報（a piece of information）を読み出し、あるいは、更新することを望んでいると仮定する。該情報にアクセスするため、ユーザは、情報に優越するのみならず、正当な「道具（ツール、tool）」（処理リソース、processing resource）で情報にアクセスする必要がある。
【００８０】
例えば、ユーザであるボブは、「セキュリティ１０１（security101）」なる名称のドキュメントにアクセスして、該ドキュメントに対してワードプロセス（word process）（例えば、エントリの追加）を行うことを望んでいる。ユーザであるボブは、セキュリティトークンを有し、ワードプロセス用アプリケーションもセキュリティトークンを有し、ドキュメントであるセキュリティ１０１もセキュリティトークンを有する。
【００８１】
ボブがセキュリティ１０１に対してワードプロセスを実行できるには、
１．  ボブのトークンが情報トークンに優越しなければならず、かつ、
２．  ワードプロセスのトークンが情報トークンに優越しなければならない。
【００８２】
両方の優越性関係が真であれば、ボブは、ドキュメントであるセキュリティ１０１に’ワードプロセス’を行うことができる。
【００８３】
図８および図９を参照し、プロセスを例示する。注記するが、図８および図９を参照して例示するプロセスは、指数関数エンコードプロセスを用いる実施形態に関する。
【００８４】
図８を参照すれば、整数が情報セキュリティラベルのリスト−’Ｉｎｆｏ＿ｌｉｓｔ（情報リスト）’にデコードされる（８０１）。次に、該整数は、該情報リスト（インフォリスト）に対する優越性がテストされるユーザあるいはアプリケーションのセキュリティラベルのリスト（’Ｄｏｍ＿ｌｉｓｔ（ドムリスト）’）にデコードされる（８０２）。インフォリストから第１の要素が読み出し（ポップ、pop）される（８０３）。ドムリストから第１の要素がポップされる（８０４）。ドムリストの第１の要素が、インフォリストの第１の要素よりも大きいかチェックする。ドムレベル（Dom level）がインフォレベル（info level）よりも小さければ、優越性関数（ドミネートファンクション、dominate function）は不合格となり（８０７）、アルゴリズムは終了する（８０８）。そうでなく、ドムレベルがインフォレベルよりも大きければ、コンパートメントのリスト（インフォリスト）が空であるかどうかを求める（８１０）。ユーザまたはアプリケーションのコンパートメント（コンプドム、Ｃｏｍｐ＿ｄｏｍ）はインフォリストのコンパートメント（コンプインフォ、Ｃｏｍｐ＿ｉｎｆｏ）の上位集合を構成しない、または、残りのインフォリストがコンパートメントについて空集合を有する、と想定し、優越性フラグ（ドミネートフラグ、dominate flag）は不合格に設定される（８０６）。
【００８５】
もしコンパートメントが空であれば（８１０）、アルゴリズムは終了する（８１８）。もしインフォリストが空であれば（８１０）、優越性関係は、不合格（優越性フラグ（Dominate Flag）＝ｆａｉｌ）か、または、合格（優越性フラグ（Dominate Flag）＝ｐａｓｓ）かのいずれかである。
【００８６】
もしインフォリストが空でなければ（８１０）、第１のコンパートメントがコンプインフォからポップされ（８１１）、ドムリストが空であるかどうかが求められる（８１２）。もしドムリストが空であれば（８１２）、優越性関数をチェックして不合格ではないことが確かめられ（８１７）、アルゴリズムはインフォリストの次の要素に移り（８１０）、コンプインフォのリストの全ての要素についてプロセスが繰り返される。
【００８７】
もし優越性関数が不合格であれば（つまり、優越性フラグが不合格（フェイル）にセットされると）（８１７）、アルゴリズムは終了する（８１８）。もしドムリストの残りが空でなければ（８１２）、ドムリストから次のコンパートメント（ドム要素（Ｄｏｍ  ｅｌｅｍｅｎｔ））がポップされ（８１３）、コンプインフォのリストからのコンパートメントとの一致がチェックされる（８１４）。もし、一致が見られないならば、優越性フラグは’不合格（フェイル）’にセットされ（８１６）、そうでなければ、優越性フラグは合格（パス）にセットされる（８１５）。プロセス（８１２、８１３、８１４）は、コンプドムのリストを用いて、現在のインフォ要素（ｉｎｆｏ＿ｅｌｅｍｅｎｔ）との一致を捜索し、優越性フラグを合格にセットする（８１５）。
【００８８】
次の図９は、三元関係の概要を示す図である。’ ｄｏｅｓ＿ｄｏｍｉｎａｔｅ（強優越性）’フラグは、先ず、’いいえ’にセットされる（９１０）。図８のアルゴリズムを用い、’user_token dominate the infor_token（ユーザトークン：：優越性：：情報トークン’関数が実行され、結果である user_dominate（ユーザ優越性）が返される。図８のアルゴリズムを用い、’application_token dominate the infor_token（アプリケーショントークン：：優越性：：情報トークン’関数が実行され、結果である user_dominate（アプリケーション優越性）が返される。
【００８９】
もしユーザ優越性フラグ（user_dominate flag）が真であれば（９０４）、アプリケーション優越性フラグ（application_dominate flag）が真であるかがチェックされる（９０５）。
【００９０】
もし真であれば、三元関係である’Does_dominate flag（強優越性フラグ）’が真（true）にセットされ、アルゴリズムは終了する（９０７）。
【００９１】
そうでなく、もしユーザ優越性フラグが’偽（false）’であり、かつ／または、アプリケーション優越性フラグが偽であれば、強優越性フラグは（元々セットされたとおりに）偽であり、アルゴリズムは終了する（９０７）。
【００９２】
優越性関係をラベルのエンコードと組み合わせることで、コンピュータシステムまたはデータベース構造のセキュリティを向上させることができる。コンピュータシステムのデータベース構成要素のような大きなデータセットに関しては、セキュリティラベルの全ての組み合わせをエンコードされた整数（順序対（ordered pair））として表し、データベースにおいて利用されるよりも前に優越性関係の全ての組み合わせを実行し、そして、アクセス結果である合格（１）または不合格（０）を当該順序対と共に保存する。これについては、以下の例が好例である。（ここでは、単に簡単のために底として２を用いる。）
ステップ１  −  セキュリティラベルを整数にエンコード
コンパートメント                  ＝［病変、カーディオ］
病変                              ＝２
カーディオ                        ＝４
レベル                            ＝［パブリック、シークレット］
パブリック                        ＝８
シークレット                      ＝１６
ステップ２  −  レベルコンパートメントを組み合わせる
シークレット［病変］              ＝１６＋２＝１８
シークレット［カーディオ］        ＝１６＋４＝２０
シークレット［病変、カーディオ］  ＝１６＋２＋４＝２２
パブリック［病変］                ＝８＋２＝１０
パブリック［カーディオ］          ＝８＋４＝１２
パブリック［病変、カーディオ］    ＝８＋２＋４＝１４
ステップ３  −  組み合わせた優越性の組（タプル）を構成可能
シークレット［病変］  優越性  パブリック［病変］
＝＜１８、１０、１＞
シークレット［カーディオ］  優越性  シークレット［病変、カーディオ］
＝＜２０、２２、０＞
シークレット［病変、カーディオ］  優越性  シークレット［カーディオ］
＝＜２２、２０、１＞
パブリック［カーディオ］  優越性  シークレット［カーディオ］
＝＜１２、２０、０＞
シークレット［カーディオ］  優越性  パブリック［病変］
＝＜２０、１２、１＞
【００９３】
上の例からわかるように、セキュリティ組み合わせタプルを作成する場合に優越性関数が呼び出されると、１または０を返す。組み合わせタプルおよびそれに関連付けられるアクセスパーミッション（１または０）は、高速にテーブルを参照してレコードアクセスの可否を決定することおよびそれに付随した選択ステートメント（select statement）のフィルタリングために、データベースにロードされる。
【００９４】
セキュリティ組み合わせタプルをフィルタリングして該ユーザのデータベースセッションに基づくリストにして、該ユーザがログオンした際にメモリ常駐のテーブルとして保存することで、さらなるアクセスの高速化が可能である。
【００９５】
例えば、もしユーザがラベル’シークレット［カーディオ］’を有するなら、（上記の例のうちから）タプル＜２０、２２、０＞および＜２０、１２、１＞のみを不揮発性メモリのテーブルに保存すればそのデータベースセッションで用いることが可能である。同様の機構を、該ユーザが使用を許可された機能（アプリケーション）についてのセキュリティラベルにも用いることができる。
【００９６】
「セキュリティタプルテーブル」がデータベースにロードされると、ｗｈｅｒｅ節（クローズ（clause））内のコードの単一の追加ＳＱＬラインで、情報保護のために必要なフィルタリングが可能である。
【００９７】
先に定義した三元優越性関係は、’セキュリティタプル’の概念を拡張してユーザ優越性情報」に加えて「アプリケーション優越性情報」をカバーすることで実現される。
【００９８】
例えば、上の例に続けて、
ユーザ  ＝  シークレット［病変、カーディオ］  ＝  ２２
アプリケーション  ＝  シークレット［カーディオ］  ＝  ２０
情報  ＝  シークレット［カーディオ］  ＝２０
シークレット［病変、カーディオ］  優越性  シークレット［カーディオ］
＝＜２２、２０、１＞
シークレット［カーディオ］  優越性  シークレット［カーディオ］
＝＜２０、２０、１＞
【００９９】
したがって、ユーザは、特定の、ユーザ（Ｕｓｅｒ）、アプリケーション（Ａｐｐｌｉｃａｔｉｏｎ）、および、情報（Ｉｎｆｏｒｍａｔｉｏｎ）のセットを用いてアクセスを行う。
【０１００】
トークンが素数およびモジュロ演算を用いて形成される場合には、例えば以下のようになる。
’ラベル１  ＝  高度にセンシティブ’｛’個人識別子’、’データ解析結果’｝
＝３７×３１×２９×２３×３×５
＝１１４７５７３５
ラベル２  ＝  ’パブリック’｛’ＨＰＶリスク因子’｝
＝２３×１９
＝４３７
【０１０１】
次に、優越性関数は、モジュロ関数の呼び出しを行えばよい。つまり、
Ｉｆ
（情報＝ラベル１）（ユーザ＝ラベル２）
ｔｈｅｎ
ラベル２  優越性  ラベル１  ＝モジュロ（４３７、１１４７５７３５）は、不合格（ゼロでない）。；
Ｉｆ
（情報＝ラベル２）（ユーザ＝ラベル１）
ｔｈｅｎ
ラベル１  優越性  ラベル２  ＝モジュロ（１１４７５７３５、４３７）も、不合格（ゼロに等しくない）。’ＨＰＶリスク因子’は、ユーザの、詳細を参照するためのラベルの部分ではないため。；
Ｉｆ
ＨＰＶリスク因子はラベル１の部分として含まれる。つまり、１１４７５７３５×１９＝２１８０３８９６５
ｔｈｅｎ
ラベル１  優越性  ラベル２  ＝モジュロ（２１８０３８９６５、４３７）は、合格（ゼロに等しい）。ＨＰＶリスク因子’は、ユーザの、詳細を参照するためのラベルの部分であるため。；
【０１０２】
この手法によって、データベースラッパ（database wrapper）が、行レベルのセキュリティ（row level security）をあらゆるＳＱＬデータベースに提供可能になる。
【０１０３】
加えて、三元関係により、データベースとエンドユーザとの間の（ユーザの観点から見て）透明（トランスペアレント）なシールドとして動作するプロキシサーバを構成し、本願が記すところの優越性関数に基づくコンテンツのフィルタリングが可能になる。つまり、エンドユーザは、該ユーザが情報に「優越する」かどうかに基づいてアクセスが許可される。
【０１０４】
先に概要を説明した方法論のいずれかを用いることで、数多くの利点が得られる。例えば、本発明の実装は、データベースを編成する方法の根本的な変更を要さず、現存するデータベース構成に組み込むことが可能である。
【０１０５】
また、本方法は、行レベルで保存される情報トークンに対してユーザまたはアプリケーションのセキュリティタプルが優越しない場合、データをユーザまたはアプリケーションに対して隠す（存在しないようにする）という効果がある。これにより、詳細に詳しくない「ハッカー」を阻止できる程度の難解さのレベルが得られる。
【０１０６】
必要に応じ、二元優越性または三元優越性の関係は、オブジェクトメッセージングレベルで実装、または、オペレーティングシステムおよび／もしくは通信レベルで埋め込むことが可能であり、そうすることにより、さらなるセキュリティおよび保護が得られる。
【０１０７】
セキュリティタグが付された情報の処理に割り当てられたリソースを管理する際の柔軟性が増す。
【０１０８】
加えて、指数関数的方法を用いる場合において、大量のテーブルの行を返したり、操作したりする場合には、エンコードされた情報を用いたテーブルのジョイン（連結）は、行レベルで実行するデータベースの機能よりも高速である。これにより、あらゆるリクエストの処理が高速化される。
【０１０９】
本発明の実施形態が実装されれば、数多くのセキュリティラベルが生成され利用される。これにより、正しくかつ効率的にラベルを管理する管理システムが必要になる。
【０１１０】
管理システムは、「セキュリティモデル」に準拠して構築すればよい。これは、セキュリティラベルをコンピュータシステムで利用する特定の機関または組織のために構築されるものである。このモデルは、セキュリティストラクチャ、実装、および、オペレーションの青写真（ブループリント）を形成する。
【０１１１】
組織は、リスク（脅威）を特定し、適切なセキュリティラベルのアーキテクチャを設計することでこれらのリスクを軽減する。このセキュリティラベルアーキテクチャは、多くの概念的グループ化を備えることができる。それらのグループには、
・  人々の役割、
・  役割のレベル、
・  コンパートメント、および、
・  アプリケーション（機能）、
が含まれる。
【０１１２】
そして、グループ分けは、適切なセキュリティレベルの優越性の階層（ヒエラルキー）に組織化されてよく、また、規則（ルール）のセットを考案して特定されたリスク（脅威）を軽減させるのに必要なラベル間の相互作用を可能にしてもよい。
【０１１３】
本発明を有意義に実装できるようにするため、本願に記載の実施形態で具体化されたセキュリティラベルの概念の全てをカバーするように拡張可能なＵＭＬモデリングの表記法（ノーテーション）を用いてセキュリティラベルのモデルを実装することができる。
【０１１４】
以下のステップは、適切に組織化されたセキュリティモデルのアーキテクチャを構築するのに用いることが可能な方法論の１つを概説する。
【０１１５】
１．「使用事例図（ユースケースダイヤグラム、Use Case Diagrams）」
特に、システムの「関係者（アクター、actors）」（およびそのヒエラルキー）を分析することにより、検討対象のシステムの「関係者」（ユーザおよび他のシステム）の観点での、脅威リスト（または脅威ツリー）に挙がった候補のいずれかを軽減するのに必要な様々な最初のセキュリティレベルを特定する。様々なセキュリティ’レベル’は、使用事例図にアノテート（注記）もしくはレコード（記録）される。
【０１１６】
２．「使用事例図」
特に、「使用事例（ユースケース）」（プロセスまたはサービス）を分析することにより、アプリケーション（機能）の観点での、脅威リスト（または脅威ツリー）に挙がった候補のいずれかを軽減するのに必要な様々な最初のセキュリティレベルを特定する。様々なセキュリティ’レベル’は、使用事例図にアノテート（注記）もしくはレコード（記録）される。
【０１１７】
３．「使用事例図」
特に、相互作用する「関係者」および「使用事例」（ユーザ、他のシステム、サービスの間の相互作用）を分析することにより、ステップ１およびステップ２で特定された様々なセキュリティレベルを明確化し、アプリケーションとユーザとの間の相互作用の観点での、脅威リスト（または脅威ツリー）に挙がった候補のいずれかを軽減するのに必要なコンパートメントの適切なセットを特定する。様々なセキュリティ’レベル’および’コンパートメント’は、使用事例図にアノテート（注記）もしくはレコード（記録）される。
【０１１８】
４．「クラス図（クラスダイヤグラム、Class Diagrams）」
特に、「オブジェクトクラス」および「オブジェクトクラス関連性」を分析することにより、ソフトウェアアーキテクチャのどこに、セキュリティラベル（レベルおよびコンパートメント）を実装するべきか、を特定する。様々なセキュリティ’レベル’および’コンパートメント’は、クラス図にオブジェクトクラスの’メソッド’および’属性（アトリビュート、attributes）’としてアノテート（注記）もしくはレコード（記録）される。
【０１１９】
５．「オブジェクト相互作用図」および「オブジェクトシークエンス図」を用いて、上述の二元および三元の両方において、セキュリティラベルの優越性のダイナミクスをリハーサル（walk through）する（対象優越性オブジェクト（サブジェクトドミネートオブジェクト、subject dominate object））。この意図は、セキュリティラベルの相互商によって形成されるゲーティング（アクセスおよび閉鎖）のダイナミクスを理解することである。
【０１２０】
６．「エンティティ関係モデル図（エンティティ・リレーションシップ・モデリング・ダイヤグラム、Entity Relationship Modelling Diagrams）」（ＵＭＬのメソッドの部分ではない。）を、特定のデータアーキテクチャについて独立的にモデル化、または、先述のＵＭＬモデリング、上述のステップ１乃至ステップ５から導出された、セキュリティラベル（テーブルの属性）とともにアノテート（注記）すべきである。
【０１２１】
７．「オブジェクト相互作用図」および「オブジェクトシークエンス図」を、ステップ７の後で再検討し、今回は、メッセージングのアーキテクチャを最高することを視野に入れる。「オブジェクトメソッド」の相互作用に加え、システム間および相互作用するオブジェクトクラス間（つまり、「クラスメソッド」）のメッセージングに関するリスクを軽減する。
【０１２２】
上記のステップを実行することによって、’ｎ’段のコンピュータシステム（'n' tier computer system）のアーキテクチャのためのセキュリティモデルで数多くの利点が得られる。「データ層（データレイヤ、data layer）」の脅威は、テーブルおよび行レベルの両方と結びついたセキュリティラベルの構成によって軽減される。
【０１２３】
「中段層（ミドル・ティア・レイヤ、Middle tier layer）」の脅威は、オブジェクトクラスのインスタンス化についてのセキュリティラベルの構成（取り決め、アレンジメント）によって軽減され、オブジェクトおよびクラスのメッセージング相互作用についてのセキュリティコントロールが実現される。
【０１２４】
暗号化通信レイヤに埋め込まれたセキュリティラベルは、「ユーザ」および「外部システム」の相互作用による脅威を軽減する。ＲＳＡといった標準的暗号化アルゴリズムを用いてセキュリティレベルをカプセル化することができる。
【０１２５】
当然のことだが、上記の例は、簡単のため、底が２の指数関数形式を用いているが、あらゆる底を用いることができる。
【０１２６】
当然のことながら、本願におけるトークンは、データベース内の情報へのアクセスをコントロールするために用いられるラベルであるが、同様の概念を、ソフトウェアオブジェクト間のメッセージングのコントロール、または、コンピュータシステム間の通信のコントロールといった、他のコンピューティング領域において情報のカテゴリ化および保護に用いることができる。
【０１２７】
当然のことながら、記載された実施形態は、医療用のアプリケーション／クラシフィケーションシステムであるが、本発明による方法およびシステムの実施形態は、セキュリティレベルおよびコンパートメントのあらゆる適当な組み合わせを用いて、あらゆるタイプのデータを保持する、あらゆるタイプのコンピュータシステム、または、あらゆるタイプのデータベースにおいて用いられてよい。
【符号の説明】
【０１２８】
１００  ・・・  コンピュータシステム
１０２  ・・・  プロセッサ
１０４  ・・・  ＲＯＭ
１０６  ・・・  ＲＡＭ
１０８  ・・・  ディスクドライブ
１１０  ・・・  キーボード
１１２  ・・・  ディスプレイ
１１４  ・・・  通信リンク
１１６  ・・・  オペレーティングシステム
１１８  ・・・  ソフトウェアアプリケーション
１２０  ・・・  ソフトウェアアプリケーション
【図１】
0005383665.tif 000002
【図２】
0005383665.tif 000003
【図３】
0005383665.tif 000004
【図４】
0005383665.tif 000005
【図５】
0005383665.tif 000006
【図６】
0005383665.tif 000007
【図７】
0005383665.tif 000008
【図８】
0005383665.tif 000009
【図９】
0005383665.tif 000010