(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-09
(45)【発行日】2022-05-17
(54)【発明の名称】セキュアな製品識別及び検証のための難読化又はランダム化の強化
(51)【国際特許分類】
H04L 9/32 20060101AFI20220510BHJP
【FI】
H04L9/32 100B
H04L9/32 200A
(21)【出願番号】P 2017566856
(86)(22)【出願日】2016-08-13
(86)【国際出願番号】 EP2016069316
(87)【国際公開番号】W WO2017025645
(87)【国際公開日】2017-02-16
【審査請求日】2019-07-03
(32)【優先日】2015-08-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516385952
【氏名又は名称】イネクスト ソシエテ アノニム
(74)【代理人】
【識別番号】100094569
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100088694
【氏名又は名称】弟子丸 健
(74)【代理人】
【識別番号】100103610
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100109070
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100109335
【氏名又は名称】上杉 浩
(74)【代理人】
【識別番号】100120525
【氏名又は名称】近藤 直樹
(72)【発明者】
【氏名】フラデ エルワン
(72)【発明者】
【氏名】チャネス パトリック
(72)【発明者】
【氏名】シャトラン フィリップ
【審査官】小林 秀和
(56)【参考文献】
【文献】国際公開第2014/095737(WO,A1)
【文献】特表2007-507120(JP,A)
【文献】特表2008-515741(JP,A)
【文献】米国特許出願公開第2013/0297929(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
ネットワークに記憶されたデータを難読化する方法であって、
コンピュータマシンの状態を記述する情報を機械番号(MNUM)として定義して記憶するステップを含み、前記状態を記述する前記情報は、前記状態を記述する前記情報を含む基底の数を含み、前記方法は、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を算出するステップをさらに含み、前記機械セキュア固有製品識別子(MSUPI)を算出する前記ステップは、
前記機械セキュア固有製品識別子(MSUPI)を算出する
ための前記ステップの数の最大値がimaxになるように定義し、各ステップについて、第1の乱数(CGOK
i,1)のコード生成難読化鍵と、第2の乱数(CGOK
i,2)のコード生成難読化鍵とを生成するステップを含み、
該生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく前記機械番号(MNUM)と互いに素である前記第1の乱数(CGOK
i,1)を算出するステップと、
前記機械番号(MNUM)以下のビットサイズを有する前記第2の乱数(CGOK
i,2)を算出するステップと、
m
0,2=MUPIを定義するステップと、
i=1からimaxまでの各要素iについて、
m
i,1=(m
i-1,2×CGOK
i,1)mod(MNUM)と、
m
i,2=(m
i,1 mod CGOK
i,2)と、
(m
i,2>MNUM)の場合→m
i,2=m
i,1と、
を算出するステップと、
MSUPI=m
imax,2を定義するステップと、
を含み、前記方法は、
前記機械セキュア固有製品識別子(MSUPI)を電子データストアに記憶するステップをさらに含む、
ことを特徴とする方法。
【請求項2】
前記コンピュータマシンの前記状態を記述する前記情報は、時間情報と製品番号との組み合わせを含む、
請求項1に記載の方法。
【請求項3】
前記時間情報は、ユリウス年、ユリウス日、生産時間及び生産分を含む、
請求項2に記載の方法。
【請求項4】
前記状態を記述する前記情報は、定期的にリセットされる増分カウンタの値を含む、
請求項1から3の
何れか1項に記載の方法。
【請求項5】
前記コンピュータマシンの前記状態を記述する前記情報に基づく前記数は、10×366×24×60×時間識別子として算出される、
請求項1から4の
何れか1項に記載の方法。
【請求項6】
時間識別子は、整数2210として定義される、
請求項1から5の
何れか1項に記載の方法。
【請求項7】
生産施設において生産された製品をセキュアに識別するためのコードを生成する方法で
あって、
電子データストアから構成データを電子的に受け取るステップと、
製品の生産において使用するパラメータを指定する、生産工程のための前記構成データを電子的に記憶するステップと、
前記構成データを認可モジュールに送信するステップと、
前記認可モジュールにおいて、
前記生産工程が認可されているか否かを判定するステップと、
鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、
前記認証済み構成データを署名モジュールに送信するステップと、
前記署名モジュールにおいて、前記認証済み構成データに署名するステップと、
識別モジュールにおいて、製品識別子を求める要求を受け取り、該要求に応答して製品識別子を生成するステップと、
を含み、前記製品識別子を生成するステップは、
コンピュータマシンの状態を記述する情報であって該状態を記述する情報を含む基底の数を含む情報を機械番号(MNUM)として定義して記憶し、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を算出する、ことによって実行され、前記機械セキュア固有製品識別子(MSUPI)を算出する前記ステップは、
前記機械セキュア固有製品識別子(MSUPI)を算出する
ための前記ステップの数の最大値がimaxになるように定義し、各ステップについて第1の乱数のコード生成難読化鍵
(CGOK
i,1
)と第2の乱数の
コード生成難読化鍵
(CGOK
i,2
)とを生成するステップを含み、
該生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく前記機械番号(MNUM)と互いに素である前記第1の乱数(CGOK
i,1)を算出するステップと、
前記機械番号(MNUM)以下のビットサイズを有する前記第2の乱数(CGOK
i,2)を算出するステップと、
m
0,2=MUPIを定義するステップと、
i=1からimaxまでの各要素iについて、
m
i,1=(m
i-1,2×CGOKi,1)mod(MNUM)と、
m
i,2=(m
i,1 mod CGOK
i,2)と、
(m
i,2>MNUM)の場合→m
i,2=m
i,1と、
を算出するステップと、
MSUPI=m
imax,2を定義するステップと、
を含み、前記方法は、
前記機械セキュア固有製品識別子(MSUPI)を前記製品識別子として電子データストアに記憶するステップと、
前記機械セキュア固有製品識別子(MSUPI)を前記識別モジュールから署名モジュールに送信するステップと、
前記署名モジュールにおいて、前記機械セキュア固有製品識別子(MSUPI)にデジタル署名するステップと、
前記デジタル署名された機械セキュア固有製品識別子をプリンタモジュールに送信するステップと、
をさらに含む、ことを特徴とする方法。
【請求項8】
前記要求は、識別子の範囲を求めるものである、請求項7に記載の方法。
【請求項9】
前記生産工程のための前記構成データが認可されているかどうかを判定するステップと、
前記生産工程が認可されている場合、
セキュリティトークンを生成して前記構成データに関連付けるステップと、
デジタル署名を生成して前記構成データに関連付けることによって前記構成データにデジタル署名するステップと、
をさらに含む、請求項7又は8の
何れか1項に記載の方法。
【請求項10】
前記機械固有製品識別子(MUPI)は、該機械固有製品識別子(MUPI)のビット長が前記機械セキュア固有製品識別子(MSUPI)のビット長に等しくなるように、前記機械固有製品識別子(MUPI)をパディングすることなく変換される、
請求項1から9の
何れか1項に記載の方法。
【請求項11】
ネットワークに記憶されたデータを難読化するシステムであって、
コンピュータプロセッサを備え、該コンピュータプロセッサは、
コンピュータマシンの状態を記述する情報を機械番号(MNUM)として定義して記憶するように構成され、前記状態を記述する前記情報は、前記状態を記述する前記情報を含む基底の数を含み、前記コンピュータプロセッサは、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を生成するようにさらに構成され、前記機械セキュア固有製品識別子(MSUPI)を算出するステップは、
前記ステップの数をimaxになるように定義し、各ステップについて、第1の乱数(CGOK
i,1)のコード生成難読化鍵と、第2の乱数(CGOK
i,2)のコード生成難読化鍵とを生成するステップを含み、
該生成するステップは、
前記コンピュータマシンの状態を記述する情報に基づく前記機械番号(MNUM)と互いに素である前記第1の乱数(CGOK
i,1)を算出するステップと、
前記機械番号(MNUM)以下のビットサイズを有する前記第2の乱数(CGOK
i,2)を算出するステップと、
m
0,2=MUPIを定義するステップと、
i=1からimaxまでの各要素iについて、
m
i,1=(m
i-1,2×CGOK
i,1)mod(MNUM)と、
m
i,2=(m
i,1 mod CGOK
i,2)と、
(m
i,2>MNUM)の場合→m
i,2=m
i,1と、
を算出するステップと、
MSUPI=m
imax,2を定義するステップと、
を含み、前記システムは、
前記機械セキュア固有製品識別子(MSUPI)を記憶するように構成された電子データストアをさらに備える、
ことを特徴とするシステム。
【請求項12】
生産施設において生産された製品をセキュアに識別するためのコードを生成するシステムであって、コンピュータ化されたプロセッサを備え、
該プロセッサは、
電子データストアから構成データを電子的に受け取り、
製品の生産において使用するパラメータを指定する、生産工程のための前記構成データを電子的に記憶し、
前記構成データを認可モジュールに送信し、
前記認可モジュールにおいて、
前記生産工程が認可されているか否かを判定し、
鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成し、
前記認証済み構成データを署名モジュールに送信し、
前記署名モジュールにおいて、前記認証済み構成データに署名し、
識別モジュールにおいて、製品識別子を求める要求を受け取り、該要求に応答して製品識別子を生成する、ための命令を実行するように構成され、
前記製品識別子の生成は、
コンピュータマシンの状態を記述する情報であって該状態を記述する情報を含む基底の数を含む情報を機械番号(MNUM)として定義して記憶し、
前記コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を生成する、ことによって実行され、
前記機械セキュア固有製品識別子(MSUPI)
を算出するステップは、
前記ステップの数をimaxになるように定義し、各ステップについて第1の乱数(CGOK
i,1)のコード生成難読化鍵と第2の乱数(CGOK
i,2)のコード生成難読化鍵とを生成することを含み、前記生成することは、
前記コンピュータマシンの状態を記述する情報に基づく前記機械番号(MNUM)と互いに素である前記第1の乱数(CGOK
i,1)を算出することと、
前記機械番号(MNUM)以下のビットサイズを有する前記第2の乱数(CGOK
i,2)を算出することと、
m
0,2=MUPIを定義することと、
i=1からimaxまでの各要素iについて、
m
i,1=(m
i-1,2×CGOK
i,1)mod(MNUM)と、
m
i,2=(m
i,1 mod CGOK
i,2)と、
(m
i,2>MNUM)の場合→m
i,2=m
i,1と、
を算出することと、
MSUPI=m
max,2を定義することと、
を含み、前記プロセッサは、
前記機械セキュア固有製品識別子(MSUPI)を前記製品識別子として電子データストアに記憶し、
前記機械セキュア固有製品識別子(MSUPI)を前記識別モジュールから署名モジュールに送信し、
前記署名モジュールにおいて、前記機械セキュア固有製品識別子(MSUPI)にデジタル署名し、
前記デジタル署名された機械セキュア固有製品識別子(MSUPI)をプリンタモジュールに送信する、ための命令を実行するようにさらに構成される、
ことを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【0001】
〔関連出願との相互参照〕
本出願は、2015年8月13日に出願された米国仮特許出願第62/204,753号の利益を主張するものであり、この文献の内容はその全体が引用により本明細書に組み入れられる。
【0002】
本発明は、一般に、製品にセキュアな識別コードをマーク付けすることに関連して英数字を暗号化してこれらのコードを検証する技術、並びにセキュアな生産構成命令の配布を管理してセキュアな製品識別子を生成するシステム及び方法に関する。
【背景技術】
【0003】
通常、既存の製品識別方法は、梱包時に製品に一意の識別子を付与するものである。これらのシステムは、複数の生産施設を有する組織、又は非常に高速での梱包が可能な生産ラインでは効率良く適応しない。また、既存の識別子の方法は、識別子がセキュアな生産構成命令に関連付けられておらず、監督官庁及び業者の助けになる追加の製品情報を有していないので、十分にセキュアではない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
製造品目の生産をセキュアに制御して認可するとともに、製造品目に、特に製造品目の税務検証、生産量の検証及び認証に使用できるセキュアな製品識別子をマーク付けするための改善された方法及び装置に対するニーズが存在する。
【0005】
既存のシステムは、製品識別子として使用される英数字を文字毎に暗号化する。この結果、これらのシステムは、一般的には0~9の数字などに制限され、或いは文字のみを使用する場合には、使用するアルファベットの文字数に(大文字及び小文字を含む)2を乗算したものに制限されてしまう。本発明は、これらの短所に対処するものである。
【課題を解決するための手段】
【0006】
以下の本発明の実施形態は例示であり、本発明の範囲を限定するものではない。本発明の1又は2以上の実施形態を説明するが、その様々な変更、追加、並べ替え及び同等物も本発明の範囲に含まれる。以下の実施形態の説明では、特許請求の範囲の主題の特定の実施形態を例示として示す、本明細書の一部を成す添付図面を参照する。他の実施形態を使用することも、構造変更などの変更又は修正を行うこともできると理解されたい。このような実施形態、変更又は修正は、意図する特許請求の範囲の主題に関する範囲から必ずしも逸脱するものではない。以下ではステップを特定の順序で示すこともあるが、場合によっては、説明するシステム及び方法の機能を変更することなく異なる時点又は異なる順序で特定の入力が行われるように、これらの順序を変更することもできる。後述する、コードの初期化手続き、生成手続き及び認証手続きなどにおける様々な計算は、開示する順序で実行する必要はなく、別の計算順を使用する他の実施形態を容易に実装することもできる。これらの計算は、順序変更に加えて、同じ結果の下位計算に分解することもできる。
【0007】
以下、添付図面を参照しながら本発明の実施形態を一例として説明する。
【図面の簡単な説明】
【0008】
【発明を実施するための形態】
【0009】
ネットワークに記憶されたデータを難読化する方法の本発明の実施形態によれば、方法が、コンピュータマシンの状態を記述する情報を機械番号(MNUM)として定義して記憶するステップを含み、状態を記述する情報は、状態を記述する情報を含む基底の数を含み、方法は、コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を生成するステップをさらに含み、MSUPIを算出するステップは、ステップの数をimaxになるように定義し、各ステップについて、第1の乱数コード生成難読化鍵(CGOKi,1)と、第2の乱数コード生成難読化鍵(CGOKi,2)とを生成するステップを含み、生成するステップは、コンピュータマシンの状態を記述する情報に基づく数(MNUM)と互いに素である第1の乱数(CGOKi,1)を算出するステップと、(MNUM)以下のビットサイズを有する第2の乱数(CGOKi,2)を算出するステップと、m0,2=MUPIを定義するステップと、i=1からimax-1までの各要素iについて、mi,1=(mi-1,2×CGOKi,1)mod(MNUM)と、mi,2=(mi,1 mod CGOKi,2)と、if(mi,2>MNUM)→mi,2=mi,1とを算出するステップと、MSUPI=mimax2を定義するステップとを含み、方法は、機械セキュア固有製品識別子(MSUPI)を電子データストアに記憶するステップをさらに含む。上述した実施形態、並びに本明細書で説明する別の又はさらなる実施形態は、コンピュータ実装発明、コンピュータシステム、又はコンピュータ化されたデータキャリアに具体化することができる。
【0010】
別の又はさらなる実施形態によれば、コンピュータマシンの状態を記述する情報は、時間情報と製品番号との組み合わせを含む。別の又はさらなる実施形態によれば、時間情報は、ユリウス年、ユリウス日、生産時間及び生産分を含む。別の又はさらなる実施形態によれば、状態を記述する情報は、定期的にリセットされる増分カウンタの値を含む。別の又はさらなる実施形態によれば、コンピュータマシンの状態を記述する情報に基づく数は、10×366×24×60×時間識別子として算出される。別の又はさらなる実施形態によれば、時間識別子は、整数2210として定義される。別の又はさらなる実施形態によれば、SUPI=(p×m)mod(MNUM×mNoise×RunLim)になるようなセキュア固有製品識別子(SUPI)である12文字の英数字コードが取得される。
【0011】
生産施設において生産された製品をセキュアに識別するためのコードを生成する別の又はさらなる実施形態によれば、方法が、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、識別モジュールにおいて、製品識別子を求める要求を受け取り、要求に応答して製品識別子を生成するステップとを含み、製品識別子を生成するステップは、コンピュータマシンの状態を記述する情報であって状態を記述する情報を含む基底の数を含む情報を機械番号(MNUM)として定義して記憶し、コンピュータマシンの状態を記述する情報に基づいて、機械固有製品識別子(MUPI)の可逆的数学変換としての機械セキュア固有製品識別子(MSUPI)を生成することによって実行され、MSUPIを算出するステップは、ステップの数をimaxになるように定義し、各ステップについて第1の乱数コード生成難読化鍵(CGOKi,1)と第2の乱数コード生成難読化鍵(CGOKi,2)とを生成するステップを含み、生成するステップは、コンピュータマシンの状態を記述する情報に基づく数(MNUM)と互いに素である第1の乱数(CGOKi,1)を算出するステップと、(MNUM)以下のビットサイズを有する第2の乱数(CGOKi,2)を算出するステップと、m0,2=MUPIを定義するステップと、i=0からimax-1までの各要素iについて、mi,1=(mi-1,2×CGOKi,1)mod(MNUM)と、mi,2=(mi,1 mod CGOKi,2)と、if(mi,2>MNUM)→mi,2=mi,1とを算出するステップと、MSUPI=mmax2を定義するステップとを含み、方法は、機械セキュア固有製品識別子(MSUPI)を製品識別子として電子データストアに記憶するステップと、製品識別子を識別モジュールから署名モジュールに送信するステップと、署名モジュールにおいて、製品識別子にデジタル署名するステップと、デジタル署名された製品識別子をプリンタモジュールに送信するステップとをさらに含む。
【0012】
別の又はさらなる実施形態によれば、方法が、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、をさらに含む。
【0013】
別の又はさらなる実施形態によれば、要求は、識別子の範囲を求めるものである。別の又はさらなる実施形態によれば、方法が、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップとをさらに含む。
【0014】
別の又はさらなる実施形態によれば、機械固有製品識別子(MUPI)は、機械固有製品識別子(MUPI)のビット長が機械セキュア固有製品識別子(MSUPI)のビット長に等しくなるように、機械固有製品識別子(MUPI)をパディングすることなく変換される。
【0015】
別の又はさらなる実施形態によれば、セキュアな機械固有製品識別子の検証方法が、検証モジュールが検証のためにMSUPIを受け取るステップと、MSUPIをm0,2として割り当てるステップと、検証モジュールが、第1の乱数CGOKi,1及び第2の乱数CGOKi,2を検索するとともに、検索された乱数及び受け取ったMSUPIに関連するimaxを検索するステップと、i=1からimax-1までの各要素iについて、mi,1=(mi-1,2modCGOKi,2)と、if(mi,2>MNUM)→mi,1=mi-1,2と、mi,2=(mi,1×CGOK-1
i,1)mod(MUNM)と、を算出するステップと、mcg=mimax2と、コンピュータマシンの状態を記述する情報に基づくMUPI=mcg,/mNoise及びノイズ値=mcgmod mNoiseを検証するステップと、を含む。
【0016】
別の又はさらなる実施形態によれば、機械セキュア固有製品識別子(MSUPI)は、機械固有製品識別子(MUPI)のビット長が機械セキュア固有製品識別子(MSUPI)のビット長に等しくなるように、機械固有製品識別子(MUPI)をパディングする必要なく変換される。別の又はさらなる実施形態によれば、認可モジュールから受け取られた認可を、その後にこれらの認可に照らして検証要求を処理できるように検証モジュールに送信することができ、検証モジュールに送信されるデータは、機械セキュア固有製品識別子(MSUPI)を含むことができる。
【0017】
説明する方法は、暗号化に加えて又は暗号化の代わりに使用することができ、定義基底(defined basis)を用いて数字を難読化する方法として使用することができる。この方法は、あらゆる有限定義基底(finite defined basis)に使用することができる。この方法は、数字を使用する際には0~9などの、或いは16進数ではゼロ~Fなどの、予め定められた定義基底に対して使用することができる。この方法は、通常の文字範囲で使用される文字数に制限されない定義基底に作用する。
【0018】
この方法では、英数字を選択する元となるグループを定義し、これらのグループの各々を基底と呼ぶ。例えば、0→52(0及び52を含む)を定義する。これらの数字の各々は、暗号化される単一の「文字」である。或いは、0→932という基底を定義することもできる。代替例では、文字と数字の組み合わせが可能である。非限定的な例としては、数字に英語のアルファベット、キリル文字のアルファベット又は他のいずれかのアルファベットを加えた組み合わせを挙げることができる。このシステムでは、いずれかの有限集合又は集合の組み合わせを用いて、数字を難読化する際にこれらの各々が単一の「文字」としてカウントされる基底として基底を定義することができる。各文字に数値が割り当てられる限り、あらゆる英数字集合を使用することができる。これを用いて、例えば16進数集合とアルファベットとを組み合わせることができる。
【0019】
各文字に、最小値及び最大値を含む数値を割り当て、その後にこれらを組み合わせる。例えば、16進数と、29文字あるフィンランド語のアルファベットとを組み合わせる場合、16進数を表す値0~15を、15が0に対応し、14が1に対応するようにして、1がBに対応し、0がAに対応するまで割り当てることができる。フィンランド語のアルファベットでは、(大文字のみを使用すると仮定して)同様に対応する数字を1とAから29とÅまでとすることができ、或いは1にLを割り当て、18がÅに対応し、19がAに対応し、29がKに割り当てられるまでカウントすることができる。
【0020】
どの文字又は数字がどの数値に割り当てられているかが記憶される限り、割り当ては線形である必要はない。この割り当ては、さらなる難読化が望ましい場合にも、割り当てが記録されて後で解読できる限り動的に行うことができる。16進数と29文字のアルファベットとを使用する例では、範囲を、MAX=Hex(max)*Alphabet(max)+Alphabet(max)とし、最小:MIN=Hex(min)*Alphabet(min)+Alphabet(min)とすることができる。これらの例には、いずれも2つの基底が存在する。この例では、[1,464]の範囲基底が得られる。この理由は、アルファベットの番号が、29文字について0~28であるのとは対照的に1~29までの値を取るためである。或いは、同じ集合を、MAX=Alphabet(max)*Hex(max)+Hex(max)、及びMIN=Alphabet(min)*Hex(min)+Hex(min)として組み合わせて[0,450]の範囲基底をもたらすこともできる。従って、同じ成分基底を使用して、様々な範囲を作成してプロセスで使用する数字をさらに難読化することができる。
【0021】
範囲基底を作成する別の例では、時間と数値識別子との組み合わせなどの範囲基底がコンピュータマシンの状態を記述することができる。この例では、複数の基底を用いて範囲基底を作成することができる。この例では、範囲基底が5つの異なる基底で構成され、切り捨てたユリウス年(JY)[0-10]を、ユリウス日(JD)[0-366]、1日の時間(HR)[0-24]、1時間の分(Mins)[0-60]、時間識別子(TI)[0-2210]、及び分毎にリセットされる付加的な増分カウンタと組み合わせたものになる。範囲基底を作成するために使用される基底の数は、imaxとして定義される。この実施形態の例を
図1に示す。
【0022】
範囲は、英数字を単一の範囲に変換することによって決定される。例えば、この例では、年を日に変換し、合計日数を時間に変換し、合計時間を分に変換した後に増分カウンタに変換する。これを達成するための1つの方法は、各々の最大数を用いて範囲の上端を取得し、各々の最小数を用いて範囲の下端を決定することである。例えば、最大値:MAX=(((JY(max)*JD(max)+JD(max))*HR(max)+HR(max))*Mins(max)+Mins(max))*TI(max)+TI(max)となる。範囲の最小値は、MIN=(((JY(min)*JD(min)+JD(min))*HR(min)+HR(min))*Mins(min)+Mins(min))*TI(min)+TI(min)となる。この例では、範囲が[0,12815659610]である。
【0023】
上記の例の範囲を用いて機械固有製品識別子(MUPI)を定義することができる。MUPI=(((JY*JD(max)+JD)*HR(max)+HR)*Mins(max)+Mins)*TI(max)+TIになるような値に収まるように定義する。さらに数字を難読化するために、ランダム成分を加えることができる。この乱数は、乱数の範囲が分かっている限り、あらゆる方法で生成することができる。この乱数は、秘密鍵と動的鍵の組を用いて生成されるデジタル署名とすることができる。この乱数は、例えば鍵付きハッシュメッセージ認証コードを用いて生成することができる。例えば、抽出器関数(extractor function)の使用時に動的鍵と組み合わせたMUPIは秘密鍵をもたらし、ハッシュ関数を用いて秘密鍵と組み合わせたMUPIは、雑音値を算出するために使用される。これにより、値:mcg=MUPI*mNoise+Noiseを定義することができる。この値:MUPIを、コード生成難読化鍵(CGOK)を用いて暗号化する。
【0024】
2つのCGOK値を使用することができ、第1のCGOK
i,1は、MUPIの範囲の最大値と互いに素の数である。MNUM=JY(max)*JD(max)*HR(max)*Mins(max)*TI(max)であり、この例では10*366*24*60*2210である。第2のCGOK
i,1、CGOK
i,2は、CGOK
i,1以下のビットサイズを有する範囲[MIN、MNUM-1]内の数である。算出を行うために、m
0,2をMUPIと等しくなるように定義し、MSUPIを、m
i,2の最大要素であるm
imax2になるように定義する。範囲基底を含む8つの基底が存在する場合、要素:MSUPI=m
8,2である。次に、MSUPIをコード生成器IDであるCGIDと組み合わせることができる。この組み合わせは、雑音の最大可能値をmNoiseとした場合に、m=CGID×(MNUM×mNoise)+MSUPIになるように、CGIDをMSUPIの次元ずつシフトすることによって行われる。最終コードであるセキュアな固有製品識別子(SUPI)は、全てのコード生成器について同じものとすることができる大域的難読化コードpを用いてmを暗号化することによって取得される。SUPIは、(p×m)mod(MNUM×mNoise×RunLim)として定義され、12文字の英数字コードに変換される。この実施形態の例を
図2に示す。
【0025】
この難読化法は、プロセス及び製品の検証では可逆的である。これは、難読化プロセスを逆に実行することによって行われる。これが可能な理由は、CGOKがMNUMと互いに素であり、MNUMに対してオイラーのトーシェント関数が使用されるからである。これにより、MSUPIからMUPI及びMNUMを算出することができる。従って、SUPIの解読は、m=(
×SUPI)mod(MNUM×mNoise×RunLim)というステップをたどる。mからMSUPI及びCGIDを抽出することができ、MSUPI=m mod(MNUX×mNoise)及びCGID=m/(MNUM×mNoise)となる。ここから、CGOKの逆数を用いてMSUPIを難読化解除する。CGIDが分かっているので、これを用いてデータベースから正しいCGOKを検索する。noise=m
cg mod mNoiseであるため、MUPI=m
cg/mNoise及び雑音値をチェックすることもできる。
【0026】
例示的な実装
本開示の別の態様では、本明細書で説明した方法を、本明細書で説明したようなコンピュータ環境において実行可能命令を用いて実施することができる。難読化されたセキュアな製品識別子を生成する命令セットの例は、以下の通りである。
【0027】
3DES及びAESなどの対称鍵アルゴリズムは、入力データのブロックに作用する。これが行われるようにするには、入力データの長さを、このアルゴリズムのブロック長又はその整数倍と正確に等しくなるようにしなければならない。AESの128ビット暗号化の例では、ブロック長を128ビット又は16バイトにすることができる。例えば、暗号化される入力データは、この例ではブロック長から4バイトを差し引いた20バイトのサイズを有することができる。入力データ長をブロック長の倍数にするには、入力データをパディングする必要がある。この例では、パディングが、20バイトが(16-(20-16))=12バイトのパディングを必要とするものとして算出される。従って、このパディングは、暗号化データセットのサイズを大幅に増加させ、同様に暗号化データを記憶するのに必要な物理的データストレージの量を増加させることがある。上記の実装例から明らかなように、本発明の難読化法は、入力された製品識別子データのパディングを必要とすることなく製品識別子などのデータを難読化するように構成することができる。
【0028】
セキュアな生産システムとの統合
上述したデータ難読化システム及び方法は、製品の生産認証システムと組み合わせて有利に使用することができる。本開示の別の態様では、製品の生産を認証する方法であって、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含む方法を提供する。
【0029】
本明細書で使用するエンティティとは、i)製品の消費者などの人物、ii)小売業者などの共通の利害を有する団体などの団体、iii)コンピュータ装置、iv)ネットワークシステム内の計算ノード、v)文書を記憶するメモリ記憶ユニットなどの記憶位置、及び、vi)企業内の業務などを表すネットワーク内の仮想点などを意味することができる。また、エンティティは、該当するワークフローの側面を担当する個人、又は自動処理を提供するコンピュータ装置が実行できる、認可などのためのワークフロー内の点を表すこともできる。エンティティという用語は、これらの例のいずれか1つに限定されるものではなく、本明細書で説明する概念に一致する他の状況にまで及ぶこともできる。
【0030】
システムモジュール
以下、様々なモジュールについて説明する。これらのモジュールは、いずれかを物理的に同じ場所に配置することも、或いは互いに離して配置することもできる。また、本発明の範囲から逸脱することなく、これらのモジュールのいずれかを論理的又は物理的に組み合わせて単一のモジュールにすることもできる。
【0031】
制御モジュール
図3を参照すると、(「オーケストレータ」としても知られている)制御モジュール(110)が、他のモジュール又は外部ソースのいずれかから入力を受け取り、事前構成プログラム及び/又はシステムへのオペレータ入力に基づいて、システム内の他のモジュールに命令を与えることができる。制御モジュールは、システム状況のダッシュボード概要を生成することもできる。
【0032】
制御モジュールへの入力は、一部又は全部の構成データ(105)を含むことができる。供給される構成データは、以下に限定されるわけではないが、生産機械、生産ライン、工場、生産する製品及び生産量を含むパラメータの一部又は全部を示すことができる。構成データは、どの品目(例えば、製品)にセキュアな識別子をマーク付けすべきか、及びこれらの品目をどのように生産できるかを示すこともできる。構成データは、開始製品識別子及び終了製品識別子などの製品の範囲を示すこともできる。いくつかの実施形態では、この範囲を一連の製品識別子とすることができる。構成データは、システムのオペレータが提供することも、或いは動的又は自動的に生成することもできる。構成データは、さらなる実行可能命令又は解釈可能なアルゴリズムを含むこともできる。構成データは、オペレータ入力に基づくことも、或いは製造実行システム、又は何をどのように生産すべきかを命令する他の集中型システムの出力に基づくこともできる。
【0033】
制御モジュール(110)は、以下に限定されるわけではないが、認可モジュール(130)、識別モジュール(140)及び署名モジュール(145)を含むいずれかのモジュールに構成データを送信することができる。
【0034】
制御モジュールは、生産作業を実行するための認可を認可モジュールに要求することができる。このプロセスは、認可モジュールに(構成データの一部又は全部を含む)要求を送信し、署名又は暗号化された構成データを受け取るステップを含む。いくつかの実施形態では、認可モジュールが、デジタル署名が付与された構成データを制御モジュールに戻すことができる。認可モジュールは、受け取ったデータに基づいて、制御モジュールからの要求を認可すべきかどうかを決定する。また、認可モジュールによって戻された構成データに含まれている情報を使用して、与えられた認可によってコードの生成範囲を制限することもできる。このデータには、認可モジュールによる署名が行われているので、システムが構成データを修正するのを防ぐことができる。非限定的な例として、別のブランドの代わりに1つのブランドを生産し続ける要求の修正を制御し、許可し、又は拒否することができる。
【0035】
認可モジュールから受け取った認可は、後でこれらの認可に照らして検証要求を処理できるように検証モジュールに送信することもできる。検証モジュールに送信されるデータは、いずれかの構成データに加えてセキュアな識別子を含むことができる。いくつかの例では、認可モジュールに送られる構成データが、製品範囲情報を含むことができる。
【0036】
署名又は検証された構成データは、認可モジュールによって検証され認証された、生産中に効力を維持する制御モジュールの一連の入力パラメータの一部又は全部とすることができる。認可モジュールからの出力及び/又は制御モジュールの入力パラメータは、セキュリティトークンとすることができる。このセキュリティトークンは、製品識別子が認証済みの構成データに、従って認可された生産に対応する旨の証明とすることができる。セキュリティトークンは、単一の製品識別子のための署名、又は単一の製品識別子、又は製品識別子自体、或いは製品の範囲又は製品識別子の署名を生成するための、署名モジュールへの入力とすることができる。セキュリティトークンは、一意のコード、ランダムコード又は擬似ランダムコードとすることができる。セキュリティトークンは、あらゆる数字、アルファベット文字、又は数字とアルファベット文字との組み合わせとすることができる。
【0037】
認可モジュール
認可モジュールは、識別システム内で行動をとる認可を求める要求を認証するように動作する。いくつかの実施形態では、認可モジュールがライセンスマネージャとして動作することができる。
【0038】
認可モジュールは、構成データを受け取ることができる。認可モジュールは、範囲情報及び/又はアルゴリズム情報を受け取ることもできる。いくつかの実施形態では、認可モジュールが、制御モジュールから入力された構成データを受け取ることができる。出力範囲は、認可された製品の範囲、機械、工場、範囲又は製品量を任意に識別することができる。出力は、範囲情報を含むことも、及び/又はセキュリティトークンを生成するために使用される一連の実行可能命令又は解釈可能命令を含むアルゴリズムを含むこともできる。認可モジュールは、工場レベルで集中化することも、又は各生産ライン上に分散化することも、或いはこれら両方の組み合わせとすることもできる。
【0039】
認可モジュールは、1又は2以上の暗号化鍵を記憶及び/又は生成することができる。いくつかの実施形態では、認可モジュールが記憶する鍵を、公開鍵基盤(PKI)に従う秘密・公開暗号化鍵とすることができる。いくつかの実施形態では、認可モジュールが、秘密鍵のコピーのみを記憶する。他の実施形態では、認可モジュールが、互いに鍵を複製する複数のインスタンスにわたって分散する。PKIの場合、認可モジュールは、署名された構成データを出力することができる。いくつかの実施形態では、認可モジュールが、構成データを暗号化し、及び/又は構成データ出力に署名することができる。
【0040】
いくつかの実施形態では、システムが、セキュリティトークンの生成に必要な制御モジュールのセキュアな入力パラメータを認可モジュールのみが読み込むことができるように構成される。いくつかの実施形態では、鍵が別のソースから認可モジュールに提供される。
【0041】
認可モジュールは、ハードウェアセキュリティモジュール(HSM)として具体化することも、或いは厳密な認証、及び暗号処理の提供のためにデジタル鍵を保護して管理する別のタイプの物理的コンピュータ装置として具体化することもできる。認可モジュールの機能は、暗号化鍵又はPKI秘密鍵を含む埋め込み基板を有するコンピュータによって実行することができる。このモジュールは、データにアクセスしようとしても読み取り又はアクセスができないような特徴を備えることができる。
【0042】
認可モジュールへの入力が範囲及びアルゴリズムである場合、認可モジュールは、認可範囲内のアイデンティティと、識別子のセキュリティトークンとを出力することができる。例えば、出力されるアイデンティティは、0~1,000の範囲と、この範囲内の各品目のためのセキュリティトークンとすることができる。
【0043】
認可モジュールは、制御モジュール内で使用されるあらゆるパラメータから鍵を生成することができる。いくつかの実施形態では、認可モジュールが、制御モジュール内で使用されるいずれかのパラメータからの既存の鍵から鍵を生成又は導出し、特定の認可モジュールのみがこの鍵を使用することができる。この公開鍵技術を実装する設備及びソフトウェアは、非対称暗号システムにおいて具体化することができる。
【0044】
認可モジュールの出力は、署名モジュールによってデジタル署名を提供された構成データ、及び任意に1又は2以上のセキュリティトークンなどの情報とすることができる。或いは、認可モジュールの出力は、認可モジュールが保持する鍵に暗号化された構成データとすることもできる。認可モジュールの出力は、制御モジュールに提供することができる。
【0045】
ある実施形態によれば、製品の生産を認証する方法が、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含む。
【0046】
別の又はさらなる実施形態では、構成データが、生産すべき製品の範囲を表す。別の又はさらなる実施形態では、構成データが、認可される製品の範囲、機械、工場、範囲又は製品量を表す。別の又はさらなる実施形態は、製品識別子を含む検証要求を受け取るステップと、ライセンスマネージャを参照することによって生産工程のための構成データが認可されているかどうかを判定するステップと、を含むことができる。別の又はさらなる実施形態は、製品範囲のためのセキュリティトークンを生成するステップと、セキュリティトークンを製品範囲に関連付けるステップと、を含むことができる。
【0047】
署名モジュール
署名モジュールは、構成データ、認可鍵、セキュリティトークン、又はこれらのいずれかの組み合わせと、識別モジュールによって生成された一意の製品識別子とを受け取ることができる。いくつかの実施形態では、署名モジュールが、1又は2以上の機械及び/又は製品の固有の特徴、及び/又は製品品目の特徴をさらに受け取ることができる。署名モジュールは、本明細書では一般に構成データと呼ぶ入力の一部又は全部に基づいてデジタル署名を作成することができる。
【0048】
いくつかの実施形態では、署名モジュールが、デジタル署名を生成するために、最初に構成データの要約又はその他の表現を生成することができる。いくつかの実施形態では、この要約を、デジタル署名アルゴリズムを実行する署名モジュールによって提供されるデジタル署名アルゴリズムに従って構成データの暗号ハッシュ値を算出することによって生成することができる。非限定的な例として、このハッシュは、MD5関数、SHA-1関数、SHA-2関数、SHA-3/Keccak関数に従って算出することができる。次に、署名モジュールが取得した秘密鍵を用いてこの要約を暗号化してデジタル署名を生成することができる。
【0049】
いくつかの実施形態では、デジタル署名が、公開鍵基盤(PKI)技術を用いて構成データの真正性を確立することができる。PKIシステムは、証明書及び鍵を用いてエンティティ、個人又は組織を識別する。認可モジュールは、秘密鍵を用いて構成データに署名し、この構成データを、認可モジュールが使用する公開鍵を含む証明書に関連付ける。
【0050】
受信者モジュールが公開鍵を用いてデジタル署名を検証し、これによって署名入り構成データの真正性を検証する。支援技術を用いて、署名の時間及び署名鍵の状態などの他の否認防止の特徴を確立することもできる。公開鍵は、受信者エンティティに直接提供することも、或いは公開によってオンラインリポジトリ又はディレクトリ内に提供することもできる。
【0051】
識別モジュール
識別モジュールは、構成データを受け取って、マーク付けすべき品目のための識別子を生成することができる。識別モジュールは、署名モジュールによって生成されたデジタル署名を受け取り、これを一意の識別子と組み合わせて一意の複合識別子を生成することができる。
【0052】
これらの識別子は、マーク付けすべき製品の生産日及び/又は生産時間と、署名モジュールから受け取ったデジタル署名とを含み、又はこれらに基づくことができる。いくつかの実施形態では、生成されるセキュアな識別子を、一意的又は実質的に一意的とすることができる。いくつかの実施形態では、セキュアな識別子をセキュリティトークンとすることができる。
【0053】
範囲の場合、識別モジュールは、範囲識別子と、生成された範囲内の一連の識別子とを生成することができる。
【0054】
作成された識別子は、製品上に直接印刷できるように印刷制御モジュールに出力することも、又は製品パッケージ上に印刷される別のコードを生成するさらなる処理に入力することもできる。
【0055】
検証モジュール
図5を参照すると、検証モジュール(150)は、検証済みの構成データを受け取り、この認証済みの構成データに基づいて、報告された工場、機械、製品又は生産量の認可(305)を求める要求を認証することができる。検証モジュールへの入力は、検証済みの構成データ、署名モジュールからの出力、識別子、セキュリティトークン及び/又は範囲情報のうちの一部又は全部を含むことができる。検証モジュールは、製品識別子を検証/認証するために、これらのパラメータを含む情報を認可モジュールのために生成することができる。
【0056】
検証モジュールは、1又は2以上の識別子又は識別子範囲(315)と、1又は2以上のセキュリティトークンを含む署名データ(310)とを含む、要求の解読(320)を生成することができる。
【0057】
セキュリティトークンが検証モジュールに入力された場合、検証モジュールは、認可、構成データ及び/又は範囲に関する情報を戻すことができる。様々な製品に単一のセキュリティトークンが使用されている場合には、このセキュリティトークンを検証モジュールに提供して、個々の製品ではなくこれらの様々な製品に関連するパラメータを検証することができる。この実施形態は、輸出規制の状況において特に有用となり得る。
【0058】
システムプロセス
識別コードの初期化
認可及びパラメータを認証するために、識別コードの初期化を実行することができる。いくつかの実施形態では、性能上の理由によって、生産の開始時に1度この初期化を実行することができる。
図3を参照すると、制御モジュール(110)は、追加パラメータを求めてデータストア(115)にアクセスすることができ、又はモジュールに追加パラメータを提供することができる。パラメータ及び構成データは、認可モジュールによって署名されると認証済み構成データ(135)を形成する。制御モジュールは、その認可モジュール(130)への要求に応答して、上述したような検証済み構成データを受け取る。
【0059】
認可は、製品を生産する認可、製品に特定のIDをマーク付けする認可、又は両方の認可とすることができる。構成データ及び追加パラメータは認可モジュールに送信され、認可モジュールがセキュリティトークンを生成するために使用する。認可モジュールは、構成データ及び追加パラメータに署名して、署名入り構成データを形成することができる。上述したように、構成データは、特定の生産工程又は他の製品及び活動を指定することができる。認可モジュールは、鍵と、認可された識別子と、セキュリティトークンとを含む認可ブロックを生成することができる。いくつかの実施形態では、認可モジュールが鍵を生成することができ、又は認可モジュールに鍵を提供することもできる。認可モジュールは、認可ブロックを制御モジュールに送信することができる。制御モジュールは、認証済みの構成データと、識別子のリスト、識別子の範囲、及び/又は1又は2以上のセキュリティトークンなどの他の情報とを署名モジュール(145)に送信することができる。署名モジュールは、データに署名して署名入りデータと署名とを制御モジュールに送ることができる。その後、識別モジュール(140)は、製品の識別子及び/又は識別子の範囲を含む初期化ブロックを制御モジュールから受け取ることができる。
【0060】
本発明の実施形態は、生産施設をセキュアに制御するプロセスの初期化方法であって、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、を含む方法を含むことができる。
【0061】
別の又はさらなる実施形態は、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付けるステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、を含むことができる。
【0062】
別の又はさらなる実施形態は、生産機械において、デジタル署名された構成データとデジタル署名とを受け取るステップと、生産機械において、デジタル署名された構成データに関連するデジタル署名を検証するステップと、デジタル署名された構成データに基づいて、一連のセキュアな製品識別子を算出するステップと、を含むことができる。
【0063】
別の又はさらなる実施形態は、生産工程において、デジタル署名された構成データに従って製品を生産するステップと、デジタル署名された構成データに従って、製品上に一連のセキュアな製品識別子を印刷するステップと、を含むことができる。
【0064】
別の又はさらなる実施形態は、生産工程が認可されているかどうかを判定するステップが、ライセンスサーバからライセンスデータを取り出すステップをさらに含むことができる。
【0065】
識別コードの生成
図4を参照すると、コード生成プロセスは、生産プロセス中にコードを生成する。識別コード生成プロセスは、識別モジュール(140)に識別子又は識別子の範囲を要求し、これらが制御モジュール(110)に戻されることによって開始することができる。次に、これらの識別子が署名モジュール(145)に送られ、署名モジュール(145)が識別子に署名して署名入りの識別子を制御モジュールに戻す。署名モジュールは、セキュリティトークンを受け取ることができる。いくつかの実施形態では、署名モジュールを外部命令によって制御する必要がなく、いずれかの識別コードをカウントすべき場合には、コードを単一のセキュリティトークンに関連付けることができる。署名モジュールは、認可モジュールによって制御することができる。次に、制御モジュールは、プリンタモジュール(210)内の印刷制御部に出力データを送ることができる。印刷制御部に送られる出力データは、送信前に暗号化することができる。構成データは、その後の検証要求の処理のために検証モジュール(150)に送信することができる。
【0066】
本発明の実施形態は、生産施設において生産される製品をセキュアに識別するコードの生成方法であって、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、識別モジュールにおいて、製品識別子を求める要求を受け取り、この要求に応答して製品識別子を生成するステップと、製品識別子を識別モジュールから署名モジュールに送信するステップと、署名モジュールにおいて、製品識別子にデジタル署名するステップと、デジタル署名された製品識別子をプリンタモジュールに送信するステップと、を含む方法を含む。
【0067】
別の又はさらなる実施形態は、電子データストアから構成データを電子的に受け取るステップと、製品の生産において使用するパラメータを指定する、生産工程のための構成データを電子的に記憶するステップと、構成データを認可モジュールに送信するステップと、認可モジュールにおいて、生産工程が認可されているか否かを判定するステップと、鍵を含む認証済み構成データと、複数の認可済み製品識別子の表現と、セキュリティトークンとを生成するステップと、認証済み構成データを署名モジュールに送信するステップと、署名モジュールにおいて、認証済み構成データに署名するステップと、を含むことができる。
【0068】
別の又はさらなる実施形態では、要求が、識別子の範囲を求めるものである。別の又はさらなる実施形態は、生産工程のための構成データが認可されているかどうかを判定するステップと、生産工程が認可されている場合、セキュリティトークンを生成して構成データに関連付るステップと、デジタル署名を生成して構成データに関連付けることによって構成データにデジタル署名するステップと、を含むことができる。
【0069】
識別コードの検証
検証モジュールは、検証要求を受け取ることができる。この要求は、1又は2以上の識別コードを含むことができる。検証モジュールは、受け取った識別子コードを暗号解読し、又は別様に難読化解除することができる。結果として得られる暗号解読された情報は、署名成分と識別子とを含むことができる。その後、結果として得られた識別子を、この識別子に関連して以前に記憶されていた元々の構成データに関連付けることができる。この関連付けられたデータは、一定範囲内の他の識別子、セキュリティトークン、及びこの識別コードを有する製品の生産に関連して記憶されている他の情報を含むことができる。
【0070】
いくつかの実施形態は、検証モジュールに提供された識別子を、コードの検証を要求する団体に基づいて処理する追加機能を含むことができる。異なる団体に、検証モジュールにアクセスする異なる手段を提供することができる。例えば、小売業者又はその他の形態の商人に、消費者とは異なるポータル又は通信チャネルを提供することができる。小売業者が、検証モジュールに対して小売業者自体を認証することを必要とすることもできる。
【0071】
いくつかの実施形態では、システムを、消費者による検証の結果、識別子が検証済みとしてマーク付けされるように構成することができる。システムは、消費者によって検証が要求されたコードを記憶するようにさらに構成することができる。これらの既に検証済みのコードの検証を求めるあらゆる後続の要求を拒否し、又は別様に処理することができる。
【0072】
エクスポート機能
本発明の実施形態は、第三者にコードをエクスポートする状況において適用することができる。これらの実施形態は、この目的で別個のコードを生成するように構成されたエクスポート機能を含むことができる。エクスポートされるコードは、1又は2以上の製品識別子及び/又はセキュリティトークンを収集してこれらの識別子及び/又はトークンに署名することによって生成することができる。これらの識別子及び/又はトークンは、生産プロセスのいずれかの時点で収集することができる。このエクスポートされるコードの形の署名入り識別子及び/又はトークンは、これらを記憶してこれらの識別子及び/又はトークンの妥当性検証を行うことができる第三者に提供することができる。
【0073】
システムアーキテクチャ
本明細書で説明したシステム及び方法は、ソフトウェア、ハードウェア、又はこれらのいずれかの組み合わせで実装することができる。本明細書で説明したシステム及び方法は、互いに物理的又は論理的に分離されたもの、又はそうでないものとすることができる1又は2以上のコンピュータ装置を用いて実装することができる。また、本明細書で説明した方法の様々な態様は、他の機能に組み合わせ又は統合することもできる。いくつかの実施形態では、図示のシステム要素を単一のハードウェア装置に組み合わせることも、又は複数のハードウェア装置に分離することもできる。複数のハードウェア装置を使用する場合、これらのハードウェア装置は、互いに物理的に近くに配置することも、又は遠くに配置することもできる。
【0074】
方法は、コンピュータ又はいずれかの命令実行システムが使用する、又はこれらに関連するプログラムコードを提供する、コンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体からアクセス可能なコンピュータプログラム製品に実装することができる。コンピュータ使用可能記憶媒体又はコンピュータ可読記憶媒体は、コンピュータ、或いは命令実行システム、装置又は装置が使用する、又はこれらに関連するプログラムを含み又は記憶できるあらゆる装置とすることができる。
【0075】
対応するプログラムコードの記憶及び/又は実行に適したデータ処理システムは、メモリ要素などのコンピュータ化されたデータ記憶装置に直接的又は間接的に結合された少なくとも1つのプロセッサを含むことができる。システムには、(限定するわけではないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む)入力/出力(I/O)装置を結合することもできる。システムには、介在する私的又は公的ネットワークを介してデータ処理システムを他のデータ処理システム、リモートプリンタ又は記憶装置に結合できるようにするネットワークアダプタを結合することもできる。ユーザとの相互作用をもたらすために、コンピュータには、CRT(ブラウン管)、LCD(液晶ディスプレイ)、又はユーザに情報を表示する別のタイプのモニタなどのディスプレイ装置と、ユーザがコンピュータに入力を提供できるようにするキーボード、及びマウス又はトラックボールなどの入力装置とを含む機能を実装することもできる。
【0076】
コンピュータプログラムは、コンピュータ内で直接的又は間接的に使用できる一連の命令とすることができる。本明細書で説明したシステム及び方法は、コンパイル型又はインタープリタ型言語を含む、Flash(商標)、JAVA(商標)、C++、C、C#、Visual Basic(商標)、JavaScript(商標)、PHP、XML、HTMLなどのプログラミング言語、又はプログラミング言語の組み合わせを用いて実装することができ、スタンドアロンプログラム、或いはモジュール、コンポーネント、サブルーチン、又はコンピュータ環境内での使用に適した他のユニットとしてのものを含むあらゆる形で展開することができる。ソフトウェアは、限定するわけではないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができる。プログラミングモジュール間のインターフェイスの実装には、SOAP/HTTPなどのプロトコルを使用することができる。本明細書で説明したコンポーネント及び機能は、以下に限定されるわけではないが、異なるバージョンのMicrosoft Windows(商標)、Apple(商標)Mac(商標)、iOS(商標)、Unix(商標)/X-Windows(商標)、Linux(商標)を含む、ソフトウェア開発に適したいずれかのプログラミング言語を用いて仮想環境又は非仮想環境で実行されるあらゆるデスクトップオペレーティングシステム上に実装することができる。
【0077】
命令プログラムの実行に適したプロセッサは、以下に限定されるわけではないが、汎用及び専用マイクロプロセッサ、及びいずれかのタイプのコンピュータの単一のプロセッサ、或いは複数のプロセッサ又はコアのうちの1つを含む。プロセッサは、リードオンリメモリ、ランダムアクセスメモリ、これらの両方、又は本明細書で説明したデータ記憶装置のいずれかの組み合わせなどのコンピュータ化されたデータ記憶装置から命令及びデータを受け取って記憶することができる。プロセッサは、電子装置の動作及び実行を制御するあらゆる処理回路又は制御回路を含むことができる。
【0078】
プロセッサは、データを記憶する1又は2以上のデータ記憶装置を含み、或いはこれらと通信するように動作可能に結合することもできる。このようなデータ記憶装置は、非限定的な例として、(内蔵ハードディスク及び取り外し可能ディスクを含む)磁気ディスク、光磁気ディスク、光ディスク、リードオンリメモリ、ランダムアクセスメモリ、及び/又はフラッシュストレージを含むことができる。コンピュータプログラム命令及びデータを有形的に具体化するのに適した記憶装置は、例えば、EPROM、EEPROM及びフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスク及び取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、並びにCD-ROMディスク及びDVD-ROMディスクを含む全ての形態の不揮発性メモリを含むこともできる。プロセッサ及びメモリは、ASIC(特定用途向け集積回路)によって補完し、又はASICに組み込むことができる。
【0079】
本明細書で説明したシステム、モジュール及び方法は、ソフトウェア要素又はハードウェア要素のあらゆる組み合わせを用いて実装することができる。本明細書で説明したシステム、モジュール及び方法は、単独で又は互いに組み合わせて動作する1又は2以上の仮想マシンを用いて実装することもできる。あらゆる適用可能な仮想化ソリューションを使用して、物理的コンピュータマシンプラットフォームを、ハードウェアコンピュータプラットフォーム又はホスト上で動作する仮想ソフトウェアの制御下で実行される仮想マシンにカプセル化することができる。仮想マシンは、仮想システムハードウェア及びゲストオペレーティングシステムソフトウェアの両方を有することができる。
【0080】
本明細書で説明したシステム及び方法は、データサーバなどのバックエンドコンポーネント、アプリケーションサーバ又はインターネットサーバなどのミドルウェアコンポーネント、グラフィカルユーザインターフェイス又はインターネットブラウザを有するクライアントコンピュータなどのフロントエンドコンポーネント、或いはこれらのいずれかの組み合わせを含むコンピュータシステムに実装することができる。システムのコンポーネントは、通信ネットワークなどのあらゆる形のデジタルデータ通信又はこれらの媒体によって接続することができる。通信ネットワークの例としては、例えば、LAN、WAN、並びにインターネットを形成するコンピュータ及びネットワークが挙げられる。
【0081】
本発明の1又は2以上の実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベースの又はプログラム可能な消費者電子機器、ミニコンピュータ、メインフレームコンピュータなどを含む他のコンピュータシステム構成を用いて実施することができる。本発明は、ネットワークを介してリンクされた遠隔処理装置によってタスクが行われる分散コンピュータ環境で実施することもできる。
【0082】
本発明の1又は2以上の実施形態を説明したが、これらの様々な修正物、追加物、置換物及び同等物も本発明の範囲に含まれる。