(57)【特許請求の範囲】
【請求項１】
流通チェーンに渡って類似するアイテムのロット内の関連付けされている全てのアイテムのグループに、決定論的に再現可能な、暗号の表示を適応させるためのコンピュータ実行方法であって、
プロセッサが、マスター鍵を生成するステップであって、当該ステップが、
疑似乱数生成器から選ばれた長さの種バイト・シーケンスを生成するステップと、
鍵および当該種バイト・シーケンスをハッシュするステップと、
当該ハッシュされた鍵および種バイト・シーケンスを使用してハッシュ・ベースのメッセージ認証コードを算出するステップと、
当該ハッシュ・ベースのメッセージ認証コードを二つのシーケンスに分割するステップと、
当該シーケンスの一方をマスター秘密鍵としかつ当該シーケンスの他方をマスター・チェーンコードとして使用するステップとを
備える、ステップと、
プロセッサが、当該マスター秘密鍵を使用して決定論的アドレスを生成するステップと、
プロセッサが、当該決定論的アドレスのシーケンス内の当該決定論的アドレスのシーケンスを、アイテムごとに、当該類似するアイテムのロット内の各アイテムに関連付けるステップと、
を備え、
当該プロセッサが、ブロック・チェーンとして分散態様で保持されている公開レジャー・データベース内に、当該アイテム毎に、当該決定論的アドレスのシーケンスから当該決定論的アドレスを格納し、
当該プロセッサが、当該グループ内の各当該アイテムに対し各物流取引を当該流通チェーンに渡って追跡するために、動的に、当該公開レジャーを更新し、
当該プロセッサが、当該マスター・チェーンコードを使用することにより、当該公開レジャーにアクセスして、当該流通チェーンに渡って物量取引を検証し、
当該公開レジャーで追跡された当該物流取引が、所在の追跡を検証し、かつ当該流通チェーンに渡って当該アイテムのシリアル化を実行する所在管理システムを、当該公開レジャーが、備える、
コンピュータ実行方法。
【請求項２】
製造業者、運送業者または関連する所有事業体の何れかを識別する公開アドレスとして当該種バイト・シーケンスを使用するステップと、
シーケンシャル番号を当該公開アドレスに加えるステップと、
疑似乱数発生器から、選ばれた長さの種バイト・シーケンスを当該公開アドレスおよび当該シーケンシャル番号に加えるステップとを
備える、請求項１に記載の方法。
【請求項３】
シーケンシャル番号を備える一意の暗号アドレスを決定論的に生成するステップと、
生成されたシーケンシャル番号を、元のマスター種に関連付けられている場合には、暗号チェーン上の決定論的経路へのポインタとして使用するステップとを
備える、請求項１に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
種々の実施態様が、全てのSKU、輸送用カートンおよびアイテムに対して、汎用で、決定論的に再現可能な、暗号の鍵ペアの表示を提供することに関する。
【背景技術】
【０００２】
（公開鍵暗号法）
公開鍵暗号法（別名、非対称暗号法）は、二つの別個の鍵を必要とする暗号化アルゴリズムに分類される。そしてこれらの鍵の一方はシークレット（または秘密（private））でありかつ他方は公開されている。この鍵ペアの二つの部分は、異なってはいるが、数学的にリンクされている。公開鍵は、平文を暗号化するまたはデジタル署名を検証するために使用される一方、秘密鍵は、暗号文を復号するまたはデジタル署名を生成するために使用される。両方を実行するために同じ鍵に依存する従来の「対称」暗号法に対して、「非対称」という用語は、各鍵が他の鍵の逆であるこれらの反対の機能を実行する異なる鍵の使用に由来する。
【０００３】
公開鍵アルゴリズムは、ある素因数分解、離散対数および楕円曲線関係に固有で効率的な解法が現在認められていないと言う数学問題に基づく。ユーザが、彼ら自身の公開鍵および秘密鍵ペアを生成しそして暗号化および解読のためにそれらを使用することは、計算的には容易である。これの特長は、適切に生成された秘密鍵をそれに対応する公開鍵から決定することは、「不可能である」（計算的に実行不可能である）という事実にある。従って、公開鍵は、セキュリティを損なわずに発行することができるが、秘密鍵は、メッセージを読むまたはデジタル署名を実行する権限が与えられていない如何なる者にも、開示してはならない。対称鍵アルゴリズムとは異なり、公開鍵アルゴリズムでは、一つの（またはより多くの）秘密鍵を当事者間で最初に安全に交換しておく必要はない。
【０００４】
メッセ―ジの認証は、メッセージを秘密鍵により処理してデジタル署名を生成することに関わる。その後、如何なる者も、署名者の対応する公開鍵により署名値を処理しかつその結果をメッセージと比較することによってこの署名を検証することが出来る。署名者の秘密鍵が署名者に秘密のままであったと仮定して、署名者および他の如何なる者も署名動作を意図的に実行せずに、メッセージが署名されてから変更されていないことを、成功裡に確認する。実際上、典型的には、署名として（メッセージそのものではなく）メッセージのハッシュまたはダイジェストのみが暗号化される。
【０００５】
公開鍵アルゴリズムは、暗号システム、アプリケーションおよびプロトコルにおける基本的なセキュリティ要素である。これらは、トランスポート層セキュリティ（TLS: Transport Layer Security）、PGPおよびGPGのような様々なインターネット標準をサポートする。いくつかの公開鍵アルゴリズムは、鍵配送および秘密（例えば、ディフィー・ヘルマン（Diffie-Hellman）鍵交換）を提供し、いくつかの公開鍵アルゴリズムは、デジタル署名（例えば、デジタル署名アルゴリズム（Digital Signature Algorithm））を提供し、そしていくつかの公開鍵アルゴリズムは、両方（例えば、RSA）を提供する。
【０００６】
公開鍵暗号法は、とりわけ、ITセキュリティ規範情報セキュリティにアプリケーションが見出される。情報セキュリティ（IS)は、セキュリティの脅威に対して電子情報の資産を保護する全ての態様に関係する。公開鍵暗号法は、電子通信およびデータ格納の守秘性、確実性および否認不可性を保証する方法として、使用される。
【０００７】
（ビットコイン）
ビットコインにおいては、ビットコインの所有権は、デジタル鍵、ビットコイン・アドレスおよびデジタル署名によって確立される。デジタル鍵は、実際にはネットワーク内に格納されず、その代わりにユーザによって作成され、かつファイルにまたはウォレットと呼ばれる単純なデータベースに格納される。ユーザのウォレット内のデジタル鍵は、ビットコイン・プロトコルから完全に独立していて、かつブロック・チェーンへの参照またはインターネットへのアクセス無しに、ユーザのウォレット・ソフトウェアによって生成させかつ管理させることが出来る。鍵は、集中化されていない信用および制御、所有権の証明および暗号により保護されているセキュリティ・モデルを含む、ビットコインの興味深い特性の多くを可能にする。
【０００８】
あらゆるビットコイン取引は、有効な署名が、有効なデジタル鍵でしか生成することが出来ないブロック・チェーンに含まれていることを必要とする。従って、これらの鍵のコピーを有する者は誰でも、そのアカウント内のビットコインを制御することが出来る。鍵は、私有（秘密）鍵と公開鍵とから構成される対を成している。公開鍵は、預金口座番号に類似し、そして秘密鍵は、口座の制御を提供する小切手上の秘密のPIN（個人識別番号）または署名に類似している。これらのデジタル鍵は、ビットコインのユーザによって、ごくまれにしか見られない。ほとんどの場合、それらは、ウォレット・ファイルに格納されていて、かつビットコイン・ウォレット・ソフトウェアによって管理される。
【０００９】
ビットコイン取引の支払い部分において、受取人の公開鍵は、その（ビットコイン・アドレスと呼ばれる）デジタル指紋によって表示され、これは、小切手上の受益者名（つまり、「支払先（Pay to the order of）」）と同様に使用される。ほとんどの場合、ビットコイン・アドレスは、公開鍵から生成されかつそれに対応する。しかしながら、全てのビットコイン・アドレスが、公開鍵を表すというわけではなく、それらは、スクリプトのような他の受益者を表すことも出来る。このように、ビットコイン・アドレスは、人々の口座に払い込む、会社の口座に払い込む、請求の代価を払う、または現金で支払うために使用することが出来る単一の支払手段である紙の小切手と同様に、取引の宛て先に融通性を持たせ、資金の受取人を抽出する。ビットコイン・アドレスは、鍵が世界と共有するために必要とする部分であるので、ビットコイン・アドレスは、ユーザが日常的に見る鍵の唯一の表示である。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】「Certicom社リサーチ（Certicom Research）」、 http://perso.univ-rennes1.fr/sylvain.duquesne/master/standards/sec2_final.pdf)
【非特許文献２】Daniel J. Bernstein、Niels Duif、Tanja Lange、Peter Schwabe、BoYin Yangによる「高速、高信頼署名（High-speed high-security signatures）」、Journal of Cryptographic Engineering 2 (2012), 77-89
【非特許文献３】https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
【非特許文献４】IEEE Std 1363-2000
【非特許文献５】ANSI X9.42
【発明の概要】
【発明が解決しようとする課題】
【００１１】
一意の暗号アドレスを、拡張性のある態様で関連付けられているアイテムの大きなグループ内の全ての各アイテムに関連付けることは、問題である。関連付けられているアイテムが、例えば、シリアル番号の様に、しばしばシーケンシャルに案出されるのに対し、鍵は、典型的には、ビットコインのような暗号システムではランダムに生成されるので、この問題は、特に、当てはまる。もし、例えば、ビットコインにおいて適用される公開鍵暗号法の否認不可性の態様が、例えば、供給チェーンの範囲内の統合または流通の全てのレベルでおよび様々な形で、関連付けられているアイテムの所在および不正操作の不存在を保証するために、SKU、輸送用カートンおよび他のアイテムのようなシーケンシャルなアイテムに対して信頼されている追跡監査を保持することに適用されるならば、それは、有利なものとなるであろう。
【課題を解決するための手段】
【００１２】
要約
値の暗号表示は、特定の在庫商品識別ユニットに対する一意の識別子またはコードを意味するそれらの在庫商品識別ユニット（つまり、SKU: stock keeping unit）によって表される供給チェーンによる様々なステージで製造される商品および製品に適合する。本発明の実施態様は、全てのSKU、輸送用カートンおよびアイテムに対する（すなわち、地球上の全ての各SKU、輸送用カートンおよびアイテムに対する）、汎用で、一意の、決定論的鍵ペアの生成を開示する。
【図面の簡単な説明】
【００１３】
【図１】本発明に従って秘密popコードを導出するための決定論的鍵生成を示す流れ図である。
【図２】本発明に従って秘密popコードを導出するための決定論的鍵生成を示す更なる流れ図である。
【図３】本発明に従って公開popコードを導出するための決定論的鍵生成を示す流れ図である。
【図４】本発明に従って公開popコードを導出するための決定論的鍵生成を示す更なる流れ図である。
【図５】本発明に従って公開−秘密鍵ペアの生成に焦点を当てて説明する楕円曲線線図である。
【図６】本発明に従ってアドレスのシーケンスの類似するアイテムのグループへの関連付けを示すブロック構成図である。
【図７】マシンに、本願明細書で議論される一つ以上の方法論を実行させる一組の命令を実行させることができるコンピュータ・システムの例の形態でマシンを線図的に表す。
【発明を実施するための形態】
【００１４】
（全てのSKU、輸送用カートンおよびアイテムに対する、汎用で、決定論的に再現可能な、暗号鍵ペアの表示）
様々な実施態様が、供給ネットワークの全体にわたってアイテムに対する鍵ペアの表示の一つ以上の暗号方法を使用することに関する。本開示は、２０１４年１２月５日に出願された米国特許出願第１４／５６２，３０３号および２０１５年２月２６日に出願された米国特許出願第１４／６３２，９９号に関していて、これらの各出願は、この参照によって全体が本願明細書に組み込まれている。
【００１５】
本発明の様々な実施態様は、所在の追跡およびシリアル化に関連する一つ以上の暗号方法の使用に関する。「所在」とは、ある量の商品の起点の確実な識別を意味する。所在の追跡は、以下、所在管理システムと呼ばれるコンピュータ・システム（例えば、一つ以上のコンピュータ・サーバまたは他のコンピューティング・デバイス）によって可能にすることが出来る。所在管理システムは、その物流プラットフォームに参加する一つ以上の参加者エンティティの一つ以上のプロフィールを保持することが出来る。各プロフィールは、少なくとも参加者エンティティに対応する公開識別鍵（例えば、非対称暗号に対する公開鍵）を含むことが出来る。公開識別鍵は、参加者エンティティによって作られる任意の暗号署名を検証するために使用される。
【００１６】
第一の会社が第一の量の商品を製造する場合、第一の会社によって制御される第一のコンピューティング・デバイスは、第一の量の商品の所有権を、物流取引記録を介して公開レジャー・データベースに報告することが出来る。公開レジャー・データベースは、物流取引記録を分散態様で格納することが出来る。第一のコンピューティング・デバイスは、所在管理システムにより物流取引記録を公開レジャー・データベースに報告することが出来る。第一のコンピューティング・デバイスは、この物流取引をその秘密暗号鍵によって暗号署名することが出来る。
【００１７】
第一の会社が第一の量の商品を様々な顧客に配送する準備をする際、第一のコンピューティング・デバイスは、所在の証明（proof of provenance）コード（以下、「popコード」）ラベルを所在管理システムまたはそのエージェントにリクエストすることが出来る。popコード・ラベルは、物流取引記録に暗号署名するために使用される秘密popコード鍵を符合化する。所在管理システムは、秘密popコード鍵に対応する公開popコード鍵をその信頼されているストレージに格納することが出来、これにより、それが、秘密popコード鍵によって作られる署名を検証する（例えば、従って、所有の証明（proof-of-possession）を確立する）ことが出来る。
【００１８】
本発明のいくつかの実施態様において、所在管理システムは、popコード鍵ペアをその信頼されているストレージに格納することが出来る。例えば、popコード・ラベルは、32ビット・バーコード（例えば、二次元バーコード）とすることが出来る。いくつかの実施態様において、第一のコンピューティング・デバイスは、その商品にラベル付けをするためにバッチのpopコード・ラベルをリクエストすることが出来る。第一のコンピューティング・デバイスは、第二の量の商品を公開レジャー・データベース上のpopコード・アドレスに割り当てる物流取引記録を報告することが出来る。第二の量の商品は、少なくとも部分的に第一の量の商品と重複することが出来る。
【００１９】
所在管理システムは、多数の委任ノード（例えば、コンピューティング・デバイス）から成る分散型コンセンサス・システムとインターフェイスを取ることによって、公開レジャー・データベースを保持することが出来る。例えば、公開レジャー・データベースは、分散態様でブロック・チェーンとして保持することが出来る。ブロック・チェーンは、所在管理システムによって保持される物流プラットフォームの中で発生する全ての確認された物流取引の軌跡を保持する。物流取引は、会社内でまたは会社間で発生する定量化された商品の在庫記録である。物流取引は、アイテムの一つ以上のタイプに関連付けられている一つ以上のアイテムの量を規定することが出来る。物流取引は、少なくとも、現在の物流取引において記述されるアイテムの量のサブセットを供給する一つ以上の以前の物流取引を参照することによって、アイテムの発送元を規定することが出来る。物流取引は、アイテムが割り当てられるあて先アドレス（例えば、識別アドレスまたはpopコード・アドレス）を規定することが出来る。
【００２０】
本発明のいくつかの実施態様では、ブロック・チェーンは、分散型コンセンサス・システムにより物流取引を確認する。分散型コンセンサス・システムは、それらをブロック・チェーンに含ませることによって待機中の物流取引を確認する。分散型コンセンサス・システムは、ブロック・チェーンの時系列順序を実施し、これにより、公開レジャー・データベースを実装するコンピューティング・デバイスのネットワークの中立性を保護する。
【００２１】
本願明細書に記述される本発明は、多数の物流取引の経過を追っているブロック・チェーンに依存する。任意の消費者または会社は、ブロック・チェーンにアクセスして、アイテムのセットに関連付けられている所在をブロック・チェーンへのアクセスにより検証することが出来る。例えば、物流プラットホームに適合する任意のpopコード・ラベルは、走査させて、ブロック・チェーンによって表される公開レジャー・データベースに対してチェックすることが出来る。
【００２２】
本発明の実施態様は、値の暗号表示を、それらの在庫商品識別ユニット（つまり、SKU）によって表される供給チェーンにより、様々なステージで製造される商品および製品に適応させる。在庫管理の分野において、在庫商品識別ユニット（つまり、SKU）は、製品またはサービスのような販売、および他のアイテムからそれを識別するアイテムに関連付けられている全ての属性に対する明確なアイテムである。製品に対して、これらの属性は、製造業者、製品に関する文書、材料、サイズ、色、パッケージングおよび保証期間を含むが、これらに限定されるものではない。事業者が在庫を検査する場合、それは各SKUの量を計数する。
【００２３】
SKUは、特定の在庫商品識別ユニットを参照する一意の識別子またはコードを参照することも出来る。これらのコードは、規則化も標準化もされていない。従って、本発明の実施態様では、ある会社が他のベンダーからアイテムを受領すると、その会社は、ベンダーのSKUを保持するかまたはそれ自身のSKUを生成するかと言う選択を有する。他のエンティティ追跡方法は、規則によって変化するが、万国製品コードUniversal Product Code（UPC）、国際物品番号International Article Number（EAN）、世界通商アイテム番号Global Trade Item Number（GTIN）およびオーストラリア製品番号Australian Product Number（APN）である。本発明の実施態様は、全てのSKU、輸送用カートンおよびアイテムに対する（すなわち、地球上の全ての単一SKU、輸送用カートンおよびアイテムに対する）、汎用で、一意の、決定論的、鍵ペアの生成を開示する。
【００２４】
（定義）
本願明細書の開示に対し、以下の用語は、それらに関連する意味を有する。
【００２５】
楕円曲線暗号：暗号に適しているトラップドア関数を構成するために、整数のサブセットでy2 = x3 + ax + bの楕円曲線方程式を満足する座標の演算を用いる。本発明の実施態様では、整数のサブセットは、本願明細書で開示されているシステムの最低限のセキュリティの保証を保持するために、少なくとも32バイトの全ての整数とすべきである。適切な曲線の具体例は、ビットコインおよびed25519（非特許文献２を参照）によって使用されるsecp256k（非特許文献１を参照）を含む 。  
【００２６】
秘密鍵：秘密鍵は、楕円曲線上の座標である。このような秘密鍵の例は、
QX1R9sgBKgvbhEvxvibUqE8fGVQMzL7n8dgzACuufuP3ptUxDJmS
である。
【００２７】
公開鍵：公開鍵は、秘密鍵曲線座標と曲線定義内のポイントGを乗算することによって、生成される座標である。このような公開鍵の例は、
DDAaRzdpz6pTz5qmvR7eQhWyzsWiKB1qgF
である。
【００２８】
（決定論的アドレスとは、何か？）
楕円曲線数学は、秘密鍵を明らかにすること無く公開鍵を計算することが出来るスキームを可能にする。本発明の実施態様において、これは、例えば、地球上の全ての各アイテムおよび輸送用カートンに対して新しいアドレスを生成することを可能にする。これらのアドレスは、バーコード、QRコードとして表すことが出来、または異なるタイプのRFIDタグ（すなわち、UHF、NFC等）に書込むことが出来る。
【００２９】
ビットコインBIP325（非特許文献３を参照）の場合、ビットコイン参照クライアントは、ランダムに生成された鍵を使用する。各取引後のバックアップの必要性を回避するために、（デフォルトで）100個の鍵が、予備鍵のプールに取り入れられている。それでも、これらのウォレットは、共有されかつ同時にいくつかのシステムで使用されることは意図されていない。これらは、ウォレット暗号化特徴を用いかつパスワードを共有しないことにより秘密鍵を隠すことをサポートするが、このように中性化されたウォレットは、公開鍵を生成する能力も失う。
【００３０】
決定論的ウォレットは、このような頻繁なバックアップを必要とせず、かつ楕円曲線数学は、秘密鍵を明らかにすることなく公開鍵を算出することが出来るスキームを可能にする。これは、例えば、ウェブショップ事業者が、（受領した資金を使うために必要とされる）対応する秘密鍵にウェブサーバにアクセスすること無く、そのウェブサーバが、各注文または各顧客に対し新しいアドレス（公開鍵ハッシュ）を生成することを可能にする。
【００３１】
しかしながら、決定論的ウォレットは、典型的には、鍵ペアの単一のチェーンから成る。一つのチェーンしかないという事実は、ウォレットを共有することが、全てまたは皆無（all-or-nothing）ベースで起こることを意味する。しかしながら、場合によっては、いくつかの（公開）鍵のみが共有されかつ回復可能であることが望まれる。ウェブショップの例では、ウェブサーバは、小売商のウォレットの全ての公開鍵にアクセスする必要は無く、顧客の支払いを受けるために使用されるこれらのアドレスのみにアクセスし、そして例えば、小売商が金を消費するときに生成される変更アドレスにはアクセスしない。階層的な決定論的ウォレットは、単一のルートから導出される多数の鍵ペアのチェーンをサポートすることによって、このような選択的共有を可能にする。
【００３２】
決定論的鍵の生成に関する本発明の実施態様では、導出には、一つのチェーンを使用することが出来、または階層的な決定論的機構の場合、各々が単一のルートから導出される多数のチェーンに対して、導出が可能になる。
【００３３】
暗号法において、鍵導出関数（つまり、KDF: key derivation function）は、一つ以上の秘密鍵を、疑似乱数関数を使用して、マスター鍵またはパスワードまたはパスフレーズのような他の知られている情報のような秘密の値から導出する。鍵導出関数は、しばしば、秘密ではないパラメータと共に使用されて、共通の秘密の値から一つ以上の鍵を導出する。これは、時々、鍵の多様化とも呼ばれる。このような使用は、導出された鍵を得た攻撃者が、入力された秘密の値または他の導出された鍵の何れかについて有益な情報を学習することを防止することができる。KDFは、導出された鍵が、いくつかの特有な暗号システムの弱い鍵を回避するような、他の望ましい特性を確実に有するようにするために使用することもできる。
【００３４】
KDFの最も一般的な使用は、パスワード・ファイルまたはシャドウ・パスワード・ファイルによって使用されるパスワード検証に対するパスワード・ハッシュ法アプローチである。秘密ではないパラメータは、この文脈ではソルトと呼ばれる。
【００３５】
鍵導出関数は、しばしば、多数当事者鍵-合意プロトコルのコンポーネントとして使用される。このような鍵導出関数の例は、非特許文献４で規定されるKDF1および非特許文献５における類似する関数を含む。鍵導出関数は、秘密のパスワードまたはパスフレーズから鍵を導出するためにも使用される。RFC 5869で規定されているHMA-based Extract-and-Expand Key Derivation Function (HKDF)は、単純なHMACベースのKDFであり、これは、様々なプロトコルおよびアプリケーションの基本ブロックとして使用することが出来る。
【００３６】
本発明の実施態様では、HKDFは、秘密鍵およびセキュリティ・データ（例えば、シリアル番号）に関連して使用され、関連付けられたアイテムのロット内または集合内のシーケンシャルなアイテムごとに、秘密popコードを生成する。
【００３７】
popコードは、二つのアプローチにより識別子のシーケンスから導出することが出来る。第一のアプローチは、暗号情報を符号化する物理的popコードが、skuチェーンのようなプロバイダによって製造される場合に、適用される。プロバイダは、秘密暗号の情報を生成する。この結果、プロバイダは、識別子のシーケンスの範囲に対するバルク動作を容易にすることが出来る。第二のアプローチは、顧客が、個人的に秘密popコードを管理することを可能にし、かつプロバイダが、識別子の範囲の動作を実行することを可能にする。
【００３８】
popコードがプロバイダによって生成される時には、プロバイダは次のプロセスによりpopコードを導出する。プロバイダは、秘密鍵値を生成する。この鍵値のサイズは、ハッシュ関数の選択によって決定される。HMACSHA512は、512ビットの鍵を使用するであろう。HMAC SHA512はシーケンシャルな識別子に実行され、かつ鍵は512ビットの擬似ランダム値を生成する。256個の最上位ビットを、楕円曲線鍵ペアの作成において抽出することが出来る。規定により、これらのビットを32バイト整数値として扱いかつこの曲線方程式をx値を表す32バイトで解析する。これにより、Xpriv,Ypriv. (Xpriv,Ypriv * G( the generator point ) = (Xpub,Ypub) . 0x01||64公開バイトが得られる。これらをSha256でハッシュし、そしてこのハッシュをRIPE160を有する160バイトに短縮する。
【００３９】
33バイトに圧縮された秘密鍵は、所有を暗号によって証明するために使用することが出来る秘密popコードである。160バイトの識別子は、所在およびアイテムに関連付けられているトークンを調べるために使用することが出来る一意の非シーケンシャル識別子である。
【００４０】
顧客が、秘密のpopコードがプロバイダに知られていないpopコードを生成することを望む場合、プロバイダは、代替の鍵導出シーケンスを提供することが出来る。顧客は、上記のアルゴリズムを使用して、秘密ポイントおよび公開ポイントを安全に生成する。公開ポイント（Xpub）および別の32バイトのエントロピを取得し、そしてこれを使用して、シーケンシャルな識別子を取得しかつ疑似乱数512ビット値を戻すHMAC(HMACSHA512)関数を特定する。最上位の256ビットを取得し、かつ曲線方程式を解析することにより中間の曲線ポイントを生成する。この中間点を顧客秘密ポイントに加えて、所有を証明するために使用される秘密popコードである新規なポイントを生成する。このポイントを顧客公開鍵に追加しかつ新規な公開ポイントを生成する。ここで、SHA156およびRIPE160は、アイテムの所在を調べるために使用することが出来る。
【００４１】
本発明による決定論的鍵生成を示す流れ図である図１は、ユーザが、アイテム毎に、基礎となっている暗号法を管理することなく、暗号によって安全な取引のシーケンスを実行することが出来る、シーケンシャル番号の乱数へのリンク付けを示す。この場合、（上述したような）中央の信頼されている機関が、類似するアイテムのロット内の各アイテムに対し一連の秘密popコード12a、12b、12nを生成する。これは、信頼されている当事者の公開鍵10、セキュリティ・データ11（すなわち、マスター種）、およびシリアル番号を連結することによって、例えば、鍵導出関数によるハッシュ処理によって、達成される。信頼されている当事者は、秘密鍵を適用して任意の秘密popコードを検証することが出来る。
【００４２】
図２は、本発明に従って秘密popコードを導出する決定論的鍵生成を示す更なる流れ図である。図２は、秘密popコードの導出に使用されるpopコード鍵導出1型を示す。これは、印刷およびRFID形態でpopコードの事前製作を可能にする。図２において、鍵は、信頼されている機関の秘密鍵である。鍵の長さは、ハッシュ関数（すなわち、SHA 256、SHA 512、BLAKE2等のような暗号ハッシュ関数）によって決定される。HMACは、鍵、ハッシュおよびコンテンツを結合して、決定論的衝突耐性値を生成する。有限体の曲線方程式が暗号法に適している楕円曲線が示されていて、ここでは、体のサイズはハッシュ出力以下である。
【００４３】
図３は、本発明によって公開popコードを導出する決定論的鍵生成を示す流れ図である。
【００４４】
図４は、本発明によって公開popコードを導出する決定論的鍵生成を示す更なる流れ図である。図４は、skuチェーンのようなプロバイダが公開popコードしか導出しない popコード鍵導出2型を示す。popコードの生産は、顧客の責任である。図４において、Xpriv, Ypriv及びXpub, Ypub並びに導出コードは、顧客によって使用されて、秘密ポイントと曲線上の導出された公開ポイントとからなる楕円曲線鍵ペアが生成される。追加データがHMAC鍵によって必要とされる場合、顧客は導出コードを生成する。ハッシュは、SHA 256、SHA 512、BLAKE2等のような暗号ハッシュ関数である。HMACは、鍵、ハッシュおよびコンテンツを結合して、決定論的衝突耐性値を生成する。有限体の曲線方程式が暗号法に適している楕円曲線が示されていて、ここでは、体のサイズはハッシュ出力以下である。
【００４５】
以下の説明は、本発明の各ステップに関する更なる詳細を提供する。
【００４６】
（マスター鍵の生成）
本発明の実施態様では、可能性がある拡張鍵ペアの合計数はほぼ2^512であるが、生成される鍵の長さは256ビットしか無く、かつそれの約半分をセキュリティ面で提供する。従って、マスター鍵は、直接生成されず、それに代えて潜在的に短いシード値から生成される。本発明の実施態様において、これは、以下のように進む:  
１．選ばれた長さ（例えば、(P)RNGから128〜512ビット（256ビットが推奨される）） の種バイト・シーケンスSを生成する。
２．SHA512ハッシュ関数（例えば、I = HMACSHA512(Key = "Bitcoin seed", Data = S）を使用してハッシュ・ベースのメッセージ認証コード（HMAC: hash-based message authentication code)を算出する。
３．Iを、二つの32バイト・シーケンス、ILおよびIRに分割する。
４．マスター秘密鍵としてparse256(IL)を使用し、かつマスター・チェーンコードとしてIRを使用する。
ILが0または≧nである場合、マスター鍵は無効である。
【００４７】
（アイテム、SKUおよび輸送用カートンに対するマスター種の構成）
地球上のSKUおよび輸送用カートンごとに使用される決定論的アドレスに対して、マスター種が如何に生成されるかについて、以下の相違は、注目すべきである：
１．マスター種を備える体（最長32バイトまで）の一つは、製造業者、運送業者または関連した所有する機関を識別する公開アドレスである。
２．これには、最長13バイトまでのシーケンシャル番号が続く。
３．これには、(P)RNGからの最長19バイトまでの種バイト・シーケンスSが続く。
【００４８】
（決定論的アドレスの生成）
図４は、本発明による公開−秘密鍵ペアの生成を重点的に説明する楕円曲線ダイアグラムである。楕円曲線暗号は、楕円曲線のポイントに対する加算および乗算によって表される離散値対数問題に基づく、非対称暗号法または公開鍵暗号法のタイプである。例えば、ビットコインは、アリカ国立標準技術研究所（NIST）によって確立されている、secp256k1と呼ばれる標準において規定されている、特有の楕円曲線および数学的定数のセットを使用する。secp256k1曲線は、楕円曲線を生成する以下の関数によって規定される。
【数１】
0006674961.tif 000002
または、
【数２】
0006674961.tif 000003
【００４９】
mod p（モジュロ素数p）は、この曲線が素数のオーダpの有限体（
【数３】
0006674961.tif 000004
とも書かれる）に渡っていることを示す。ここで、p = 2256 - 232 - 29 - 28 - 27 - 26 - 24 - 1で、非常に大きな素数である。
【００５０】
本発明の実施態様では、楕円曲線は、ビットコインにより用いられるそれと類似している。ここで:
＊ k =秘密鍵、K =公開鍵、およびG=曲線上のポイント（x, y）とし、かつ
＊ kG =Kとする。
【００５１】
楕円曲線において、ポイントをそれ自体に追加することは、ポイントに接線を引き、それが再び曲線と交差する場所を見出し、そしてx軸上にそのポイントを反映させることに相当する。
【００５２】
シーケンシャル番号（n1）が与えられると、n1G1にありかつそれが関連付けられている鍵ペアである新規なポイントG1を導出することが出来る。
【００５３】
（アドレスのシーケンスの類似するアイテムのグループへの関連付け）
拡張性のある態様で一意の暗号アドレスを類似するアイテムのグループ内の全ての各アイテムに関連付けることは、問題がある。例えば、1,000個の箱の出荷には、各々、どのように一意の番号が関連付けられるであろうか？
【００５４】
図６は、本発明による、アドレスのシーケンスの、類似するアイテムのグループへの関連付けを示すブロック構成図である。これを行う本発明の実施態様では、各々が二つの体を有するラベルのロールを事前に生成する、すなわち、1000個のTylenol（登録商標）500mgカプセルのようなアイテムの集合内の各アイテムに対し、一意の暗号コードを生成することにより実施される。本発明によって、コードを、シーケンシャル番号（例えば、起源-65-000069、起源-65-00070）と共に生成することが可能になる。これによって、ラベル付けが容易になり、かつアイテムを再分割する（例えば、1000個のカプセルを、300個のTylenol（登録商標）500mgカプセルを備えるサブセットに分割する）ことが可能になる。各アイテムまたはアイテムのグループは、暗号によって安全となりかつ検証可能となり、そして、また、各アイテムまたはアイテムのグループは、関連付けられているアイテムのロットの範囲内の他の各アイテムまたはアイテムのグループに対して相互にシーケンシャルに識別される。
【００５５】
このように、本発明の実施態様は、
１．決定論的に生成される一意の暗号アドレス、
および
２．使用されるオリジナル・マスター種およびエントロピに関連付けられているときに、暗号のチェーン上の決定論的パスへのポインタを提供するシーケンシャル番号
を提供する。
【００５６】
従って、例えば、1,000枚のラベルから成る予め生成されているロールは、所定の製品出荷に関連付けられる。これらのラベルは、出荷される各箱に添付されるものである。このようにして、あらゆる箱、あらゆる出荷およびあらゆるSKUには、一意の暗号アドレスが提供されるので、それらを添付する作業の流れが確実に面倒ではなくなる。
【００５７】
各ロット／バッチに対する一意のアドレス、製造業者、流通業者、運送業者または出荷元エンティティを備えるマスター種を生成しかつそれらをシーケンシャル番号に関連付けることにより、本発明の実施態様は、楕円曲線数学の特性を利用して、潜在的に最大2^512個の一意の暗号鍵ペアを決定論的に生成する。この数は、大きいので、全ての単一SKU、アイテムおよび予見可能な将来の出荷に対応することが出来る。
【００５８】
（コンピュータ・システム）
図７は、実施態様のいくつかのある特徴を実装するために使用することができるコンピュータ・システムのブロック・ダイヤグラムである。このコンピュータ・システムは、サーバ・コンピュータ、クライアント・コンピュータ、パーソナル・コンピュータ（PC）、ユーザ・デバイス、タブレットPC、ラップトップ・コンピュータ、パーソナル携帯情報機器（PDA）、セルラ電話、iPhone、iPad、ブラックベリー、プロセッサ、電話、ウェブ機器、ネットワーク・ルータ、スイッチまたはブリッジ、コンソール、ハンドヘルド・コンソール、（ハンドヘルド）ゲーム・デバイス、音楽プレーヤ、任意の携帯用、モバイル、ハンドヘルド・デバイス、着用可能なデバイス、またはこのマシンによって実行されるべきアクションを特定する（シーケンシャルまたは他の）命令のセットを実行することが出来る任意のマシンとすることができる。
【００５９】
コンピューティング・システム300は、一つ以上の中央処理ユニット（「プロセッサ」）305、メモリ310、入出力デバイス325（例えば、キーボードおよびポインティング・デバイス、タッチ・デバイス、ディスプレイ・デバイス）、ストレージ・デバイス320（例えば、ディスク・ドライブ）およびネットワーク・アダプタ330（例えば、相互接続315に接続されているネットワーク・インターフェース）を含むことができる。相互接続315は、任意の一つ以上の別個の物理バス、二点間接続、または適切なブリッジ、アダプタまたはコントローラによって接続されている両方を表す抽象概念として、例示されている。相互接続315は、例えば、システムバス、PCI（Peripheral Component Interconnect）バスまたはPCI Expressバス、ハイパー・トランスポート（HyperTransport）または業界基準アーキテクチャ（ISA）バス、小形計算機システム・インタフェース（SCSI）バス、汎用シリアル・バス（USB）、IIC（12C）バス、または（Firewireとも呼ばれている）電気電子学会（Institute of Electrical and Electronics Engineers: IEEE）標準1394バスを含むことができる。
【００６０】
メモリ310およびストレージ・デバイス320は、各種実施態様の少なくとも構成部分を実装する命令を格納することができるコンピュータ可読の格納媒体である。加えて、データ構造およびメッセージ構造は、データ伝送媒体（例えば、通信リンク上の信号）を介して格納するまたは送信することができる。さまざまな通信リンクには、例えば、インターネット、ローカルエリアネットワーク、WANまたはポイント・ツー・ポイント・ダイヤルアップ接続を使用することができる。従って、コンピュータ読取り可能媒体は、コンピュータ可読格納媒体（例えば、非一時的媒体およびコンピュータ可読送信媒体）を含むことが出来る。
【００６１】
メモリ310に格納されている命令は、プロセッサ305が上述したアクションを行うようにプログラムされているソフトウェアおよび／またはファームウェアとして実装することが出来る。いくつかの実施態様では、この種のソフトウェアまたはファームウェアは、コンピューティング・システム300によって遠隔システムからそれを（例えば、ネットワーク・アダプタ330を介して）ダウンロードすることによって、処理システム300に最初に提供することができる。
【００６２】
本願明細書において導入された各種実施態様は、例えば、ソフトウェアおよび／またはファームウェアによってプログラムされているプログラム可能な回路（例えば、一つ以上のマイクロプロセッサ）、または物理的な回路結線による（プログラム不可能な）専用目的の回路で完全にまたはこれらの組合せで実装することが出来る。回路結線された専用目的の回路は、例えば、一つ以上のASIC、PLD、FPGA、などの形態により実現することができる。
【００６３】
本発明が、本願明細書において好ましい実施例に関して記載されているが、当業者は、本発明の精神と範囲から逸脱することなく本願明細書において記載されている発明を、他の応用により置換することができることを、直ちに理解するであろう。従って、本発明は、以下に含まれる請求項によってのみ限定されるべきである。
【００６４】
（関連出願についてのクロス・リファレンス）
この出願は、2015年3月12日に出願された米国特許出願番号第14/656,445号の優先権を主張する。そしてこれは、本願明細書にその全部が参照によって組み込まれている。
【図１】
0006674961.tif 000005
【図２】
0006674961.tif 000006
【図３】
0006674961.tif 000007
【図４】
0006674961.tif 000008
【図５】
0006674961.tif 000009
【図６】
0006674961.tif 000010
【図７】
0006674961.tif 000011