(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024002596
(43)【公開日】2024-01-11
(54)【発明の名称】移動記録・管理装置及び移動記録・管理方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20231228BHJP
G06F 21/33 20130101ALI20231228BHJP
【FI】
H04L9/32 200B
H04L9/32 200F
G06F21/33
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022101885
(22)【出願日】2022-06-24
(71)【出願人】
【識別番号】505240673
【氏名又は名称】株式会社パッセルインテグレーション
(74)【代理人】
【識別番号】110002000
【氏名又は名称】弁理士法人栄光事務所
(72)【発明者】
【氏名】山▲崎▼ 耕史
(57)【要約】
【課題】人物に物が提供される場合に、物を提供する人物がその物を正当に所有している人物であることを認証できる移動記録・管理装置を提供する。
【解決手段】移動記録・管理装置は、プロセッサと、通信デバイスと、メモリと、を備え、メモリは、第1層のノードに関連付けられた第1のシード値と、第1のシード値を導出するための元シード値と、を保持しており、通信デバイスは、第3の認証用コードを受信し、プロセッサは、第3の認証用コードと元シード値と第1のシード値とに基づいて、第3の認証用コードを保持していた第1の端末を認証し、第1の端末の認証に成功した場合、第1のシード値に基づいて、第1層よりも一段下層である第2層のノードに対応する第2のシード値と第2の認証用コードとを生成し、第2のシード値をメモリに保存し、通信デバイスは、第1の端末、又は、第3の認証用コードを第1の端末から取得して移動記録・管理装置へ送信した第2の端末へ、第2の認証用コードを送信する。
【選択図】
図6A
【特許請求の範囲】
【請求項1】
物の移動を管理する移動記録・管理装置であって、
プロセッサと、通信デバイスと、メモリと、を備え、
前記物が移動する順番に応じて複数のノードが階層的に配置可能であり、
前記複数のノードのそれぞれに関連付けて、シード値と端末を認証するための認証用コードとが設定可能であり、
前記メモリは、第1層のノードに関連付けられた第1のシード値と、前記第1のシード値を導出するための元シード値と、を保持しており、
前記通信デバイスは、第3の認証用コードを受信し、
前記プロセッサは、
前記第3の認証用コードと前記元シード値と前記第1のシード値とに基づいて、前記第3の認証用コードを保持していた第1の端末を認証する端末認証処理を実行し、
前記第1の端末の認証に成功した場合、前記第1のシード値に基づいて、前記第1層よりも一段下層である第2層のノードに対応する第2のシード値と第2の認証用コードとを生成するコード生成処理を実行し、
前記第2のシード値を前記メモリに保存し、
前記通信デバイスは、前記第1の端末、又は、前記第3の認証用コードを前記第1の端末から取得して前記移動記録・管理装置へ送信した第2の端末へ、前記第2の認証用コードを送信する、
移動記録・管理装置。
【請求項2】
前記メモリは、事前処理で導出された前記第1のシード値を保持しており、
前記事前処理は、
所定の前記元シード値に基づいて、復号可能な暗号方式に用いる第1の関数を用いて、前記第1層のノードに対応する暗号化対象のコードである第1の暗号元コードを暗号化して、第1の暗号データを生成することと、
前記第1の暗号データを分割して、前記第1のシード値と第1の認証用コードとを導出することと、を含む、
請求項1に記載の移動記録・管理装置。
【請求項3】
前記端末認証処理は、
前記第3の認証用コードと、前記メモリに保持されたシード値のうちの1つのシード値である第3のシード値と、を組み合わせて、復号化対象のコードである復号元コードを生成することと、
前記第1の関数に基づいて、前記復号元コードを復号化して復号データを導出することと、
前記復号データが、前記メモリに保持されたいずれかのシード値であって、前記第3のシード値以外の第4のシード値と一致するか否かを判定することと、
前記復号データが前記第4のシード値と一致した場合、前記第1の端末の認証に成功したと判定することと、を含む、
請求項2に記載の移動記録・管理装置。
【請求項4】
前記端末認証処理は、
前記復号データが前記メモリに保持された前記第4のシード値と一致するまで、前記第2の認証用コードと組み合わせる前記第3のシード値を順次変更し、前記復号元コードを順次生成し、前記復号データを順次導出することを含む、
請求項3に記載の移動記録・管理装置。
【請求項5】
前記コード生成処理は、
前記第1のシード値に基づいて、前記第2層のノードに対応する暗号化対象のコードである第2の暗号元コードを導出することと、
前記第2の暗号元コードを前記第1の関数を用いて暗号化して、第2の暗号データを生成することと、
前記第2の暗号データを分割して、前記第2のシード値と前記第2の認証用コードとを導出することと、を含む、
請求項2に記載の移動記録・管理装置。
【請求項6】
前記通信デバイスは、前記第3の認証用コードを繰り返し受信可能であり、
前記プロセッサは、
前記端末認証処理と前記コード生成処理との実行後に、前記第2の端末を次の前記第1の端末とし、新たな端末を次の前記第2の端末とし、前記第2の認証用コードを次の前記第1の認証用コードとし、前記第1のシード値を次の前記元シード値とし、前記第2のシード値を次の前記第1のシード値として、新たな第3の認証用コードを受信する度に、前記端末認証処理と前記コード生成処理との実行を繰り返し、
前記コード生成処理により繰り返し導出された各前記第2のシード値を前記メモリに保存し、
前記通信デバイスは、前記コード生成処理により繰り返し導出された各前記第2の認証用コードを、各前記第3の認証用コードを送信した各前記第2の端末に送信する、
請求項2に記載の移動記録・管理装置。
【請求項7】
前記通信デバイスは、前記第3の認証用コードを繰り返し受信可能であり、
前記プロセッサは、
前記端末認証処理と前記コード生成処理との実行後に、新たな端末を次の前記第2の端末とし、前記第2の認証用コードを次の前記第1の認証用コードとし、前記第1のシード値を次の前記元シード値とし、前記第2のシード値を次の前記第1のシード値として、新たな第3の認証用コードを受信する度に、前記端末認証処理と前記コード生成処理との実行を繰り返し、
前記コード生成処理により繰り返し導出された各前記第2のシード値を前記メモリに保存し、
前記通信デバイスは、前記コード生成処理により繰り返し導出された各前記第2の認証用コードを、前記第1の端末に送信する、
請求項2に記載の移動記録・管理装置。
【請求項8】
前記事前処理は、前記第1の暗号データに基づいて、一方向性関数を用いた演算結果の値である第1の一方向性関数値を算出することと、前記第1のシード値と前記第1の一方向性関数値とを対にして前記メモリに保存することと、を含み、
前記端末認証処理は、
前記第3のシード値と前記第3の認証用コードとを組み合わせた復号化対象のコードである前記復号元コードに基づいて、前記一方向性関数を用いて第2の一方向性関数値を算出することと、
前記メモリに、前記第2の一方向性関数値と一致する前記第1の一方向性関数値が保持されているか否かを判定することと、
前記第2の一方向性関数値と一致する前記第1の一方向性関数値が保持されている場合、前記第1の端末が正当であると判定することと、を含む
請求項3に記載の移動記録・管理装置。
【請求項9】
前記第2の認証用コード及び前記第3の認証用コードは、n次元コード(nは1以上の整数)である、
請求項1又は2に記載の移動記録・管理装置。
【請求項10】
前記物は、電子データを含む、
請求項1又は2に記載の移動記録・管理装置。
【請求項11】
物の移動を管理する移動記録・管理方法であって、
前記物が移動する順番に応じて複数のノードが階層的に配置可能であり、
前記複数のノードのそれぞれに関連付けて、シード値と端末を認証するための認証用コードとが設定可能であり、
第1層のノードに関連付けられた第1のシード値と、前記第1のシード値を導出するための元シード値と、がメモリに保持されており、
第3の認証用コードを受信するステップと、
前記第3の認証用コードと前記元シード値と前記第1のシード値とに基づいて、前記第3の認証用コードを保持していた第1の端末を認証する端末認証処理を実行するステップと、
前記第1の端末の認証に成功した場合、前記第1のシード値に基づいて、前記第1層よりも一段下層である第2層のノードに対応する第2のシード値と第2の認証用コードとを生成するコード生成処理を実行するステップと、
前記第2のシード値を前記メモリに保存するステップと、
前記第1の端末、又は、前記第3の認証用コードを前記第1の端末から取得して移動記録・管理装置へ送信した第2の端末へ、前記第2の認証用コードを送信するステップと、
を有する移動記録・管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、物の移動を記録・管理する移動記録・管理装置及び移動記録・管理方法に関する。
【背景技術】
【0002】
従来、ブロックチェーンを用いた取引支援システムが知られている(特許文献1参照)。このシステムでは、第1のブロックチェーンにおいて第1のユーザの第1のウォレットに格納された、コンテンツに紐付けられた第1のNFTを管理者の第3のウォレットに移転する第1移転処理部と、第2のブロックチェーンにおいてコンテンツに紐付けられた第2のNFTを発行して、第2のブロックチェーンにおける管理者の第4のウォレットに第2のNFTを格納するNFT発行処理部と、第1のブロックチェーンにおいて第3のウォレットに格納された第1のNFTを使用不能にするNFT破棄処理部と、第1のNFTが使用不能になったことを確認する確認部と、第1のNFTが使用不能になったことが確認されたことを条件として、第2のブロックチェーンにおいて第4のウォレットから、第1のユーザとは異なる第2のユーザの第2のウォレットに第2のNFTを移転する第2移転処理部と、を備える。
【0003】
また、従来、情報の真正さを担保する真正担保システムが知られている(特許文献2参照)。このシステムは、ユーザ端末とサーバとを備えて被発行者であるユーザに関する所定事項についての真正さを担保する。サーバは、ユーザに関する所定事項についての情報と、発行者情報とを含めてデジタル証明書ファイルを生成して保存し、ユーザ端末に送信するとともに、所定関数を用いて暗号化して得た暗号化したデータをブロックチェーンネットワークに記録する。サーバまたはユーザ端末は、ユーザ端末の操作に基づいて所定関数を用いてユーザ端末のデジタル証明書ファイルを暗号化して得た暗号化したデータを、ブロックチェーンネットワークに記録された暗号化したデータと一致するか判定する。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特許第7029212号公報
【特許文献2】特開2021-90113号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の技術では、ブロックチェーンを用いて、デジタル資産の安全な取引を支援することを可能にする。しかし、ブロックチェーンの技術では、取引(移動)データの改ざんに対しては効果があるが、物自体の正当性の保証に対しては困難を抱えている。また、ブロックチェーンにおけるマイニング、台帳更新、検証作業等における環境負荷が大きい。特許文献1の技術の対象は、デジタル資産のみである。
【0006】
特許文献2の技術では、ユーザ自身がデジタル証明書ファイルを取得する際に、認証実行操作を行い、デジタル証明書ファイルが暗号化されたデータが、予め登録されたデータと一致するかどうかが判定される。しかしこれも上記と同様にブロックチェーン技術を活用しているため、同様の事情がある。
【0007】
本開示は、上記事情に鑑みてなされたものであり、人物に物が提供される場合に、物を提供する人物がその物を正当に所有する人物であることを認証できる移動記録・管理装置及び移動記録・管理方法を提供する。
【課題を解決するための手段】
【0008】
本開示の一態様は、物の移動を記録・管理する管理装置であって、プロセッサと、通信デバイスと、メモリと、を備え、前記物が移動する順番に応じて複数のノードが階層的に配置可能であり、前記複数のノードのそれぞれに関連付けて、シード値と端末を認証するための認証用コードとが設定可能であり、前記メモリは、第1層のノードに関連付けられた第1のシード値と、前記第1のシード値を導出するための元シード値と、を保持しており、前記通信デバイスは、第3の認証用コードを受信し、前記プロセッサは、前記第3の認証用コードと前記元シード値と前記第1のシード値とに基づいて、前記第3の認証用コードを保持していた第1の端末を認証する端末認証処理を実行し、前記第1の端末の認証に成功した場合、前記第1のシード値に基づいて、前記第1層よりも一段下層である第2層のノードに対応する第2のシード値と第2の認証用コードとを生成するコード生成処理を実行し、前記第2のシード値を前記メモリに保存し、前記通信デバイスは、前記第1の端末、又は、前記第3の認証用コードを前記第1の端末から取得して前記移動記録・管理装置へ送信した第2の端末へ、前記第2の認証用コードを送信する、移動記録・管理装置である。
【0009】
本開示の一態様は、物の移動を管理する移動記録・管理方法であって、前記物が移動する順番に応じて複数のノードが階層的に配置可能であり、前記複数のノードのそれぞれに関連付けて、シード値と端末を認証するための認証用コードとが設定可能であり、第1層のノードに関連付けられた第1のシード値と、前記第1のシード値を導出するための元シード値と、がメモリに保持されており、第3の認証用コードを受信するステップと、前記第3の認証用コードと前記元シード値と前記第1のシード値とに基づいて、前記第3の認証用コードを保持していた第1の端末を認証する端末認証処理を実行するステップと、前記第1の端末の認証に成功した場合、前記第1のシード値に基づいて、前記第1層よりも一段下層である第2層のノードに対応する第2のシード値と第2の認証用コードとを生成するコード生成処理を実行するステップと、前記第2のシード値を前記メモリに保存するステップと、前記第1の端末、又は、前記第3の認証用コードを前記第1の端末から取得して移動記録・管理装置へ送信した第2の端末へ、前記第2の認証用コードを送信するステップと、を有する移動記録・管理方法である。
【発明の効果】
【0010】
本開示によれば、人物に物が提供される場合に、物を提供する人物がその物を正当に所有する人物であることを認証できる。またそれを連鎖させることでその物の正当性が証明可能となる。
【図面の簡単な説明】
【0011】
【
図1】第1の実施形態における移動記録・管理システムの一例を示す図
【
図3】移動記録・管理装置の構成例を示すブロック図
【
図4】第1の実施形態における階層的な複数のノードの配置例と物の移動例とを示す図
【
図5】暗号データから認証用コード及びシード値への分割例を示す図
【
図6A】第1の実施形態における移動記録・管理システムの動作例を示すシーケンス図
【
図6C】端末認証処理の一例を示すフローチャート(
図6Bの続き)
【
図6D】次回認証用コード生成処理の一例を示すフローチャート
【
図7A】移動記録・管理システムの動作を補足説明するための図
【
図7B】移動記録・管理システムの動作を補足説明するための図
【
図7D】次回認証用コード生成処理を補足説明するための図
【
図7E】移動記録・管理システムの動作を補足説明するための図
【
図7F】移動記録・管理システムの動作を補足説明するための図
【
図7G】移動記録・管理システムの動作を補足説明するための図
【
図8】第2の実施形態における移動記録・管理システムの一例を示す図
【
図9】第2の実施形態における階層的な複数のノードの配置例と電子データの移動例とを示す図
【
図10】第2の実施形態における移動記録・管理システムの動作例を示すシーケンス図
【
図11A】移動記録・管理システムの動作を補足説明するための図
【
図11B】移動記録・管理システムの動作を補足説明するための図
【
図11C】移動記録・管理システムの動作を補足説明するための図
【
図11D】移動記録・管理システムの動作を補足説明するための図
【
図11E】移動記録・管理システムの動作を補足説明するための図
【発明を実施するための形態】
【0012】
以下、適宜図面を参照しながら、実施形態を詳細に説明する。但し、必要以上に詳細な説明は省略する場合がある。例えば、既によく知られた事項の詳細説明や実質的に同一の構成に対する重複説明を省略する場合がある。これは、以下の説明が不必要に冗長になることを避け、当業者の理解を容易にするためである。尚、添付図面及び以下の説明は、当業者が本開示を十分に理解するために提供されるものであり、これらにより特許請求の範囲に記載の主題を限定することは意図されていない。
【0013】
本開示の実施形態では、移動記録・管理システムは、ある集合に属する任意の2点(先行者、後行者)間で、先行者から後行者へ引き渡された情報が正しい情報であるかどうか検証する。移動記録・管理システムは、その結果を連続して記録していくことで、一連の検証結果をフローとして管理する。このフローは何に対して検証を行ったのかによって、それぞれの適用先での意味が決まる。
【0014】
物の受渡方法には、以下の2つのタイプがある。
(実施形態1)先行者(後述する提供者)、後行者(後述する被提供者)が順に入れ替わる。例えば、移動記録・管理システムの適用領域が販売や譲渡の証明の場合、端末検証処理が発生する度に所有権が次々と移転し、譲渡を行う先行者から所有権を受け取った後行者が、次の譲渡の先行者になり、新たに後行者が出現する。
(実施形態2)先行者(提供者)が変わらない。例えば、移動記録・管理システムの適用領域が販売者や譲渡者側の証明の場合である。この場合、物の受渡が行われる度に、後行者である提出先が変わっても、提出する先行者が変わらない。
【0015】
各タイプの対象は、例えば以下である。
(実施形態1)典型的な事例として、移動記録・管理システムは、物の譲渡又は販売等に用いられる。ここでの物には、現実の物体だけでなく、デジタル化された物(電子データ)も含まれ得る。
(実施形態2)典型的な事例として、移動記録・管理システムは、資格等の証明書等の提出である。これも同様に、現実の物体だけでなくデジタル化された物体(電子データ)も含まれ得る。
【0016】
移動記録・管理システムにより、物の流通履歴の管理、譲渡証明又は提出証明、保有証明(唯一性の証明)などが可能となる。移動記録・管理システムは、データ(例えば後述するシード値)が互いに関連性を持って記録されることで、改ざんを困難にできる。また記録されている移動記録・管理装置のメモリ内には後述するシード値や後述するハッシュ値としての数値しか残されておらず、データ流出に対する安全性が高い。移動記録・管理システムによれば、システムの構成を簡素化し、それぞれの適用領域での処理時に改ざん困難な形でシード値やハッシュ値等に記録し、譲渡証明、保有証明又は提出証明等を可能にすることができる。
以下、順番に記述する。
【0017】
<移動記録・管理システムの構成>
図1は、本開示の実施形態における移動記録・管理システム5の構成例を示すブロック図である。移動記録・管理システム5は、複数の端末10と移動記録・管理装置20とを含む。端末10と移動記録・管理装置20とは、例えばネットワークを介して接続される。このネットワークは、インターネット、公衆通信網(例えばセルラー網)、有線LAN(Local Area Network)、無線LAN、等を含んでよい。
【0018】
端末10は、スマートフォン、タブレット端末、又はその他の携帯端末であり、携帯端末以外の端末であってもよい。端末10は、ユーザにより所持され、移動自在でよい。端末10は、被提供者H2に物50(例えば物品)を提供する(送付する、渡す)提供者H1(引渡人、送付人)が所持する端末10、提供者H1から物50を提供される(受け取る)被提供者H2(受取人)が所持する端末10、等を含んでよい。移動記録・管理装置20は、サーバ又はPC等である。移動記録・管理装置20は、物の移動を管理し、例えば物の流通を管理する場合には流通管理装置となる。ここでの物は、物理的に実体のある物だけでなく、物理的な実態のない電子データを含んでもよい。移動記録・管理装置20は、任意の場所に設置され、例えば移動記録・管理システム5を管理する管理センタに配置されてよい。提供者H1から被提供者H2への提供方法は任意であり、郵送、搬送、手渡し、通信、又は読み取り等の方法が考えられる。
【0019】
図2は、端末10の構成例を示すブロック図である。端末10は、プロセッサ11、通信デバイス12、メモリ13、操作デバイス14、及び表示デバイス15を備える。
【0020】
プロセッサ11は、メモリ13に保持されたプログラムを実行することで、各種機能を実現する。プロセッサ11は、MPU(Micro processing Unit)、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、等を含んでよい。プロセッサ11は、各種集積回路(例えばLSI(Large Scale Integration)、FPGA(Field Programmable Gate Array))により構成されてもよい。プロセッサ11は、端末10の各部の動作を統括し、各種処理を行う。
【0021】
通信デバイス12は、各種データ又は情報等を通信する。通信デバイス12による通信方式は、WAN(Wide Area Network)、LAN(Local Area Network)、又は携帯電話用のセルラー通信(例えばLTE、5G)、又は近距離通信(例えば、赤外線通信又はBluetooth(登録商標)通信)等であってもよい。
【0022】
メモリ13は、一次記憶装置(例えばRAM(Random Access Memory)やROM(Read Only Memory))を含む。メモリ13は、二次記憶装置(例えばHDD(Hard Disk Drive)やSSD(Solid State Drive))や三次記憶装置(例えば光ディスク、SDカード)を含んでよい。メモリ13は、その他の記憶装置を含んでよい。メモリ13は、各種データ、情報、プログラム等を記憶する。メモリ13は、後述する、取得された認証用コードCD2又は証明書データ等を保持してよい。認証用コードCD2は、例えば、n次元コード(nは1以上の整数)であり、二次元コード(例えばQRコード(登録商標))である。
【0023】
操作デバイス14は、各種ボタン、キー、タッチパネル、マイクロホン、又はその他の入力デバイスを含んでよい。操作デバイス14は、各種データや情報の入力を受け付ける。
【0024】
表示デバイス15は、液晶表示デバイス、有機ELデバイス、又はその他の表示デバイスを含んでよい。表示デバイスは、各種データや情報を表示する。
【0025】
図3は、移動記録・管理装置20の構成例を示すブロック図である。移動記録・管理装置20は、プロセッサ21、通信デバイス22、及びメモリ23を備える。
【0026】
プロセッサ21は、メモリ23に保持されたプログラムを実行することで、各種機能を実現する。プロセッサ21は、MPU、CPU、DSP、等を含んでよい。プロセッサ11は、各種集積回路(例えばLSI、FPGA)により構成されてもよい。プロセッサ21は、移動記録・管理装置20の各部の動作を統括し、各種処理を行う。
【0027】
通信デバイス22は、各種データ、情報を通信する。通信デバイス22による通信方式は、例えば、WAN、LAN、電力線通信、携帯電話用のセルラー通信等の通信方式を含んでよい。
【0028】
メモリ23は、一次記憶装置(例えばRAMやROM)を含む。メモリ23は、二次記憶装置(例えばHDDやSSD)や三次記憶装置(例えば光ディスク、SDカード)を含んでよい。メモリ23は、その他の記憶装置を含んでよい。メモリ23は、各種データ、情報、プログラム等を記憶する。メモリ23は、後述する、導出されたシード値SDやハッシュ値HS等を保持してよい。
【0029】
<移動記録・管理システムの動作>
次に、
図4を用いて、物の移動時の移動記録・管理システム5における処理の流れについて説明する。
図4は、階層的な複数のノードの配置例と物50の移動例とを示す図である。物の移動とは、例えば物の流通である。
【0030】
本実施形態(第1の実施形態)では、様々な一の人物から他の人物へ各種の物50の受渡が発生する。物50の受渡は、物50の提供者H1が物50を提供し、物50の被提供者H2が物50を受け取ることを広く含んでよく、譲渡、引渡等を含んでよい。
【0031】
物50の受渡は、連続的に行われてよい。例えば、物50について、人物Aから人物Bへの受渡が実施された後、人物Bから人物C、人物Cから人物D、…、のように連続的に順番に受渡が実施されてよい。この場合、例えば、n回目の受渡において物50の被提供者H2となった人物は、(n+1)回目の受渡において物50の提供者となる。つまり、受渡のタイミングによって、同じ人物が被提供者H2にもなるし、提供者H1にもなる。物50の提供者H1と物50の被提供者H2とは、端末10を所持可能である。
【0032】
移動記録・管理システム5では、物50が移動する順番に応じて、各人物Hや各端末10に関連付けられたノードNDが仮想的に階層的に設置される。物50が人物に順番に受渡されるので、物50の移動の上位側から下位側へ物50が移動する。よって、各人物に対応する各端末10に対応する各ノードNDは、受渡順番に応じて上位層から下位層に向かって順番に配置される。最初に物50を提供する人物に対応するノードNDが最上位層に配置され、物50が受渡される毎に、移動記録・管理装置20が下位のノードNDを生成する。よって、最初はノードNDが1つであり、受渡の度にノードNDが1つずつ増加していく。最上位層のノードNDは物50の最初の所有者を示し、所定の時点での最下位層のノードNDは、所定の時点での物50の所有者を示している。
【0033】
本実施形態では、上位層から順に第S層が、第A層、第B層、第C層、…の順に配置されるとする。この層を表す「S」、「A」、「B」、「C」、…をノードND、端末10、人物H、等の符号末尾に付して説明することもある。つまり、例えば、ノードNDとして、ノードNDS,NDA,NDB,NDC,…の順に生成される。例えば、ノードNDSに端末10Sや人物Hsが関連付けられる。例えば、ノードNDAに端末10Aや人物HAが関連付けられる。第2の実施形態以降でも同様である。
【0034】
物50が移動する2人の人物や端末10に対応する、隣接する階層の2つのノードNDは、接続ラインLNで接続される。つまり、接続ラインLNは、移動経路を示す。よって、移動記録・管理システム5の管理者等は、階層的なノードNDの配置関係を確認することで、物50がどのように移動したか、どの人物からどの人物に受渡されたかを示す移動の履歴を確認できる。なお、接続ラインLNで接続された2つのノードNDのうち、移動の上流側のノードNDを「親ノード」とも称し、移動の下流側のノードNDを「子ノード」とも称する。よって、子ノードは、親ノードの一段下層に配置される。1つの親ノードに対して、1つ以上の子ノードが接続ラインLNで接続される。
【0035】
移動記録・管理装置20は、複数のノードNDのそれぞれに関連付けて、シード値SDと端末10を認証するための認証用コードCD2とを設定可能である。この場合、移動記録・管理装置20は、第n層(nは1以上の整数)のノードNDに関連付けて、暗号化対象のコードである暗号元コードCDを割り当てる。この暗号元コードCDは、例えば、最上位層のノードNDでは任意の数値(例えば乱数)であり、最上位層以外の層のノードNDでは、暗号化対象のノードNDよりも一段上層のノードND(親ノード)のシード値SDに基づく値である。そして、移動記録・管理装置20は、暗号元コードCDに対して暗号化して暗号データCRを生成し、暗号データCRを分割することでシード値SDと認証用コードCD2とを算出してよい。そして、移動記録・管理装置20は、算出されたシード値SDに基づいて、第n層のノードND(親ノード)の一段下層にある第(n+1)層のノードND(子ノード)の暗号元コードCDを算出してよい。そして、第(n+1)層についても、暗号元コードCDを基に暗号データCR、シード値SD、及び認証用コードCD2等を算出してよい。
【0036】
このようにして、親ノードのシード値SDに基づいて、子ノードのシード値SDを生成可能である。また、移動記録・管理装置20は、それぞれの異なる被提供者H2の端末10からそれぞれの異なる提供者H1が所持する端末10の認証用コードCD2を取得する度に、このような処理を繰り返すことで、各ノードNDのシード値SD及び認証用コードCD2を設定可能であり、シード値SDを用いて順にチェーンのように関連性を持って各ノードNDを生成可能である。
【0037】
なお、移動記録・管理装置20は、各ノードNDのシード値SDはメモリ23に保持してよい。移動記録・管理装置20は、最後に算出された2つのシード値SD(つまり最下層とその一段上層のシード値SD)のみを有効とし、他の層のシード値SDを無効としてもよい。この場合、有効なシード値SDは、有効なシード値SDに対応するノードNDに関連付けれた端末10の所持者が物50の現在の所有者であるとして、保有証明の役割を果たす。
【0038】
なお、移動記録・管理装置20は、生成された第n層や第(n+1)層のノードNDの認証用コードCD2を、各ノードNDに関連付けられたそれぞれの端末10に送信してよい。この場合、各端末10が認証用コードCD2を保持しておき、各端末10の認証が必要なタイミング(例えば物50の提供時)に、移動記録・管理装置20に認証用コードCD2が送信されてよい。そして、移動記録・管理装置20は、各端末10からの各認証用コードCD2を用いて各端末10を認証してよい。端末10の認証方法の詳細については後述する。
【0039】
逆に、移動記録・管理装置20は、第(n+1)層(nは1以上の整数)のノードNDに関連付けて、復号化対象のコードである復号元コードCD3を割り当て、復号元コードCD3に対して復号化して復号データDCを生成してよい。復号元コードCD3は、いずれかのシード値SDといずれかの認証用コードCD2との組み合わせである。復号元コードCD3が第(n+1)層のシード値SDといずれかの認証用コードCD2との組み合わせである場合、復号データDCは、第(n+1)層の1段上層にある第n層のノードNDのシード値SDを含む。つまり、移動記録・管理装置20は、取得された子ノードの認証用コードCD2に合致するシード値SDと、親ノードのシード値と、を同時に検出できる。
【0040】
図5は、所定のノードNDの暗号データCRから認証用コードCD2及びシード値SDへの分割例を示す図である。
図5では、暗号データCRが分割された左半分をシード値SDとし、右半分を認証用コードCD2としているが、これに限られない。なお、シード値SDの桁数と認証用コードCD2との桁数は同じでも違ってもよい。また、右半分がシード値SDで、左半分が認証用コードCD2でもよい。また、一連の暗号データCRの任意の桁の値をシード値SDとし、他の桁の値を認証用コードCD2としてもよく、シード値SDと認証用コードCD2とが暗号データCR内に混在していてもよい。
【0041】
次に、移動記録・管理システム5による動作例について説明する。
【0042】
図6Aは、移動記録・管理システム5による動作例を示すシーケンス図である。
図7A、
図7B、
図7E及び
図7Fは、移動記録・管理システム5の動作例を補足説明するための図である。なお、図中では、端末10Aを単に「端末A」、端末10Bを単に「端末B」と記載することもある。
【0043】
図6Aでは、物50が人物Hs、人物HAの順に受渡済みであり、人物HAから人物HBに物50を受渡しようとする場面を想定する。この場面では、人物HAが提供者H1であり、人物HBが被提供者H2である。
図6Aの処理開始時には、以下の事前処理が実施済みである。なお、人物Hsが物50を提供や受け取りすることなく、人物HAが物50を最初から保持していてもよい。
【0044】
図6Aの処理開始時には、事前処理により、人物Hsの端末10Sに対応する最上位層(第1層)のノードNDSと、人物HA及び人物HAの端末10Aに対応する最上位層の直下層(第2層)のノードNDAと、が生成済みである。ノードNDSは、ルートノードである。また、ノードNDSのシード値SDS及び認証用コードCD2Sが生成済みであり、メモリ23にシード値SDSが保持済みである。ノードNDSに対応する端末10Sへ認証用コードCD2Sが送付されていてもよい。この場合、認証用コードCD2Sは端末10Sに保持される。事前処理は、移動記録・管理装置20により実行されてもよいし、他の装置により実行されてもよい。また、後述するノードNDSに対応するハッシュ値HSSが生成済みでよく、メモリ23にハッシュ値HSSが保持済みでもよい。シード値SDSとハッシュ値HSSと対にして保存される。同様に、ノードNDAに対応するシード値SDA及び認証用コードCD2Aが生成済みであり、メモリ23にシード値SDAが保持済みであり、ノードNDAに対応する端末10Aへ認証用コードCD2Aが送付済みである。認証用コードCD2Aは端末10Aに保持される。また、ノードNDAに対応するハッシュ値HSAが生成済みでよく、メモリ23にハッシュ値HSAが保持済みでもよい。シード値SDAとハッシュ値HSAと対にして保存される。
【0045】
ここで、事前処理の一例について説明する。ここでは、移動記録・管理装置20が事前処理を行うことを例示する。
【0046】
プロセッサ21は、最上位層のノードNDSに、任意のコードを、暗号化対象の暗号元コードCDSとして割り当てる。例えば、プロセッサ21は、乱数を生し、この乱数を暗号元コードCDSとして割り当てる。プロセッサ21は、割り当てられた暗号元コードCDSを、復号可能な暗号方式の関数(例えばRSA、DES、AES、楕円曲線暗号、ハイブリッド暗号)を用いて暗号化し、暗号データCRSを得る。
【0047】
プロセッサ21は、得られた暗号データCRSを、シード値SDSと認証用コードCD2S(例えばQRコード(登録商標))とに分割する。この場合、プロセッサ21は、暗号データCRSが2分割された2つの分割データの一方(第1の分割データとも称する)をシード値SDSとし、2つの分割データの他方を認証用コードCD2S(第2の分割データの一例)としてよい。プロセッサ21は、暗号データCRSの桁数を加味して、同じ桁数となるように2等分して、暗号データCRSを認証用コードCD2Sとシード値SDSとに分割してよい。また、プロセッサ21は、2等分ではなく、認証用コードCD2Sの桁数とシード値SDSとの桁数とが異なるように偏りを持たせた状態で、暗号データCRSを認証用コードCD2Sとシード値SDSとに分割してもよい。
【0048】
プロセッサ21は、ノードNDAの暗号元コードCDAとして、このノードNDAに接続ラインLNで接続された最上位層のノードNDSに対応するシード値SDSを割り当てる。つまり、プロセッサ21は、第2層の親ノードに対応するシード値SDSを、そのまま第1層の子ノードの暗号元コードCDAとする。この際、プロセッサ21は、シード値SDAをパディングして暗号元コードCDAが生成されてよい。
【0049】
プロセッサ21は、割り当てられた暗号元コードCDAを、復号可能な暗号方式の関数を用いて暗号化し、暗号データCRAを得る。プロセッサ21は、得られた暗号データCRAを、シード値SDAと認証用コードCD2Aとに分割する。分割の方法は、暗号データCRSの場合と同じでよい。
【0050】
また、プロセッサ21は、暗号データCRSに基づいて、ハッシュ関数(例えばSHA256)を用いてハッシュ値HSSを算出してよい。プロセッサ21は、暗号データCRAに基づいて、ハッシュ関数を用いてハッシュ値HSAを算出してよい。ハッシュ関数は、一方向性関数つまり復号困難な暗号方式の関数の一例であり、他の一方性関数が用いられてもよい。ハッシュ値HSは、一方向性関数の演算結果の値の一例であり、他の一方向性関数の演算結果の値であってもよい。
【0051】
このようにして、
図7Aに示すように、移動記録・管理装置20は、少なくとも2つのシード値SD(例えばシード値SDS,SDA)をメモリ23に保持しておく。各端末10の認証に、各端末10に関連付けられたノードNDの親ノードのシード値が必要だからである。また、上下階層のノードNDの2つのシード値がメモリ23に保持されることで、下位ノードについての親ノードのシード値SDとして認証に使用可能である。また、各シード値SDは、メモリ23への保持後に実施される端末認証処理、コード生成処理、又は移動履歴情報の生成等に用いられる。なお、移動記録・管理装置20は、ハッシュ値HSS,HSAをメモリ23に保持させておいてもよい。また、移動記録・管理装置20は、通信デバイス22が認証用コードCD2Aを端末10Aに送信しておき、端末10Aが、メモリ13に認証用コードCD2Aを保持しておく。一方、ノードNDSの認証用コードCD2Sは、端末10Aの認証に使用されないので不要であり、端末10Sに送信されなくてよい。
【0052】
図6Aに戻り、まず、物50の提供時に、端末10Aは、プロセッサ11が、認証用コードCD2TAを表示デバイス15に表示させる(S11)。認証用コードCD2TAは、基本的には、移動記録・管理装置20から配布されてメモリ13に保持していた認証用コードCD2Aである。なお、端末10Aが、不正な端末である場合や認証用コードCD2Aが改竄されている場合には、認証用コードCD2TAが認証用コードCD2Aでないこともあり得る。
【0053】
端末10Bは、プロセッサ11が、端末10Aの認証用コードCD2TAを取得する。例えば、プロセッサ11は、二次元コードリーダ(ハードウェア又はソフトウェア)を介して端末10Aの認証用コードCD2TAを読み取る(S16)。端末10Bは、通信デバイス12が、読み取られた端末10Aの認証用コードCD2TAを移動記録・管理装置20に送信する(S17)(
図7B参照)。
【0054】
なお、認証用コードCD2TAが例えば二次元コードである場合、被提供者H2である端末10Bを所持する人物HBは、容易に物50の提供元の認証用コードCD2TAを取得できる。また、端末10Aが表示し端末10Bが読み取る以外の方法で端末10Bが認証用コードCD2TAを取得してもよい。例えば、端末10Bは、通信デバイス12が、認証用コードCD2TAを受信することで取得してもよい。
【0055】
移動記録・管理装置20は、通信デバイス22が、端末10Bからの端末10Aの認証用コードCD2TAを受信する(S21)。プロセッサ21は、受信された端末10Aの認証用コードCD2TAに基づいて、認証用コードCD2TAを保持していた物50の提供元の端末10Aの正当性を認証する処理を実行する(S22)。この処理を「端末認証処理」とも称する。プロセッサ21は、端末認証処理の結果、端末10Aの認証に成功した(認証OK)か否かを判定する(S23)。端末10Aの認証に失敗した場合(S23のNo)、移動記録・管理システム5は、
図7Aの処理を終了する。
【0056】
端末10Aの認証に成功した場合(S23のYes)、プロセッサ21は、次回の物の受渡時に用いる認証用コードCD2Bを生成(発行)する処理を実行する(S24)。この処理を「次回認証用コード生成処理」とも称する。
【0057】
通信デバイス22は、生成された次回の認証用コードCD2Bを、物50の被提供者H2である人物HBの端末10Bに送信する(S25)(
図7E参照)。プロセッサ21は、端末10Bと、ノードNDAの一段下層にあるノードNDBと、を関連付けて、この関連付け情報をメモリ23に保持させる(
図7E参照)。これにより、移動記録・管理装置20は、各ノードNDや各端末10の移動順序を把握できる。
【0058】
端末10Aでは、プロセッサ11は、通信デバイス12を介して移動記録・管理装置20からの次回の認証用コードCD2Bを受信し、メモリ13に認証用コードCD2Bを保持させる(S18)(
図7F参照)。
【0059】
図6B及び
図6Cは、ステップS22における端末認証処理の一例を示す図である。
図7Cは、端末認証処理を補足説明するための図である。
【0060】
プロセッサ21は、メモリ23を参照し、取得された端末10Aの認証用コードCD2TAとの組み合わせで、復号に成功するシード値SDを探索する。例えば、プロセッサ21は、認証用コードCD2TAに対応し得る端末10Aの認証用コードCD2Aと関連付けて生成されたシード値SDAが存在するか否かを探索する。ここで、メモリ23には、暗号化時に生成されたチェーンの順序を示す情報が保持されていない。そのため、プロセッサ21は、保存されている1つ以上のシード値SDのうちどのシード値SDが端末10Aの認証用コードCD2Aと関連付けられたものであるかを判別できない。
【0061】
そこで、プロセッサ21、メモリ23に保持された任意のシード値(認証用コードCD2TAと未だ組み合わされていないシード値)と、端末10Aの認証用コードCD2TAと、を組み合わせて、端末10Aの復号化対象の元コード(復号元コードCD3A)を生成する(S31)。復号元コードCD3Aは、認証用コードCD2TAが認証用コードCD2Aである場合には、暗号化時に生成された暗号データCRAに対応する。この場合、プロセッサ21は、一度組み合されたシード値SDに対して、組み合わせ済みであることを示すフラグを付しておくことで、未だ組み合わされていないシード値SDか否かを判別し、次回以降の組み合わせ候補から除外してよい。
【0062】
プロセッサ21は、暗号化時に使用した復号可能な暗号方式の関数(例えばRSA関数)を用いて逆算して、端末10Aの復号元コードCD3Aを復号化し、端末10Aの復号データDCAを得る(S32)。復号データDCAは、暗号化時に暗号化対象のコードであった暗号元コードCDAに対応する。
【0063】
プロセッサ21は、端末10Aの復号データDCAが、メモリ23に保持された他のシード値SDと一致するか否かを判定する(S33)。ここでの他のシード値SDとは、メモリ23に保持されたいずれかのシード値SDであって、端末10Aの復号元コードCD3Aのシード値SDA以外のシード値SDである。
【0064】
端末10Aの復号データDCAがメモリ23に保持された他のシード値SDと一致する場合、現在の物50の所有者が、認証用コードCD2Aを保持していた端末10Aに対応する人物HAであると判定する(S34)。つまり、移動記録・管理装置20は、シード値SDを用いて、物50の保有証明が可能である。現在の物50の所有者が端末10Aであることは、物50の受渡が正当であることの一例である。
【0065】
暗号化時を考慮すると、端末10Aの復号元コードCD3Aが復号された復号データDCAには、端末10Aに対応するノードNDAに接続ラインLNが接続された一段上層のノード(親ノード)であるノードNDSに対応するシード値SDSが含まれているはずである。プロセッサ21は、端末10Aの復号データDCAがメモリ23に保持された他のシード値SDと一致する場合には、この親ノードに対応するシード値SDSであると判断できる。このようにして、プロセッサ21は、端末10Aの復号元コードCD3Aの復号に成功し、物50の現在の所有者を判別できる。
【0066】
一方、ステップS34で端末10Aの復号データDCAがメモリ23に保持された他のシード値SDと一致しない場合、メモリ23に保持された全てのシード値SDを端末10Aの認証用コードCD2Aと組合せたか否かを判定する(S35)。
【0067】
メモリ23に、端末10Aの認証用コードCD2TAと未だ組合せていないシード値SDが存在する場合(S35のNo)、プロセッサ21は、ステップS31に進み、ステップS31~S35の処理を繰り返す。つまり、プロセッサ21は、取得された端末10Aの認証用コードCD2TAと、メモリ23に保持された複数のシード値SDのうちの任意のシード値SDとを、シード値SDを変更しながら組み合わせ、端末10Aの復号データDCがメモリ23に保持された他のシード値SDと一致するまで(復号に成功するまで)繰り返す。
【0068】
端末10Aの認証用コードCD2TAとメモリ23に保持されたどのシード値SDとを組み合わせても復号に成功しない場合(S35のNo)、プロセッサ21は、現在の物50の所有者が、認証用コードCD2TAを保持していた端末10Aの人物ではないと判定し、物50の受渡が不当であると判定する(
図6CのS44)。
【0069】
図6Cに進み、プロセッサ21は、復号に成功した端末10Aの復号元コードCD3Aを基に、端末10Aのハッシュ値HSA’を算出する(S41)。
【0070】
プロセッサ21は、算出された端末10Aのハッシュ値HSA’と、メモリ23に保持されたハッシュ値HSAであって、復号に成功した端末10Aの復号元コードCD3Aのシード値SDと対であるハッシュ値HSAと、が一致するか否かを判定する(S42)。
【0071】
この端末10Aのハッシュ値HSA’とハッシュ値HSAとが一致する場合(S42のYes)、プロセッサ21は、端末10Aが正当である、つまり端末10Aを所持する物50の提供者H1が正当である、と判別する(S43)。端末10Aが正当であることは、物50の受渡が正当であることの一例である。一方、この端末10Aのハッシュ値HSA’とハッシュ値HSAとが一致しない場合(S42のNo)、プロセッサ21は、端末10Aが正当でない、つまり端末10Aを所持する物50の提供者H1が正当でないと判別し、物50の受渡が不当であると判定する(S44)。
【0072】
なお、ステップS41~S43のハッシュ値HSを用いた端末10の正当性の認証は省略されてもよい。この場合でも、ステップS33,S34によって荷物の受渡の正当性は保証される。
【0073】
このような端末認証処理によれば、移動記録・管理装置20は、事前処理によってメモリ23に保持しておいたシード値SDS,SDAと、端末Aの認証用コードCD2TAと、を用いて、物50の提供者H1の端末10Aの正当性を認証できる。また、端末10Bが端末10Aの認証用コードCD2TAを読み取って端末10Aを認証可能であるので、端末10Bを所持する被提供者H2は、物50の受渡時に簡単に端末10Aの正当性を確認できる。
【0074】
また、移動記録・管理装置20は、ハッシュ値HSA,HSA’を算出しない場合でも、暗号元コードCDAの暗号化に係る処理を簡素化し、暗号化に係る処理時間を短縮しつつ、物50の受渡の正当性を評価できる。また、移動記録・管理装置20は、ハッシュ値HSを算出してメモリ23に保持する場合、ハッシュ値HSに対応するノードNDに関連付けられた端末10の正当性を評価できる。
【0075】
移動記録・管理装置20は、ハッシュ値を用いた検証を行うことで、端末10Aの認証用コードCD2TAが認証用コードCD2Aと異なり、改ざんされたり他の端末10が保持する認証用コードが差し替えられたりした場合には、ハッシュ値HSA’とハッシュ値HSAとが異なる値となる。よって、移動記録・管理装置20は、端末10Aに正当性がないことを判別できる。よって、移動記録・管理装置20は、不正やなりすましを発見できる。
【0076】
図6Dは、ステップS24における次回認証用コード生成処理の一例を示す図である。
図7Dは、次回認証用コード生成処理を補足説明するための図である。
【0077】
まず、プロセッサ21は、端末10Aに対応するノードNDAの子ノードであるノードNDBを生成する(S51)。また、プロセッサ21は、ノードNDBと今回の被提供者H2の端末10Bとを関連付け、関連付け情報をメモリ23に保持させる。関連付け情報は、例えば、ノードNDの識別情報と、端末10Bの識別情報と、このノードNDと端末10とが関連付けられたことを示す情報を含む。
【0078】
プロセッサ21は、ノードNDAのシード値SDAに基づいて、例えばシード値SDAに所定のパディングデータを付加して、ノードNDBの暗号元コードCDBを生成する(S52)。プロセッサ21は、生成された暗号元コードCDBを、復号可能な暗号方式の関数を用いて暗号化して、ノードNDBの暗号データCRBを得る(S53)。プロセッサ21は、ノードNDBの暗号データCRBをノードNDBのシード値SDBと認証用コードCD2Bに分割する(S54)。プロセッサ21は、ノードNDBの暗号データCRBを基に、ノードNDBのハッシュ値HSBを算出する(S55)。プロセッサ21は、ノードNDBのシード値SDB及びハッシュ値HSBをメモリ23に保持させる。
【0079】
そして、移動記録・管理装置20は、通信デバイス22が、次回の認証用コードCD2としてのノードNDBの認証用コードCD2Bを、ノードNDBに関連付けられた端末10Bに送信する(
図6AのS25)。
【0080】
端末10Bは、プロセッサ11が、通信デバイス12を介して移動記録・管理装置20から認証用コードCD2Bを受信し、メモリ13に認証用コードCD2Bを保持させる(
図6AのS18)。この認証用コードCD2Bは、次回の物50の受渡時、つまり端末10Bを所持する人物HBが提供者H1になり、他の人物が被提供者H2になる受渡時に、使用される。
【0081】
このような次回認証時コード生成処理によれば、移動記録・管理装置20は、物50を受け取る被提供者H2の端末10に対して、認証用コードCD2を発行できる。今回の被提供者H2が次回のこの物50の受渡時には提供者H1になるので、認証用コードCD2は、物50の提供時に使用される。つまり、認証用コードCD2は、物50の提供者H1を認証可能である。また、移動記録・管理装置20は、発行された次回の認証用コードCD2(例えばCD2B)に対応するシード値SD(例えばSDB)やハッシュ値HS(例えばHSB)をメモリ23に保持しておくことで、次回の受渡時に次回の認証用コードCD2を用いた端末10(例えば端末10B)の認証を実現できる。
【0082】
このようにして、
図6A~
図6Dに示した端末10Bが端末10Aから物50を取得する際の移動記録・管理システム5による一連の処理が終了する。移動記録・管理システム5は、物50の受渡の度に、異なる被提供者H2に対応する異なる端末10(例えば端末10B)に、端末10Aの認証用コードCD2Aとは異なる認証用コードCD2(例えば認証用コードCD2B)を提供する。次回の物50の受渡では、今回の被提供者H2が次回の提供者H1となり、次回の被提供者H2が今回の被提供者H2とは異なる人物H(例えば人物HC)となって、物50を提供する。よって、物50は、順次複数の人物Hに受け渡される。この際にも、移動記録・管理システム5は、
図6A~
図6Dに示した処理を繰り返し実施する。
【0083】
例えば、プロセッサ21は、次回の
図6A~
図6Dの処理時には、今回の端末10Bを次回の端末10Aに相当する端末とし、新たな端末(例えば端末10C)を次回の端末10Bに相当する端末とし、今回の認証用コードCD2Bを次回の認証用コードCD2Aに相当する認証用コードとし、今回のシード値SDAを次回の元シード値としてのシード値SDSに相当するシード値とし、今回のシード値SDBを次回のシード値SDAに相当するシード値としてよい。そして、プロセッサ21は、次の被提供者H2の人物HCが所持する端末10Cから、端末10Bから取得された認証用コードCD2TB(新たな認証用コード)を受信すると、次回の端末認証処理と次回認証用コード生成処理とを実施してよい。プロセッサは、次回認証用コード生成処理により導出された新たなシード値(例えばシード値SDC)をメモリ23に保持してよい。通信デバイス22は、次回認証用コード生成処理により導出された新たな認証用コード(例えば認証用コードCD2C)を端末10Cに送信してよい。このように、移動記録・管理装置20は、
図6A~
図6Dの処理を繰り返し実行する際、上記の情報の置き換えを行って、新たな端末10から新たな認証用コードCD2を受信する度に、端末認証処理とコード生成処理との実行、メモリ23への新たなシード値SDの保存、新たな端末への新たな認証用コードCD2の送信、を繰り返してよい。
【0084】
このようにして、物50の提供者H1に対応する端末10(例えば端末10A,10B,10C,…)は、複数の異なる端末10(例えば端末10B,10C,10D,…)に対して、それぞれ異なる認証用コードCD2を用いて物50を提供可能である。例えば、端末10Cが、端末10Bの認証用コードCD2Bに対応し得る認証用コードCD2TBを読み取り、この認証用コードCD2TBを移動記録・管理装置20に送信してよい(
図7G参照)。これにより、移動記録・管理装置20は、端末10BやノードNDBについての端末認証処理や次回認証用コード生成処理を実施できる。
【0085】
なお、プロセッサ21は、認証用コードCD2の認証後に、認証対象であった端末10Aの認証用コードCD2Aを無効化してよい。つまり、プロセッサ21は、同じ認証用コードCD2Aを取得した場合には、認証に失敗するよう制御してよい。これにより、移動記録・管理装置20は、最新の認証用コードCD2に限って認証可能な状態にできる。よって、アクティブ(有効)な認証用コードCD2を所有している端末10の所持者が、物50を現在保有しているという証明になる。
【0086】
このように、本実施形態の移動記録・管理装置20は、商品等の物50の提供毎(受渡毎)に、提供者H1を認証するための認証用コードCD2を用いて人物認証(つまり端末認証)を行い、被提供者H2が次回に提供者H1になった場合の認証用コードCD2を発行できる。つまり、移動記録・管理装置20は、端末認証処理と次回認証用コード生成処理とを反復して実施することで、順次異なる端末10に異なる認証用コードCD2を提供できる。この場合、移動記録・管理装置20は、物50の受渡の度に、事前にではなく物50の受渡時に、認証用コードCD2を用意できる。よって、様々な人物Hに物50が提供される場合に、予め移動経路が決まっていない場合でも、物50を提供する人物Hが正当な人物であることを認証できる。本実施形態の移動記録・管理システム5は、商品販売、譲渡、又は2次移動等に適用可能である。
【0087】
また、移動記録・管理装置20は、次回認証用コード生成処理によれば、物50の受渡毎に、各ノードNDの位置関係や接続関係に応じて、暗号元コードCD、暗号データCR、認証用コードCD2、及びシード値SDを順次導出できる。子ノードは、親ノードのシード値SDに基づいて暗号化対象の暗号元コードCDを生成するので、親ノードと子ノードとは関連付けられている。親ノードと子ノードとが関連付けられた状態が引き継がれていることで、生成された全ノードNDにおいてシード値SDを基準に関連付けされた一連の接続関係(チェーン)が形成される。したがって、次回の端末認証処理の際には、移動記録・管理装置20は、移動記録・管理装置20と端末10とで別々に保存されたシード値SD及び認証用コードCD2を取得することで、子ノードに対応する暗号データCR(後述する復号元コードCD3)を導出し、暗号データCRから親ノードに対応するシード値SDを復号可能である。
【0088】
また、シード値SD及びハッシュ値HSがどの階層やどのノードNDに関連するものであるかを示す情報は、メモリ23に保持されない。つまり、メモリ23では、ノードNDの階層が加味されない状態で、シード値SD及びハッシュ値HSの対が保持されている。よって、例えば、第三者によって一部のシード値SDやハッシュ値HSがメモリ23から取得されたとしても、どのシード値SDやハッシュ値HSがどの階層のノードNDと対応しているか不明であるので、どのシード値SDやハッシュ値HSがどの人物Hに関する情報であるかを把握することは非常に困難である。よって、移動記録・管理装置20は、暗号化対象の暗号元コードCDが復号される可能性を極めて小さくでき、セキュリティを確保でき、システムの信頼性を高く維持できる。
【0089】
なお、本実施形態では、認証用コードCD2がn次元コードであることを例示したが、他のコードでもよく、例えば各種のリーダ等により読み取り可能な読取可能コードであってもよい。以降の実施形態でも同様である。
【0090】
なお、本実施形態では、少なくとも2つシード値SDがメモリ23に保持され、端末10A,10B,10C,…等について端末認証可能であることを例示したが、端末10Sについて端末認証可能であってもよい。この場合、移動記録・管理装置20は、端末10SにノードNDSの認証用コードCD2Sを送信しておき、シード値SDSとなった最初の任意のコードを端末10Sに対応するノードNDSの親ノードのシード値として扱い、メモリ23に保持していてもよい。この場合、最初の任意のコードとシード値SDSが、2つのシード値SDとしてメモリ23に保持されていてよい。この場合、移動記録・管理装置20は、端末10Sが物50の提供者H1になった場合でも、本実施形態を適用可能である。
【0091】
(第2の実施形態)
第1の実施形態では、移動記録・管理システム5が、主に、各人物に物50を受渡する毎に端末認証処理や次回認証用コード生成処理を実行することを例示した。第2の実施形態では、移動記録・管理システム5Aが、主に、物50としての電子データ(例えば証明書データ50A)を各人物に提供する毎に、端末認証処理や次回認証用コード生成処理を実行することを例示する。なお、第2の実施形態において、第1の実施形態と同様の事項については、その説明を省略又は簡略化する。
【0092】
本実施形態では、電子データの提供は、通信を伴った提供者H1の端末10から被提供者H2の端末10への電子データの送受信を含んでよい。また、電子データの提供は、通信を伴なわず、提供者H1の端末10により電子データを表示することで、被提供者H2に電子データを提示することを含んでよい。
【0093】
図8は、第2の実施形態の移動記録・管理システム5Aの構成例を示す図である。移動記録・管理システム5Aは、複数の端末10(10A,10B,…)と移動記録・管理装置20Aと証明書管理装置30とを含む。
【0094】
ただし、証明書管理装置30は必須ではなく、何を証明しているかを明示的に示す必要がある場合に追加されるオプションである。何を証明しなければならないかが提示者、被提示者双方に明らかな場合には当該証明書管理装置30は不要であるが、説明を簡明かつ具体的にするために当該証明書管理装置30を在るものとして以下記述する。これは証明書データ50Aについても同様であり、証明書データ50Aが空であることもある。この場合も被提示者は何を証明するための認証用コードであるのか、あらかじめ何らかの方法で知らされていなければならないが、この方法は本実施形態で限定することは無い。当該証明書データ50Aについても、説明を簡明かつ具体的にするために在るものとして以下記述する。
【0095】
端末10と移動記録・管理装置20Aと証明書管理装置30とは、例えばネットワークを介して接続される。このネットワークは、インターネット、公衆通信網、有線LAN、無線LAN、等を含んでよい。第1の実施形態と同様の構成については、同一の符号を付し、その説明を省略又は簡略化する。
【0096】
証明書管理装置30は、一般的なサーバと同様に、プロセッサ31と、通信デバイス32と、メモリ33と、を備える。証明書管理装置30は、各端末10に配布可能な各種の証明書データ50Aを保持する。証明書データ50Aは、暗号化されていても暗号化されていなくてもよい。本実施形態では、この証明書データ50Aは、認証用コードCD2とは別のデータである。証明書データ50Aは、例えば、資格証明書や身分証明書のデータである。証明書データ50Aは、例えば、電子印影を含む印鑑証明書のデータであってもよい。
【0097】
本実施形態では、例えば証明書データ50Aの所有者(提供者H1)の端末10が、他の人物H(被提供者H2)の端末10に認証用コードCD2を読み取らせることで、この認証用コードCD2を所持する本人であるという本人証明として使用できる。即ち、この認証用コードCD2を実印データとして使用できる。
【0098】
次に、
図9を用いて、物の移動時の移動記録・管理システム5における処理の流れについて説明する。
図9は、階層的な複数のノードの配置例と証明書データ50Aの移動方向の一例とを示す図である。
図9において、
図4と同様の事項については、その説明を省略又は簡略化する。
【0099】
本実施形態では、同一の人物から他の人物へ各種の証明書データ50Aの受渡が発生する。証明書データ50Aの受渡は、証明書データ50Aの提供者H1が証明書データ50Aを提供し、証明書データ50Aの被提供者H2が証明書データ50Aを受け取ることを広く含んでよい。
【0100】
証明書データ50Aの受渡は、同一の人物から他の人物へ連続的に行われてよい。例えば、証明書データ50Aについて、人物HAから人物HBへの受渡が実施された後、人物HAから人物HC、人物HAから人物HD、…、のように連続的に順番に受渡が実施されてよい。つまり、n回目の受渡において、証明書データ50Aの提供者H1は同一であるが、証明書データ50Aの被提供者H2が順番に入れ替わる。証明書データ50Aの提供者H1と証明書データ50Aの被提供者H2とは、端末10を所持可能である。
【0101】
移動記録・管理システム5では、
図4と同様に、証明書データ50Aが移動する順番に応じて、各人物Hや各端末10に関連付けられたノードNDが仮想的に階層的に設置される。証明書データ50Aを提供する人物Hに対応するノードNDが所定の階層に配置され、証明書データ50Aが受渡される毎に、移動記録・管理装置20が下位層のノードNDを生成する。よって、最初はノードNDが1つであり、受渡の度にノードNDが1つずつ増加していく。所定のノードNDは証明書データ50Aの提供者H1(所有者)を示し、所定のノードNDよりも下位層の各ノードNDは、証明書データ50Aの被提供者H2を示している。
【0102】
本実施形態では、接続ラインLNは、同一人物からの証明書データ50Aの提供順序を示す。よって、移動記録・管理システム5の管理者等は、階層的なノードNDの配置関係を確認することで、どのような順序で証明書データ50Aが提供されたかを示す移動の履歴を確認できる。
【0103】
移動記録・管理装置20Aは、複数のノードNDのそれぞれに関連付けて、シード値SDと端末10を認証するための認証用コードCD2とを設定可能である。この場合、移動記録・管理装置20Aは、第n層(nは1以上の整数)のノードNDに関連付けて、暗号化対象のコードである暗号元コードCDを割り当てる。この暗号元コードCDは、例えば、最上位層のノードNDでは任意の数値(例えば乱数)であり、最上位層以外の層のノードNDでは、暗号化対象のノードNDよりも一段上層のノードND(親ノード)のシード値SDに基づく値である。そして、移動記録・管理装置20Aは、暗号元コードCDに対して暗号化して暗号データCRを生成し、暗号データCRを分割することでシード値SDと認証用コードCD2とを算出してよい。そして、移動記録・管理装置20Aは、算出されたシード値SDに基づいて、第n層のノードND(親ノード)の一段下層にある第(n+1)層のノードND(子ノード)の暗号元コードCDを算出してよい。そして、第(n+1)層についても、暗号元コードCDを基に暗号データCR、シード値SD、及び認証用コードCD2等を算出してよい。移動記録・管理装置20Aは、各ノードNDのシード値SDをメモリ23に保持する。
【0104】
このようにして、親ノードのシード値SDに基づいて、子ノードのシード値SDを生成可能である。また、移動記録・管理装置20は、それぞれの異なる被提供者H2の端末10から同一の提供者H1の端末10の認証用コードCD2を取得する度に、このような処理を繰り返すことで、ノードNDを1つずつ生成し、各ノードNDのシード値SD及び認証用コードCD2を設定可能であり、シード値SDを用いて順にチェーンのように関連性を持って各ノードNDを生成可能である。
【0105】
移動記録・管理装置20Aは、生成された第n層や第(n+1)層のノードNDの認証用コードCD2を、証明書データ50Aの提供者H1の端末10に送信する。よって、本実施形態では、各層のノードNDで生成(更新)された認証用コードCD2が、同一の端末10に送信される。提供者H1の端末10は、受け取った認証用コードCD2を保持しておき、認証が必要なタイミング(例えば証明書データ50Aの各他の端末10への提供時)に、移動記録・管理装置20に認証用コードCD2が送信されてよい。そして、移動記録・管理装置20は、提供者H1の端末10からの更新され得る認証用コードCD2を用いて、提供者H1の10を認証してよい。提供者H1の端末10は、証明書データ50Aの提供時に被提供者H2の端末10に、提供毎に更新される認証用コードCD2を送る。
【0106】
逆に、移動記録・管理装置20Aは、第(n+1)層のノードNDに関連付けて、復号化対象のコードである復号元コードCD3を割り当て、復号元コードCD3に対して復号化して復号データDCを生成してよい。復号元コードCD3は、いずれかのシード値SDといずれかの認証用コードCD2との組み合わせである。復号元コードCD3が第(n+1)層のシード値SDといずれかの認証用コードCD2との組み合わせである場合、復号データDCは、第(n+1)層のノードNDの親ノードである第n層のノードNDのシード値SDを含む。つまり、移動記録・管理装置20Aは、取得された子ノードの認証用コードCD2に合致するシード値SDと、親ノードのシード値SDと、を同時に検出できる。
【0107】
次に、移動記録・管理システム5Aの動作例について説明する。
【0108】
図10は、移動記録・管理システム5Aの動作例を示すシーケンス図である。
図11A~
図11Eは、移動記録・管理システム5Aの動作を補足説明するための図である。
図10において、
図6Aに示した移動記録・管理システム5と同様の処理については、同一のステップ符号を付し、その説明を省略又は簡略化する。
【0109】
図10では、人物HAから人物HBに証明書データ50Aを受渡しようとする場面を想定する。この場面では、人物HAが提供者H1であり、人物HBが被提供者H2である。
図10Aの処理開始時には、上述した事前処理が実施済みである。
【0110】
図10の処理開始時には、第1の実施形態と同様に、
図11Aに示すように、メモリ23にシード値SDS,SDAが少なくとも保持され、ハッシュ値HSS,HSAが保持されていてもよい。また、端末10Aに認証用コードCD2Aが送信されて保持されている。また、証明書管理装置30から端末10Aに証明書データ50Aが送付され、端末10Aに保持されている。
【0111】
まず、証明書データ50Aの提供時に、端末10Aは、通信デバイス12が、認証用コードCD2TAを端末10Bに送信する(S11A)。認証用コードCD2TAは、基本的には、移動記録・管理装置20から配布されてメモリ13に保持していた認証用コードCD2Aである。なお、端末10Aが、不正な端末である場合や認証用コードCD2Aが改竄されている場合には、認証用コードCD2TAが認証用コードCD2Aでないこともあり得る。
【0112】
端末10Bは、通信デバイス12が、端末10Aの認証用コードCD2TAを受信する(S16A)。通信デバイス12が、この端末10Aの認証用コードCD2TAを移動記録・管理装置20に送信する(S17)(
図11B参照)。なお、第1の実施形態と同様に、端末10Aが認証用コードCD2TAを表示し端末10Bが認証用コードCD2TAを読み取ってもよい。
【0113】
移動記録・管理装置20Aは、通信デバイス22が、端末10Bからの端末10Aの認証用コードCD2TAを受信する(S21)。プロセッサ21は、受信された端末10Aの認証用コードCD2TAに基づいて、認証用コードCD2TAを保持していた端末10Aの正当性を認証する端末認証処理を実行する(S22)。端末認証処理の具体的な内容は、
図6A、
図6B及び
図6C等に示した内容と同じであるので、説明を省略する。
【0114】
プロセッサ21は、端末認証処理の結果、端末10Aの認証に成功したか否かを判定する(S23)。プロセッサ21は、端末10Aの認証に成功した場合(S23のYes)、次回認証用コード生成処理を実行する(S24)。次回認証用コード生成処理の具体的な内容は、
図6Dに示した内容と同じであるので、説明を省略する。
【0115】
通信デバイス22は、生成された次回の認証用コードCD2Bと端末認証処理の認証結果とを、ステップS21で受信された認証用コードCD2TAを保持していた提供者H1の端末10Aに送信する(S25A)(
図11C参照)。よって、端末10Aを所持する人物HA等は、認証用コードCD2TAが提供者H1以外に提供されると端末認証処理の結果に関係なく、認証用コードCD2が更新されるが、端末認証処理の結果も知ることができる。端末認証処理に成功すると、例えば、端末10Aは、証明書データ50Aを被提供者H2の端末10Bに送信可能にできる。
【0116】
また、メモリ23に保持された1つ以上のシード値に基づいて、移動記録・管理装置20は、各ノードNDや各端末10の移動順序(証明書データ50Aの提供順序)を把握できる。移動記録・管理装置20は、プロセッサ21が、通信デバイス22を介して、端末10A等の端末10に対してこの移動順序を可視化するよう制御(指示)してもよい。
【0117】
端末10Aでは、プロセッサ11は、通信デバイス12を介して移動記録・管理装置20からの次回の認証用コードCD2Bを受信し、メモリ13に認証用コードCD2Bを保持させる(S12)(
図11D参照)。
【0118】
一方、ステップS23において端末10Aの認証に失敗した場合(S23のNo)、移動記録・管理システム5は、
図10の処理を終了する。
【0119】
このようにして、
図10に示した端末10Bが端末10Aから証明書データ50Aを取得する際の移動記録・管理システム5Aによる一連の処理が終了する。移動記録・管理システム5Aは、端末10Aから端末10Bに対して証明書データ50Aを提供することになるので、端末認証処理によって端末10Aが正当な証明書データ50Aの所有者であると判定されたか否かに関わらずに、次回認証用コード生成処理を行う。よって、移動記録・管理システム5Aは、端末10Aから他の端末10(例えば端末10B,10C,…)へ証明書データ50Aが提供される度に、提供者H1の端末10Aが使用する認証用コードCD2を更新する。次回の証明書データ50Aの提供では、端末10Aは端末10B以外の端末10C等に証明書データ50Aを提供する。この際にも、移動記録・管理システム5Aは、
図10に示した処理を繰り返し実施する。
【0120】
例えば、プロセッサ21は、次回の
図10の処理時には、新たな端末(例えば端末10C)を次回の端末10Bに相当する端末とし、今回の認証用コードCD2Bを次回の認証用コードCD2Aに相当する認証用コードとし、今回のシード値SDAを次回の元シード値としてのシード値SDSに相当するシード値とし、今回のシード値SDBを次回のシード値SDAに相当するシード値としてよい。そして、プロセッサ21は、次の被提供者H2の人物HCが所持する端末10Cから、端末10Bから取得された認証用コードCD2TB(新たな認証用コード)を受信すると、次回の端末認証処理と次回認証用コード生成処理とを実施してよい。プロセッサ21は、次回認証用コード生成処理により導出された新たなシード値(例えばシード値SDC)をメモリ23に保持してよい。通信デバイス22は、次回認証用コード生成処理により導出された新たな認証用コード(例えば認証用コードCD2C)を端末10Aに送信してよい。このように、移動記録・管理装置20は、
図10の処理を繰り返し実行する際、上記の情報の置き換えを行って、新たな端末10から新たな認証用コードCD2を受信する度に、端末認証処理とコード生成処理との実行、メモリ23への新たなシード値SDの保存、端末10Aへの新たな認証用コードCD2の送信、を繰り返してよい。
【0121】
このようにして、提供者H1の端末10Aは、複数の異なる被提供者H2の端末10(例えば端末10B,10C,10D,…)に対して、それぞれ異なる認証用コードCD2を用いて証明書データ50Aを提供可能である。例えば、端末10Cが、端末10Aの更新された認証用コードCD2Bに対応し得る認証用コードCD2TBを取得し、この認証用コードCD2TBを移動記録・管理装置20Aに送信してよい(
図11E参照)。これにより、移動記録・管理装置20は、端末10AやノードNDAについての端末認証処理や次回認証用コード生成処理を実施できる。
【0122】
このような端末認証処理によれば、移動記録・管理装置20Aは、証明書データ50A等の提供毎に、提供時の最新の認証用コードCD2を用いて認証を行い、その後に認証用コードCD2を更新することができる。認証用コードCD2は、提供者H1の端末10に毎回通知されるので、移動記録・管理装置20Aは、この認証用コードCD2を用いて認証することで、証明書データ50Aの提供者H1の本人確認を毎回実施できる。
【0123】
なお、ルートノードであるノードNDSに関連付けられた端末10Sを所持する人物Hsが、証明書データ50Aの提供者H1であってもよい。この場合、第1の実施形態と同様に、プロセッサ21は、端末10SにノードNDSの認証用コードCD2Sを送信しておき、シード値SDSの元となった最初の任意のコードを端末10Sの親のシード値として扱うようにしてもよい。これにより、移動記録・管理装置20Aは、提供者H1の端末10Sの正当性を認証できる。
【0124】
本実施形態の移動記録・管理システム5Aは、例えば資格等の証明書データ50Aの提供(例えば提示)に用いられる。例えば、就職活動において、複数の就職希望先(例えば端末10B,10C,‥を所持する人物B,C,…)に自分(例えば端末10Aを所持する人物A)の卒業証明書が提供可能である。あるいは、自分(例えば端末10Aを所持する人物A)のワクチン接種証明書を、訪問予定のそれぞれのレストラン(例えば端末10B,10C,‥を所持する人物B,C,…)等に提供可能である。卒業証明書やワクチン接種証明書は、物理的な紙媒体に印刷等されたものであってもよいし、電子データであってもよい。また、本実施形態では、認証用コードCD2が証明書データ50Aに付加されて(例えば埋め込まれて)使用されることもでき、証明書データ50Aと認証用コードCD2とが一体で移動可能である。
【0125】
なお、各実施形態では、移動記録・管理装置20,20A(まとめて「移動記録・管理装置20等」とも記載する)は、プロセッサ21が、移動順序や提供者H1の端末10が正当であると判別した場合、移動順序や提供者H1の端末10が正当であることを示す情報を端末10に送信してよい。端末10は、プロセッサ11が、通信デバイス12を介してこの情報を受信し、移動順序や提供者H1の端末10が正当であることを示す情報を表示デバイス15に表示させてよい。この場合、端末10Aを所持する物50の提供者H1は、物50を被提供者H2に渡しても安全であることを確認できる。
【0126】
また、移動記録・管理装置20等は、プロセッサ21が、メモリ23に保持されたシード値SDについて端末認証処理の際に復号処理することで、各シード値SDの階層関係を導出し、物50の移動順序の情報を含む移動履歴情報を生成してよい。プロセッサ21は、通信デバイス22を介して、移動履歴情報を例えばツリー構造の情報として可視化し、例えば各端末10の表示デバイス15や管理センタのディスプレイに表示するよう制御(指示)してもよい。
【0127】
<実施形態の概要>
以上のように、上記実施形態の移動記録・管理装置20は、物50の移動を管理する移動記録・管理装置20であって、プロセッサ21と、通信デバイス22と、メモリ23と、を備える。物50が移動する順番に応じて、複数のノードNDが階層的に配置可能である。複数のノードNDのそれぞれに関連付けて、シード値SDと端末10を認証するための認証用コードCD2とが設定可能である。メモリ23は、第1層のノード(例えば親ノード、ノードNDA)に関連付けられた第1のシード値(例えばシード値SDA)と、第1のシード値を導出するための元シード値(例えばシード値SDS)と、を保持している。通信デバイス22は、第3の認証用コード(例えば認証用コードCD2TA)を受信する。プロセッサ21は、第3の認証用コードと元シード値と第1のシード値とに基づいて、第3の認証用コードを保持していた第1の端末(例えば端末10A)を認証する端末認証処理を実行する。プロセッサ21は、第1の端末の認証に成功した場合、第1のシード値に基づいて、第1層よりも一段下層である第2層のノード(例えば子ノード、ノードNDB)に対応する第2のシード値(例えばシード値SDB)と第2の認証用コード(例えば認証用コードCD2B)とを生成するコード生成処理(例えば次回認証用コード生成処理)を実行する。プロセッサ21は、第2のシード値をメモリ23に保存する。通信デバイス22は、前記第1の端末、又は、第3の認証用コードを第1の端末から取得して移動記録・管理装置20へ送信した第2の端末(例えば端末10B)へ、第2の認証用コードを送信する。
【0128】
これにより、移動記録・管理装置20は、第3の認証用コードを取得して、第3の認証用コードを用いて物50の提供者H1に対応する上流端末(例えば端末10A)を認証することで、物50の提供者H1の正当性を保証できる。また、移動記録・管理装置20は、第3の認証用コードを用いて端末認証すると、次回の認証に用いる第2の認証用コードを生成するので、異なる認証用コードを用いて次回の端末認証処理を安全に実施できる。また、予め次回に物50が提供される人物が決まっていない場合でも、予めフロー情報を用意することなく、上流端末の情報に基づいて下流端末用の第2のシード値と第2の認証用コードを生成できる。したがって、移動記録・管理装置20は、様々な人物に物50が提供される場合に、物50を提供する人物がその物を正当に所有する人物であることを認証できる。
【0129】
また、移動記録・管理装置20は、端末認証に成功した場合に限り、次回の認証用コードを発行し、第2の端末に提供できる。よって、端末認証に失敗した場合には、次回の認証用コードが得られないので、以降の物50の受渡を禁止でき、物50の受渡を安全に実施可能である。
【0130】
また、メモリ23は、事前処理で導出された第1のシード値を保持していてよい。事前処理は、所定の元シード値に基づいて、復号可能な暗号方式に用いる第1の関数(例えばハッシュ関数)を用いて、第1層のノードに対応する暗号化対象のコードである第1の暗号元コード(例えば暗号元コードCDA)を暗号化して、第1の暗号データ(例えば暗号データCRA)を生成することと、第1の暗号データを分割して、第1のシード値と第1の認証用コードとを導出することと、を含んでよい。
【0131】
これにより、移動記録・管理装置20は、事前処理における演算によって、第1のシード値と第1の認証用コードと元シード値とを容易に導出できる。
【0132】
また、端末認証処理は、第3の認証用コードと、メモリ23に保持されたシード値SDのうちの1つのシード値SDである第3のシード値(例えばシード値SDA)と、を組み合わせて、復号化対象のコードである復号元コード(例えば復号元コードCD3A)を生成することを含んでよい。端末認証処理は、第1の関数に基づいて、復号元コードを復号化して復号データ(例えば復号データDCA)を導出することを含んでよい。端末認証処理は、復号データが、メモリ23に保持されたいずれかのシード値SDであって、第3のシード値以外の第4のシード値(例えばシード値SDS)と一致するか否かを判定することを含んでよい。端末認証処理は、復号データが第4のシード値と一致した場合、第1の端末の認証に成功したと判定することを含んでよい。
【0133】
物50の移動(例えば流通)では、物50の提供側が物50の受取側よりも上流である。ここでは、復号データDCがメモリ23内の第4のシード値と一致する場合、復号元コードCD3の第3のシード値とメモリ23内の第4のシード値とがチェーンを形成していることを判別できる。よって、移動記録・管理装置20は、第3のシード値に対応するノードNDと第4のシード値に対応するノードNDとが、隣接する上下階層にあり、親ノードと子ノードとの関係にあると判別できる。よって、移動記録・管理装置20は、物50の受渡(特に受渡順序)が正当であり、提供者H1(提供者H1の端末10)が正当であることを認識できる。
【0134】
また、端末認証処理は、復号データがメモリ23に保持された第4のシード値と一致するまで、第2の認証用コードと組み合わせる第3のシード値を順次変更し、復号元コードを順次生成し、復号データを順次導出することを含んでよい。
【0135】
これにより、移動記録・管理装置20は、メモリ23に保持された複数のシード値SDについて、各ノードNDの間の階層に関する情報を保持してなくても、メモリ23内のシード値SDを順に探索することで、復号元コードCD3の復号を成功に導くことができる。
【0136】
また、コード生成処理は、第1のシード値に基づいて、第2層のノードに対応する暗号化対象のコードである第2の暗号元コード(暗号元コードCDB)を導出することを含んでよい。コード生成処理は、第2の暗号元コードを第1の関数を用いて暗号化して、第2の暗号データ(例えば暗号データCRB)を生成することを含んでよい。コード生成処理は、第2の暗号データを分割して、第2のシード値と第2の認証用コードとを導出することを含んでよい。
【0137】
これにより、移動記録・管理装置20は、隣接する階層において、第1層のノードND(親ノード)に対応する第1のシード値に基づいて、一段下層である第2層のノードND(子ノード)に対応する第2の暗号元コードを生成できる。よって、移動記録・管理装置20は、親ノードの第1のシード値と、子ノードの第2の暗号元コードに基づいて導出された第2のシード値と、をメモリ23に保持しておくことで、これらのシード値を次回の端末認証処理に用いることができる。また、移動記録・管理装置20は、導出された第2の認証用コードを第1の端末又は第2の端末に送信しておくことで、復号用の情報の一部を端末10に保持させることができる。よって、仮にメモリ23に保持されたシード値SDが漏洩しても、復号により暗号元コードCDを得ることは困難であるので、移動記録・管理装置20は、システムの信頼性を高く維持できる。
【0138】
また、通信デバイス22は、第3の認証用コードを繰り返し受信可能でよい。プロセッサ21は、端末認証処理とコード生成処理との実行後に、第2の端末を次の第1の端末とし、新たな端末(例えば端末10C)を次の第2の端末とし、第2の認証用コードを次の第1の認証用コードとし、第1のシード値を次の元シード値とし、第2のシード値を次の第1のシード値として、新たな第3の認証用コードを受信する度に、端末認証処理とコード生成処理との実行を繰り返してよい。プロセッサ21は、コード生成処理により繰り返し導出された各第2のシード値をメモリ23に繰り返し保存してよい。通信デバイス22は、コード生成処理により繰り返し導出された各第2の認証用コードを、各第3の認証用コードを送信した各第2の端末(端末10C,10D,10E,…)に繰り返し送信してよい。
【0139】
これにより、移動記録・管理装置20は、物50の移動の順序に対応する各端末10から第3の認証用コードを受信する毎に、つまり物50の受渡毎に、物50の提供者H1の端末10の認証(端末認証処理)と被提供者H2が次回の物提供時に用いる新たな第2の認証用コードの生成(コード生成処理)とを繰り返し実施できる。よって、物50の受渡毎に、物50の受渡の安全性を保証できる。
【0140】
また、通信デバイス22は、第3の認証用コードを繰り返し受信可能でよい。プロセッサ21は、端末認証処理とコード生成処理との実行後に、新たな端末を次の第2の端末とし、第2の認証用コードを次の第1の認証用コードとし、第1のシード値を次の元シード値とし、第2のシード値を次の第1のシード値として、新たな第3の認証用コードを受信する毎に、端末認証処理とコード生成処理との実行を繰り返してよい。プロセッサ21は、コード生成処理により繰り返し導出された各第2のシード値をメモリ23に保存してよい。通信デバイス22は、コード生成処理により繰り返し導出された各第2の認証用コードを、第1の端末に送信してよい。
【0141】
これにより、移動記録・管理装置20は、第1の端末(提供者H1の端末10)から第3の認証用コードを受信する毎に、つまり物50の受渡毎に、物50の提供者H1の端末10の認証(端末認証処理)と物50の提供者H1が次回の物提供時に用いる新たな第2の認証用コードの生成(コード生成処理)とを繰り返し実施できる。例えば、物提供時に被提供者H2の端末10が提供者H1の第3の認証用コードを取得する度に、移動記録・管理装置20は、第2のシード値と第2の認証用コードとを変更できる。よって、同一の提供者H1から異なる被提供者H2への物50の受渡毎に、物50の受渡の安全性を保証できる。なお、ここでは、物50の受渡が伴わず、提供者H1から被提供者H2へ物50を提示(例えば電子データの表示を見せるのみ)であってもよい。
【0142】
また、事前処理は、第1の暗号データに基づいて、一方向性関数を用いた演算結果の値である第1の一方向性関数値(例えばハッシュ値HSA)を算出することを含んでよい。事前処理は、第1のシード値と第1の一方向性関数値とを対にしてメモリ23に保存することを含んでよい。端末認証処理は、第3のシード値と第3の認証用コードとを組み合わせた復号化対象のコードである復号元コード(例えば復号元コードCD3A)に基づいて、一方向性関数を用いて第2の一方向性関数値(例えばハッシュ値HSA’)を算出することを含んでよい。端末認証処理は、メモリ23に、第2の一方向性関数値と一致する第1の一方向性関数値が保持されているか否かを判定することを含んでよい。端末認証処理は、第2の一方向性関数値と一致する第1の一方向性関数値が保持されている場合、第1の端末が正当であると判定することを含んでよい。
【0143】
これにより、移動記録・管理装置20は、第1の一方向性関数値に対応するノードに対応する端末10の上流下流の関係性(受渡の順番の正当性)だけでなく、端末10自体の正当性も認証できる。
【0144】
また、第1の認証用コード、第2の認証用コード、及び第3の認証用コードは、n次元コード(nは1以上の整数)でよい。
【0145】
これにより、移動記録・管理装置20は、提示や読み取りのし易いコードの形式で各認証用コードを提供可能である。よって、物50の提供者は、被提供者に対して容易に認証用コードを提示可能であり、被提供者は提供者からの端末10から簡単に認証用コードを読取可能である。
【0146】
また、物50は、電子データ(例えば証明書データ)を含んでよい。これにより、移動記録・管理装置20は、物理的な物50だけでなく、電子的な物50である電子データの受渡についても、認証用コードを用いて提供者の端末10を認証でき、次回の認証のための認証用コードを生成できる。よって、移動記録・管理装置20は、連続的に電子データの提供者の端末10の正当性を認証できる。
【0147】
以上、図面を参照しながら各種の実施の形態について説明したが、本発明はかかる例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。また、発明の趣旨を逸脱しない範囲において、上記実施の形態における各構成要素を任意に組み合わせてもよい。
【0148】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現可能である。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「先ず、」、「次に」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【産業上の利用可能性】
【0149】
本開示は、人物に物が提供される場合に、物を提供する人物がその物を正当に所有している人物であることを認証できる移動記録・管理装置、移動記録・管理システム及び移動記録・管理方法等に有用である。
【符号の説明】
【0150】
5,5A 移動記録・管理システム
10,10A,10B 端末
11 プロセッサ
12 通信デバイス
13 メモリ
14 操作デバイス
15 表示デバイス
20 移動記録・管理装置
21 プロセッサ
22 通信デバイス
23 メモリ
30 証明書管理装置
CD 暗号元コード
CD2,CD2TA 認証用コード
CD3 復号元コード
CR 暗号データ
DC 復号データ
HS ハッシュ値
ND ノード
SD シード値