(57)【要約】【課題】データコンシューマによってデータパケットをベリファイする方法が提供されてよい。【解決手段】方法は、データパケットのシグニチャスタックにおける第１のシグニチャを認証することを含んでよい。第１のシグニチャは、コンテンツスタックにおけるハッシングされた第１のコンテンツに対応する。第１のシグニチャは、第１のネットワーク位置で生成される。方法は、データパケットのシグニチャスタックにおける第２のシグニチャを認証することを更に含んでよい。第２のシグニチャは、コンテンツスタックにおける第２のコンテンツに対応する。第２のシグニチャは、第２のネットワーク位置で生成される。第２のコンテンツは、第１のコンテンツの処理されたバージョンを含んでよく、第２のネットワーク位置で生成されてよい。【選択図】図１
2017139733.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ及びメモリを含み、前記メモリは、
前記プロセッサによって実行される場合に、該プロセッサに、
シグニチャスタックと、ハッシングされていない第１のコンテンツを含むコンテンツスタックとを含むデータパケットを受信し、
前記第１のコンテンツの処理を実施するよう前記第１のコンテンツをプロセッシングデバイスへ供給し、
ハッシングされた第１のコンテンツを生成するよう前記第１のコンテンツをハッシングし、
前記コンテンツスタックにおいて前記第１のコンテンツを前記ハッシングされた第１のコンテンツにより置き換え、
前記ハッシングされていない第１のコンテンツに対して処理を実施することによって生成された第２のコンテンツを前記プロセッシングデバイスから受け取り、
前記第２のコンテンツを前記コンテンツスタックに加え、
前記ハッシングされた第１のコンテンツのシグニチャを生成し、
前記シグニチャを前記シグニチャスタックに加え、
前記データパケットを第２のネットワークデバイスへ送信する
ことを含む１つ以上の動作を実施させる命令を含む、第１のネットワークデバイス。
【請求項２】
前記動作は、前記第２のコンテンツを前記コンテンツスタックに加えた後に前記データパケットの名称を変更することを更に含む、
請求項１に記載の第１のネットワークデバイス。
【請求項３】
当該第１のネットワークデバイス及び前記プロセッシングデバイスは、単一のデバイスに含まれる、
請求項１に記載の第１のネットワークデバイス。
【請求項４】
前記プロセッシングデバイスは、前記ハッシングされていない第１のコンテンツをバリデートするよう構成される、
請求項１に記載の第１のネットワークデバイス。
【請求項５】
前記ハッシングされていない第１のコンテンツがバリデートされないと決定した後、前記動作は、前記ハッシングされていない第１のコンテンツを再要求することを更に含む、
請求項１に記載の第１のネットワークデバイス。
【請求項６】
データコンシューマによってデータパケットをベリファイする方法であって、
コンテンツスタックにおけるハッシングされた第１のコンテンツに対応し、第１のネットワーク位置で生成された、データパケットのシグニチャスタックにおける第１のシグニチャを認証し、
前記コンテンツスタックにおける第２のコンテンツに対応し、第２のネットワーク位置で生成された、前記データパケットの前記シグニチャスタックにおける第２のシグニチャを認証する
ことを含み、前記第２のコンテンツは、前記第２のネットワーク位置で生成された前記第１のコンテンツの処理されたバージョンを含む、方法。
【請求項７】
前記第２のシグニチャは、前記シグニチャスタックにおいて前記第１のシグニチャの上にあり、前記第２のコンテンツは、前記コンテンツスタックにおいて前記ハッシングされた第１のコンテンツの上にある、
請求項６に記載の方法。
【請求項８】
前記ハッシングされた第１のコンテンツは固定長ハッシュであり、前記コンテンツスタックにおける如何なるハッシングされたコンテンツも前記固定長ハッシュに等しい長さを有するようにする、
請求項６に記載の方法。
【請求項９】
前記第１のシグニチャは、前記第１のネットワーク位置によってアクセス可能な第１のキーに基づき、前記第２のシグニチャは、前記第２のネットワーク位置によってアクセス可能な第２のキーに基づく、
請求項６に記載の方法。
【請求項１０】
データパケットを更新する方法であって、
第１のコンテンツを含むコンテンツスタックと、前記第１のコンテンツに対応する、第１のネットワーク位置で生成された第１のシグニチャを含むシグニチャスタックとを含むデータパケットを前記第１のネットワーク位置から受信し、
第２のコンテンツを生成するよう前記第１のコンテンツに対して処理を実施し、
ハッシングされた第１のコンテンツを生成するよう前記第１のコンテンツをハッシングし、
前記コンテンツスタックにおいて前記第１のコンテンツを前記ハッシングされた第１のコンテンツにより置き換え、
前記第２のコンテンツを前記コンテンツスタックに加え、
前記第２のコンテンツに対応する第２のシグニチャを生成し、
前記第２のシグニチャを前記シグニチャスタックに加え、
前記データパケットを第２のネットワーク位置へ送信する
ことを含む方法。
【請求項１１】
前記処理は第１の処理であり、当該方法は、
前記第２のネットワーク位置で、第３のコンテンツを生成するよう前記第２のコンテンツに対して第２の処理を実施し、
前記第２のネットワーク位置で、ハッシングされた第２のコンテンツを生成するよう前記第２のコンテンツをハッシングし、
前記第２のネットワーク位置で、前記コンテンツスタックにおいて前記第２のコンテンツを前記ハッシングされた第２のコンテンツにより置き換え、
前記第２のネットワーク位置で、前記第３のコンテンツを前記コンテンツスタックに加え、
前記第２のネットワーク位置で、前記第３のコンテンツに対応する第３のシグニチャを生成し、
前記第２のネットワーク位置で、前記第３のシグニチャを前記シグニチャスタックに加える
ことを更に含む、請求項１０に記載の方法。
【請求項１２】
前記第２のネットワーク位置で、前記データパケットの前記シグニチャスタックにおける一番上のシグニチャのみを認証する
ことを更に含む請求項１１に記載の方法。
【請求項１３】
前記第２のネットワーク位置が、前記一番上のシグニチャの認証に成功したことを示すセキュリティフラグを設定する
ことを更に含む請求項１２に記載の方法。
【請求項１４】
前記第２のネットワーク位置で、前記第３のコンテンツをもたらす処理チェーンの第１のブランチを、第４のコンテンツをもたらす前記処理チェーンの第２のブランチとマージすることを更に含み、
前記マージすることは、
前記第１のブランチからの全てのコンテンツを、マージされたコンテンツスタックにおける第１のエントリにまとめ、
前記第２のブランチからの全てのコンテンツを、前記マージされたコンテンツスタックにおける第２のエントリにまとめ、
前記第１のブランチからの全てのシグニチャを、マージされたシグニチャスタックにおける第１のエントリにまとめ、
前記第２のブランチからの全てのシグニチャを、前記マージされたシグニチャスタックにおける第２のエントリにまとめる
ことを含む、請求項１１に記載の方法。
【請求項１５】
前記第２のシグニチャは、前記ハッシングされた第１のコンテンツ、前記第１のシグニチャ、及び前記データパケットの名称に更に基づく、
請求項１０に記載の方法。
【請求項１６】
前記第１のコンテンツをハッシングすることは、前記第１のコンテンツ及び該第１のコンテンツに関連する第１のヘッダの両方をハッシングすることを含む、
請求項１０に記載の方法。
【請求項１７】
前記第２のシグニチャを前記シグニチャスタックに加えることは、前記第２のシグニチャを前記シグニチャスタックにプリペンドすることを含む、
請求項１０に記載の方法。
【請求項１８】
前記第２のコンテンツを前記コンテンツスタックに加えることは、前記第２のコンテンツを前記コンテンツスタックにプリペンドすることを含む、
請求項１０に記載の方法。
【請求項１９】
前記データパケットは、ペンディング・インタレスト・テーブルに従って前記第２のネットワーク位置へ送信される、
請求項１０に記載の方法。
【請求項２０】
前記シグニチャスタックは、信頼できるゾーンの外にあるネットワーク位置からのシグニチャを含み、前記信頼できるゾーンの中にあるネットワーク位置からのシグニチャを除外し、
前記コンテンツスタックは、前記信頼できるゾーンの外で実施されたコンテンツの処理のためのハッシングされたコンテンツを含み、前記信頼できるゾーンの中で実施されたコンテンツの処理のためのハッシングされたコンテンツを除外する、
請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願で論じられている実施形態は、プロセスチェーンにおけるパケットの生成及び／又は認証に関係がある。
【背景技術】
【０００２】
コンピュータデバイス及び生成されるデータの普及が増えるにつれて、データが使用に適したフォーマットになる前に何度も処理されるいくつかの環境が存在する。しかし、そのような変換は、データをベリファイすることを困難にし得る。
【０００３】
本願で請求されている主題は、上記のような環境でのみ動作する実施形態、又は上記のような如何なる欠点も解消する実施形態に制限されない。むしろ、この背景技術は、本願で記載される本開示の実施形態が実施され得る一例となる技術分野を説明するために与えられている。
【発明の概要】
【０００４】
本開示の１つ以上の実施形態は、データコンシューマによってデータパケットをベリファイする方法を含んでよい。当該方法は、データパケットのシグニチャスタックにおける第１のシグニチャを認証することを含んでよい。このとき、前記第１のシグニチャは、コンテンツスタックにおけるハッシングされた第１のコンテンツに対応し、そして、前記第１のシグニチャは、第１のネットワーク位置で生成される。当該方法は、前記データパケットの前記シグニチャスタックにおける第２のシグニチャを認証することを更に含んでよい。このとき、前記第２のシグニチャは、前記コンテンツスタックにおける第２のコンテンツに対応し、そして、前記第２のシグニチャは、第２のネットワーク位置で生成される。処理されたハッシングされていない第２のコンテンツは、前記第１のコンテンツの処理されたバージョンを含んでよく、前記第２のネットワーク位置で生成される。
【０００５】
実施形態の目的及び利点は、特許請求の範囲において特に示されている要素、機能、及び組み合わせによって少なくとも実現及び達成される。前述の概要及び以下の詳細な説明はいずれも例を提供し、例示であって限定ではない。
【図面の簡単な説明】
【０００６】
例となる実施形態は、添付の図面の使用を通じて、更なる特定及び詳細をもって記載及び説明される。
【０００７】
【図１】パケットをベリファイするシステムの例を表す図である。
【０００８】
【図２】パケットをベリファイするための、信頼できるゾーンを含むシステムの例を表す図である。
【０００９】
【図３】データパケットの概略の例である。
【００１０】
【図４】コンピュータデバイスの例のブロック図である。
【００１１】
【図５Ａ】パケットをベリファイする方法の例のフローチャートである。
【図５Ｂ】図５Ａのフローチャートの続きである。
【００１２】
【図６Ａ】情報指向型ネットワーキング（ＩＣＮ）ネットワークにおいてパケットをベリファイする方法の例のフローチャートである。
【図６Ｂ】図６Ａのフローチャートの続きである。
【発明を実施するための形態】
【００１３】
本開示は、プロセスチェーンにおけるパケット認証に関する。プロセスチェーンは、例えば、プロセスの中でもとりわけ、映像の処理、圧縮、及び符号化のような、データを１つの形態から他の形態へ変換する一連の処理ステップを含んでよい。プロセスチェーンの最終生成物のみをベリファイするのではなく、コンテンツスタック及びシグニチャスタックを含むデータパケットが、プロセスチェーンにおける中間ステップ及び／又はデータの検証を助けるために使用されてよい。コンテンツスタックは、プロセスチェーンの間に使用されるコンテンツ又はコンテンツの表現を記憶するために使用されてよい。シグニチャスタックは、プロセスチェーンの間に中間ステップのプロセス、コンテンツ、などをベリファイするシグニチャを記憶するために使用されてよい。処理の各ステップがプロセスチェーンにおいて実施されるにつれて、新しいシグニチャが、プロセス及び／又はプロセスにより生成されたコンテンツをベリファイするために生成され、シグニチャスタックに加えられてよい。追加的に、又は代替的に、夫々のステップによれば、プロセスチェーンにおけるその特定の処理ステップの間に使用されるデータは、プロセスチェーンの間に使用されるコンテンツの検証を可能にしながらデータパケットのサイズも制限するように、ハッシングされるか、又は別なふうに切り詰められ、次いで、コンテンツスタックに置かれてよい。
【００１４】
例えば、プロセスチェーンが、映像を圧縮し、次いでそのフォーマットを変更することを含んでいる場合に、初期データパケットは、初期データパケットのコンテンツスタックにおいて生の（raw）映像を含んでよい。シグニチャも、生の映像の位置で生成されてよく、初期データパケットのシグニチャスタックに置かれてよい。
【００１５】
プロセスチェーンにおける最初のステップで、生の映像は圧縮されてよい。データパケットのコンテンツスタックにおいて、生の映像は、生の映像のデータのハッシングされたバージョンにより置き換えられてよく、圧縮された映像は、コンテンツスタックに加えられてよい。第２のシグニチャは、圧縮された映像に基づき生成され、シグニチャスタックに加えられてよい。データパケットは、更新されたシグニチャ及びコンテンツスタックを含み、次いで、処理チェーンにおける次のステップ、すなわち、映像のフォーマットの変更、を実施するよう他の位置へ送信されてよい。
【００１６】
圧縮された映像は、映像のフォーマットを変更するよう処理されてよい。元の圧縮された映像を表すデータはハッシングされてよく、ハッシングされた値は、元の圧縮された映像の代わりにコンテンツスタックに置かれてよい。新しいフォーマットの映像はコンテンツスタックに加えられてよい。第３のシグニチャは、新しいフォーマットの映像に基づき生成され、シグニチャスタックに加えられてよい。結果として、プロセスのフォーマッティング部分の後のデータパケットは、新しいフォーマットの映像並びに圧縮された映像及び生の映像のハッシングされた表現を含むコンテンツスタックと、シグニチャスタックにおいて３つのシグニチャを含むシグニチャスタックとを含んでよい。記載されるようにコンテンツスタック及びシグニチャスタックを含むデータパケットを生成することによって、新しいフォーマットの圧縮された映像を含むデータパケットを受け取るデータコンシューマは、プロセスチェーンにおける各ステップについてのシグニチャを認証することができ、且つ／あるいは、プロセスチェーンにおける各ステップについてのハッシングされたデータをベリファイすることができる。そのような認証は、データコンシューマが、プロセスチェーンにおける最後のステップ及び最後の位置のみならず、プロセスチェーンにおける夫々のステップを認証することを可能にすることができる。
【００１７】
本開示の実施形態は、添付の図面を参照して説明される。
【００１８】
図１は、本開示の少なくとも１つの実施形態に従って、パケットをベリファイするための例となるシステム１００を表す図である。システム１００はデータコンシューマ１１０を含んでよい。データコンシューマ１１０は１つ以上のネットワークデバイス１２０（例えば、ネットワークデバイス１２０ａ、１２０ｂ、及び／又は１２０ｃ）と通信してよい。データコンシューマ１１０は、処理データをネットワークデバイス１２０ａに要求してよい。ネットワークデバイス１２０ａは、生データを記憶するか、あるいは、別なふうに生データへのアクセスを有してよい。生データは、１つ以上の処理ステップの後に、データコンシューマ１１０によって要求された処理データを最終的にもたらし得る。そのような一連の処理ステップはプロセスチェーンと呼ばれてよい。システム１００は、プロセッシングデバイス１３０ａのような１つ以上のプロセッシングデバイス１３０を含んでよい。プロセッシングデバイス１３０は、処理チェーンの１つ以上の処理ステップを実施してよい。追加的に、又は代替的に、ネットワークデバイス１２０の１つ以上は、処理チェーンの処理ステップのうちの１つ以上を実施するよう構成されてよい。データコンシューマ１１０及び／又はネットワークデバイス１２０は、プロセスチェーンの前、その間、及びその後に、ネットワーク１５０上でデータパケット１４０を用いてデータをやり取りしてよい。
【００１９】
いくつかの実施形態において、データがプロセスチェーンに従って処理されるにつれて、データの検証は、処理チェーンの最後のステップだけではなく、中間のステップの１つ以上で利用可能であってよい。例えば、データパケット１４０が利用されてよい。データパケット１４０はコンテンツスタック及びシグニチャスタックを含んでよい。コンテンツスタックは、生データ、処理データ、データのハッシュ、切り詰められたデータ、などを含むデータを含んでよい。シグニチャスタックは、プロセスチェーンの処理ステップを実施する場所についての及び／又はコンテンツについての検証情報を含んでよい。
【００２０】
プロセスチェーンの一例は、圧縮、フォーマット変更、オーディオ出力変化、などのような、映像に関連した処理ステップを含んでよい。他の例として、プロセスチェーンは、患者の身体周囲に配置されたセンサからの生データをコンパイルすること、データにフィルタをかけること、データをモデリングすること、及びデータを用いてシミュレーションを実行することのような、医用データに関連した処理ステップを含んでよい。如何なるデータのための如何なるサイズのプロセスチェーンも、本開示の適用範囲内で考えられている。いくつかの実施形態において、プロセスチェーンのステップは、順序依存性（例えば、特定の順序）であってよく、あるいは、順序非依存性であってよく（例えば、如何なる順序でも行われてよい。）、あるいは、混合であってよい（例えば、いくつかのステップは如何なる順序でも行われてよく、一方、他のステップは特定の順序を有する。）。そのような及び他の実施形態において、本開示は、プロセスチェーンにおける夫々のステップについて検証を含んでよい。
【００２１】
例示を目的として、図１に関連するプロセスチェーンは、プロセッシングデバイス１３０ａで実施される第１の処理ステップと、ネットワークデバイス１２０ｃで実施される第２の処理ステップとを含んでよい。データコンシューマ１１０がデータをネットワークデバイス１２０ａに要求した後に、ネットワークデバイス１２０ａは、プロセスチェーンへの初期入力として生データを取得してよい。例えば、ネットワークデバイス１２０ａは、ローカル記憶媒体又は外部装置から生データ（コンテンツＡ）を取り出してよい。ネットワークデバイス１２０ａはデータパケット１４０ａを生成してよい。データパケット１４０ａは、コンテンツスタックにおいて生データ（コンテンツＡ）を含んでよい。ネットワークデバイス１２０ａは、コンテンツＡの真偽をベリファイし、且つ／あるいは、ネットワークデバイス１２０ａのクレデンシャルをベリファイするシグニチャ（シグニチャＡ）を生成してよい。いくつかの実施形態において、シグニチャＡは、ネットワークデバイス１２０ａによってアクセス可能な秘密鍵に基づき生成され、ネットワークデバイス１２０ａの秘密鍵に関連した公開鍵によってベリファイ可能であってよい。そのような及び他の実施形態において、シグニチャＡは、コンテンツＡ並びにデータパケット１４０ａの何らかの関連したヘッダ及び／又は名称に基づいてよい。シグニチャＡを生成した後、ネットワークデバイス１２０ａは、シグニチャＡ及びコンテンツＡを含むデータパケット１４０ａをネットワークデバイス１２０ｂへ送信してよい。
【００２２】
いくつかの実施形態において、ネットワークデバイス１２０ｂは、コンテンツＡを取り出し、コンテンツＡに対して処理を実施するようコンテンツＡをプロセッシングデバイス１３０へ渡してよい。プロセッシングデバイス１２０ｂで実施される処理は、コンテンツＢをもたらしてよい。例えば、コンテンツＡが映像ファイルであったならば、コンテンツＢは、圧縮された映像ファイル、又は他のフォーマットの映像ファイルを含んでよい。他の例としてコンテンツＡがセンサからの医用データであったならば、コンテンツＢは、フィルタ処理されたデータを含んでよい。プロセッシングデバイス１３０ａは、コンテンツＢをネットワークデバイス１２０ｂへ渡してよい。ネットワークデバイス１２０ｂは、データパケット１４０ｂに達するようデータパケット１４０ａを変更してよい。例えば、ネットワークデバイス１２０ｂは、ハッシングされたＡを生成するようコンテンツＡに対してハッシュ関数を実行し、データパケット１４０ａ内のコンテンツＡをハッシングされたＡで置き換えてよい。追加的に、又は代替的に、ネットワークデバイス１２０ｂは、ハッシングされたＡの上にあるコンテンツスタックへコンテンツＢを加えてよい（例えば、プリペンドすることによる。）。ネットワークデバイス１２０ｂはシグニチャＢを生成してよい。シグニチャＢは、コンテンツＢ、コンテンツＢを生成するために使用されたプロセス、及び／又はネットワークデバイス１２０ｂを認証してよい。ネットワークデバイス１２０ｂは、データパケット１４０ａのシグニチャスタックにシグニチャＢを加え（例えば、プリペンドすることによる。）、データパケット１４０ｂを生じさせてよい。
【００２３】
代替的に、又は追加的に、コンテンツをデータパケット１４０ａに置換及び／又は付加してデータパケット１４０ｂを得ることに代えて、ネットワークデバイス１２０ｂは、データパケット１４０ａを捨ててよく、ハッシングされたＡ、コンテンツＢ、シグニチャＡ、及びシグニチャＢを用いてデータパケット１４０ｂを構成してよい。
【００２４】
いくつかの実施形態において、コンテンツＡのハッシュは、１０２４又は２０４８に制限されたハッシュ関数のような、固定長ハッシュ関数を用いて実施されてよい。それにより、データパケットは、コンテンツＢに加えて生コンテンツＡを保持することよりむしろ、サイズを制限される。
【００２５】
ネットワークデバイス１２０ｂは、プロセスチェーンにおける処理の更なるステップのために、データパケット１４０ｂをネットワークデバイス１２０ｃへ送信してよい。ネットワークデバイス１２０ｃは、ネットワークデバイス１２０ｂと同様に動作してよい。なお、ネットワークデバイス１２０ｃは、データをプロセッシングデバイス１３０ａ又は他のプロセッシングデバイスへ供給するのではなく、処理チェーンの処理を実施してよい。例えば、ネットワークデバイス１２０ｃは、コンテンツＢに対して処理を実施することによって、コンテンツＣを生成してよい。いくつかの実施形態において、ネットワークデバイス１２０ｃは、コンテンツＢをハッシングして、ハッシングされたＢをもたらし、データパケット１４０ｃにおいてコンテンツＢをハッシングされたＢで置き換えてよい。そのような及び他の実施形態において、ネットワークデバイス１２０ｃは、コンテンツＣをコンテンツスタックにプリペンドしてよく、且つ、シグニチャＣを生成してデータパケット１４０ｃのシグニチャスタックにプリペンドしてよい。代替的に、又は追加的に、コンテンツをデータパケット１４０ｂに置換及び／又は付加してデータパケット１４０ｃを得ることに代えて、ネットワークデバイス１２０ｃは、データパケット１４０ｃを捨ててよく、ハッシングされたＡ、ハッシングされたＢ、コンテンツＣ、シグニチャＡ、シグニチャＢ、及びシグニチャＣを用いてデータパケット１４０ｃを構成してよい。
【００２６】
ネットワークデバイス１２０ｃは、データパケット１４０ｃをデータコンシューマ１１０へ送信してよい。いくつかの実施形態において、ネットワークデバイス１２０ｃは、ネットワークデバイス１２０ａがデータパケット１４０ｃをデータコンシューマ１１０へ供給するように、完成したデータパケット１４０ｃをネットワークデバイス１２０ａへ返送してよい。
【００２７】
いくつかの実施形態において、ネットワークデバイス１２０ｃは、コンテンツＣを得るよう処理を実施する前に、シグニチャＡ及びシグニチャＢを認証してよい。追加的に、又は代替的に、ネットワークデバイス１２０ｃは、コンテンツＣを得るよう処理を実施する前に、シグニチャスタック内の一番上のシグニチャ（シグニチャＢ）を認証してよい。
【００２８】
データコンシューマ１１０は、データパケット１４０ｃのシグニチャスタックにおけるシグニチャの１つ以上を認証してよい。例えば、データコンシューマ１１０は、ネットワークデバイス１２０ａの秘密鍵に関連した公開鍵を用いてシグニチャＡを認証してよく、且つ／あるいは、ネットワークデバイス１２０ｂの秘密鍵に関連した公開鍵を用いてシグニチャＢを認証してよく、且つ／あるいは、ネットワークデバイス１２０ｃの秘密鍵に関連した公開鍵を用いてシグニチャＣを認証してよい。追加的に、又は代替的に、データコンシューマ１１０は、コンテンツのハッシングされた値（例えば、ハッシングされたＡ、ハッシングされたＢ）を認証してよい。
【００２９】
データコンシューマ１１０、ネットワークデバイス１２０（例えば、ネットワークデバイス１２０ａ、１２０ｂ、及び１２０ｃ）、及び／又はプロセッシングデバイス１３０（例えば、プロセッシングデバイス１３０ａ）は、図４で図示及び記載されるコンピュータデバイス４００のような、コンピュータデバイスとして実装されてよい。いくつかの実施形態において、データコンシューマ１１０は、コンピュータ（例えば、デスクトップ、ラップトップ、サーバ、など）、モバイル機器（例えば、携帯電話機、パーソナルデジタルアシスタント（ＰＤＡ；personal  digital  assistant）、タブレット、など）、又はネットワーク１５０に接続される何らかの他の装置（例えば、ネットワーク対応サーモスタット、冷蔵庫、又は他の機器）を含んでよい。いくつかの実施形態において、ネットワークデバイス１２０は、ルータ、ゲートウェイ、スイッチ、又は何らかの他のネットワーク要素を含んでよい。
【００３０】
ネットワーク１５０は、データコンシューマ１１０、ネットワークデバイス１２０、及び／又はプロセッシングデバイス１３０の１つ以上の間で通信を提供するよう構成された如何なる装置、システム、コンポーネント、又はそれらの組み合わせも含んでよい。例として、ネットワーク１５０は、通信において１つ以上のワイドエリアネットワーク（ＷＡＮ；wide  area  network）又はローカルエリアネットワーク（ＬＡＮ；local  area  network）を含んでよい。いくつかの実施形態において、ネットワーク１５０は、複数のＷＡＮ及び／又はＬＡＮの間の論理的及び物理的接続によって形成された大域的なインターネットワークを含むインターネットを含んでよい。追加的に、又は代替的に、ネットワーク１５０は、１つ以上のセルラーＲＦネットワーク並びに／又は１つ以上の有線及び／若しくは無線ネットワーク、例えば、制限なしに、８０２．ｘｘネットワーク、Ｂｌｕｅｔｏｏｔｈ（登録商標）アクセスポイント、無線アクセスポイント、ＩＰベースのネットワーク、又は同様のものを含んでよい。ネットワーク１５０は、１つのタイプのネットワークが他のタイプのネットワークとインターフェイス接続することを可能にするサーバ、サブステーション、又は他の接続装置も含んでよい。追加的に、又は代替的に、ネットワーク１５０は、組織内で又は別なふうに安全な様態において通信するイントラネット又は１つ以上のコンピュータデバイスを含んでよい。
【００３１】
いくつかの実施形態において、システム１００は、情報指向型ネットワーキング（ＩＣＮ；information  centric  networking）ネットワークであってよい。そのような及び他の実施形態において、データを要求するデータコンシューマ１１０は、インタレスト・パケットの形をとってよい。いくつかの実施形態において、インタレスト・パケットは、処理チェーンにおける夫々のステップを識別してよい。例えば、データコンシューマ１１０からのインタレスト・パケットは、プロセッシングデバイス１３０ａで実施される処理ステップと、ネットワークデバイス１２０ｃで実施される処理ステップとを識別してよい。いくつかの実施形態において、処理が実施された後に、データパケット１４０の名称は変更されてよい。例えば、プロセッシングデバイス１３０での処理が実施された後に、ペンディング・インタレスト・テーブル（ＰＩＴ；pending  interest  table）に従って新しいデータパケットをルーティングする前に、ネットワークデバイス１２０ｂは、処理の実施を反映するようデータパケット１４０ｂの名称を変更してよい。そのような及び他の実施形態において、処理ステップがプロセスチェーンにおいて完了した後、更新されたデータパケット１４０は、ＰＩＴに従ってルーティングされてよい。そのような及び他の実施形態において、処理チェーンが完了した後、完成したデータパケットは、ペンディング・インタレスト・パケットの経路に沿ってデータコンシューマ１１０へ戻ってよい。
【００３２】
いくつかの実施形態において、ネットワークデバイスは、処理チェーンの複数の下流ブランチをマージするよう機能してよい。例えば（図１についての更なる例に続いて）、更なる処理チェーンは、ネットワークデバイス１２０ｂに達し得る処理（図示せず。第１のブランチと呼ばれ、コンテンツＤをもたらす。）における複数のステップを含んでよい。コンテンツ、シグニチャ、及びハッシュは、本開示で記載されるように、更なる処理チェーンの第１のブランチにおいて生成されてよい。例えば、パケットは、コンテンツスタック内のコンテンツＤ及びハッシングされたＥ並びにシグニチャスタック内のシグニチャＤ及びシグニチャＥを有してネットワークデバイス１２０ｂに達してよい。ネットワークデバイス１２０ａからの処理及び／又はデータは、第２のブランチと呼ばれてよい。ネットワークデバイス１２０ｂは、コンテンツＢを生成するよう、コンテンツＤ及びコンテンツＡの両方を用いて処理を実施してよい。
【００３３】
いくつかの実施形態において、ネットワークデバイス１２０ｂは、両方のブランチを結合する単一のパケットを生成してよい。例えば、ネットワークデバイス１２０ｂは、単一のパケットのコンテンツスタックにおけるエントリとして第１のブランチからの全てのコンテンツを付加してよく、ネットワークデバイス１２０ｂは、単一のパケットのコンテンツスタックにおける更なるエントリとして第２のブランチからの全てのコンテンツを付加してよい。追加的に、又は代替的に、ネットワークデバイス１２０ｂは、第１のブランチからの全てのシグニチャを単一のパケットのシグニチャスタックにおけるエントリとして、そして、第２のブランチからの全てのシグニチャを単一のパケットのシグニチャスタックにおけるエントリとして付加してよい。いくつかの実施形態において、ネットワークデバイス１２０ｃは、コンテンツＢ及びシグニチャＢを単一のパケットのコンテンツスタック及びシグニチャスタックに加えるのではなく、コンテンツＢ及びシグニチャＢを発端に更なるコンテンツスタック及びシグニチャスタックを利用してよい。追加的に、又は代替的に、ネットワークデバイス１２０ｃは、夫々のブランチのための大きいエントリを有して、単一のコンテンツスタック及びシグニチャスタックを利用してよい。例えば、第１のブランチからの全てのコンテンツは、コンテンツスタックの第１のエントリにまとめられてよく、第２のブランチからの全てのコンテンツは、コンテンツスタックの第２のエントリにまとめられてよい。追加的に、又は代替的に、第１のブランチからの全てのシグニチャは、シグニチャスタックの第１のエントリにまとめられてよく、第２のブランチからの全てのシグニチャは、シグニチャスタックの第２のエントリにまとめられてよい。
【００３４】
いくつかの実施形態において、例えば、ＩＣＮネットワークでは、パケットをマージするブランチにおける各ブランチのコンテンツ及びシグニチャの順序は、インタレストの訪問順序に従ってよい。いくつかの実施形態において、ネットワークデバイス１２０ｂは、たとえネットワークデバイス１２０ｂがネットワークデバイス１２０ｂ又はプロセッシングデバイス１３０ａでプロセスチェーンにおける処理を実施し得ないとしても、ブランチを結合してよい。そのような及び他の実施形態において、ブランチの順序は、如何なる処理でも利用される順序や、パケットが年代順にブランチから受け取られる順序に従ってよく、あるいは、如何なる他の順序にも従ってよい。
【００３５】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに図１に対してなされてよい。例えば、システム１００は、本開示で図示及び記載されているよりも多い又は少ない要素を含んでよい。例えば、システム１００は、如何なるトポロジでも配置される多数の更なるネットワークデバイス、プロセッシングデバイス、及び／又はデータコンシューマを含んでよい。追加的に、又は代替的に、処理チェーンの如何なる長さ又は組み合わせも利用されてよい。
【００３６】
図２は、本開示の１つ以上の実施形態に従って、パケットをベリファイするための、信頼できるゾーン２６０を含む、例となるシステム２００を表す図である。システム２００は、図１のシステム１００と同じか又は同様であってよい。例えば、データコンシューマ２１０は、図１のデータコンシューマ１１０と同じか又は同様であってよく、ネットワークデバイス２２０は、図１のネットワークデバイス１２０と同じか又は同様であってよく、プロセッシングデバイス２３０は、図１のプロセッシングデバイス１３０と同じか又は同様であってよく、ネットワーク２５０は、図１のネットワーク１５０と同じか又は同様であってよい。図１のシステム１００と同じく、いくつかの実施形態において、図２のシステム２００は、ＩＣＮネットワークにおいて実装されてよい。
【００３７】
信頼できるゾーン２６０は、データコンシューマ２１０が一定レベルの確立された信頼を有している領域を表してよい。例えば、信頼できるゾーン２６０は、イントラネット、セキュアネットワーク、セキュアビルディング、などを含んでよい。いくつかの実施形態において、信頼できるゾーン２６０内で動作するネットワークデバイス２２０ａ及び２２０ｂは、データパケットのシグニチャスタックにシグニチャを加えることを控えてよい。追加的に、又は代替的に、信頼できるゾーン２６０内で動作するネットワークデバイス２２０ａ及び２２０ｂは、コンテンツスタックに加えるよう生データをハッシングすることを控えてよく、且つ、未処理データを処理データにより置き換えてよい。そのような及び他の実施形態において、信頼できるゾーン２６０の外で動作するネットワークデバイス２２０ｃ及び２２０ｄは、データの処理が実施された後に、シグニチャをシグニチャスタックに加えてよい。追加的に、又は代替的に、ネットワークデバイス２２０ｃ及び２２０ｄは、生データをハッシングし、コンテンツスタックにおける生データをハッシングされたデータにより置き換え、処理データをコンテンツスタックに加えてよい。そのような及び他の実施形態において、ネットワークデバイス２２０ｃ及び２２０ｄは、図１のネットワークデバイス１２０ｂ及び１２０ｃと同じように動作してよい。
【００３８】
例示を目的として、図２に関連したプロセスチェーンは、プロセッシングデバイス２３０ａで実施される第１の処理ステップと、ネットワークデバイス２２０ｃで実施される第２の処理ステップと、ネットワークデバイス２２０ｄで実施される第３の処理ステップとを含んでよい。データコンシューマ２１０は、プロセスチェーンに従ってネットワークデバイス２２０ａにデータを要求してよい。ネットワークデバイス２２０ａは、プロセスチェーンのための生データ（コンテンツＡ）へのアクセスを有してよい。ネットワークデバイス２２０ａは信頼できるゾーン２６０内にあるので、ネットワークデバイス２２０ａは、コンテンツＡに基づきシグニチャを生成することを控えてよく、データパケット２４０ａを、コンテンツスタック内のコンテンツＡ及び空のシグニチャスタックを有してネットワークデバイス２２０ｂへ送ってよい。ネットワークデバイス２２０ｂは、コンテンツＡの処理を実施してコンテンツＢを生成するよう、コンテンツＡをプロセッシングデバイス２３０ａへ供給してよい。ネットワークデバイス２２０ｂは信頼できるゾーン２６０内にあるので、ネットワークデバイス２２０ｂは、コンテンツスタックにおいてコンテンツＡをコンテンツＢで置き換えてよい。追加的に、又は代替的に、ネットワークデバイス２２０ｂは、コンテンツＢに基づきシグニチャを生成することを控えてよく、データパケット２４０ｂを信頼できるゾーン２６０の外にあるネットワークデバイス２２０ｃへ送信してよい。
【００３９】
ネットワークデバイス２２０ｃで、コンテンツＢはハッシングされてよく、コンテンツＢは、データパケット２４０ｃのコンテンツスタックにおいて、ハッシングされたコンテンツＢにより置換されてよい。追加的に、又は代替的に、コンテンツＢは、コンテンツＣを生成するよう処理されてよく、コンテンツＣは、データパケット２４０ｃのコンテンツスタックに加えられてよい（例えば、プリペンドされてよい）。追加的に、又は代替的に、ネットワークデバイス２２０ｃは、データパケット２４０ｃのシグニチャスタックに加えられ得るコンテンツＣに基づきシグニチャ（例えば、シグニチャＣ）を生成してよい。いくつかの実施形態において、シグニチャＣは、ハッシングされたＢ及び／又はデータパケット２４０の如何なる名称若しくはヘッダにも基づいてもよい。ネットワークデバイス２２０ｃは、データパケット２４０ｃをネットワークデバイス２２０ｄへ送信してよい。
【００４０】
ネットワークデバイス２２０ｄは、ネットワークデバイス２２０ｃと同じように動作してよい。例えば、ネットワークデバイス２２０ｄは、コンテンツＤを生成するようコンテンツＣに対して処理を実施してよい。ネットワークデバイス２２０ｄは、ハッシングされたＣを生成するようコンテンツＣをハッシングしてよい。ネットワークデバイス２２０ｄは、データパケット２４０ｄのコンテンツスタックにおいてコンテンツＣをハッシングされたＣで置き換えてよい。ネットワークデバイス２２０ｄは、コンテンツＤをデータパケット２４０ｄのコンテンツスタックに加えてよい。ネットワークデバイス２２０ｄは、シグニチャＤを生成してよく、シグニチャＤをデータパケット２４０ｄのシグニチャスタックに加えてよい。ネットワークデバイス２２０ｄは、例えば、データパケット２４０ｄをデータコンシューマ２１０へ送信することによって、あるいは、データパケット２４０ｄをデータコンシューマ２１０へ供給するようデータパケット２４０ｄをネットワークデバイス２２０ａへ送信すること、などによって、データパケット２４０ｄをデータコンシューマ２１０へ供給してよい。
【００４１】
いくつかの実施形態において、複数の信頼レベル及び様々な信頼レベルの複数の信頼ゾーンが存在してよい。例えば、最も高い信頼レベルの信頼ゾーンにある第１のネットワークデバイスは、生データのハッシングされたコンテンツを保持することなしに、コンテンツスタック内のコンテンツを処理データにより置き換えてよく、更には、シグニチャスタックにおけるシグニチャを生成又は記憶しなくてよい。他の例として、第２の信頼レベルの信頼ゾーンにある第２のネットワークデバイスは、ハッシングされた生データをコンテンツスタックにおいて保ってよく、シグニチャスタックにおけるシグニチャを生成又は保持しなくてよい。追加的に、又は代替的に、第２のネットワークデバイスは、コンテンツスタック内の生データを処理データにより置き換えてよく、シグニチャスタックに加えられるシグニチャを生成してよい。
【００４２】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに図２に対してなされてよい。例えば、システム２００は、本開示で図示及び記載されているよりも多い又は少ない要素を含んでよい。例えば、システム２００は、如何なるトポロジでも配置される多数の更なるネットワークデバイス、プロセッシングデバイス、及びデータコンシューマを含んでよい。追加的に、又は代替的に、処理チェーンの如何なる長さ又は組み合わせも利用されてよい。
【００４３】
図３は、本開示の１つ以上の実施形態に従う、データパケット３００の概略の例である。データパケット３００は、名称フィールド３１０、フラグフィールド３２０、コンテンツスタック３３０、及びシグニチャスタック３４０を含んでよい。
【００４４】
名称フィールド３１０は、データパケット３００の名称及び／又はヘッダを保持してよい。例えば、ＩＣＮネットワークでは、名称フィールド３１０はコンテンツの名称を格納してよく、それによってコンテンツはＩＣＮネットワークにおいてアドレッシングされる。追加的に、又は代替的に、名称は、データパケット３００のコンテンツが受けうるプロセスチェーンにおける処理ステップの１つ以上を含んでよい。そのような及び他の実施形態において、名称フィールド３１０は、処理が実施された後及び／又はデータパケット３００の他のフィールド若しくはスタックが変更された後に、変更又は修正されてよい。
【００４５】
コンテンツスタック３３０は、ひと組以上のデータを含んでよい。いくつかの実施形態において、コンテンツスタック３３０は、処理チェーンにおける処理の先行するステップの１つ以上のための１つの完全なデータの組（例えば、コンテンツＤ）及びデータのハッシングされた値を含んでよい。例えば、コンテンツスタック３３０は、コンテンツＣがコンテンツＤを生成するよう処理されたハッシングされたＣと、コンテンツＢコンテンツＣを生成するために処理されたハッシングされたＢと、コンテンツＡがコンテンツＢを生成するために処理されたハッシングされたＡとを含んでよい。追加的に、又は代替的に、コンテンツスタック３３０は、プロセスチェーンにおける処理の先行するステップのデータのサブセットを含んでよい。例えば、処理ステップの１つ以上が、信頼できるゾーン内の位置で実施されたならば、コンテンツスタック３３０は、それらの位置で処理された生のコンテンツ又は生のコンテンツのハッシュを除外してよい。
【００４６】
シグニチャスタック３４０は、対応するコンテンツに基づき生成される１つ以上のシグニチャを含んでよい。例えば、シグニチャＡは、コンテンツＡに基づき生成されてよく、シグニチャＢは、コンテンツＢに基づいてよい、など。追加的に、又は代替的に、シグニチャスタック３４０のシグニチャは、処理チェーンの間のシグニチャの追加の前のデータパケット３００に基づいてよい。例えば、シグニチャＣはコンテンツＣ、ハッシングされたＢ、及びハッシングされたＡに基づいてよく、シグニチャＤはコンテンツＤ、ハッシングされたＣ、ハッシングされたＢ、及びハッシングされたＡに基づいてよい。追加的に、又は代替的に、シグニチャスタック３４０のシグニチャは、コンテンツ及び／又はデータパケット３００に関連したヘッダ又は名称に基づいてよい。例えば、シグニチャＤは、コンテンツＤ及びデータパケット３００のヘッダ又は名称の両方に基づいてよい。
【００４７】
フラグフィールド３２０は、シグニチャがベリファイされたか否かを示すセキュリティフラグを含んでよい。例えば、フラグフィールド３２０は、シグニチャＢがベリファイされたことを示すフラグを有してよい。フラグを設定するよう、ネットワークデバイスはシグニチャを認証してよい。例えば、コンテンツＣを生成するようコンテンツＢを処理しハッシングしたネットワーク位置は、そのような動作を実施する前にシグニチャＢを認証してよく、シグニチャＢが認証されたことを示すセキュリティフラグを設定してよい。例えば、ネットワーク位置は、シグニチャＢをベリファイするために公開鍵を使用してよい。いくつかの実施形態において、ネットワークデバイスは、フラグフィールド３２０においてフラグが設定されていない状態でのみシグニチャを認証してよく、フラグフィールド３２０においてフラグが認証されたものとして設定された状態でシグニチャを処理してよい。追加的に、又は代替的に、データコンシューマは、フラグがフラグフィールド３２０において設定されていない状態でのみシグニチャを認証してよい。結果として、処理チェーンの各ステップは、前のステップを認証し、フラグフィールドにおいてそのように示してよい。結果として、データコンシューマは、最後のプロセスを認証してよく、全ての他のプロセスは、他の装置によって前もって認証されていてよい。
【００４８】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに図３に対してなされてよい。例えば、データパケット３００は、本開示で図示及び記載されているよりも多い又は少ない要素を含んでよい。例えば、データパケット３００は、表されている以外のフィールドを含んでよい。他の例として、データパケット３００は、名称フィールド３１０及び／又はフラグフィールド３２０のような、何らかのフィールドを除外してよい。
【００４９】
図４は、本開示の少なくとも１つの実施形態に従う、例となるコンピュータデバイス４００のブロック図である。図１のデータコンシューマ１１０、ネットワークデバイス１２０、プロセッシングデバイス１３０、図２のデータコンシューマ２１０、ネットワークデバイス２２０、及び／又はプロセッシングデバイス２３０は、コンピュータデバイス４００として実装されてよい。コンピュータデバイス４００は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、タブレットコンピュータ、携帯電話機、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、電子書籍リーダー装置、ネットワークスイッチ、ネットワークルータ、ネットワークハブ、他のネットワーキング装置、又は他の適切なコンピュータデバイスを含んでよい。
【００５０】
コンピュータデバイス４００は、プロセッサ４１０、記憶装置４２０、メモリ４３０、及び通信装置４４０を含んでよい。プロセッサ４１０、記憶装置４２０、メモリ４３０、及び／又は通信装置４４０は、全てが通信上結合されてよく、それにより、コンポーネントの夫々は他のコンポーネントと通信してよい。コンピュータデバイス４００は、本開示で記載されている動作のいずれも実施してよい。
【００５１】
一般に、プロセッサ４１０は、様々なコンピュータハードウェア又はソフトウェアモジュールを含む如何なる適切な特別目的又は汎用のコンピュータ、コンピューティングエンティティ、又はプロセッシングデバイスも含んでよく、如何なる適用可能なコンピュータ可読記憶媒体でも記憶されている命令を実行するよう構成されてよい。例えば、プロセッサ４１０は、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ（ＤＳＰ；digital  signal  processor）、特定用途向け集積回路（ＡＳＩＣ；application-specific  integrated  circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ；Field-Programmable  Gate  Array）、あるいは、プログラム命令を解釈するよう及び／若しくは実行するよう並びに／又はデータを処理するよう構成された何らかの他のデジタル又はアナログ回路構成を含んでよい。図４では単一のプロセッサとして表されているが、プロセッサ４１０は、本開示で記載されている動作をいくつでも個々に又は集合的に実施するよう構成されたプロセッサをいくつでも含んでよい。
【００５２】
いくつかの実施形態において、プロセッサ４１０は、記憶装置４２０、メモリ４３０、又は記憶装置４２０及びメモリ４３０に記憶されているプログラム命令を解釈及び／若しくは実行し及び／又はデータを処理してよい。いくつかの実施形態において、プロセッサ４１０は、記憶装置４２０からプログラム命令をフェッチし、プログラム命令をメモリ４３０にロードしてよい。プログラム命令がメモリ４３０にロードされた後、プロセッサ４１０はプログラム命令を実行してよい。
【００５３】
例えば、いくつかの実施形態において、プロセスチェーンの処理動作の１つ以上は、プログラム命令としてデータ記憶装置４２０において含まれてよい。プロセッサ４１０は、処理動作の１つ以上のプログラム命令をフェッチしてよく、処理動作のプログラム命令をメモリ４３０においてロードしてよい。処理動作のプログラム命令がメモリ４３０にロードされた後、プロセッサ４１０はプログラム命令を実行してよい。それにより、コンピュータデバイス４００は、プログラム命令によって指示されるように、処理動作に関連した動作を実施してよい。
【００５４】
記憶装置４２０及びメモリ４３０は、コンピュータ実行可能命令又はデータ構造を搬送するか又は記憶しているコンピュータ可読記憶媒体を含んでよい。そのようなコンピュータ可読記憶媒体は、プロセッサ４１０のような汎用又は特別目的のコンピュータによってアクセスされ得る如何なる利用可能な媒体も含んでよい。例として、制限なしに、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ若しくは他の光ディスクストレージ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、フラッシュメモリデバイス（例えば、ソリッドステートメモリデバイス）、あるいは、コンピュータ実行可能命令又はデータの形で所望のプログラムコードを搬送又は記憶するために使用されてよく且つ汎用又は特別目的のコンピュータによってアクセスされ得る何らかの他の記憶媒体を含む、有形な又は非一時的なコンピュータ可読記憶媒体を含んでよい。それらの組み合わせも、コンピュータ可読記憶媒体の適用範囲内に含まれてよい。コンピュータ実行可能命令は、例えば、プロセッサ４１０に特定の動作又は動作群を実施させるよう構成された命令及びデータを含んでよい。
【００５５】
いくつかの実施形態において、記憶装置４２０及び／又はメモリ４３０は、ＩＣＮネットワークに関連したデータを記憶してよい。例えば、記憶装置４２０及び／又はメモリ４３０は、ＰＩＴ、転送情報ベース（ＦＩＢ；forwarding  information  base）、及び／又はコンテンツストアを記憶してよい。
【００５６】
いくつかの実施形態において、コンテンツストアは、ネットワーク内の他のデバイスによって要求されたコンテンツの記憶場所として動作してよい。コンテンツストアとともにネットワークにおいて１つ以上のネットワークデバイスを実装することによって、しばしば要求されるコンテンツは、複数のネットワークデバイスのコンテンツストアに置かれてよく、コンテンツを要求している装置へより速やかに及び／又は効率よく供給されてよい。
【００５７】
いくつかの実施形態において、ＰＩＴは、どのインタレスト・パケットがネットワークデバイスによって受信されたかのステータスインジケータとなってよい。そのために、ネットワークデバイスは、データパケットを依然として待っている。例えば、ＰＩＴは、要求されているコンテンツを、コンテンツを要求しているインタレスト・パケットを受け取ったネットワークデバイスのインターフェイスと関連付けるテーブルエントリを有してよい。ＰＩＴは、データパケットがネットワークデバイスによって受信される場合に、どのインターフェイスがそのデータパケット内のコンテンツを要求したかを識別するために使用されてよい。故に、データパケットは、要求元インターフェイスと呼ばれる、コンテンツを要求したインターフェイス上でネットワークデバイスから送出されてよい。
【００５８】
いくつかの実施形態において、ＦＩＢは、データベース、ルールの組、プロトコル、又は同様のものであってよく、それによって、ネットワークデバイスは、ネットワークデバイスによって受信された場合にインタレスト・パケットをどこに転送すべきかを決定してよい。例えば、インタレスト・パケットがネットワークデバイスで受信される場合に、ＦＩＢは、ネットワークデバイスのどのインターフェイス（複数を含む。）がコンテンツを要求するようインタレスト・パケットを送信するために使用されているのかを決定するために利用されてよい。
【００５９】
通信装置４４０は、コンピュータデバイス４００とネットワーク（図１のネットワーク１５０又は図２のネットワーク２５０）との間の通信を可能にするか又は助けるよう構成された如何なる装置、システム、コンポーネント、又はコンポーネントの集合も含んでよい。例えば、通信装置４４０は、制限なしに、モデム、ネットワークカード（無線又は有線）、赤外線通信装置、光通信装置、無線通信装置（例えば、アンテナ）、及び／又はチップセット（例えば、Ｂｌｕｅｔｏｏｔｈ（登録商標）デバイス、８０２．６デバイス（例えば、メトロポリタンエリアネットワーク（ＭＡＮ；Metropolitan  Area  Network））、Ｗｉ−Ｆｉ（登録商標）装置、ＷｉＭＡＸ（登録商標）装置、セルラー通信設備、など）、及び／又は同様のものを含んでよい。通信装置４４０は、２、３例を挙げると、セルラーネットワーク、Ｗｉ−Ｆｉネットワーク、ＭＡＮ、光ネットワーク、などのような如何なるネットワークとも、及び／又は遠隔装置を含む、本開示で記載されている如何なる他の装置ともデータが交換されるようにしてよい。
【００６０】
いくつかの実施形態において、通信装置４４０は、ＩＣＮネットワーク内で通信するためにコンピュータデバイス４００によって使用されてよい。例えば、通信装置４４０は１つ以上のインターフェイスを含んでよい。いくつかの実施形態において、通信装置４４０は、単一の物理コンポーネント上の論理的特質、例えば、単一の物理ケーブル又は光信号にわたる複数のインターフェイス、を含んでよい。
【００６１】
変更、追加、又は削除は、本開示の適用範囲から逸脱することなしに図４に対してなされてよい。例えば、コンピュータデバイス４００は、本開示で図示及び記載されているよりも多い又は少ない要素を含んでよい。例えば、コンピュータデバイス４００は、タブレット又は携帯電話機のスクリーンのような内蔵表示装置を含んでよく、あるいは、コンピュータデバイス４００と別個であって通信上結合され得る外部モニタ、プロジェクタ、テレビジョン、又は他の適切な表示装置を含んでよい。
【００６２】
図５Ａ及び５Ｂは、本開示の少なくとも１つの実施形態に従って、パケットをベリファイするための、例となる方法５００のフローチャートである。方法５００は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００若しくはそのコンポーネントの１つ以上又は図２のシステム２００若しくはそのコンポーネントの１つ以上は、方法５００に関連した動作の１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体に記憶されているプログラム命令は、方法５００の動作の１つ以上を実施するよう実行されてよい。
【００６３】
ブロック５０５で、データパケット（例えば、図１のデータパケット１４０）は、最初のネットワークデバイス（例えば、図１のネットワークデバイス１２０ａ）から第１のネットワークデバイス（例えば、図１のネットワークデバイス１２０ｂ）で受信されてよい。データパケットは、第１のシグニチャを含むシグニチャスタックと、ハッシングされていない第１のコンテンツを含むコンテンツスタックとを含んでよい。加えて、方法５００を説明する便宜上、処理チェーンにおけるステップを表す変数ｉは１に設定されてよい。
【００６４】
ブロック５１０で、セキュリティフラグがデータパケットにおいて設定されているかどうかが、第１のネットワークデバイスによって決定されてよい。例えば、決定は、データパケットがフラグフィールドを含むかどうか、全てのシグニチャがフラグを有するかどうか、又はシグニチャのいずれかがフラグを有するかどうかに関して行われてよい。セキュリティフラグが全ての又は最も最近のシグニチャについて設定されていると決定される場合には、方法５００はブロック５２５へ進んでよい。セキュリティフラグが設定されていないと決定される場合には、方法５００はブロック５１５へ進んでよい。
【００６５】
ブロック５１５で、シグニチャスタックにおける一番上のシグニチャは、第１のネットワークデバイスによって認証されてよい。例えば、一番上のシグニチャは、シグニチャが特定のネットワークデバイスで秘密鍵を用いて生成されたことを確認するのに利用可能な公開鍵を用いてベリファイされてよい。追加的に、又は代替的に、如何なる他のデジタル検証又は認証アプローチも、シグニチャを生成及び認証するために使用されてよい。スタックの一番上にあるシグニチャは、プロセスチェーンにおけるｉステップの間に生成されるｉコンテンツに対応してよい。
【００６６】
ブロック５２０で、シグニチャスタックにおける一番上のシグニチャに関連したデータパケット内のセキュリティフラグは、シグニチャが認証されたことを示すよう第１のネットワークデバイスによって設定されてよい。フラグを設定することは、データパケットにおいてビットを変更すること、又はフラグがｉシグニチャに関連したデータパケットのフラグフィールドにおいて設定されているとの何らかの他のインジケーション、を含んでよい。
【００６７】
ブロック５２５で、現在の位置で実施されるべき処理があるかどうかが、第１のネットワークデバイスによって決定されてよい。そのような処理は、第１のネットワークデバイスで、又は第１のネットワークデバイスに関連した第１のプロセッシングデバイス（例えば、図１のプロセッシングデバイス１３０）で実施される処理を含んでよい。例えば、いくつかの実施形態において、データパケットにおける名称は、第１のネットワークデバイス又は関連する第１のプロセッシングデバイスで実施され得る、プロセスチェーンにおいて実施されるべき機能を示してよい。実施される処理がある場合には、方法５００はブロック５３０へ進んでよい。実施される処理がない場合には、方法５００はブロック５８０へ（図５Ｂに続く要素Ｂを介して）進んでよい。
【００６８】
ブロック５３０で、コンテンツｉが有効であるかどうかが決定されてよい。例えば、第１のネットワークデバイス及び／又は第１のプロセッシングデバイスは、コンテンツｉがプロセスチェーンにおいて実施されるべき処理のために有効であることをベリファイするよう、コンテンツｉを解析してよい。例えば、プロセスが映像を圧縮することである場合に、映像ファイルが完結しているかどうか、又は映像ファイルが送信中に改悪されたかどうかが決定されてよい。コンテンツｉが有効でない場合には、方法５００はブロック５３５へ進んでよい。コンテンツｉが有効である場合には、方法５００はブロック５４５へ進み、ｉの値を１だけインクリメントしてよい。
【００６９】
ブロック５３５で、要求は、コンテンツｉを再要求するよう送信されてよい。例えば、第１のネットワークデバイス又は関連する第１のプロセッシングデバイスは、コンテンツｉを再送するように要求を最初のネットワークデバイスへ送信してよい。
【００７０】
ブロック５４０で、コンテンツｉを含むデータパケットは、再度受信されてよい。例えば、第１のネットワークデバイスは、置換コンテンツｉを含むデータパケットを最初のネットワークデバイスから受信してよい。方法５００は、次いで、ブロック５１０へ進み、コンテンツｉを含むデータパケットがセキュリティフラグを有するかどうかを問い合わせてよい。
【００７１】
ブロック５４５で、コンテンツｉが有効であるとの確認、及びｉの値の１のインクリメントの後、処理は、処理されたハッシングされていないコンテンツｉを生成するよう、ｉ−１コンテンツに対して実施されてよい。例えば、第１のネットワークデバイス及び／又は第１のプロセッシングデバイスは、処理データ（処理を通じて生成されたｉ）を生成するよう、生のコンテンツ（前の処理ネットワークデバイスから受け取られたｉ−１）に対してプロセスチェーンの処理を実施してよい。例えば、コンテンツｉ−１が映像ファイルである場合には、第１のプロセッシングデバイスは、圧縮された映像ファイルであるコンテンツｉを生成するよう、映像ファイルを圧縮してよい。ブロック５４５の後、方法５００は、要素Ａを介して図５Ｂに続いてよい。
【００７２】
ブロック５５０で、図５Ｂの要素Ａから続けて、ｉ−１コンテンツはハッシングされてよい。例えば、第１のネットワークデバイスは、最初のネットワークデバイスから受け取られたｉ−１コンテンツに基づき一定長さのビットを生成するよう、固定長ハッシングアルゴリズムを用いてｉ−１コンテンツをハッシングしてよい。例えば、ｉ−１コンテンツが生の映像ファイルである場合に、ハッシングされたｉ−１コンテンツは、生の映像ファイルを表すデータに対して実施されるハッシングアルゴリズムに基づき生成される値の連続を含んでよい。
【００７３】
ブロック５５５で、ハッシングされていないｉ−１コンテンツは、データパケットのコンテンツスタックにおいて、ハッシングされたｉ−１コンテンツにより置き換えられてよい。例えば、第１のネットワークデバイスは、ハッシングされていないｉ−１コンテンツを外して、ハッシングされたｉ−１コンテンツをコンテンツスタックにプリペンドしてよい。コンテンツスタックが空である場合には、これは、コンテンツスタックにおいて第１の及び／又は唯一のエントリとしてハッシングされたｉ−１コンテンツを置くことを含んでよい。映像の例に従って、生の映像ファイルに基づくハッシングアルゴリズムの値（ハッシングされたｉ−１）は、コンテンツスタックにプリペンドされてよい。
【００７４】
ブロック５６０で、処理されたハッシングされていないｉコンテンツは、コンテンツスタックに加えられてよい。例えば、第１のネットワークデバイスは、処理されたハッシングされていないｉコンテンツをコンテンツスタックの一番上に置くように、処理されたハッシングされていないｉコンテンツをコンテンツスタックにプリペンドしてよい。映像の例に従って、圧縮された映像（処理されたハッシングされていないコンテンツｉ）はコンテンツスタックにプリペンドされてよく、それにより、それは、生の映像ファイルに基づくハッシングアルゴリズムの値（ハッシングされたｉ−１）の上にある。
【００７５】
ブロック５６５で、データパケットの名称は変更されてよい。例えば、第１のネットワークデバイスは、ブロック５４５で行われた処理を反映するよう名称を変更してよい。データパケットの如何なる他のヘディング又は情報の識別も、データパケットのコンテンツスタックにおける変更を反映するよう変更又は修正されてもよい。
【００７６】
ブロック５７０で、処理されたハッシングされていないｉコンテンツに対応するｉシグニチャは生成されてよい。例えば、第１のネットワークデバイスは、コンテンツｉを生成するために実施される処理、コンテンツｉ−１のハッシング、第１のネットワークデバイス、及び／又は第１のプロセッシングデバイスを認証するために使用され得るシグニチャを生成してよい。いくつかの実施形態において、第１のネットワークデバイスは、ｉシグニチャを生成するために使用され得る秘密鍵へのアクセスを有してよい。そのような及び他の実施形態において、ｉシグニチャは、コンテンツｉ、ハッシングされたｉ−１、第１のシグニチャ、名称／ヘッダ、など、又はそれらのあらゆる組み合わせに基づいてよい。
【００７７】
ブロック５７５で、ｉシグニチャは、データパケットのシグニチャスタックに加えられてよい。例えば、第１のネットワークデバイスは、ｉ−１シグニチャの上のシグニチャスタックの一番上にｉシグニチャを置くように、ｉシグニチャをシグニチャスタックにプリペンドしてよい。
【００７８】
ブロック５８０で、データパケットは、他のネットワーク位置へ送信されてよい。例えば、ブロック５４５で実施される処理が処理チェーンにおける最後のステップである場合には、第１のネットワークデバイスは、データパケットをデータコンシューマ又はデータコンシューマと通信するネットワークデバイスへ送信してよい。他の例として、処理チェーンにおいて更なるステップが存在する場合には、第１のネットワークデバイスは、処理チェーンにおける次のステップに関連したネットワークデバイスへデータパケットを送信してよい。そのようなネットワークデバイスは、次の処理ステップを実施するデバイスであってよく、あるいは、次の処理ステップを実施するプロセッシングデバイスに関連してよい。次のネットワーク位置がデータコンシューマである場合には、方法５００は終了してよい。次のネットワーク位置が他のネットワーク位置である場合には、方法５００は、次のネットワークデバイスでの同様のプロセスのために、（図５Ａに続く要素Ｃを介して）ブロック５１０へ続いてよい。
【００７９】
そのような及び他の実施形態において、コンテンツスタックのサイズは、処理チェーンにおけるステップの数に基づくサイズにおいて制限されてよい。例えば、コンテンツスタックは、
Ｌｅｎｇｔｈ＝（ｈａｓｈ×（ｋ−１））＋ｆｉｎａｌ  ｄａｔａ
に制限されてよい。Ｌｅｎｇｔｈは、データパケットのコンテンツスタックのサイズを表し、ｈａｓｈは、ハッシングアルゴリズムの出力のサイズを表し、ｋは、処理チェーンにおけるステップの数を表し、ｆｉｎａｌ  ｄａｔａは、最終的なデータのサイズを表す。
【００８０】
変更、追加、又は削除は、本開示の適用範囲から逸脱すること成しに方法５００に対してなされてよい。例えば、方法５００の動作は、異なる順序で実施されてよい。例えば、ブロック５４５及び５５０は逆にされてよく、且つ／あるいは、ブロック５６５は、ブロック５４５から５７０の間のどこでも実施されてよい。追加的に、又は代替的に、２つ以上の動作が同時に実施されてよい。例えば、ブロック５４５、５５０、及び５６５は同時に行われてよい。更には、説明されている動作及び操作は、例としてのみ与えられており、動作及び操作のいくつは、本開示の本質から外れることなしに、任意であっても、より少ない動作及び操作へとまとめられても、あるいは、更なる動作及び操作へと展開されてもよい。例えば、ブロック５１０、５１５、５２０、５３０、５３５、５４０、５５０、５５５、５６５、５７０、及び５７５のいずれかは削除されてよい。
【００８１】
図６Ａ及び６Ｂは、本開示の少なくとも１つの実施形態に従って、ＩＣＮネットワークにおいてパケットをベリファイするための、例となる方法６００のフローチャートである。方法６００は、如何なる適切なシステム、装置、又はデバイスによっても実施されてよい。例えば、図１のシステム１００若しくはそのコンポーネントの１つ以上又は図２のシステム２００若しくはそのコンポーネントの１つ以上は、方法６００に関連した動作の１つ以上を実施してよい。そのような及び他の実施形態において、コンピュータ可読媒体に記憶されているプログラム命令は、方法６００の動作の１つ以上を実施するよう実行されてよい。
【００８２】
ブロック６０５で、シグニチャスタック及び生のコンテンツを含むコンテンツスタックを備えたデータは、第１のネットワークデバイスで受信されてよい。例えば、最初のネットワークデバイスは、プロセスチェーンに基づき、生のコンテンツを含むデータＤａｔａを第１のネットワークデバイスへ転送してよい。
【００８３】
ブロック６１０で、シグニチャスタックにおける一番上のシグニチャが認証されるかどうかが決定されてよい。例えば、第１のネットワークデバイスは、一番上のフラグを認証するようセキュリティフラグがパケットにおいて設定されているかどうかをベリファイしてよい。追加的に、又は代替的に、第１のネットワークデバイスは、一番上のシグニチャが最初のネットワークデバイスに関連した公開鍵と一致することをベリファイしてよい。他の例として、第１のネットワークデバイスは、データＤａｔａが信頼できるゾーン内から受信されたことをベリファイしてよい。シグニチャが認証される場合には、方法６００はブロック６２０へ進んでよく、シグニチャが認証されない場合には、方法６００はブロック６１５へ進んでよい。
【００８４】
ブロック６１５で、データＤａｔａは断念されてよい。例えば、データＤａｔａが疑わしい真偽を有しているか（例えば、ブロック６１０で）、あるいは、特定のネットワークデバイスによって要求されていない（ブロック６２０で）とネットワークデバイスが決定した場合には、第１のネットワークデバイスはデータＤａｔａを捨ててよい。
【００８５】
ブロック６２０で、データＤａｔａについてのＰＩＴにおいて一致するエントリがあるかどうかが決定されてよい。例えば、第１のネットワークデバイスは、データＤａｔａの名称を第１のネットワークデバイスのＰＩＴにおけるエントリと比較してよい。データＤａｔａについてのＰＩＴにおいて一致するエントリがある場合には、方法６００はブロック６２５へ進んでよい。データＤａｔａについてのＰＩＴにおいて一致するエントリがない場合には、方法６００はブロック６１５へ進み、データを断念してよい。
【００８６】
ブロック６２５で、ＰＩＴエントリがアプリケーションに面しているかどうかが決定されてよい。例えば、第１のネットワークデバイスは、ＰＩＴエントリが、第１のネットワークデバイスで動作するアプリケーション、又は関連するプロセッシングデバイスで動作するアプリケーションのためのエントリを有するかどうかを決定してよい。例えば、ＰＩＴエントリで識別される第１のインターフェイスは、第１のネットワークデバイスで動作するアプリケーションへの論理インターフェイスであってよい。他の例として、ＰＩＴエントリで識別される第２のインターフェイスは、第１のネットワークデバイスに関連したプロセッシングデバイスへの接続を特定してよい。ＰＩＴエントリがアプリケーションに面していない場合には、方法６００はブロック６３０へ進んでよい。ＰＩＴエントリがアプリケーションに面している場合には、方法６００はブロック６３５へ進んでよい。
【００８７】
ブロック６３０で、データＤａｔａのコンテンツはコンテンツストアに格納されてよい。それにより、第１のネットワークデバイスで受け取られる他のインタレストは、インタレストを他のネットワーク位置へ転送する必要なしに、コンテンツストアからのコンテンツにアクセスすることができる。データＤａｔａはまた、ＰＩＴエントリに従って転送されてよい。例えば、第１のネットワークデバイスは、データＤａｔａのコンテンツをコンテンツストアに格納してよく、データＤａｔａ内のコンテンツについての要求を受け取ったインターフェイスについてＰＩＴエントリを解析してよい。
【００８８】
ブロック６３５で、データＤａｔａは、ＰＩＴエントリに基づきアプリケーションへ転送されてよい。例えば、第１のネットワークデバイスは、第１のネットワークデバイスで動作するアプリケーションへ、又はＰＩＴエントリで識別されたインターフェイスを介して関連するプロセッシングデバイスへ、データＤａｔａを供給してよい。
【００８９】
ブロック６４０で、データＤａｔａが処理のためにベリファイされるかどうかが決定されてよい。ブロック６４０は、図５Ａのブロック５３０と同じか又は同様であってよい。例えば、ネットワークデバイス及び／又は関連するプロセッシングデバイスは、処理チェーンの処理において使用されるコンテンツが十分であって、中断されたり又は不完全に送信されたりしていないことをベリファイするよう、データＤａｔａのコンテンツを解析してよい。データＤａｔａのコンテンツがベリファイされない場合には、方法６００はブロック６４５へ進んでよい。データＤａｔａのコンテンツがベリファイされる場合には、方法６００はブロック６５０へ進んでよい。
【００９０】
ブロック６４５で、データＤａｔａに対応するコンテンツについてのインタレストは、再発行されてよい。例えば、アプリケーションは、データＤａｔａのコンテンツを再度要求するよう第１のネットワークデバイスへインタレストを発行してよい。第１のネットワークデバイスは、第１のネットワークデバイスのＰＩＴを然るべく更新してよく、ＦＩＢに従ってインタレストを転送してよい。方法６００は、インタレストが転送されることによりデータＤａｔａが再受信される場合に、ブロック６０５へ進んでよい。
【００９１】
ブロック６５０で、処理されたコンテンツは、データＤａｔａの生のコンテンツに基づき生成されてよい。例えば、第１のネットワークデバイス又はプロセッシングデバイスで動作するアプリケーションは、処理チェーンの処理ステップを実施してよい。ブロック６５０は、図５Ａのブロック５４５と同じか又は同様であってよい。ブロック６５０の後、方法６００は、要素Ｄを介して図６Ｂへ続いてよい。
【００９２】
（要素Ｄから図６Ｂに続く）ブロック６５５で、データＤａｔａの生のコンテンツはハッシングされてよく、ハッシングされたコンテンツは、データＤａｔａのコンテンツスタックにおいて生のコンテンツを置き換えてよい。例えば、第１のネットワークデバイス又はプロセッシングデバイスは、生のコンテンツをハッシングし、データＤａｔａを然るべく更新してよい。ブロック６５５は、図５Ｂのブロック５５０及び５５５と同じか又は同様であってよい。
【００９３】
ブロック６６０で、処理されたコンテンツは、データＤａｔａのコンテンツスタックにプリペンドされてよい。例えば、第１のネットワークデバイス又はプロセッシングデバイスは、処理されたコンテンツをコンテンツスタックの一番上に加えてよい。ブロック６６０は、図５Ｂのブロック５６０と同じか又は同様であってよい。
【００９４】
ブロック６６５で、処理されたコンテンツに対応するシグニチャは生成されてよい。例えば、第１のネットワークデバイス又はプロセッシングデバイスは、処理されたコンテンツに基づきシグニチャを生成してよい。ブロック６６５で、図５Ｂのブロック５７０と同じか又は同様であってよい。
【００９５】
ブロック６７０で、処理されたコンテンツに対応するシグニチャは、シグニチャスタックにプリペンドされてよい。例えば、第１のネットワークデバイス又はプロセッシングデバイスは、シグニチャをシグニチャスタックの一番上に加えてよい。ブロック６７０は、図５Ｂのブロック５７５と同じか又は同様であってよい。
【００９６】
ブロック６７５で、データＤａｔａは、アプリケーションから第１のネットワークデバイスへ返送されてよい。例えば、アプリケーションは、データＤａｔａをアプリケーションへ供給したインターフェイスにわたって、変更されたデータを送信してよい。いくつかの実施形態において、インターフェイスは、第１のネットワークデバイス上の論理インターフェイスであってよい。追加的に、又は代替的に、インターフェイスは、プロセッシングデバイス及び第１のネットワークデバイスを接続するインターフェイスであってよい。
【００９７】
ブロック６８０で、第１のネットワークデバイスは、データＤａｔａの名称を変更し、変更された名称を用いてＰＩＴに従ってデータＤａｔａを転送してよい。例えば、第１のネットワークデバイスは、処理チェーンにおけるステップが実施されたことを反映するよう、データＤａｔａの名称を変更してよい。第１のネットワークデバイスは、次いで、変更された名称をＰＩＴ内のエントリと比較してよい。例えば、第１のネットワークデバイスが変更されたデータを処理チェーンにおける次のステップに向かうインターフェイスに沿って転送することを要求するＰＩＴ内のエントリが存在してよい。第１のネットワークデバイスは、変更された名称に基づきＰＩＴ内のエントリに従ってデータＤａｔａを転送してよい。そのような及び他の実施形態において、変更されたデータが処理チェーンの完了を表す場合には、ＰＩＴエントリは、完全に処理されたコンテンツを要求するデータコンシューマの方へデータＤａｔａを向けてよい。
【００９８】
変更、追加、又は削除は、本開示の適用範囲から逸脱すること成しに方法６００に対してなされてよい。例えば、方法６００の動作は、異なる順序で実施されてよい。例えば、ブロック６５０及び６５５は逆にされてよい。追加的に、又は代替的に、２つ以上の動作が同時に実施されてよい。例えば、ブロック６５０及び６５５は同時に行われてよい。更には、説明されている動作及び操作は、例としてのみ与えられており、動作及び操作のいくつは、本開示の本質から外れることなしに、任意であっても、より少ない動作及び操作へとまとめられても、あるいは、更なる動作及び操作へと展開されてもよい。例えば、ブロック６１０、６５５、６６０、６６５、及び６７０のいずれかは削除されてよい。
【００９９】
本開示で使用されるように、語「モジュール」又は「コンポーネント」は、モジュール又はコンポーネントの動作を実施するよう構成された具体的なハードウェア実施、且つ／あるいは、コンピュータシステムの汎用のハードウェア（例えば、コンピュータ可読媒体、プロセッシングデバイス、など）に記憶され及び／又はそれによって実行されるソフトウェアオブジェクト又はソフトウェアルーチンに言及してよい。いくつかの実施形態において、本開示で記載される種々のコンポーネント、モジュール、エンジン、及びサービスは、コンピュータシステムにおいて（例えば、別個のスレッドとして）実行するオブジェクト又はプロセスとして実装されてよい。本開示で記載されるシステム及び方法のいくつかは、ソフトウェア（汎用のハードウェアに記憶され及び／又はそれによって実行される。）において実装されるものとして一般に記載されるが、具体的なハードウェア実施又はソフトウェアと具体的なハードウェア実施との組み合わせも可能であり、考えられている。本明細書において、「コンピューティングエンティティ」は、本開示において以前に定義された如何なるコンピュータシステム、又はコンピュータシステムで実行される如何なるモジュール若しくは組み合わせであってもよい。
【０１００】
本開示で、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本文）で使用される語は、一般的に、“非限定的な（open）”用語として意図されている（例えば、語「含んでいる（including）」は、“〜を含んでいるが、〜に制限されない”との意に解釈されるべきであり、語「備えている（having）」は、「少なくとも〜を備えている」との意に解釈されるべきであり、語「含む（includes）」は、“〜を含むが、〜に制限されない”との意に解釈されるべきである、など。）。
【０１０１】
加えて、導入されたクレーム記載（introduced  claim  recitation）において特定の数が意図される場合、そのような意図は当該クレーム中に明確に記載され、そのような記載がない場合は、そのような意図も存在しない。例えば、理解を促すために、後続の添付された特許請求の範囲では、「少なくとも１つの（at  least  one）」及び「１つ以上の（one  or  more）」といった導入句を使用し、クレーム記載を導入することがある。しかし、このような句を使用するからといって、「a」又は「an」といった不定冠詞によりクレーム記載を導入した場合に、たとえ同一のクレーム内に、「１つ以上の」又は「少なくとも１つの」といった導入句と「a」又は「an」といった不定冠詞との両方が含まれるとしても、当該導入されたクレーム記載を含む特定のクレームが、当該記載事項を１しか含まない例に限定されるということが示唆されると解釈されるべきではない（例えば、「a」及び／又は「an」は、「少なくとも１つの」又は「１つ以上の」を意味すると解釈されるべきである。）。定冠詞を使用してクレーム記載を導入する場合にも同様のことが当てはまる。
【０１０２】
更には、導入されたクレーム記載において特定の数が明示されている場合であっても、そのような記載は、通常、少なくとも記載された数を意味するように解釈されるべきであることは、当業者には理解されるであろう（例えば、他に修飾語のない、単なる「２つの記載事項」という記載がある場合、この記載は、少なくとも２つの記載事項、又は２つ以上の記載事項を意味する。）。更に、「Ａ、Ｂ及びＣなどのうち少なくとも１つ」又は「Ａ、Ｂ及びＣなどのうちの１つ以上」に類する表記が使用される場合、一般的に、そのような構造は、Ａのみ、Ｂのみ、Ｃのみ、ＡとＢの両方、ＡとＣの両方、ＢとＣの両方、及び／又はＡとＢとＣの全て、などを含むよう意図される。
【０１０３】
更に、２つ以上の選択可能な用語を表す如何なる離接語及び／又は離接句も、明細書、特許請求の範囲、又は図面のいずれであろうと、それら用語のうちの１つ、それらの用語のうちのいずれか、あるいは、それらの用語の両方を含む可能性を意図すると理解されるべきである。例えば、「Ａ又はＢ」という句は、「Ａ又はＢ」、あるいは、「Ａ及びＢ」の可能性を含むことが理解されるべきである。
【０１０４】
ここで挙げられている全ての例及び条件付き言語は、当該技術の促進に本発明者によって寄与される概念及び本発明を読者が理解するのを助ける教育上の目的を意図され、そのような具体的に挙げられている例及び条件に制限されないと解釈されるべきである。本発明の実施形態が詳細に記載されてきたが、様々な変更、置換、及び代替が、本発明の主旨及び適用範囲から逸脱することなしに行われてよい。
【０１０５】
上記の実施形態に加えて、以下の付記を開示する。
（付記１）
プロセッサ及びメモリを含み、前記メモリは、
前記プロセッサによって実行される場合に、該プロセッサに、
シグニチャスタックと、ハッシングされていない第１のコンテンツを含むコンテンツスタックとを含むデータパケットを受信し、
前記第１のコンテンツの処理を実施するよう前記第１のコンテンツをプロセッシングデバイスへ供給し、
ハッシングされた第１のコンテンツを生成するよう前記第１のコンテンツをハッシングし、
前記コンテンツスタックにおいて前記第１のコンテンツを前記ハッシングされた第１のコンテンツにより置き換え、
前記ハッシングされていない第１のコンテンツに対して処理を実施することによって生成された第２のコンテンツを前記プロセッシングデバイスから受け取り、
前記第２のコンテンツを前記コンテンツスタックに加え、
前記ハッシングされた第１のコンテンツのシグニチャを生成し、
前記シグニチャを前記シグニチャスタックに加え、
前記データパケットを第２のネットワークデバイスへ送信する
ことを含む１つ以上の動作を実施させる命令を含む、第１のネットワークデバイス。
（付記２）
前記動作は、前記第２のコンテンツを前記コンテンツスタックに加えた後に前記データパケットの名称を変更することを更に含む、
付記１に記載の第１のネットワークデバイス。
（付記３）
当該第１のネットワークデバイス及び前記プロセッシングデバイスは、単一のデバイスに含まれる、
付記１に記載の第１のネットワークデバイス。
（付記４）
前記プロセッシングデバイスは、前記ハッシングされていない第１のコンテンツをバリデートするよう構成される、
付記１に記載の第１のネットワークデバイス。
（付記５）
前記ハッシングされていない第１のコンテンツがバリデートされないと決定した後、前記動作は、前記ハッシングされていない第１のコンテンツを再要求することを更に含む、
付記１に記載の第１のネットワークデバイス。
（付記６）
データコンシューマによってデータパケットをベリファイする方法であって、
コンテンツスタックにおけるハッシングされた第１のコンテンツに対応し、第１のネットワーク位置で生成された、データパケットのシグニチャスタックにおける第１のシグニチャを認証し、
前記コンテンツスタックにおける第２のコンテンツに対応し、第２のネットワーク位置で生成された、前記データパケットの前記シグニチャスタックにおける第２のシグニチャを認証する
ことを含み、前記第２のコンテンツは、前記第２のネットワーク位置で生成された前記第１のコンテンツの処理されたバージョンを含む、方法。
（付記７）
前記第２のシグニチャは、前記シグニチャスタックにおいて前記第１のシグニチャの上にあり、前記第２のコンテンツは、前記コンテンツスタックにおいて前記ハッシングされた第１のコンテンツの上にある、
付記６に記載の方法。
（付記８）
前記ハッシングされた第１のコンテンツは固定長ハッシュであり、前記コンテンツスタックにおける如何なるハッシングされたコンテンツも前記固定長ハッシュに等しい長さを有するようにする、
付記６に記載の方法。
（付記９）
前記第１のシグニチャは、前記第１のネットワーク位置によってアクセス可能な第１のキーに基づき、前記第２のシグニチャは、前記第２のネットワーク位置によってアクセス可能な第２のキーに基づく、
付記６に記載の方法。
（付記１０）
データパケットを更新する方法であって、
第１のコンテンツを含むコンテンツスタックと、前記第１のコンテンツに対応する、第１のネットワーク位置で生成された第１のシグニチャを含むシグニチャスタックとを含むデータパケットを前記第１のネットワーク位置から受信し、
第２のコンテンツを生成するよう前記第１のコンテンツに対して処理を実施し、
ハッシングされた第１のコンテンツを生成するよう前記第１のコンテンツをハッシングし、
前記コンテンツスタックにおいて前記第１のコンテンツを前記ハッシングされた第１のコンテンツにより置き換え、
前記第２のコンテンツを前記コンテンツスタックに加え、
前記第２のコンテンツに対応する第２のシグニチャを生成し、
前記第２のシグニチャを前記シグニチャスタックに加え、
前記データパケットを第２のネットワーク位置へ送信する
ことを含む方法。
（付記１１）
前記処理は第１の処理であり、当該方法は、
前記第２のネットワーク位置で、第３のコンテンツを生成するよう前記第２のコンテンツに対して第２の処理を実施し、
前記第２のネットワーク位置で、ハッシングされた第２のコンテンツを生成するよう前記第２のコンテンツをハッシングし、
前記第２のネットワーク位置で、前記コンテンツスタックにおいて前記第２のコンテンツを前記ハッシングされた第２のコンテンツにより置き換え、
前記第２のネットワーク位置で、前記第３のコンテンツを前記コンテンツスタックに加え、
前記第２のネットワーク位置で、前記第３のコンテンツに対応する第３のシグニチャを生成し、
前記第２のネットワーク位置で、前記第３のシグニチャを前記シグニチャスタックに加える
ことを更に含む、付記１０に記載の方法。
（付記１２）
前記第２のネットワーク位置で、前記データパケットの前記シグニチャスタックにおける一番上のシグニチャのみを認証する
ことを更に含む付記１１に記載の方法。
（付記１３）
前記第２のネットワーク位置が、前記一番上のシグニチャの認証に成功したことを示すセキュリティフラグを設定する
ことを更に含む付記１２に記載の方法。
（付記１４）
前記第２のネットワーク位置で、前記第３のコンテンツをもたらす処理チェーンの第１のブランチを、第４のコンテンツをもたらす前記処理チェーンの第２のブランチとマージすることを更に含み、
前記マージすることは、
前記第１のブランチからの全てのコンテンツを、マージされたコンテンツスタックにおける第１のエントリにまとめ、
前記第２のブランチからの全てのコンテンツを、前記マージされたコンテンツスタックにおける第２のエントリにまとめ、
前記第１のブランチからの全てのシグニチャを、マージされたシグニチャスタックにおける第１のエントリにまとめ、
前記第２のブランチからの全てのシグニチャを、前記マージされたシグニチャスタックにおける第２のエントリにまとめる
ことを含む、付記１１に記載の方法。
（付記１５）
前記第２のシグニチャは、前記ハッシングされた第１のコンテンツ、前記第１のシグニチャ、及び前記データパケットの名称に更に基づく、
付記１０に記載の方法。
（付記１６）
前記第１のコンテンツをハッシングすることは、前記第１のコンテンツ及び該第１のコンテンツに関連する第１のヘッダの両方をハッシングすることを含む、
付記１０に記載の方法。
（付記１７）
前記第２のシグニチャを前記シグニチャスタックに加えることは、前記第２のシグニチャを前記シグニチャスタックにプリペンドすることを含む、
付記１０に記載の方法。
（付記１８）
前記第２のコンテンツを前記コンテンツスタックに加えることは、前記第２のコンテンツを前記コンテンツスタックにプリペンドすることを含む、
付記１０に記載の方法。
（付記１９）
前記データパケットは、ペンディング・インタレスト・テーブルに従って前記第２のネットワーク位置へ送信される、
付記１０に記載の方法。
（付記２０）
前記シグニチャスタックは、信頼できるゾーンの外にあるネットワーク位置からのシグニチャを含み、前記信頼できるゾーンの中にあるネットワーク位置からのシグニチャを除外し、
前記コンテンツスタックは、前記信頼できるゾーンの外で実施されたコンテンツの処理のためのハッシングされたコンテンツを含み、前記信頼できるゾーンの中で実施されたコンテンツの処理のためのハッシングされたコンテンツを除外する、
付記１０に記載の方法。
【符号の説明】
【０１０６】
１００，２００          システム
１１０，２１０          データコンシューマ
１２０，２２０          ネットワークデバイス
１３０，２３０          プロセッシングデバイス
１４０，２４０，３００  データパケット
１５０，２５０          ネットワーク
２６０                  信頼できるゾーン
３１０                  名称フィールド
３２０                  フラグフィールド
３３０                  コンテンツスタック
３４０                  シグニチャスタック
４００                  コンピュータデバイス
【図１】
2017139733.tif 000003
【図２】
2017139733.tif 000004
【図３】
2017139733.tif 000005
【図４】
2017139733.tif 000006
【図５Ａ】
2017139733.tif 000007
【図５Ｂ】
2017139733.tif 000008
【図６Ａ】
2017139733.tif 000009
【図６Ｂ】
2017139733.tif 000010