【手続補正書】
【提出日】平成19年12月26日(2007.12.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも２つの異なるデータクラスを管理するためのシステムであって、前記クラスのうち少なくとも１つは暗号鍵を含むクラスであり、前記システムは、
複数のヒープを生成する１または複数のメモリ管理コンポーネントであって、前記ヒープの各々の上にデータの使用に関する異なるルールセットが存在し、前記複数のヒープは第１のヒープを含み、前記ルールセットは、前記第１のヒープ上に記憶されるべき前記暗号鍵を呼び出し、前記ルールセットはさらに、前記第１のヒープ上のデータは前記システムから出力装置を介して転送されるべきでないという第１のルールを含み、前記１または複数のメモリ管理コンポーネントは、プログラムが使用するための関数をエクスポーズし、前記関数は、暗号鍵を生成する第１の関数を含み、前記関数は、データを記憶し、かつ／または消費するように構成され、前記関数は、（１）前記第１の関数が生成する前記暗号鍵を前記第１のヒープ上に記憶すべきことを決定することを含め、前記複数のヒープのうちのどのヒープ上にデータを記憶するのかを、前記データの性質または意図する用法に基づいて決定し、かつ（２）前記システムから出力装置を介してデータ項目を転送するという要求が、前記データ項目に適用可能な前記ルールに反しないかどうかを、前記データがどのヒープ上に位置するのかに基づいて判定するように構成され、前記複数のヒープの各々は、１または複数のメモリ位置範囲の中に記憶され、前記範囲は、前記１または複数のコンポーネントに知られており、前記関数は、前記複数のヒープのうちのどのヒープ上に所与のデータが位置するのかを、前記範囲のうちのどの範囲に前記所与のデータのアドレスが含まれるのかに基づいて決定し、前記関数は、前記各々のヒープに適用可能な前記ルールの違反を防ぐための１または複数の方策をとり、該１または複数の方策は、警報を発することと、警告メッセージを表示することと、データの使用に関する前記要求の実行を拒絶することとのうちの少なくとも１つを含む、１または複数のメモリ管理コンポーネント
を備えたことを特徴とするシステム。
【請求項２】
前記複数のヒープは、第２のヒープをさらに含み、前記第１のヒープは、なんらかの形でデータの使用が制限された該データを記憶するように指定され、前記第２のヒープは、データの使用が制限されていない該データを記憶するように指定されていることを特徴とする請求項１に記載のシステム。
【請求項３】
前記第１のヒープは、秘密にしておくべきデータを記憶することを特徴とする請求項２に記載のシステム。
【請求項４】
前記関数のうちの第２の関数は、出力関数を含み、前記第２の関数は、前記第１のヒープ上に記憶されたデータの出力を防ぐ１または複数の方策をとることを特徴とする請求項３に記載のシステム。
【請求項５】
秘密にしておくべき前記データは、１または複数の暗号鍵を含むことを特徴とする請求項３に記載のシステム。
【請求項６】
秘密にしておくべき前記データは、解読された暗号文を含むことを特徴とする請求項３に記載のシステム。
【請求項７】
前記１または複数のコンポーネントは、１つのコンポーネントからなることを特徴とする請求項１に記載のシステム。
【請求項８】
前記１または複数の方策は、データが記憶されたヒープに適用可能なルールに反した前記データに対する動作の実行を拒絶することを含むことを特徴とする請求項１に記載のシステム。
【請求項９】
前記１または複数の方策は、データが記憶されたヒープに適用可能なルールに反する動作を前記データに対して実行する要求がなされたという警告を生成することを含むことを特徴とする請求項１に記載のシステム。
【請求項１０】
方法を実行するためのコンピュータ実行可能命令を使用して符号化されたコンピュータ記憶媒体であって、前記方法は、
各々が異なるデータクラスに対応する複数のヒープを生成することであって、前記クラスのうち少なくとも１つは暗号鍵を含むクラスである、生成することと、
第１のクラスに属する第１のデータを生成して記憶する第１の関数を実行する第１の要求を受け取ることであって、前記第１のデータは暗号鍵を含む、受け取ることと、
前記ヒープのうちの第１のヒープから第１のメモリ部分を割り当てることと、
前記第１のメモリ部分に前記第１のデータを記憶することと、
実行される際に、出力装置を介して前記第１のメモリ部分に記憶されたデータを転送する第２の関数を実行する第２の要求を受け取ることと、
１または複数のルールにより、前記出力装置を介して、前記ヒープのうちの前記第１のヒープ上に記憶されたデータが転送されることが禁止されるという決定に基づいて、前記第２の要求の着手を妨げることであって、前記決定は、前記第１のメモリ部分と、前記ヒープのうちの前記第１のヒープが記憶されているメモリアドレス範囲との比較に基づくものであり、前記妨げることは、警報を発することと、警告メッセージを表示することと、前記出力装置を介したデータの転送を拒絶することとのうちの少なくとも１つを含む、妨げることと
を備えたことを特徴とするコンピュータ記憶媒体。
【請求項１１】
前記複数のヒープは、秘密にしておくべきデータクラスに対応する、前記ヒープのうちの前記第１のヒープと、秘密にしておく必要のないデータクラスに対応する、前記ヒープのうちの第２のヒープとを含むことを特徴とする請求項１０に記載のコンピュータ記憶媒体。
【請求項１２】
前記第１の関数は、前記第１のメモリ部分への秘密の記憶を実行し、前記第２の関数は、前記第１のメモリ部分のアドレスを受け取り、前記第２の関数は、受け取った前記アドレスに記憶されたデータに対して、受け取った前記アドレスの内容を開示することになる動作を実行するように構成されており、前記第２の関数は、受け取った前記アドレスが前記第１のヒープ上に位置する場合に、前記動作の実行を妨げるように構成されていることを特徴とする請求項１０に記載のコンピュータ記憶媒体。
【請求項１３】
前記動作は、前記受け取ったアドレスの内容を出力装置に書き込むことを含むことを特徴とする請求項１２に記載のコンピュータ記憶媒体。
【請求項１４】
前記第２の要求の着手を妨げる前記少なくとも１つの動作は、前記第２の要求の実行を拒絶することを含むことを特徴とする請求項１０に記載のコンピュータ記憶媒体。
【請求項１５】
前記第２の要求の着手を妨げる前記少なくとも１つの動作は、前記要求を実行する前に警告を生成することを含むことを特徴とする請求項１０に記載のコンピュータ記憶媒体。
【請求項１６】
データを誤用から守る方法であって、
第１のクラスに属する第１のデータを処理する第１の関数セットを提供することであって、前記第１のクラスは暗号鍵を含み、前記第１の関数セットのうちの第１の関数は、前記暗号鍵を生成し、該暗号鍵を含めて前記第１のデータを第１のヒープ上に記憶する、第１の関数セットを提供することと、
前記第１のクラスに適用されるルールセットに反する方法で第２のデータを処理する第２の関数セットを提供することであって、前記第２の関数セットは、前記第２のデータを第２のヒープ上に記憶し、前記第２の関数セットは、前記第１のヒープ上の前記データを前記第２のヒープ上にコピーするのを防ぐ少なくとも１つの方策をとるように構成され、前記第２の関数セットはさらに、前記第１のデータと、前記第１のヒープを記憶するように指定されたメモリ位置範囲との比較に基づいて、前記データが前記第１のヒープ上に位置するかどうかを認識するように構成され、前記第２の関数セットはさらに、前記第１のクラスに適用される前記ルールセットに反する方法で前記第１のヒープ上のデータの使用を妨げる少なくとも１つの方策をとるように構成され、該少なくとも１つの方策は、警報を発することと、警告メッセージを表示することと、前記第２のヒープから前記第１のヒープへの前記データの転送を拒絶することとのうちの少なくとも１つを含む、第２の関数セットを提供することと
を備えることを特徴とする方法。
【請求項１７】
前記第１のクラスに適用されるルールセットは、前記第１のクラスのデータを秘密にしておく要求を含み、前記第２のクラスは、非秘密データを含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記第１のクラスに適用されるルールセットは、前記第１のクラスのデータを出力装置上に送信してはならないというルールを含むことを特徴とする請求項１６に記載の方法。
【請求項１９】
前記第１の関数セットは、暗号鍵を生成するか、または暗号鍵を適用する関数を含み、前記第１のクラスのデータは、１または複数の暗号鍵を含むことを特徴とする請求項１６に記載の方法。
【請求項２０】
前記第１のヒープ上の前記データを前記第２のヒープ上にコピーするのを防ぐ前記少なくとも１つの方策は、前記第２のヒープ上にコピーされるデータが前記第１のヒープ上に位置するかどうかを判定し、コピーされる前記データが前記第１のヒープ上に位置する場合には、前記コピーの実行を拒絶することを含むことを特徴とする請求項１６に記載の方法。
【請求項２１】
前記第１のクラスに適用される前記ルールセットに反する方法で前記第１のヒープ上のデータの使用を妨げる前記少なくとも１つの方策は、前記第１のヒープ上に位置するデータの要求された使用の実行を拒絶することを含むことを特徴とする請求項１６に記載の方法。
【請求項２２】
前記第１のクラスに適用される前記ルールセットに反する方法で前記第１のヒープ上のデータの使用を妨げる前記少なくとも１つの方策は、前記第１のヒープ上に位置するデータの要求された使用を実行する前に警告を生成することを含むことを特徴とする請求項１６に記載の方法。
【請求項２３】
方法を実行するためのコンピュータ実行可能命令を使用して符号化されたコンピュータ記憶媒体であって、前記方法は、
各々が異なるデータクラスに対応する複数のヒープを生成することであって、前記クラスのうち少なくとも１つは暗号鍵を含むクラスである、生成することと
メモリの一部分を使用することを含む関数を実行する要求を受け取ることであって、前記メモリの一部分は、前記複数のヒープのうちの第１のヒープ上に位置し、前記メモリの一部分は、前記暗号鍵を記憶する、受け取ることと、
前記使用が前記第１のヒープを支配しているルールに反していないかどうかに従って、前記要求の着手を許可するか、または前記要求の着手を妨げる少なくとも１つの動作を実行することであって、前記要求の着手を前記許可するか、または前記要求の着手を妨げる少なくとも１つの動作を前記実行するかの決定は、前記動作により、前記暗号鍵が前記複数のヒープのうちの前記第１のヒープから前記複数のヒープのうちの第２のヒープに転送されることになるか、または前記動作により、前記暗号鍵が出力装置を介して転送されることになるかのいずれかに基づくものであり、前記決定により、前記暗号鍵のメモリ位置と、前記複数のヒープのうちの前記第１のヒープを記憶するために指定されたメモリ位置範囲との比較に基づいて、前記暗号鍵が前記第１のヒープ上に記憶されているものとして識別され、前記要求の着手を妨げる前記少なくとも１つの動作は、警報を発することと、警告メッセージを表示することと、前記要求におけるユーザの目的の実行を拒絶することとのうちの少なくとも１つを含む、前記要求の着手を許可するか、または前記要求の着手を妨げる少なくとも１つの動作を実行することと
を備えたことを特徴とするコンピュータ記憶媒体。
【請求項２４】
前記使用は、前記メモリの一部分にデータを書き込むことを含み、前記ルールは、前記第１のヒープ上に記憶することができるデータの型、または前記第１のヒープ上にデータを書き込むことができる状況を支配することを特徴とする請求項２３に記載のコンピュータ記憶媒体。
【請求項２５】
前記使用は、前記メモリの一部分からデータを読み取ることを含み、前記ルールは、前記第１のヒープ上に記憶されたデータから実施することができる使用の型、または前記第１のヒープからデータを読み取りもしくは使用することができる状況を支配することを特徴とする請求項２３に記載のコンピュータ記憶媒体。