(57)【要約】  本発明は、英数字を難読化するために使用できる少なくとも２つの異なる数字範囲を組み合わせることによって数値基底を定義する方法に関する。この基底は、変換関数と組み合わせて使用した時に、製品識別に、或いは一意の追跡番号又は識別番号を作成する他の方法に使用することができる。【選択図】      図２
2018523388.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに記憶されたデータを難読化する方法であって、
コンピュータマシンの状態を記述する情報を機械番号（ＭＮＵＭ）として定義して記憶するステップを含み、前記状態を記述する前記情報は、前記状態を記述する前記情報を含む基底の数を含み、前記方法は、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成するステップをさらに含み、ＭＳＵＰＩを算出する前記ステップは、
ステップの数をｉｍａｘになるように定義し、各ステップについて、第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と、第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成するステップを含み、生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出するステップと、
（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出するステップと、
ｍ0,2＝ＭＵＰＩを定義するステップと、
ｉ＝１からｉｍａｘ−１までの各要素ｉについて、
ｍi,1＝（ｍi-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、
ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、
ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1と、
を算出するステップと、
ＭＳＵＰＩ＝ｍimax2を定義するステップと、
を含み、前記方法は、
前記機械セキュア固有製品識別子（ＭＳＵＰＩ）を電子データストアに記憶するステップをさらに含む、
ことを特徴とする方法。
【請求項２】
前記コンピュータマシンの前記状態を記述する前記情報は、時間情報と製品番号との組み合わせを含む、
請求項１に記載の方法。
【請求項３】
前記時間情報は、ユリウス年、ユリウス日、生産時間及び生産分を含む、
請求項１又は２に記載の方法。
【請求項４】
前記状態を記述する前記情報は、定期的にリセットされる増分カウンタの値を含む、
請求項１から３の１項又は２項以上に記載の方法。
【請求項５】
前記コンピュータマシンの前記状態を記述する前記情報に基づく前記数は、１０×３６６×２４×６０×時間識別子として算出される、
請求項１から４の１項又は２項以上に記載の方法。
【請求項６】
時間識別子は、整数２２１０として定義される、
請求項１から５の１項又は２項以上に記載の方法。
【請求項７】
ＳＵＰＩ＝（ｐ×ｍ）ｍｏｄ（ＭＮＵＭ×ｍＮｏｉｓｅ×ＲｕｎＬｉｍ）になるようなセキュア固有製品識別子（ＳＵＰＩ）である１２文字の英数字コードが取得される、
請求項１から６の１項又は２項以上に記載の方法。
【請求項８】
生産施設において生産された製品をセキュアに識別するためのコードを生成する方法であって、
電子データストアから構成データを電子的に受け取るステップと、
製品の生産において使用するパラメータを指定する、生産工程のための前記構成データを電子的に記憶するステップと、
前記構成データを認可モジュールに送信するステップと、
前記認可モジュールにおいて、
前記生産工程が認可されているか否かを判定するステップと、
鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、
前記認証済み構成データを署名モジュールに送信するステップと、
前記署名モジュールにおいて、前記認証済み構成データに署名するステップと、
識別モジュールにおいて、製品識別子を求める要求を受け取り、該要求に応答して製品識別子を生成するステップと、
を含み、前記製品識別子を生成するステップは、
コンピュータマシンの状態を記述する情報であって該状態を記述する情報を含む基底の数を含む情報を機械番号（ＭＮＵＭ）として定義して記憶し、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成する、
ことによって実行され、前記ＭＳＵＰＩを算出する前記ステップは、
ステップの数をｉｍａｘになるように定義し、各ステップについて第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成するステップを含み、生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出するステップと、
（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出するステップと、
ｍ0,2＝ＭＵＰＩを定義するステップと、
ｉ＝０からｉｍａｘ−１までの各要素ｉについて、
ｍi,1＝（ｍi-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、
ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、
ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1と、
を算出するステップと、
ＭＳＵＰＩ＝ｍmax2を定義するステップと、
を含み、前記方法は、
前記機械セキュア固有製品識別子（ＭＳＵＰＩ）を前記製品識別子として電子データストアに記憶するステップと、
前記機械セキュア固有製品識別子を前記識別モジュールから署名モジュールに送信するステップと、
前記署名モジュールにおいて、前記機械セキュア固有製品識別子にデジタル署名するステップと、
前記デジタル署名された機械セキュア固有製品識別子をプリンタモジュールに送信するステップと、
をさらに含む、ことを特徴とする方法。
【請求項９】
電子データストアから構成データを電子的に受け取るステップと、
製品の生産において使用するパラメータを指定する、生産工程のための前記構成データを電子的に記憶するステップと、
前記構成データを認可モジュールに送信するステップと、
認可モジュールにおいて、
前記生産工程が認可されているか否かを判定するステップと、
鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、
前記認証済み構成データを署名モジュールに送信するステップと、
前記署名モジュールにおいて、前記認証済み構成データに署名するステップと、
をさらに含む、請求項１から８の１項又は２項以上に記載の方法。
【請求項１０】
前記要求は、識別子の範囲を求めるものである、
請求項１から９の１項又は２項以上に記載の方法。
【請求項１１】
前記生産工程のための前記構成データが認可されているかどうかを判定するステップと、
前記生産工程が認可されている場合、
セキュリティトークンを生成して前記構成データに関連付けるステップと、
デジタル署名を生成して前記構成データに関連付けることによって前記構成データにデジタル署名するステップと、
をさらに含む、請求項１から１０の１項又は２項以上に記載の方法。
【請求項１２】
前記機械固有製品識別子（ＭＵＰＩ）は、該機械固有製品識別子（ＭＵＰＩ）のビット長が前記機械セキュア固有製品識別子（ＭＳＵＰＩ）のビット長に等しくなるように、前記機械固有製品識別子（ＭＵＰＩ）をパディングすることなく変換される、
請求項１から１１の１項又は２項以上に記載の方法。
【請求項１３】
セキュアな機械固有製品識別子の検証方法であって、
検証モジュールが検証のためにＭＳＵＰＩを受け取るステップと、
ＭＳＵＰＩをｍ0,2として割り当てるステップと、
前記検証モジュールが、第１の乱数ＣＧＯＫi,1及び第２の乱数ＣＧＯＫi,2を検索するとともに、前記検索された乱数及び受け取ったＭＳＵＰＩに関連するｉｍａｘを検索するステップと、
ｉ＝１からｉｍａｘ−１までの各要素ｉについて、
ｍi,1＝（ｍi-1,2  ｍｏｄ  ＣＧＯＫi,2）と、
ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,1＝ｍi-1,2と、
ｍi,2＝（ｍi,1×ＣＧＯＫ-1i,1）ｍｏｄ（ＭＵＮＭ）と、
を算出するステップと、
ｍｃｇ＝ｍimax2と、
コンピュータマシンの状態を記述する情報に基づくＭＵＰＩ＝ｍcg,／ｍＮｏｉｓｅ及びノイズ値＝ｍcg  ｍｏｄ  ｍＮｏｉｓｅを検証するステップと、
を含むことを特徴とする方法。
【請求項１４】
前記機械セキュア固有製品識別子（ＭＳＵＰＩ）は、該機械固有製品識別子（ＭＵＰＩ）のビット長が前記機械セキュア固有製品識別子（ＭＳＵＰＩ）のビット長に等しくなるように、前記機械固有製品識別子（ＭＵＰＩ）をパディングする必要なく変換される、
請求項１から１３の１項又は２項以上に記載の方法。
【請求項１５】
認可モジュールから受け取られた認可を、その後にこれらの認可に照らして検証要求を処理できるように検証モジュールに送信することができ、前記検証モジュールに送信されるデータは、前記機械セキュア固有製品識別子（ＭＳＵＰＩ）を含むことができる、
請求項１から１４の１項又は２項以上に記載の方法。
【請求項１６】
ネットワークに記憶されたデータを難読化するシステムであって、
コンピュータプロセッサを備え、該コンピュータプロセッサは、
コンピュータマシンの状態を記述する情報を機械番号（ＭＮＵＭ）として定義して記憶するように構成され、前記状態を記述する前記情報は、前記状態を記述する前記情報を含む基底の数を含み、前記コンピュータプロセッサは、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成するようにさらに構成され、ＭＳＵＰＩを算出する前記ステップは、
ステップの数をｉｍａｘになるように定義し、各ステップについて、第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と、第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成するステップを含み、生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出するステップと、
（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出するステップと、
ｍ0,2＝ＭＵＰＩを定義するステップと、
ｉ＝１からｉｍａｘ−１までの各要素ｉについて、
ｍi,1＝（ｍi-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、
ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、
ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1と、
を算出するステップと、
ＭＳＵＰＩ＝ｍimax2を定義するステップと、
を含み、前記システムは、
前記機械セキュア固有製品識別子（ＭＳＵＰＩ）を記憶するように構成された電子データストアをさらに備える、
ことを特徴とするシステム。
【請求項１７】
生産施設において生産された製品をセキュアに識別するためのコードを生成するシステムであって、コンピュータ化されたプロセッサを備え、該プロセッサは、
電子データストアから構成データを電子的に受け取り、
製品の生産において使用するパラメータを指定する、生産工程のための前記構成データを電子的に記憶し、
前記構成データを認可モジュールに送信し、
前記認可モジュールにおいて、
前記生産工程が認可されているか否かを判定し、
鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成し、
前記認証済み構成データを署名モジュールに送信し、
前記署名モジュールにおいて、前記認証済み構成データに署名し、
識別モジュールにおいて、製品識別子を求める要求を受け取り、該要求に応答して製品識別子を生成する、
ための命令を実行するように構成され、前記製品識別子の生成は、
コンピュータマシンの状態を記述する情報であって該状態を記述する情報を含む基底の数を含む情報を機械番号（ＭＮＵＭ）として定義して記憶し、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成する、
ことによって実行され、前記ＭＳＵＰＩの前記算出は、
ステップの数をｉｍａｘになるように定義し、各ステップについて第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成することを含み、生成は、
前記コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出することと、
（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出することと、
ｍ0,2＝ＭＵＰＩを定義することと、
ｉ＝０からｉｍａｘ−１までの各要素ｉについて、
ｍi,1＝（ｍi-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、
ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、
ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1と、
を算出することと、
ＭＳＵＰＩ＝ｍmax2を定義することと、
を含み、前記プロセッサは、
前記機械セキュア固有製品識別子（ＭＳＵＰＩ）を前記製品識別子として電子データストアに記憶し、
前記機械セキュア固有製品識別子を前記識別モジュールから署名モジュールに送信し、
前記署名モジュールにおいて、前記機械セキュア固有製品識別子にデジタル署名し、
前記デジタル署名された機械セキュア固有製品識別子をプリンタモジュールに送信する、
ための命令を実行するようにさらに構成される、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
〔関連出願との相互参照〕
本出願は、２０１５年８月１３日に出願された米国仮特許出願第６２／２０４，７５３号の利益を主張するものであり、この文献の内容はその全体が引用により本明細書に組み入れられる。
【０００２】
本発明は、一般に、製品にセキュアな識別コードをマーク付けすることに関連して英数字を暗号化してこれらのコードを検証する技術、並びにセキュアな生産構成命令の配布を管理してセキュアな製品識別子を生成するシステム及び方法に関する。
【背景技術】
【０００３】
通常、既存の製品識別方法は、梱包時に製品に一意の識別子を付与するものである。これらのシステムは、複数の生産施設を有する組織、又は非常に高速での梱包が可能な生産ラインでは効率良く適応しない。また、既存の識別子の方法は、識別子がセキュアな生産構成命令に関連付けられておらず、監督官庁及び業者の助けになる追加の製品情報を有していないので、十分にセキュアではない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
製造品目の生産をセキュアに制御して認可するとともに、製造品目に、特に製造品目の税務検証、生産量の検証及び認証に使用できるセキュアな製品識別子をマーク付けするための改善された方法及び装置に対するニーズが存在する。
【０００５】
既存のシステムは、製品識別子として使用される英数字を文字毎に暗号化する。この結果、これらのシステムは、一般的には０〜９の数字などに制限され、或いは文字のみを使用する場合には、使用するアルファベットの文字数に（大文字及び小文字を含む）２を乗算したものに制限されてしまう。本発明は、これらの短所に対処するものである。
【課題を解決するための手段】
【０００６】
以下の本発明の実施形態は例示であり、本発明の範囲を限定するものではない。本発明の１又は２以上の実施形態を説明するが、その様々な変更、追加、並べ替え及び同等物も本発明の範囲に含まれる。以下の実施形態の説明では、特許請求の範囲の主題の特定の実施形態を例示として示す、本明細書の一部を成す添付図面を参照する。他の実施形態を使用することも、構造変更などの変更又は修正を行うこともできると理解されたい。このような実施形態、変更又は修正は、意図する特許請求の範囲の主題に関する範囲から必ずしも逸脱するものではない。以下ではステップを特定の順序で示すこともあるが、場合によっては、説明するシステム及び方法の機能を変更することなく異なる時点又は異なる順序で特定の入力が行われるように、これらの順序を変更することもできる。後述する、コードの初期化手続き、生成手続き及び認証手続きなどにおける様々な計算は、開示する順序で実行する必要はなく、別の計算順を使用する他の実施形態を容易に実装することもできる。これらの計算は、順序変更に加えて、同じ結果の下位計算に分解することもできる。
【０００７】
以下、添付図面を参照しながら本発明の実施形態を一例として説明する。
【図面の簡単な説明】
【０００８】
【図１】機械識別子の算出方法例を示す図である。
【図２】データ難読化方法例を示す図である。
【図３】コード初期化方法例を示す図である。
【図４】コード生成方法例を示す図である。
【図５】コード認可方法例を示す図である。
【発明を実施するための形態】
【０００９】
ネットワークに記憶されたデータを難読化する方法の本発明の実施形態によれば、方法が、コンピュータマシンの状態を記述する情報を機械番号（ＭＮＵＭ）として定義して記憶するステップを含み、状態を記述する情報は、状態を記述する情報を含む基底の数を含み、方法は、コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成するステップをさらに含み、ＭＳＵＰＩを算出するステップは、ステップの数をｉｍａｘになるように定義し、各ステップについて、第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と、第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成するステップを含み、生成するステップは、コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出するステップと、（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出するステップと、ｍ0,2＝ＭＵＰＩを定義するステップと、ｉ＝１からｉｍａｘ−１までの各要素ｉについて、ｍi,1＝（ｍｉ-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1とを算出するステップと、ＭＳＵＰＩ＝ｍimax2を定義するステップとを含み、方法は、機械セキュア固有製品識別子（ＭＳＵＰＩ）を電子データストアに記憶するステップをさらに含む。上述した実施形態、並びに本明細書で説明する別の又はさらなる実施形態は、コンピュータ実装発明、コンピュータシステム、又はコンピュータ化されたデータキャリアに具体化することができる。
【００１０】
別の又はさらなる実施形態によれば、コンピュータマシンの状態を記述する情報は、時間情報と製品番号との組み合わせを含む。別の又はさらなる実施形態によれば、時間情報は、ユリウス年、ユリウス日、生産時間及び生産分を含む。別の又はさらなる実施形態によれば、状態を記述する情報は、定期的にリセットされる増分カウンタの値を含む。別の又はさらなる実施形態によれば、コンピュータマシンの状態を記述する情報に基づく数は、１０×３６６×２４×６０×時間識別子として算出される。別の又はさらなる実施形態によれば、時間識別子は、整数２２１０として定義される。別の又はさらなる実施形態によれば、ＳＵＰＩ＝（ｐ×ｍ）ｍｏｄ（ＭＮＵＭ×ｍＮｏｉｓｅ×ＲｕｎＬｉｍ）になるようなセキュア固有製品識別子（ＳＵＰＩ）である１２文字の英数字コードが取得される。
【００１１】
生産施設において生産された製品をセキュアに識別するためのコードを生成する別の又はさらなる実施形態によれば、方法が、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、識別モジュールにおいて、製品識別子を求める要求を受け取り、要求に応答して製品識別子を生成するステップとを含み、製品識別子を生成するステップは、コンピュータマシンの状態を記述する情報であって状態を記述する情報を含む基底の数を含む情報を機械番号（ＭＮＵＭ）として定義して記憶し、コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子（ＭＵＰＩ）の可逆的数学変換としての機械セキュア固有製品識別子（ＭＳＵＰＩ）を生成することによって実行され、ＭＳＵＰＩを算出するステップは、ステップの数をｉｍａｘになるように定義し、各ステップについて第１の乱数コード生成難読化鍵（ＣＧＯＫi,1）と第２の乱数コード生成難読化鍵（ＣＧＯＫi,2）とを生成するステップを含み、生成するステップは、コンピュータマシンの状態を記述する情報に基づく数（ＭＮＵＭ）と互いに素である第１の乱数（ＣＧＯＫi,1）を算出するステップと、（ＭＮＵＭ）以下のビットサイズを有する第２の乱数（ＣＧＯＫi,2）を算出するステップと、ｍ0,2＝ＭＵＰＩを定義するステップと、ｉ＝０からｉｍａｘ−１までの各要素ｉについて、ｍi,1＝（ｍi-1,2×ＣＧＯＫi,1）ｍｏｄ（ＭＮＵＭ）と、ｍi,2＝（ｍi,1  ｍｏｄ  ＣＧＯＫi,2）と、ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,2＝ｍi,1とを算出するステップと、ＭＳＵＰＩ＝ｍmax2を定義するステップとを含み、方法は、機械セキュア固有製品識別子（ＭＳＵＰＩ）を製品識別子として電子データストアに記憶するステップと、製品識別子を識別モジュールから署名モジュールに送信するステップと、署名モジュールにおいて、製品識別子にデジタル署名するステップと、デジタル署名された製品識別子をプリンタモジュールに送信するステップとをさらに含む。
【００１２】
別の又はさらなる実施形態によれば、方法が、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、をさらに含む。
【００１３】
別の又はさらなる実施形態によれば、要求は、識別子の範囲を求めるものである。別の又はさらなる実施形態によれば、方法が、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップとをさらに含む。
【００１４】
別の又はさらなる実施形態によれば、機械固有製品識別子（ＭＵＰＩ）は、機械固有製品識別子（ＭＵＰＩ）のビット長が機械セキュア固有製品識別子（ＭＳＵＰＩ）のビット長に等しくなるように、機械固有製品識別子（ＭＵＰＩ）をパディングすることなく変換される。
【００１５】
別の又はさらなる実施形態によれば、セキュアな機械固有製品識別子の検証方法が、検証モジュールが検証のためにＭＳＵＰＩを受け取るステップと、ＭＳＵＰＩをｍ0,2として割り当てるステップと、検証モジュールが、第１の乱数ＣＧＯＫi,1及び第２の乱数ＣＧＯＫi,2を検索するとともに、検索された乱数及び受け取ったＭＳＵＰＩに関連するｉｍａｘを検索するステップと、ｉ＝１からｉｍａｘ−１までの各要素ｉについて、ｍi,1＝（ｍi-1，２ｍｏｄＣＧＯＫi,2）と、ｉｆ（ｍi,2＞ＭＮＵＭ）→ｍi,1＝ｍi-1,2と、ｍi,2＝（ｍi,1×ＣＧＯＫ-1i,1）ｍｏｄ（ＭＵＮＭ）と、を算出するステップと、ｍcg＝ｍimax2と、コンピュータマシンの状態を記述する情報に基づくＭＵＰＩ＝ｍcg，／ｍＮｏｉｓｅ及びノイズ値＝ｍcgｍｏｄ  ｍＮｏｉｓｅを検証するステップと、を含む。
【００１６】
別の又はさらなる実施形態によれば、機械セキュア固有製品識別子（ＭＳＵＰＩ）は、機械固有製品識別子（ＭＵＰＩ）のビット長が機械セキュア固有製品識別子（ＭＳＵＰＩ）のビット長に等しくなるように、機械固有製品識別子（ＭＵＰＩ）をパディングする必要なく変換される。別の又はさらなる実施形態によれば、認可モジュールから受け取られた認可を、その後にこれらの認可に照らして検証要求を処理できるように検証モジュールに送信することができ、検証モジュールに送信されるデータは、機械セキュア固有製品識別子（ＭＳＵＰＩ）を含むことができる。
【００１７】
説明する方法は、暗号化に加えて又は暗号化の代わりに使用することができ、定義基底（ｄｅｆｉｎｅｄ  ｂａｓｉｓ）を用いて数字を難読化する方法として使用することができる。この方法は、あらゆる有限定義基底（ｆｉｎｉｔｅ  ｄｅｆｉｎｅｄ  ｂａｓｉｓ）に使用することができる。この方法は、数字を使用する際には０〜９などの、或いは１６進数ではゼロ〜Ｆなどの、予め定められた定義基底に対して使用することができる。この方法は、通常の文字範囲で使用される文字数に制限されない定義基底に作用する。
【００１８】
この方法では、英数字を選択する元となるグループを定義し、これらのグループの各々を基底と呼ぶ。例えば、０→５２（０及び５２を含む）を定義する。これらの数字の各々は、暗号化される単一の「文字」である。或いは、０→９３２という基底を定義することもできる。代替例では、文字と数字の組み合わせが可能である。非限定的な例としては、数字に英語のアルファベット、キリル文字のアルファベット又は他のいずれかのアルファベットを加えた組み合わせを挙げることができる。このシステムでは、いずれかの有限集合又は集合の組み合わせを用いて、数字を難読化する際にこれらの各々が単一の「文字」としてカウントされる基底として基底を定義することができる。各文字に数値が割り当てられる限り、あらゆる英数字集合を使用することができる。これを用いて、例えば１６進数集合とアルファベットとを組み合わせることができる。
【００１９】
各文字に、最小値及び最大値を含む数値を割り当て、その後にこれらを組み合わせる。例えば、１６進数と、２９文字あるフィンランド語のアルファベットとを組み合わせる場合、１６進数を表す値０〜１５を、１５が０に対応し、１４が１に対応するようにして、１がＢに対応し、０がＡに対応するまで割り当てることができる。フィンランド語のアルファベットでは、（大文字のみを使用すると仮定して）同様に対応する数字を１とＡから２９とÅまでとすることができ、或いは１にＬを割り当て、１８がÅに対応し、１９がＡに対応し、２９がＫに割り当てられるまでカウントすることができる。
【００２０】
どの文字又は数字がどの数値に割り当てられているかが記憶される限り、割り当ては線形である必要はない。この割り当ては、さらなる難読化が望ましい場合にも、割り当てが記録されて後で解読できる限り動的に行うことができる。１６進数と２９文字のアルファベットとを使用する例では、範囲を、ＭＡＸ＝Ｈｅｘ（ｍａｘ）＊Ａｌｐｈａｂｅｔ（ｍａｘ）＋Ａｌｐｈａｂｅｔ（ｍａｘ）とし、最小：ＭＩＮ＝Ｈｅｘ（ｍｉｎ）＊Ａｌｐｈａｂｅｔ（ｍｉｎ）＋Ａｌｐｈａｂｅｔ（ｍｉｎ）とすることができる。これらの例には、いずれも２つの基底が存在する。この例では、［１，４６４］の範囲基底が得られる。この理由は、アルファベットの番号が、２９文字について０〜２８であるのとは対照的に１〜２９までの値を取るためである。或いは、同じ集合を、ＭＡＸ＝Ａｌｐｈａｂｅｔ（ｍａｘ）＊Ｈｅｘ（ｍａｘ）＋Ｈｅｘ（ｍａｘ）、及びＭＩＮ＝Ａｌｐｈａｂｅｔ（ｍｉｎ）＊Ｈｅｘ（ｍｉｎ）＋Ｈｅｘ（ｍｉｎ）として組み合わせて［０，４５０］の範囲基底をもたらすこともできる。従って、同じ成分基底を使用して、様々な範囲を作成してプロセスで使用する数字をさらに難読化することができる。
【００２１】
範囲基底を作成する別の例では、時間と数値識別子との組み合わせなどの範囲基底がコンピュータマシンの状態を記述することができる。この例では、複数の基底を用いて範囲基底を作成することができる。この例では、範囲基底が５つの異なる基底で構成され、切り捨てたユリウス年（ＪＹ）［０−１０］を、ユリウス日（ＪＤ）［０−３６６］、１日の時間（ＨＲ）［０−２４］、１時間の分（Ｍｉｎｓ）［０−６０］、時間識別子（ＴＩ）［０−２２１０］、及び分毎にリセットされる付加的な増分カウンタと組み合わせたものになる。範囲基底を作成するために使用される基底の数は、ｉｍａｘとして定義される。この実施形態の例を図１に示す。
【００２２】
範囲は、英数字を単一の範囲に変換することによって決定される。例えば、この例では、年を日に変換し、合計日数を時間に変換し、合計時間を分に変換した後に増分カウンタに変換する。これを達成するための１つの方法は、各々の最大数を用いて範囲の上端を取得し、各々の最小数を用いて範囲の下端を決定することである。例えば、最大値：ＭＡＸ＝（（（ＪＹ（ｍａｘ）＊ＪＤ（ｍａｘ）＋ＪＤ（ｍａｘ））＊ＨＲ（ｍａｘ）＋ＨＲ（ｍａｘ））＊Ｍｉｎｓ（ｍａｘ）＋Ｍｉｎｓ（ｍａｘ））＊ＴＩ（ｍａｘ）＋ＴＩ（ｍａｘ）となる。範囲の最小値は、ＭＩＮ＝（（（ＪＹ（ｍｉｎ）＊ＪＤ（ｍｉｎ）＋ＪＤ（ｍｉｎ））＊ＨＲ（ｍｉｎ）＋ＨＲ（ｍｉｎ））＊Ｍｉｎｓ（ｍｉｎ）＋Ｍｉｎｓ（ｍｉｎ））＊ＴＩ（ｍｉｎ）＋ＴＩ（ｍｉｎ）となる。この例では、範囲が［０，１２８１５６５９６１０］である。
【００２３】
上記の例の範囲を用いて機械固有製品識別子（ＭＵＰＩ）を定義することができる。ＭＵＰＩ＝（（（ＪＹ＊ＪＤ（ｍａｘ）＋ＪＤ）＊ＨＲ（ｍａｘ）＋ＨＲ）＊Ｍｉｎｓ（ｍａｘ）＋Ｍｉｎｓ）＊ＴＩ（ｍａｘ）＋ＴＩになるような値に収まるように定義する。さらに数字を難読化するために、ランダム成分を加えることができる。この乱数は、乱数の範囲が分かっている限り、あらゆる方法で生成することができる。この乱数は、秘密鍵と動的鍵の組を用いて生成されるデジタル署名とすることができる。この乱数は、例えば鍵付きハッシュメッセージ認証コードを用いて生成することができる。例えば、抽出器関数（ｅｘｔｒａｃｔｏｒ  ｆｕｎｃｔｉｏｎ）の使用時に動的鍵と組み合わせたＭＵＰＩは秘密鍵をもたらし、ハッシュ関数を用いて秘密鍵と組み合わせたＭＵＰＩは、雑音値を算出するために使用される。これにより、値：ｍｃｇ＝ＭＵＰＩ＊ｍＮｏｉｓｅ＋Ｎｏｉｓｅを定義することができる。この値：ＭＵＰＩを、コード生成難読化鍵（ＣＧＯＫ）を用いて暗号化する。
【００２４】
２つのＣＧＯＫ値を使用することができ、第１のＣＧＯＫi,1は、ＭＵＰＩの範囲の最大値と互いに素の数である。ＭＮＵＭ＝ＪＹ（ｍａｘ）＊ＪＤ（ｍａｘ）＊ＨＲ（ｍａｘ）＊Ｍｉｎｓ（ｍａｘ）＊ＴＩ（ｍａｘ）であり、この例では１０＊３６６＊２４＊６０＊２２１０である。第２のＣＧＯＫi,1、ＣＧＯＫi,2は、ＣＧＯＫi,1以下のビットサイズを有する範囲［ＭＩＮ、ＭＮＵＭ−１］内の数である。算出を行うために、ｍ0,2をＭＵＰＩと等しくなるように定義し、ＭＳＵＰＩを、ｍi,2の最大要素であるｍimax2になるように定義する。範囲基底を含む８つの基底が存在する場合、要素：ＭＳＵＰＩ＝ｍ8,2である。次に、ＭＳＵＰＩをコード生成器ＩＤであるＣＧＩＤと組み合わせることができる。この組み合わせは、雑音の最大可能値をｍＮｏｉｓｅとした場合に、ｍ＝ＣＧＩＤ×（ＭＮＵＭ×ｍＮｏｉｓｅ）＋ＭＳＵＰＩになるように、ＣＧＩＤをＭＳＵＰＩの次元ずつシフトすることによって行われる。最終コードであるセキュアな固有製品識別子（ＳＵＰＩ）は、全てのコード生成器について同じものとすることができる大域的難読化コードｐを用いてｍを暗号化することによって取得される。ＳＵＰＩは、（ｐ×ｍ）ｍｏｄ（ＭＮＵＭ×ｍＮｏｉｓｅ×ＲｕｎＬｉｍ）として定義され、１２文字の英数字コードに変換される。この実施形態の例を図２に示す。
【００２５】
この難読化法は、プロセス及び製品の検証では可逆的である。これは、難読化プロセスを逆に実行することによって行われる。これが可能な理由は、ＣＧＯＫがＭＮＵＭと互いに素であり、ＭＮＵＭに対してオイラーのトーシェント関数が使用されるからである。これにより、ＭＳＵＰＩからＭＵＰＩ及びＭＮＵＭを算出することができる。従って、ＳＵＰＩの解読は、ｍ＝（
2018523388.tif 000003
×ＳＵＰＩ）ｍｏｄ（ＭＮＵＭ×ｍＮｏｉｓｅ×ＲｕｎＬｉｍ）というステップをたどる。ｍからＭＳＵＰＩ及びＣＧＩＤを抽出することができ、ＭＳＵＰＩ＝ｍ  ｍｏｄ（ＭＮＵＸ×ｍＮｏｉｓｅ）及びＣＧＩＤ＝ｍ／（ＭＮＵＭ×ｍＮｏｉｓｅ）となる。ここから、ＣＧＯＫの逆数を用いてＭＳＵＰＩを難読化解除する。ＣＧＩＤが分かっているので、これを用いてデータベースから正しいＣＧＯＫを検索する。ｎｏｉｓｅ＝ｍcg  ｍｏｄ  ｍＮｏｉｓｅであるため、ＭＵＰＩ＝ｍcg／ｍＮｏｉｓｅ及び雑音値をチェックすることもできる。
【００２６】
例示的な実装
本開示の別の態様では、本明細書で説明した方法を、本明細書で説明したようなコンピュータ環境において実行可能命令を用いて実施することができる。難読化されたセキュアな製品識別子を生成する命令セットの例は、以下の通りである。
2018523388.tif 000004
2018523388.tif 000005
【００２７】
３ＤＥＳ及びＡＥＳなどの対称鍵アルゴリズムは、入力データのブロックに作用する。これが行われるようにするには、入力データの長さを、このアルゴリズムのブロック長又はその整数倍と正確に等しくなるようにしなければならない。ＡＥＳの１２８ビット暗号化の例では、ブロック長を１２８ビット又は１６バイトにすることができる。例えば、暗号化される入力データは、この例ではブロック長から４バイトを差し引いた２０バイトのサイズを有することができる。入力データ長をブロック長の倍数にするには、入力データをパディングする必要がある。この例では、パディングが、２０バイトが（１６−（２０−１６））＝１２バイトのパディングを必要とするものとして算出される。従って、このパディングは、暗号化データセットのサイズを大幅に増加させ、同様に暗号化データを記憶するのに必要な物理的データストレージの量を増加させることがある。上記の実装例から明らかなように、本発明の難読化法は、入力された製品識別子データのパディングを必要とすることなく製品識別子などのデータを難読化するように構成することができる。
【００２８】
セキュアな生産システムとの統合
上述したデータ難読化システム及び方法は、製品の生産認証システムと組み合わせて有利に使用することができる。本開示の別の態様では、製品の生産を認証する方法であって、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含む方法を提供する。
【００２９】
本明細書で使用するエンティティとは、ｉ）製品の消費者などの人物、ｉｉ）小売業者などの共通の利害を有する団体などの団体、ｉｉｉ）コンピュータ装置、ｉｖ）ネットワークシステム内の計算ノード、ｖ）文書を記憶するメモリ記憶ユニットなどの記憶位置、及び、ｖｉ）企業内の業務などを表すネットワーク内の仮想点などを意味することができる。また、エンティティは、該当するワークフローの側面を担当する個人、又は自動処理を提供するコンピュータ装置が実行できる、認可などのためのワークフロー内の点を表すこともできる。エンティティという用語は、これらの例のいずれか１つに限定されるものではなく、本明細書で説明する概念に一致する他の状況にまで及ぶこともできる。
【００３０】
システムモジュール
以下、様々なモジュールについて説明する。これらのモジュールは、いずれかを物理的に同じ場所に配置することも、或いは互いに離して配置することもできる。また、本発明の範囲から逸脱することなく、これらのモジュールのいずれかを論理的又は物理的に組み合わせて単一のモジュールにすることもできる。
【００３１】
制御モジュール
図３を参照すると、（「オーケストレータ」としても知られている）制御モジュール（１１０）が、他のモジュール又は外部ソースのいずれかから入力を受け取り、事前構成プログラム及び／又はシステムへのオペレータ入力に基づいて、システム内の他のモジュールに命令を与えることができる。制御モジュールは、システム状況のダッシュボード概要を生成することもできる。
【００３２】
制御モジュールへの入力は、一部又は全部の構成データ（１０５）を含むことができる。供給される構成データは、以下に限定されるわけではないが、生産機械、生産ライン、工場、生産する製品及び生産量を含むパラメータの一部又は全部を示すことができる。構成データは、どの品目（例えば、製品）にセキュアな識別子をマーク付けすべきか、及びこれらの品目をどのように生産できるかを示すこともできる。構成データは、開始製品識別子及び終了製品識別子などの製品の範囲を示すこともできる。いくつかの実施形態では、この範囲を一連の製品識別子とすることができる。構成データは、システムのオペレータが提供することも、或いは動的又は自動的に生成することもできる。構成データは、さらなる実行可能命令又は解釈可能なアルゴリズムを含むこともできる。構成データは、オペレータ入力に基づくことも、或いは製造実行システム、又は何をどのように生産すべきかを命令する他の集中型システムの出力に基づくこともできる。
【００３３】
制御モジュール（１１０）は、以下に限定されるわけではないが、認可モジュール（１３０）、識別モジュール（１４０）及び署名モジュール（１４５）を含むいずれかのモジュールに構成データを送信することができる。
【００３４】
制御モジュールは、生産作業を実行するための認可を認可モジュールに要求することができる。このプロセスは、認可モジュールに（構成データの一部又は全部を含む）要求を送信し、署名又は暗号化された構成データを受け取るステップを含む。いくつかの実施形態では、認可モジュールが、デジタル署名が付与された構成データを制御モジュールに戻すことができる。認可モジュールは、受け取ったデータに基づいて、制御モジュールからの要求を認可すべきかどうかを決定する。また、認可モジュールによって戻された構成データに含まれている情報を使用して、与えられた認可によってコードの生成範囲を制限することもできる。このデータには、認可モジュールによる署名が行われているので、システムが構成データを修正するのを防ぐことができる。非限定的な例として、別のブランドの代わりに１つのブランドを生産し続ける要求の修正を制御し、許可し、又は拒否することができる。
【００３５】
認可モジュールから受け取った認可は、後でこれらの認可に照らして検証要求を処理できるように検証モジュールに送信することもできる。検証モジュールに送信されるデータは、いずれかの構成データに加えてセキュアな識別子を含むことができる。いくつかの例では、認可モジュールに送られる構成データが、製品範囲情報を含むことができる。
【００３６】
署名又は検証された構成データは、認可モジュールによって検証され認証された、生産中に効力を維持する制御モジュールの一連の入力パラメータの一部又は全部とすることができる。認可モジュールからの出力及び／又は制御モジュールの入力パラメータは、セキュリティトークンとすることができる。このセキュリティトークンは、製品識別子が認証済みの構成データに、従って認可された生産に対応する旨の証明とすることができる。セキュリティトークンは、単一の製品識別子のための署名、又は単一の製品識別子、又は製品識別子自体、或いは製品の範囲又は製品識別子の署名を生成するための、署名モジュールへの入力とすることができる。セキュリティトークンは、一意のコード、ランダムコード又は擬似ランダムコードとすることができる。セキュリティトークンは、あらゆる数字、アルファベット文字、又は数字とアルファベット文字との組み合わせとすることができる。
【００３７】
認可モジュール
認可モジュールは、識別システム内で行動をとる認可を求める要求を認証するように動作する。いくつかの実施形態では、認可モジュールがライセンスマネージャとして動作することができる。
【００３８】
認可モジュールは、構成データを受け取ることができる。認可モジュールは、範囲情報及び／又はアルゴリズム情報を受け取ることもできる。いくつかの実施形態では、認可モジュールが、制御モジュールから入力された構成データを受け取ることができる。出力範囲は、認可された製品の範囲、機械、工場、範囲又は製品量を任意に識別することができる。出力は、範囲情報を含むことも、及び／又はセキュリティトークンを生成するために使用される一連の実行可能命令又は解釈可能命令を含むアルゴリズムを含むこともできる。認可モジュールは、工場レベルで集中化することも、又は各生産ライン上に分散化することも、或いはこれら両方の組み合わせとすることもできる。
【００３９】
認可モジュールは、１又は２以上の暗号化鍵を記憶及び／又は生成することができる。いくつかの実施形態では、認可モジュールが記憶する鍵を、公開鍵基盤（ＰＫＩ）に従う秘密・公開暗号化鍵とすることができる。いくつかの実施形態では、認可モジュールが、秘密鍵のコピーのみを記憶する。他の実施形態では、認可モジュールが、互いに鍵を複製する複数のインスタンスにわたって分散する。ＰＫＩの場合、認可モジュールは、署名された構成データを出力することができる。いくつかの実施形態では、認可モジュールが、構成データを暗号化し、及び／又は構成データ出力に署名することができる。
【００４０】
いくつかの実施形態では、システムが、セキュリティトークンの生成に必要な制御モジュールのセキュアな入力パラメータを認可モジュールのみが読み込むことができるように構成される。いくつかの実施形態では、鍵が別のソースから認可モジュールに提供される。
【００４１】
認可モジュールは、ハードウェアセキュリティモジュール（ＨＳＭ）として具体化することも、或いは厳密な認証、及び暗号処理の提供のためにデジタル鍵を保護して管理する別のタイプの物理的コンピュータ装置として具体化することもできる。認可モジュールの機能は、暗号化鍵又はＰＫＩ秘密鍵を含む埋め込み基板を有するコンピュータによって実行することができる。このモジュールは、データにアクセスしようとしても読み取り又はアクセスができないような特徴を備えることができる。
【００４２】
認可モジュールへの入力が範囲及びアルゴリズムである場合、認可モジュールは、認可範囲内のアイデンティティと、識別子のセキュリティトークンとを出力することができる。例えば、出力されるアイデンティティは、０〜１，０００の範囲と、この範囲内の各品目のためのセキュリティトークンとすることができる。
【００４３】
認可モジュールは、制御モジュール内で使用されるあらゆるパラメータから鍵を生成することができる。いくつかの実施形態では、認可モジュールが、制御モジュール内で使用されるいずれかのパラメータからの既存の鍵から鍵を生成又は導出し、特定の認可モジュールのみがこの鍵を使用することができる。この公開鍵技術を実装する設備及びソフトウェアは、非対称暗号システムにおいて具体化することができる。
【００４４】
認可モジュールの出力は、署名モジュールによってデジタル署名を提供された構成データ、及び任意に１又は２以上のセキュリティトークンなどの情報とすることができる。或いは、認可モジュールの出力は、認可モジュールが保持する鍵に暗号化された構成データとすることもできる。認可モジュールの出力は、制御モジュールに提供することができる。
【００４５】
ある実施形態によれば、製品の生産を認証する方法が、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含む。
【００４６】
別の又はさらなる実施形態では、構成データが、生産すべき製品の範囲を表す。別の又はさらなる実施形態では、構成データが、認可される製品の範囲、機械、工場、範囲又は製品量を表す。別の又はさらなる実施形態は、製品識別子を含む検証要求を受け取るステップと、ライセンスマネージャを参照することによって生産工程のための構成データが認可されているかどうかを判定するステップと、を含むことができる。別の又はさらなる実施形態は、製品範囲のためのセキュリティトークンを生成するステップと、セキュリティトークンを製品範囲に関連付けるステップと、を含むことができる。
【００４７】
署名モジュール
署名モジュールは、構成データ、認可鍵、セキュリティトークン、又はこれらのいずれかの組み合わせと、識別モジュールによって生成された一意の製品識別子とを受け取ることができる。いくつかの実施形態では、署名モジュールが、１又は２以上の機械及び／又は製品の固有の特徴、及び／又は製品品目の特徴をさらに受け取ることができる。署名モジュールは、本明細書では一般に構成データと呼ぶ入力の一部又は全部に基づいてデジタル署名を作成することができる。
【００４８】
いくつかの実施形態では、署名モジュールが、デジタル署名を生成するために、最初に構成データの要約又はその他の表現を生成することができる。いくつかの実施形態では、この要約を、デジタル署名アルゴリズムを実行する署名モジュールによって提供されるデジタル署名アルゴリズムに従って構成データの暗号ハッシュ値を算出することによって生成することができる。非限定的な例として、このハッシュは、ＭＤ５関数、ＳＨＡ−１関数、ＳＨＡ−２関数、ＳＨＡ−３／Ｋｅｃｃａｋ関数に従って算出することができる。次に、署名モジュールが取得した秘密鍵を用いてこの要約を暗号化してデジタル署名を生成することができる。
【００４９】
いくつかの実施形態では、デジタル署名が、公開鍵基盤（ＰＫＩ）技術を用いて構成データの真正性を確立することができる。ＰＫＩシステムは、証明書及び鍵を用いてエンティティ、個人又は組織を識別する。認可モジュールは、秘密鍵を用いて構成データに署名し、この構成データを、認可モジュールが使用する公開鍵を含む証明書に関連付ける。
【００５０】
受信者モジュールが公開鍵を用いてデジタル署名を検証し、これによって署名入り構成データの真正性を検証する。支援技術を用いて、署名の時間及び署名鍵の状態などの他の否認防止の特徴を確立することもできる。公開鍵は、受信者エンティティに直接提供することも、或いは公開によってオンラインリポジトリ又はディレクトリ内に提供することもできる。
【００５１】
識別モジュール
識別モジュールは、構成データを受け取って、マーク付けすべき品目のための識別子を生成することができる。識別モジュールは、署名モジュールによって生成されたデジタル署名を受け取り、これを一意の識別子と組み合わせて一意の複合識別子を生成することができる。
【００５２】
これらの識別子は、マーク付けすべき製品の生産日及び／又は生産時間と、署名モジュールから受け取ったデジタル署名とを含み、又はこれらに基づくことができる。いくつかの実施形態では、生成されるセキュアな識別子を、一意的又は実質的に一意的とすることができる。いくつかの実施形態では、セキュアな識別子をセキュリティトークンとすることができる。
【００５３】
範囲の場合、識別モジュールは、範囲識別子と、生成された範囲内の一連の識別子とを生成することができる。
【００５４】
作成された識別子は、製品上に直接印刷できるように印刷制御モジュールに出力することも、又は製品パッケージ上に印刷される別のコードを生成するさらなる処理に入力することもできる。
【００５５】
検証モジュール
図５を参照すると、検証モジュール（１５０）は、検証済みの構成データを受け取り、この認証済みの構成データに基づいて、報告された工場、機械、製品又は生産量の認可（３０５）を求める要求を認証することができる。検証モジュールへの入力は、検証済みの構成データ、署名モジュールからの出力、識別子、セキュリティトークン及び／又は範囲情報のうちの一部又は全部を含むことができる。検証モジュールは、製品識別子を検証／認証するために、これらのパラメータを含む情報を認可モジュールのために生成することができる。
【００５６】
検証モジュールは、１又は２以上の識別子又は識別子範囲（３１５）と、１又は２以上のセキュリティトークンを含む署名データ（３１０）とを含む、要求の解読（３２０）を生成することができる。
【００５７】
セキュリティトークンが検証モジュールに入力された場合、検証モジュールは、認可、構成データ及び／又は範囲に関する情報を戻すことができる。様々な製品に単一のセキュリティトークンが使用されている場合には、このセキュリティトークンを検証モジュールに提供して、個々の製品ではなくこれらの様々な製品に関連するパラメータを検証することができる。この実施形態は、輸出規制の状況において特に有用となり得る。
【００５８】
システムプロセス
識別コードの初期化
認可及びパラメータを認証するために、識別コードの初期化を実行することができる。いくつかの実施形態では、性能上の理由によって、生産の開始時に１度この初期化を実行することができる。図３を参照すると、制御モジュール（１１０）は、追加パラメータを求めてデータストア（１１５）にアクセスすることができ、又はモジュールに追加パラメータを提供することができる。パラメータ及び構成データは、認可モジュールによって署名されると認証済み構成データ（１３５）を形成する。制御モジュールは、その認可モジュール（１３０）への要求に応答して、上述したような検証済み構成データを受け取る。
【００５９】
認可は、製品を生産する認可、製品に特定のＩＤをマーク付けする認可、又は両方の認可とすることができる。構成データ及び追加パラメータは認可モジュールに送信され、認可モジュールがセキュリティトークンを生成するために使用する。認可モジュールは、構成データ及び追加パラメータに署名して、署名入り構成データを形成することができる。上述したように、構成データは、特定の生産工程又は他の製品及び活動を指定することができる。認可モジュールは、鍵と、認可された識別子と、セキュリティトークンとを含む認可ブロックを生成することができる。いくつかの実施形態では、認可モジュールが鍵を生成することができ、又は認可モジュールに鍵を提供することもできる。認可モジュールは、認可ブロックを制御モジュールに送信することができる。制御モジュールは、認証済みの構成データと、識別子のリスト、識別子の範囲、及び／又は１又は２以上のセキュリティトークンなどの他の情報とを署名モジュール（１４５）に送信することができる。署名モジュールは、データに署名して署名入りデータと署名とを制御モジュールに送ることができる。その後、識別モジュール（１４０）は、製品の識別子及び／又は識別子の範囲を含む初期化ブロックを制御モジュールから受け取ることができる。
【００６０】
本発明の実施形態は、生産施設をセキュアに制御するプロセスの初期化方法であって、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、を含む方法を含むことができる。
【００６１】
別の又はさらなる実施形態は、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、を含むことができる。
【００６２】
別の又はさらなる実施形態は、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、を含むことができる。
【００６３】
別の又はさらなる実施形態は、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含むことができる。
【００６４】
別の又はさらなる実施形態は、生産工程が認可されているかどうかを判定するステップが、ライセンスサーバからライセンスデータを取り出すステップをさらに含むことができる。
【００６５】
識別コードの生成
図４を参照すると、コード生成プロセスは、生産プロセス中にコードを生成する。識別コード生成プロセスは、識別モジュール（１４０）に識別子又は識別子の範囲を要求し、これらが制御モジュール（１１０）に戻されることによって開始することができる。次に、これらの識別子が署名モジュール（１４５）に送られ、署名モジュール（１４５）が識別子に署名して署名入りの識別子を制御モジュールに戻す。署名モジュールは、セキュリティトークンを受け取ることができる。いくつかの実施形態では、署名モジュールを外部命令によって制御する必要がなく、いずれかの識別コードをカウントすべき場合には、コードを単一のセキュリティトークンに関連付けることができる。署名モジュールは、認可モジュールによって制御することができる。次に、制御モジュールは、プリンタモジュール（２１０）内の印刷制御部に出力データを送ることができる。印刷制御部に送られる出力データは、送信前に暗号化することができる。構成データは、その後の検証要求の処理のために検証モジュール（１５０）に送信することができる。
【００６６】
本発明の実施形態は、生産施設において生産される製品をセキュアに識別するコードの生成方法であって、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、識別モジュールにおいて、製品識別子を求める要求を受け取り、この要求に応答して製品識別子を生成するステップと、製品識別子を識別モジュールから署名モジュールに送信するステップと、署名モジュールにおいて、製品識別子にデジタル署名するステップと、デジタル署名された製品識別子をプリンタモジュールに送信するステップと、を含む方法を含む。
【００６７】
別の又はさらなる実施形態は、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、を含むことができる。
【００６８】
別の又はさらなる実施形態では、要求が、識別子の範囲を求めるものである。別の又はさらなる実施形態は、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付るステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、を含むことができる。
【００６９】
識別コードの検証
検証モジュールは、検証要求を受け取ることができる。この要求は、１又は２以上の識別コードを含むことができる。検証モジュールは、受け取った識別子コードを暗号解読し、又は別様に難読化解除することができる。結果として得られる暗号解読された情報は、署名成分と識別子とを含むことができる。その後、結果として得られた識別子を、この識別子に関連して以前に記憶されていた元々の構成データに関連付けることができる。この関連付けられたデータは、一定範囲内の他の識別子、セキュリティトークン、及びこの識別コードを有する製品の生産に関連して記憶されている他の情報を含むことができる。
【００７０】
いくつかの実施形態は、検証モジュールに提供された識別子を、コードの検証を要求する団体に基づいて処理する追加機能を含むことができる。異なる団体に、検証モジュールにアクセスする異なる手段を提供することができる。例えば、小売業者又はその他の形態の商人に、消費者とは異なるポータル又は通信チャネルを提供することができる。小売業者が、検証モジュールに対して小売業者自体を認証することを必要とすることもできる。
【００７１】
いくつかの実施形態では、システムを、消費者による検証の結果、識別子が検証済みとしてマーク付けされるように構成することができる。システムは、消費者によって検証が要求されたコードを記憶するようにさらに構成することができる。これらの既に検証済みのコードの検証を求めるあらゆる後続の要求を拒否し、又は別様に処理することができる。
【００７２】
エクスポート機能
本発明の実施形態は、第三者にコードをエクスポートする状況において適用することができる。これらの実施形態は、この目的で別個のコードを生成するように構成されたエクスポート機能を含むことができる。エクスポートされるコードは、１又は２以上の製品識別子及び／又はセキュリティトークンを収集してこれらの識別子及び／又はトークンに署名することによって生成することができる。これらの識別子及び／又はトークンは、生産プロセスのいずれかの時点で収集することができる。このエクスポートされるコードの形の署名入り識別子及び／又はトークンは、これらを記憶してこれらの識別子及び／又はトークンの妥当性検証を行うことができる第三者に提供することができる。
【００７３】
システムアーキテクチャ
本明細書で説明したシステム及び方法は、ソフトウェア、ハードウェア、又はこれらのいずれかの組み合わせで実装することができる。本明細書で説明したシステム及び方法は、互いに物理的又は論理的に分離されたもの、又はそうでないものとすることができる１又は２以上のコンピュータ装置を用いて実装することができる。また、本明細書で説明した方法の様々な態様は、他の機能に組み合わせ又は統合することもできる。いくつかの実施形態では、図示のシステム要素を単一のハードウェア装置に組み合わせることも、又は複数のハードウェア装置に分離することもできる。複数のハードウェア装置を使用する場合、これらのハードウェア装置は、互いに物理的に近くに配置することも、又は遠くに配置することもできる。
【００７４】
方法は、コンピュータ又はいずれかの命令実行システムが使用する、又はこれらに関連するプログラムコードを提供する、コンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体からアクセス可能なコンピュータプログラム製品に実装することができる。コンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体は、コンピュータ、或いは命令実行システム、装置又は装置が使用する、又はこれらに関連するプログラムを含み又は記憶できるあらゆる装置とすることができる。
【００７５】
対応するプログラムコードの記憶及び／又は実行に適したデータ処理システムは、メモリ要素などのコンピュータ化されたデータ記憶装置に直接的又は間接的に結合された少なくとも１つのプロセッサを含むことができる。システムには、（限定するわけではないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む）入力／出力（Ｉ／Ｏ）装置を結合することもできる。システムには、介在する私的又は公的ネットワークを介してデータ処理システムを他のデータ処理システム、リモートプリンタ又は記憶装置に結合できるようにするネットワークアダプタを結合することもできる。ユーザとの相互作用をもたらすために、コンピュータには、ＣＲＴ（ブラウン管）、ＬＣＤ（液晶ディスプレイ）、又はユーザに情報を表示する別のタイプのモニタなどのディスプレイ装置と、ユーザがコンピュータに入力を提供できるようにするキーボード、及びマウス又はトラックボールなどの入力装置とを含む機能を実装することもできる。
【００７６】
コンピュータプログラムは、コンピュータ内で直接的又は間接的に使用できる一連の命令とすることができる。本明細書で説明したシステム及び方法は、コンパイル型又はインタープリタ型言語を含む、Ｆｌａｓｈ（商標）、ＪＡＶＡ（商標）、Ｃ＋＋、Ｃ、Ｃ＃、Ｖｉｓｕａｌ  Ｂａｓｉｃ（商標）、ＪａｖａＳｃｒｉｐｔ（商標）、ＰＨＰ、ＸＭＬ、ＨＴＭＬなどのプログラミング言語、又はプログラミング言語の組み合わせを用いて実装することができ、スタンドアロンプログラム、或いはモジュール、コンポーネント、サブルーチン、又はコンピュータ環境内での使用に適した他のユニットとしてのものを含むあらゆる形で展開することができる。ソフトウェアは、限定するわけではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができる。プログラミングモジュール間のインターフェイスの実装には、ＳＯＡＰ／ＨＴＴＰなどのプロトコルを使用することができる。本明細書で説明したコンポーネント及び機能は、以下に限定されるわけではないが、異なるバージョンのＭｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（商標）、Ａｐｐｌｅ（商標）Ｍａｃ（商標）、ｉＯＳ（商標）、Ｕｎｉｘ（商標）／Ｘ−Ｗｉｎｄｏｗｓ（商標）、Ｌｉｎｕｘ（商標）を含む、ソフトウェア開発に適したいずれかのプログラミング言語を用いて仮想環境又は非仮想環境で実行されるあらゆるデスクトップオペレーティングシステム上に実装することができる。
【００７７】
命令プログラムの実行に適したプロセッサは、以下に限定されるわけではないが、汎用及び専用マイクロプロセッサ、及びいずれかのタイプのコンピュータの単一のプロセッサ、或いは複数のプロセッサ又はコアのうちの１つを含む。プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、これらの両方、又は本明細書で説明したデータ記憶装置のいずれかの組み合わせなどのコンピュータ化されたデータ記憶装置から命令及びデータを受け取って記憶することができる。プロセッサは、電子装置の動作及び実行を制御するあらゆる処理回路又は制御回路を含むことができる。
【００７８】
プロセッサは、データを記憶する１又は２以上のデータ記憶装置を含み、或いはこれらと通信するように動作可能に結合することもできる。このようなデータ記憶装置は、非限定的な例として、（内蔵ハードディスク及び取り外し可能ディスクを含む）磁気ディスク、光磁気ディスク、光ディスク、リードオンリメモリ、ランダムアクセスメモリ、及び／又はフラッシュストレージを含むことができる。コンピュータプログラム命令及びデータを有形的に具体化するのに適した記憶装置は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ及びフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスク及び取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、並びにＣＤ−ＲＯＭディスク及びＤＶＤ−ＲＯＭディスクを含む全ての形態の不揮発性メモリを含むこともできる。プロセッサ及びメモリは、ＡＳＩＣ（特定用途向け集積回路）によって補完し、又はＡＳＩＣに組み込むことができる。
【００７９】
本明細書で説明したシステム、モジュール及び方法は、ソフトウェア要素又はハードウェア要素のあらゆる組み合わせを用いて実装することができる。本明細書で説明したシステム、モジュール及び方法は、単独で又は互いに組み合わせて動作する１又は２以上の仮想マシンを用いて実装することもできる。あらゆる適用可能な仮想化ソリューションを使用して、物理的コンピュータマシンプラットフォームを、ハードウェアコンピュータプラットフォーム又はホスト上で動作する仮想ソフトウェアの制御下で実行される仮想マシンにカプセル化することができる。仮想マシンは、仮想システムハードウェア及びゲストオペレーティングシステムソフトウェアの両方を有することができる。
【００８０】
本明細書で説明したシステム及び方法は、データサーバなどのバックエンドコンポーネント、アプリケーションサーバ又はインターネットサーバなどのミドルウェアコンポーネント、グラフィカルユーザインターフェイス又はインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネント、或いはこれらのいずれかの組み合わせを含むコンピュータシステムに実装することができる。システムのコンポーネントは、通信ネットワークなどのあらゆる形のデジタルデータ通信又はこれらの媒体によって接続することができる。通信ネットワークの例としては、例えば、ＬＡＮ、ＷＡＮ、並びにインターネットを形成するコンピュータ及びネットワークが挙げられる。
【００８１】
本発明の１又は２以上の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施することができる。本発明は、ネットワークを介してリンクされた遠隔処理装置によってタスクが行われる分散コンピュータ環境で実施することもできる。
【００８２】
本発明の１又は２以上の実施形態を説明したが、これらの様々な修正物、追加物、置換物及び同等物も本発明の範囲に含まれる。
【図１】
2018523388.tif 000006
【図２】
2018523388.tif 000007
【図３】
2018523388.tif 000008
【図４】
2018523388.tif 000009
【図５】
2018523388.tif 000010
【国際調査報告】
2018523388.tif 000011
2018523388.tif 000012
2018523388.tif 000013