JP2019041321A - データ受信装置、データ伝送システム、及び鍵生成装置 - Google Patents
データ受信装置、データ伝送システム、及び鍵生成装置 Download PDFInfo
- Publication number
- JP2019041321A JP2019041321A JP2017163283A JP2017163283A JP2019041321A JP 2019041321 A JP2019041321 A JP 2019041321A JP 2017163283 A JP2017163283 A JP 2017163283A JP 2017163283 A JP2017163283 A JP 2017163283A JP 2019041321 A JP2019041321 A JP 2019041321A
- Authority
- JP
- Japan
- Prior art keywords
- mac
- secret key
- function processing
- communication device
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0863—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0847—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/10—Integrity
- H04W12/102—Route integrity, e.g. using trusted paths
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Small-Scale Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
【課題】データが改ざんされていないか、及び、データが正しい経路で伝送されているかを検証する。【解決手段】データ受信装置1は、データと、個別識別子の系列と、中継装置が生成したMACとを受信する受信部3と、所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する疑似ランダム関数処理部5と、所定のMAC生成関数による演算を行うことでMACを生成するMAC生成関数処理部6と、帰納的に、1階層目からN階層目までの各通信装置の個別識別子に対応する秘密鍵を生成するよう制御する疑似ランダム関数処理制御部7と、帰納的に、N階層目から1階層目までの各通信装置に対応するMACを生成するよう制御するMAC生成関数処理制御部8と、受信したMACと、生成された1階層目の通信装置に対応するMACとを比較する比較部9とを有する。【選択図】図1
Description
本発明はデータ受信装置、データ伝送システム、及び鍵生成装置に関する。
近年、IoT(Internet of Things)技術が注目されている。IoT技術では、データをどのように伝送するかが重要となる。データの伝送方法として、マルチホップ通信が知られている。これに関連して、例えば、特許文献1では、親ノードと複数の子ノードが存在し、子ノードが他の子ノードを介して親ノードにデータを送信するシステムについて開示している。また、特許文献2は、データ送信元の機器が、データに対して認証符号を付加させて中継機器にデータを送信する技術について開示している。
マルチホップ通信では、中継装置を介してデータが伝送される。このため、伝送されたデータが正しいデータであるか否かを確認することに加え、伝送されたデータが正しい経路で伝送されているか否かを確認することも重要である。したがって、伝送されたデータが改ざんされていないか、及び、伝送されたデータが正しい経路で伝送されているかを検証することができる新規な手法の提案が期待されている。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、データ受信装置は、中継装置を介して、データと、送信元装置及び前記中継装置の個別識別子の系列と、前記中継装置が生成したMACとを受信する受信部と、所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する疑似ランダム関数処理部と、所定のMAC生成関数による演算を行うことでMACを生成するMAC生成関数処理部と、前記疑似ランダム関数処理部により、帰納的に、1階層目からN階層目までの各通信装置の個別識別子に対応する秘密鍵を生成するよう制御する疑似ランダム関数処理制御部と、前記MAC生成関数処理部により、帰納的に、N階層目から1階層目までの各通信装置に対応するMACを生成するよう制御するMAC生成関数処理制御部と、前記受信部が受信したMACと、前記MAC生成関数処理部により生成された1階層目の通信装置に対応するMACとを比較する比較部とを有する。
前記一実施の形態によれば、伝送されたデータが改ざんされていないか、及び、伝送されたデータが正しい経路で伝送されているかを検証することができる。
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
<実施の形態の概要>
まず、実施の形態の詳細な説明に先立って、実施の形態の概要について説明する。図1は、実施の形態の概要にかかるデータ受信装置1の構成の一例を示すブロック図である。図1に示すように、データ受信装置1は、秘密鍵記憶部2と、受信部3と、識別子抽出部4と、疑似ランダム関数処理部5と、MAC生成関数処理部6と、疑似ランダム関数処理制御部7と、MAC生成関数処理制御部8と、比較部9とを有する。データ受信装置1は、複数の通信装置により構成されるネットワークにおいて、マルチホップ通信によりデータ(メッセージとも称す)を受信する通信装置である。つまり、このネットワークは、データの送信元の通信装置である送信元装置と、データの伝送を中継する通信装置である中継装置と、データを受信する通信装置(データの宛先の通信装置)であるデータ受信装置1を含む。データ受信装置1は、送信元装置が送信したデータを、中継装置を介して、受信する。
まず、実施の形態の詳細な説明に先立って、実施の形態の概要について説明する。図1は、実施の形態の概要にかかるデータ受信装置1の構成の一例を示すブロック図である。図1に示すように、データ受信装置1は、秘密鍵記憶部2と、受信部3と、識別子抽出部4と、疑似ランダム関数処理部5と、MAC生成関数処理部6と、疑似ランダム関数処理制御部7と、MAC生成関数処理制御部8と、比較部9とを有する。データ受信装置1は、複数の通信装置により構成されるネットワークにおいて、マルチホップ通信によりデータ(メッセージとも称す)を受信する通信装置である。つまり、このネットワークは、データの送信元の通信装置である送信元装置と、データの伝送を中継する通信装置である中継装置と、データを受信する通信装置(データの宛先の通信装置)であるデータ受信装置1を含む。データ受信装置1は、送信元装置が送信したデータを、中継装置を介して、受信する。
秘密鍵記憶部2は、予め定められた秘密鍵である宛先装置鍵を記憶する。
受信部3は、中継装置を介して、情報を受信する。具体的には、受信部3は、データと、送信元装置及び中継装置の個別識別子の系列と、中継装置が生成したMAC(Message Authentication Code)とを受信する。個別識別子は、中継装置及び送信元装置に予め割り当てられた識別子である。個別識別子の系列とは、データがデータ受信装置1に届くまでの伝送経路上の通信装置の個別識別子を、伝送経路上の順序に対応させて並べたものである。
受信部3は、中継装置を介して、情報を受信する。具体的には、受信部3は、データと、送信元装置及び中継装置の個別識別子の系列と、中継装置が生成したMAC(Message Authentication Code)とを受信する。個別識別子は、中継装置及び送信元装置に予め割り当てられた識別子である。個別識別子の系列とは、データがデータ受信装置1に届くまでの伝送経路上の通信装置の個別識別子を、伝送経路上の順序に対応させて並べたものである。
上述の通り、送信元装置からデータ受信装置1までの伝送経路上には中継装置が存在している。このため、データ受信装置1を最上位層の通信装置とし、送信元装置を最下層の通信装置とすると、伝送経路上の各通信装置は階層構成となっている。ここで、データ受信装置1を、0階層目の通信装置とすると、データをデータ受信装置1に直接送信する通信装置は、1階層目の通信装置ということができる。さらに、p個(pは正整数)の中継装置を経て、送信元装置からのデータがデータ受信装置1に届く場合、この送信元装置は、p+1階層目の通信装置ということができる。
識別子抽出部4は、データの伝送経路上の各階層の通信装置の個別識別子を、受信部3が受信した系列から抽出する。なお、識別子抽出部4は、任意の方法により、系列から各個別識別子を抽出すればよい。例えば、各階層の通信装置の個別識別子の長さ(すなわち、ビット長)は予め定められており、識別子抽出部4は、この予め定められた長さに基づいて、系列からそれぞれの個別識別子を抽出してもよい。
疑似ランダム関数処理部5は、所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する。導出された秘密鍵は、MAC生成関数処理部6による処理で用いられる。また、MAC生成関数処理部6は、所定のMAC生成関数による演算を行うことでMACを生成する。
疑似ランダム関数処理制御部7は、疑似ランダム関数処理部5による処理を制御する。具体的には、疑似ランダム関数処理制御部7は、宛先装置鍵と1階層目の通信装置の抽出された個別識別子を疑似ランダム関数処理部5に入力して秘密鍵を導出させる。また、疑似ランダム関数処理制御部7は、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を疑似ランダム関数処理部5に入力して、帰納的に秘密鍵を導出させる。このようにして、疑似ランダム関数処理制御部7は、1階層目からN階層目までの各通信装置の個別識別子に対応する秘密鍵を生成するよう制御する。
MAC生成関数処理制御部8は、MAC生成関数処理部6による処理を制御する。具体的には、MAC生成関数処理制御部8は、受信部3が受信したデータとN階層目の通信装置の抽出された個別識別子に対応する秘密鍵とをMAC生成関数処理部6に入力してMACを導出させる。また、MAC生成関数処理制御部8は、導出されたMACとm階層目(mはN−1以下1以上の正整数)の通信装置の抽出された個別識別子に対応する秘密鍵とをMAC生成関数処理部6に入力して、帰納的にMACを導出させる。このようにして、MAC生成関数処理制御部8は、N階層目から1階層目までの各通信装置に対応するMACを生成するよう制御する。
比較部9は、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとを比較する。
改ざんが行われたデータをデータ受信装置1が受信した場合、MAC生成関数処理部6に適切なデータが入力されないこととなるため、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとは異なることとなる。
また、改ざんされたMACをデータ受信装置1が受信した場合も、MAC生成関数処理部6に適切なMACが入力されないこととなるため、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとは異なることとなる。
さらに、改ざんが行われた個別識別子の系列をデータ受信装置1が受信した場合、疑似ランダム関数処理部5に適切な個別識別子が入力されないこととなるため、適切な秘密鍵が生成されない。このため、MAC生成関数処理部6に適切な秘密鍵が入力されないこととなるため、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとは異なることとなる。
また、改ざんされたMACをデータ受信装置1が受信した場合も、MAC生成関数処理部6に適切なMACが入力されないこととなるため、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとは異なることとなる。
さらに、改ざんが行われた個別識別子の系列をデータ受信装置1が受信した場合、疑似ランダム関数処理部5に適切な個別識別子が入力されないこととなるため、適切な秘密鍵が生成されない。このため、MAC生成関数処理部6に適切な秘密鍵が入力されないこととなるため、受信部3が受信したMACと、MAC生成関数処理部6により生成された1階層目の通信装置に対応するMACとは異なることとなる。
このため、比較部9の比較により、両MACが一致すると判定された場合、正しいデータが正しい経路で伝送されたことを意味する。また、比較部9の比較により、両MACが一致しないと判定された場合、データが改ざんされているか、又は、データが正しい経路で伝送されていないことを意味する。よって、データ受信装置1によれば、伝送されたデータが改ざんされていないか、及び、伝送されたデータが正しい経路で伝送されているかを検証することができる。
<実施の形態1>
次に、実施の形態の詳細について説明する。図2は、実施の形態1にかかるデータ伝送システム10のネットワーク構成の一例を示す模式図である。データ伝送システム10は、複数の通信装置により構成されるネットワークにおいて、マルチホップ通信によりデータ(メッセージとも称す)を伝送するシステムである。
次に、実施の形態の詳細について説明する。図2は、実施の形態1にかかるデータ伝送システム10のネットワーク構成の一例を示す模式図である。データ伝送システム10は、複数の通信装置により構成されるネットワークにおいて、マルチホップ通信によりデータ(メッセージとも称す)を伝送するシステムである。
データ伝送システム10では、送信されたデータを最終的に受信する通信装置である通信装置100_0を最上位のノードとして、ツリー状にネットワークが構成されている。言い換えると、データ伝送システム10では、ツリー状に通信経路が結ばれている。最上位のノードである通信装置100_0には、1以上の通信装置が通信可能に接続されている。図2に示した例では、通信装置100_0は、通信装置100_1a、100_1b、100_1cと、通信可能に接続されている。通信装置100_0と通信可能に接続する通信装置は、それぞれ、0以上の通信装置が通信可能に接続されている。図2に示した例では、通信装置100_1bに対し、通信装置100_2a、100_2b、100_2cが接続されている。データ伝送システム10のネットワーク構成では、同様に、さらに通信装置を接続可能である。図2に示した例では、通信装置100_2bに対し、通信装置100_3a、100_3bが接続されている。なお、データ伝送システム10において、各通信装置は、無線通信により相互に通信してもよいし、有線通信により相互に通信してもよい。
このように、データ伝送システム10においては、階層的に、各通信装置が通信可能に接続されている。なお、図2に示した例では、最上位のノードである通信装置100_0は、3階層のネットワークと接続しているが、階層数は一例であり、実施の形態がこれに限定されないことは言うまでもない。また、各通信装置に接続している通信装置の数も一例であり、実施の形態がこれに限定されないことは言うまでもない。
以下の説明では、最上位のノードである通信装置100_0と直接的に通信可能に接続されている通信装置(図2の例では、通信装置100_1a、100_1b、100_1c)を1階層目の通信装置と称す。また、1階層目の通信装置と直接的に通信可能に接続されている下位の通信装置(図2の例では、通信装置100_2a、100_2b、100_2c)を2階層目の通信装置と称す。同様に、n−1階層目の通信装置と直接的に通信可能に接続されている下位の通信装置をn階層目の通信装置と称す。また、データ伝送システム10を構成する通信装置について、これらを区別せず、通信装置100と称すことがある。
上述の通り、データ伝送システム10において、データはマルチホップ通信により伝送される。このため、データ伝送システム10は、データの送信元の通信装置である送信元装置と、データの伝送を中継する通信装置である中継装置と、データを受信する通信装置(データの宛先の通信装置)であるデータ受信装置を含む。そして、データ受信装置は、送信元装置が送信したデータを、中継装置を介して、受信する。
図2に示したデータ伝送システム10では、例えば、通信装置100_3a、100_3b、100_2a、100_2c、100_1a、100_1cが、送信元装置である。また、図2に示したデータ伝送システム10では、例えば、通信装置100_2b、100_1bが、中継装置である。また、図2に示したデータ伝送システム10では、通信装置100_0がデータ受信装置である。すなわち、通信装置100_0は、上述のデータ受信装置1に相当する。
データ受信装置である通信装置100_0は、例えば、クラウドやサーバなどといった、計算能力が比較的高い計算機である。また、中継装置又は送信元装置である、通信装置100_0以外の通信装置は、例えば、半導体装置や組み込み機器などといった、計算能力が比較的低い電子機器である。
データ伝送システム10において、送信元装置又は中継装置である通信装置100は、ローカルIDが割り当てられている。ここで、ローカルIDは、上述の個別識別子であり、通信装置100を識別するための識別子である。ローカルID(個別識別子)は、同一の通信装置100に対し直接的に接続する下位の通信装置100を少なくとも一意に特定することができる識別子である。したがって、ローカルID(個別識別子)は、データ伝送システム10における通信装置100を一意に特定できる識別子でなくてもよい。例えば、同一の通信装置100_1bの直接的な下位の通信装置である通信装置100_2a、100_2b、100_2cに対しては、それぞれ互いに異なるローカルIDが割り当てられている。また、例えば、通信装置100_2aのローカルIDと通信装置100_3aのローカルIDとが同じであってもよい。
ローカルIDは、例えば、通信装置100のIPアドレスであってもよいし、通信装置100のシリアル番号であってもよいし、通信装置100の製造番号であってもよい。なお、本実施の形態では、ローカルIDは、後述する派生鍵設定値とは異なる値である。派生鍵設定値は、例えば0である。このため、ローカルIDには、例えば、0より大きな整数が用いられる。ローカルIDの長さは各階層に対して自由に設定可能である。ただし、上述の通り、ある通信装置が管理する下位ノードの数の上限は、ローカルIDのビット数をAとしたとき2^Aを超えないものとする。本実施の形態では、ローカルIDは、派生鍵設定値とは異なる値が用いられるため、実際には、ある通信装置が管理する下位ノードの数の上限は、2^A−1を超えないこととなる。このように、ローカルIDの長さに対して指数的な数の通信装置をネットワークに参加させることができる。
また、ローカルID(個別識別子)が割り当てられている通信装置100は、階層化識別子を有する。階層化識別子は、ローカルID(個別識別子)が割り当てられている通信装置100のそれぞれに一意に関連づけられる識別子である。階層化識別子は、当該階層化識別子に関連づけられる通信装置100のローカルID(個別識別子)と、当該通信装置100からの予め定められたデータ伝送経路上の各通信装置100のローカルID(個別識別子)とを組み合わせて構成される識別子である。具体的には、例えば、これらのローカルIDを、伝送経路上の順序に対応させて並べて構成される識別子である。つまり、階層化識別子は、ある通信装置100からデータ受信装置までの予め定められたデータ伝送経路上の各通信装置100の個別識別子を組み合わせて構成される識別子である。以下、階層化識別子のことを階層化IDと称す。
ここで、階層化IDについて具体例を示して説明する。図2に示した通信装置100_1bのローカルIDがID1、通信装置100_2bのローカルIDがID2、通信装置100_3aのローカルIDがID3であった場合、通信装置100_3aの階層化IDは{ID1,ID2,ID3}であり、通信装置100_2bの階層化IDは{ID1,ID2}である。なお、通信装置100_1bの階層化IDは、通信装置100_1bのローカルIDと同じとなる。このように、階層化IDによって、ネットワークにより通信装置100_0に接続されている通信装置100を一意に特定できる。
ここで、通信装置100の構成について具体的に説明する。
まず、データ受信装置である通信装置100(図2に示した例では、通信装置100_0)の構成について説明する。図3は、データ受信装置である通信装置100の構成の一例を示すブロック図である。データ受信装置としての通信装置100は、受信装置201と、送信装置202と、鍵生成装置203と、検証装置204とを有する。
まず、データ受信装置である通信装置100(図2に示した例では、通信装置100_0)の構成について説明する。図3は、データ受信装置である通信装置100の構成の一例を示すブロック図である。データ受信装置としての通信装置100は、受信装置201と、送信装置202と、鍵生成装置203と、検証装置204とを有する。
受信装置201は、上述の受信部3に相当し、他の通信装置100から送信された情報を受信する受信回路により構成された受信器である。また、送信装置202は、他の通信装置100へ情報を送信する送信回路により構成された送信器である。受信装置201及び送信装置202は、1つの送受信装置として構成されていてもよい。受信装置201は、受信部と称されることがあり、送信装置202は、送信部と称されることがある。
受信装置201は、中継装置を介して、送信対象であるデータと、送信元装置及び中継装置のローカルIDの系列と、中継装置が生成したMACとを受信する。ここで、この系列は、中継経路を示しており、正しい中継経路により伝送が行われた場合、送信元装置の階層化IDと一致する。送信装置202は、鍵生成装置203により生成された秘密鍵を送信する。
鍵生成装置203は、送信元装置及び中継装置に割り当てられる秘密鍵を生成する装置である。鍵生成装置203は、送信元装置の通信装置100及び中継装置の通信装置100に対し、階層化IDに基づいて秘密鍵を生成する。送信装置202は、生成した秘密鍵を、送信元装置の通信装置100及び中継装置の通信装置100に送付する。データ受信装置が送信元装置及び中継装置のそれぞれの階層化IDについての情報を有している場合、データ受信装置は、各階層化IDを用いて、各通信装置100に対する秘密鍵をそれぞれ生成する。例えば、各通信装置100のローカルIDをデータ受信装置が決定する場合、データ受信装置は各通信装置100の階層化IDがわかる。これに対し、例えば、中継装置が、ネットワークに追加された下位の通信装置100に対してローカルIDを決定する場合、この下位の通信装置100の階層化IDがデータ受信装置に通知された時点で、データ受信装置は当該下位の通信装置100に対する秘密鍵を生成する。なお、秘密鍵の送受信にかかる通信は改ざん及び盗聴が行われていない環境で行われるものとする。
検証装置204は、データ受信装置である通信装置100に伝送されたメッセージについて検証する装置である。検証装置204は、受信装置201が、中継装置から受信したメッセージ、MAC、及びローカルIDの系列(送信元装置の階層化IDに相当)を受信すると、メッセージの正当性の検証及びメッセージが正しい中継装置を経由して伝送されたか否かの検証を行う。なお、鍵生成装置203及び検証装置204の詳細については、後述する。
次に、送信元装置である通信装置100(図2に示した例では、通信装置100_3a、100_3b、100_2a、100_2c、100_1a、100_1c)の構成について説明する。図4は、送信元装置である通信装置100の構成の一例を示すブロック図である。送信元装置としての通信装置100は、受信装置301と、送信装置302と、認証生成装置303とを有する。
受信装置301は、他の通信装置100から送信された情報を受信する受信回路により構成された受信器である。また、送信装置302は、他の通信装置100へ情報を送信する送信回路により構成された送信器である。受信装置301及び送信装置302は、1つの送受信装置として構成されていてもよい。受信装置301は、受信部と称されることがあり、送信装置302は、送信部と称されることがある。
認証生成装置303は、メッセージについての認証を生成する装置であり、具体的には、MACを生成する装置である。認証生成装置303は、疑似ランダム関数処理部311と、疑似ランダム関数処理制御部312と、MAC生成関数処理部321と、MAC生成関数処理制御部322とを有する。認証生成装置303は、データ受信装置により生成された秘密鍵を用いて、当該秘密鍵から派生した秘密鍵(以下、派生鍵と称す)を疑似ランダム関数処理部311により生成する。そして、この派生鍵を用いて、MAC生成関数処理部321により、送信対象のデータであるメッセージについてのMACを算出する。
疑似ランダム関数処理部311は、所定の疑似ランダム関数による演算を行うことで秘密鍵(派生鍵)を導出する。所定の疑似ランダム関数は、秘密鍵および任意の長さの値を入力とし、任意の長さの暗号学的に乱数と識別できない値を出力する関数である。疑似ランダム関数では、所定の秘密鍵とともに同じメッセージを入力すると、関数の出力は常に同じとなる。共通鍵暗号又はハッシュ関数をベースとした鍵導出関数、べき乗演算を利用した安全性が証明された任意の鍵導出関数のうちいずれが疑似ランダム関数として用いられてもよい。なお、後述する疑似ランダム関数処理部411及び疑似ランダム関数処理部211においても、疑似ランダム関数処理部311と同じ疑似ランダム関数が用いられる。
また、疑似ランダム関数処理制御部312は、当該送信元装置に割り当てられた秘密鍵と派生鍵設定値とを疑似ランダム関数処理部311に入力して、当該送信元装置に固有の秘密鍵を生成するよう制御する。なお、派生鍵設定値は、所定値であり、例えば0である。後述する疑似ランダム関数処理部411においても、疑似ランダム関数処理部311と同じ派生鍵設定値が用いられる。また、後述する疑似ランダム関数処理部211においても、派生鍵設定値が入力される場合には、疑似ランダム関数処理部311と同じ派生鍵設定値が用いられる。また、本実施の形態では、疑似ランダム関数処理部311に入力される秘密鍵は、データ受信装置の鍵生成装置203の後述する疑似ランダム関数処理部211により生成された秘密鍵である。受信装置301は、鍵生成装置203により生成された秘密鍵を受信し、疑似ランダム関数処理部311は、この受信した秘密鍵を用いて派生鍵を生成する。
MAC生成関数処理部321は、所定のMAC生成関数による演算を行うことでMACを生成する。所定のMAC生成関数は、共通鍵暗号あるいはハッシュ関数を利用して、メッセージ認証子(Message Authentication Code)を生成する関数である。共通鍵暗号を用いたCMAC(Cipher-based MAC)、ハッシュ関数を用いたHMAC(Hash-based MAC)など、安全性が保証された手法であればいずれの関数がMAC生成関数として用いられてもよい。なお、後述するMAC生成関数処理部421及びMAC生成関数処理部221においても、MAC生成関数処理部321と同じ疑似ランダム関数が用いられる。
MAC生成関数処理制御部322は、送信対象のデータ(メッセージ)と当該送信元装置に固有の秘密鍵とをMAC生成関数処理部321に入力して、データについてのMACを生成するよう制御する。本実施の形態では、MAC生成関数処理制御部322は、疑似ランダム関数処理部311により生成された秘密鍵(派生鍵)を当該送信元装置に固有の秘密鍵としてMAC生成関数処理部321に入力する。なお、MAC生成関数処理部321には、送信対象のデータが入力されるため、任意長の長さの値がメッセージとして入力される。
送信装置302は、送信対象のデータであるメッセージと、MAC生成関数処理部321が生成したMACと、当該送信元装置のローカルIDとを、当該送信元装置の上位のノードである中継装置に送信する。
次に、中継装置である通信装置100(図2に示した例では、通信装置100_2b、100_1b)の構成について説明する。図5は、中継装置である通信装置100の構成の一例を示すブロック図である。中継装置としての通信装置100は、受信装置401と、送信装置402と、認証生成装置403とを有する。
受信装置401は、他の通信装置100から送信された情報を受信する受信回路により構成された受信器である。また、送信装置402は、他の通信装置100へ情報を送信する送信回路により構成された送信器である。受信装置401及び送信装置402は、1つの送受信装置として構成されていてもよい。受信装置401は、受信部と称されることがあり、送信装置402は、送信部と称されることがある。
データの伝送の中継が行われる際、受信装置401は、送信対象のデータと、MACと、通信装置100の個別識別子とを受信する。
認証生成装置403は、認証生成装置303と同様、メッセージについての認証を生成する装置であり、具体的には、MACを生成する装置である。認証生成装置403は、疑似ランダム関数処理部411と、疑似ランダム関数処理制御部412と、MAC生成関数処理部421と、MAC生成関数処理制御部422とを有する。認証生成装置403は、データ受信装置により生成された秘密鍵を用いて、当該秘密鍵から派生鍵を疑似ランダム関数処理部411により生成する。そして、この派生鍵を用いて、MAC生成関数処理部421により、受信装置401が受信したMACについてのMACを算出する。
疑似ランダム関数処理部411は、疑似ランダム関数処理部311と同様、所定の疑似ランダム関数による演算を行うことで秘密鍵(派生鍵)を導出する。また、疑似ランダム関数処理制御部412は、当該中継装置に割り当てられた秘密鍵と派生鍵設定値とを疑似ランダム関数処理部411に入力して、当該中継装置に固有の秘密鍵を生成するよう制御する。本実施の形態では、疑似ランダム関数処理部411に入力される秘密鍵は、データ受信装置の鍵生成装置203の後述する疑似ランダム関数処理部211により生成された秘密鍵である。
MAC生成関数処理部421は、MAC生成関数処理部321と同様、所定のMAC生成関数による演算を行うことでMACを生成する。MAC生成関数処理制御部422は、受信装置401が受信したMACと当該中継装置に固有の秘密鍵とをMAC生成関数処理部421に入力して、受信装置401が受信したMACについてのMACを生成するよう制御する。本実施の形態では、MAC生成関数処理制御部422は、疑似ランダム関数処理部411により生成された秘密鍵をMAC生成関数処理部421に入力する。なお、MAC生成関数処理部421には、受信装置401により受信されたMACがメッセージとして入力されるため、MAC生成関数処理部421にメッセージとして入力される値のビット長は、算出されるMACのビット長となる。
送信装置402は、送信対象のデータであるメッセージと、MAC生成関数処理部421が生成したMACと、当該中継装置のローカルID及び受信装置401が受信したローカルIDとを、上位のノードである通信装置(すなわち、他の中継装置又はデータ受信装置)に送信する。なお、当該中継装置にメッセージを直接送信した通信装置100が中継装置である場合、当該中継装置の受信装置401は送信元装置から当該中継装置までの通信装置100についての複数のローカルIDを受信することとなる。このため、そのような場合には、送信装置402は、当該中継装置のローカルIDとともに複数の受信したローカルID群を上位のノードである通信装置に送信する。
次に、データ受信装置の鍵生成装置203及び検証装置204の詳細について説明する。図6は、データ受信装置である通信装置100の詳細な構成の一例を示すブロック図である。図6に示すように、データ受信装置である通信装置100は、検証装置204の構成として、秘密鍵記憶部230と、階層分離部240と、疑似ランダム関数処理部211と、疑似ランダム関数処理制御部212と、MAC生成関数処理部221と、MAC生成関数処理制御部222と、比較部250とを有する。ここで、秘密鍵記憶部230、階層分離部240、疑似ランダム関数処理部211、及び疑似ランダム関数処理制御部212により鍵生成装置203が構成される。
秘密鍵記憶部230は、上述の秘密鍵記憶部2に相当し、予め定められた秘密鍵である宛先装置鍵を記憶する。秘密鍵記憶部230は、例えばセキュアストレージなどの任意の安全な記憶装置により実現される。宛先装置鍵はデータ受信装置が有する秘密鍵であり、この宛先装置鍵に基づいて、送信元装置及び中継装置に割り当てられる秘密鍵が生成される。
階層分離部240は、送信元装置及び中継装置に配布するための秘密鍵の生成が行われる際、すなわち、鍵生成装置203として機能する際、次のように動作する。階層分離部240は、秘密鍵の配布対象である通信装置100の階層化IDから、伝送経路上の各階層の通信装置100のローカルIDを抽出する。例えば、秘密鍵の配布対象が図2に示す通信装置100_3aである場合、階層分離部240は、通信装置100_3aの階層化IDから、ID3、ID2、及びID1をそれぞれ抽出する。このように、階層分離部240は、秘密鍵の配布対象である通信装置100がネットワークにおけるN階層目の通信装置である場合、1階層目の通信装置100からN階層目の通信装置100までのN個のローカルIDを抽出する。
また、階層分離部240は、送信元装置からのデータの伝送が行われた際、すなわち、検証装置204として機能する際、次のようにローカルIDを抽出する。階層分離部240は、データの伝送経路上の各階層の通信装置100のローカルIDを、受信装置201が受信したローカルIDの系列から抽出する。上述の通り、送信元装置及び中継装置は、上位の通信装置にデータを転送する際、自装置のローカルIDを転送対象の情報に追加する。このため、データ受信装置の受信装置201は、伝送経路上の各通信装置100(すなわち、送信元装置からデータ受信装置までの各階層の通信装置100)のローカルIDの系列を受信する。階層分離部240は、この受信された系列から、各階層のローカルIDを分離して抽出する。階層分離部240は、階層ごとのローカルIDの長さに応じて、受信した系列を分離して、各ローカルIDを抽出する。このように、階層分離部240は、N個のローカルIDの系列が受信された場合、1階層目の通信装置100からN階層目の通信装置100までのN個のローカルIDを抽出する。
なお、階層分離部240は、上述の識別子抽出部4に相当する。
なお、階層分離部240は、上述の識別子抽出部4に相当する。
疑似ランダム関数処理部211は、疑似ランダム関数処理部311と同様、所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する。疑似ランダム関数処理部211の処理は、疑似ランダム関数処理制御部212によって制御される。疑似ランダム関数処理部211は、上述の疑似ランダム関数処理部5に相当する。また、疑似ランダム関数処理制御部212は、上述の疑似ランダム関数処理制御部7に相当する。
疑似ランダム関数処理制御部212は、送信元装置及び中継装置に配布するための秘密鍵を生成する際、すなわち、鍵生成装置203として機能する際、階層分離部240により抽出されたローカルIDを上位の階層から順に疑似ランダム関数処理部211に入力して、帰納的な制御を行う。具体的には、疑似ランダム関数処理制御部212は、次のような制御を行う。
疑似ランダム関数処理制御部212は、宛先装置鍵と、1階層目の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して秘密鍵を導出させる。また、疑似ランダム関数処理制御部212は、これにより導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは階層分離部240により抽出されたローカルIDの数)の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して、帰納的に秘密鍵を導出させる。
つまり、疑似ランダム関数処理制御部212は、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部212は、秘密鍵の配布対象であるN階層目の所定の通信装置100の秘密鍵を生成するよう制御する。
つまり、疑似ランダム関数処理制御部212は、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部212は、秘密鍵の配布対象であるN階層目の所定の通信装置100の秘密鍵を生成するよう制御する。
図7は、鍵生成装置203における上述の処理の流れを示す模式図である。なお、図7において、{ID}は、秘密鍵の配布対象である通信装置100の階層化IDを表す。また、ID1、ID2、・・・、IDNは、それぞれローカルIDを表し、それらのインデックスは、何番目の階層の通信装置100に対応するローカルIDであるかを示す。例えば、ID1は、1階層目の通信装置100のローカルIDを示し、IDNは、N階層目の通信装置100のローカルIDを示す。また、SKは、データ受信装置が有する宛先装置鍵を表す。また、SK1、SK2、・・・、SKNは、秘密鍵を表し、それらのインデックスは、何番目の階層の通信装置100に配布される秘密鍵に対応するかを示す。図7に示すように、鍵生成装置203は、N階層目の通信装置100の階層化IDから抽出されたローカルIDと、秘密鍵とを用いて、疑似ランダム関数による処理を繰り返すことで、入力された階層化IDを有する通信装置100に配布する秘密鍵を生成する。
次に、送信元装置からのデータの伝送が行われた際の疑似ランダム関数処理制御部212の制御について説明する。疑似ランダム関数処理制御部212は、送信元装置からのデータの伝送が行われた際、すなわち、検証装置204として機能する際、階層分離部240により抽出されたローカルIDを上位の階層から順に疑似ランダム関数処理部211に入力して、帰納的な制御を行う。具体的には、疑似ランダム関数処理制御部212は、次のような制御を行う。
疑似ランダム関数処理制御部212は、宛先装置鍵と1階層目の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して秘密鍵を導出させる。また、疑似ランダム関数処理制御部212は、これにより導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出されたローカルIDの数)の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して、帰納的に秘密鍵を導出させることにより、1階層目からN階層目までの各通信装置100のローカルIDに対応する秘密鍵を生成するよう制御する。
つまり、検証装置204として機能する疑似ランダム関数処理制御部212は、鍵生成装置203として機能する際と同様、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
このように、疑似ランダム関数処理制御部212は、検証装置204として機能する場合、通信装置100に配布済みの秘密鍵を、受信された情報から復元する。
つまり、検証装置204として機能する疑似ランダム関数処理制御部212は、鍵生成装置203として機能する際と同様、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
このように、疑似ランダム関数処理制御部212は、検証装置204として機能する場合、通信装置100に配布済みの秘密鍵を、受信された情報から復元する。
ここで、本実施の形態では、上述の通り、送信元装置及び中継装置は、データ受信装置が配布した秘密鍵から派生鍵を生成している。このため、検証装置204は、派生鍵を再現する必要がある。このため、本実施の形態では、疑似ランダム関数処理制御部212は、検証装置204として機能する際、階層分離部240により抽出されたローカルIDを上位の階層から順に疑似ランダム関数処理部211に入力して、より詳細には、次のような帰納的な制御を行う。
疑似ランダム関数処理制御部212は、受信装置201がデータと系列と中継装置が生成したMACとを受信した場合、宛先装置鍵と1階層目の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して仮の秘密鍵を導出させる。この仮の秘密鍵は、鍵生成装置203において生成された秘密鍵、すなわち派生鍵の元となる鍵に相当する。そして、疑似ランダム関数処理制御部212は、この仮の秘密鍵と派生鍵設定値を疑似ランダム関数処理部211に入力して真の秘密鍵を導出させる。この真の秘密鍵は、派生鍵に相当する。つまり、検証装置204において、派生鍵が再現される。また、疑似ランダム関数処理制御部212は、導出された仮の秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出されたローカルIDの数)の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部211に入力して、帰納的に仮の秘密鍵及び真の秘密鍵を導出させる。
つまり、疑似ランダム関数処理制御部212は、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、この秘密鍵と派生鍵設定値とを用いて1階層目のローカルIDに対応する派生鍵を導出させる。そして、疑似ランダム関数処理制御部212は、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させた後、この秘密鍵と派生鍵設定値とを用いてk階層目のローカルIDに対応する派生鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部212は、1階層目からN階層目までの各通信装置100のローカルIDに対応する真の秘密鍵(すなわち、派生鍵)を生成するよう制御する。
つまり、疑似ランダム関数処理制御部212は、宛先装置鍵と1階層目のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、この秘密鍵と派生鍵設定値とを用いて1階層目のローカルIDに対応する派生鍵を導出させる。そして、疑似ランダム関数処理制御部212は、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させた後、この秘密鍵と派生鍵設定値とを用いてk階層目のローカルIDに対応する派生鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部212は、1階層目からN階層目までの各通信装置100のローカルIDに対応する真の秘密鍵(すなわち、派生鍵)を生成するよう制御する。
MAC生成関数処理部221は、MAC生成関数処理部321と同様、所定のMAC生成関数による演算を行うことでMACを生成する。MAC生成関数処理部221の処理は、MAC生成関数処理制御部222によって制御される。MAC生成関数処理部221は、上述のMAC生成関数処理部6に相当する。また、MAC生成関数処理制御部222は、上述のMAC生成関数処理制御部8に相当する。
MAC生成関数処理制御部222は、受信装置201が受信したデータ(メッセージ)とN階層目の通信装置100の抽出されたローカルIDに対応する秘密鍵とをMAC生成関数処理部221に入力してMACを導出させる。また、MAC生成関数処理制御部222は、これにより導出されたMACとm階層目(mはN−1以下1以上の正整数)の通信装置100の抽出されたローカルIDに対応する秘密鍵とをMAC生成関数処理部221に入力して、帰納的にMACを導出させる。
つまり、MAC生成関数処理制御部222は、伝送されたデータと、疑似ランダム関数処理部211により生成されたN階層目の通信装置100(すなわち、送信元装置と推定される通信装置100)に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、N階層目の通信装置100が生成したMACを再現する。そして、その後、MAC生成関数処理制御部222は、m+1階層目の通信装置100についての再現したMACとm階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、m階層目の通信装置100が生成したMACを再現する処理を繰り返すよう制御する。
これにより、MAC生成関数処理制御部222は、N階層目から1階層目までの各通信装置100に対応するMACを生成するよう制御する。
つまり、MAC生成関数処理制御部222は、伝送されたデータと、疑似ランダム関数処理部211により生成されたN階層目の通信装置100(すなわち、送信元装置と推定される通信装置100)に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、N階層目の通信装置100が生成したMACを再現する。そして、その後、MAC生成関数処理制御部222は、m+1階層目の通信装置100についての再現したMACとm階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、m階層目の通信装置100が生成したMACを再現する処理を繰り返すよう制御する。
これにより、MAC生成関数処理制御部222は、N階層目から1階層目までの各通信装置100に対応するMACを生成するよう制御する。
比較部250は、上述の比較部9に相当し、受信装置201が受信したMACと、MAC生成関数処理部221により生成された1階層目の通信装置100に対応するMACとを比較する。比較部250は、比較結果を出力する。正しいデータが正しい経路で伝送された場合、2つのMACが一致する。また、データが改ざんされているか、又は、データが正しい経路で伝送されていない場合、2つのMACは一致しない。
図8は、検証装置204における上述の処理の流れを示す模式図である。なお、図8において、{ID}は、伝送されたデータ(メッセージ)とともに受信装置201において受信されたローカルIDの系列である。また、ID1、ID2、・・・、IDNは、それぞれローカルIDを表し、それらのインデックスは、何番目の階層の通信装置100に対応するローカルIDであるかを示す。SKは、宛先装置鍵を表す。また、SK1、SK2、・・・、SKNは、秘密鍵を表し、それらのインデックスは、何番目の階層の通信装置100に対応する秘密鍵であるかを示す。SK1、SK2、・・・、SKNは、上述の仮の秘密鍵に相当し、派生鍵設定値(図8の例では「0」)とともに、疑似ランダム関数に入力される。これにより、真の秘密鍵(派生鍵)が生成され、MAC生成関数に提供される。図8において、Mは、伝送されたメッセージ、すなわちデータを表す。S1_1、S1_2、・・・、S1_Nは、MAC生成関数処理部221が出力するMACを表し、それらのインデックスは、何番目の階層の通信装置100に対応するMACであるかを表す。また、S1は、伝送されたデータ(メッセージ)とともに受信装置201において受信されたMACであり、1階層目の通信装置100により生成されたMACである。Bは、比較部250による比較結果を表す。
図8に示すように、検証装置204は、送信元装置からデータ受信装置までデータが伝送される際に行われる認証生成処理を再現し、MACを生成する。そして、検証装置204は、生成したMACと受信されたMACを比較することにより、正しいデータが受信されたか、及び正しい経路で伝送されたかの検証を行う。
図8に示すように、検証装置204は、送信元装置からデータ受信装置までデータが伝送される際に行われる認証生成処理を再現し、MACを生成する。そして、検証装置204は、生成したMACと受信されたMACを比較することにより、正しいデータが受信されたか、及び正しい経路で伝送されたかの検証を行う。
次に、データ伝送システム10の動作について説明する。まず、初期設定について説明する。図9は、データ伝送システム10における初期設定の動作の流れの一例を示すフローチャートである。なお、この初期設定は、悪意のある攻撃者による盗聴が行われない環境にて行われる。
まず、ステップ100(S100)において、鍵生成装置203が、送信元装置及び中継装置に配布する秘密鍵を生成する。鍵生成装置203が秘密鍵を生成するにあたり、階層化IDが必要となる。中継装置である通信装置100及び送信元装置である通信装置100に予めローカルIDが割り当てられており、階層化IDが既に決まっている場合には、各通信装置100は上位ノードの通信装置100を介して、データ受信装置である通信装置100に階層化IDを送付する。なお、鍵生成装置203は、秘密鍵の生成に際し、秘密鍵の配布先の通信装置100の階層化IDを取得できればよく、その取得方法は、上述の方法に限らず、任意の方法が可能であることは言うまでもない。
なお、通信装置100に対してローカルIDが割り当てられていない場合、派生鍵設定値を除いた、所定の長さの値がローカルIDとして当該通信装置100に割り当てられる。例えば、既にローカルIDが割り当てられている中継装置の下位に、当該中継装置と直接通信する下位ノードとして新たに通信装置100が追加された場合、この中継装置は、新たにローカルIDを発行して、当該下位のノードに割り当ててもよい。このとき中継装置は、当該中継装置と直接通信する他の下位ノードに既に割り当てられているローカルIDと重複しないように、ローカルIDを発行する。これは、階層化IDによりネットワーク中の通信装置100を一意に特定できるようにするためである。重複しないローカルIDを各通信装置100に割り当てる方法としては、例えば、1、2、3というように、値を順番に使って割り当てを行ってもよいし、十分に長いビット長(例えば128ビット)からランダムに選んだ値を使って割り当てを行ってもよい。ローカルIDの割り当ては、データ受信装置が行ってもよいし、特定の中継装置が全ての下位ノードに対して行ってもよい。
データ受信装置である通信装置100の受信装置201が階層化IDを受信すると、鍵生成装置203は、この階層化IDと宛先装置鍵とを用いて、この階層化IDに対応する秘密鍵を生成する。鍵生成装置203に入力された階層化IDが{ID1、ID2、ID3、・・・、IDN}であるとする。階層分離部240は、階層ごとのローカルIDを抽出する。また、疑似ランダム関数処理制御部212は、疑似ランダム関数に秘密鍵としてSKを入力し、1階層目のローカルIDであるID1をメッセージとして入力してSK1を得る。次に、疑似ランダム関数処理制御部212は、疑似ランダム関数に秘密鍵としてSK1を入力し、2階層目のローカルIDであるID2をメッセージとして入力してSK2を得る。疑似ランダム関数処理制御部212は、この処理を帰納的に繰り返し、最後に疑似ランダム関数に秘密鍵としてSKN−1を入力し、N階層目のローカルIDであるIDNをメッセージとして入力してSKNを得る。そして、疑似ランダム関数処理制御部212は、このSKNを当該階層化IDに対しての秘密鍵として出力する。
初期設定では、ステップ100の後、ステップ101の処理が行われる。ステップ101(S101)では、鍵生成装置203により生成された秘密鍵が配布される。データ受信装置である通信装置100の送信装置202は、鍵生成装置203からSKNを得ると、当該階層化IDに対応する通信装置100宛にSKNを送付する。なお、SKNの伝送は、中継装置である通信装置100を介して行われてもよい。ステップ101の完了により初期設定が完了する。初期設定後は、送信元装置及び中継装置のすべての通信装置100は、ローカルID及び秘密鍵を有することとなる。
以上、秘密鍵の生成動作について説明した。なお、上述の説明では、配布する秘密鍵は、データ受信装置である通信装置100により生成されたが、データ受信装置は、下位ノードに対しての秘密鍵の生成を中継装置に委託することもできる。この場合、中継装置である通信装置100は、上述の鍵生成装置203と同様な構成を有すればよい。図10は、中継装置である通信装置100が下位のノードのための鍵生成を行う場合の中継装置の構成の一例を示すブロック図である。
図10に示した構成は、階層分離部430を有する点で、図5に示した構成と異なる。なお、階層分離部430は、識別子抽出部とも称される。図10に示した中継装置では、階層分離部430、疑似ランダム関数処理部411、及び疑似ランダム関数処理制御部412により、鍵生成装置404が構成される。
階層分離部430は、対象装置から該中継装置の直下の通信装置100までのローカルIDの系列から、各階層の通信装置100のローカルIDを抽出する。なお、この対象装置は、具体的には、当該中継装置よりも下位の通信装置100であり秘密鍵の配布対象である通信装置100をいう。また、中継装置の直下の通信装置100とは、中継装置と直接通信可能な下位の通信装置100をいう。図2に示す通信装置100_1bが通信装置100_3aに配布する秘密鍵を生成する場合を例に説明する。通信装置100_2bのローカルIDがID2、通信装置100_3aのローカルIDがID3であるとすると、通信装置100_1bの階層分離部430は、ローカルIDの系列{ID2、ID3}から、各階層の通信装置100のローカルIDとして、ID2とID3を抽出する。
また、図10に示した中継装置では、疑似ランダム関数処理制御部412は、自装置の派生鍵を生成するための上述の制御に加え、次のような制御を行い、下位の通信装置100に配布するための秘密鍵を生成する。すなわち、疑似ランダム関数処理制御部412は、階層分離部430により抽出されたローカルIDを上位の階層から順に疑似ランダム関数処理部411に入力して、帰納的な制御を行う。具体的には、疑似ランダム関数処理制御部412は、次のような制御を行う。
疑似ランダム関数処理制御部412は、当該中継装置に固有の秘密鍵と、当該中継装置から見て1階層目の通信装置100の抽出されたローカルIDとを疑似ランダム関数処理部411に入力して秘密鍵を導出させる。また、疑似ランダム関数処理制御部412は、この導出された秘密鍵と当該中継装置から見てk階層目(kは2以上N以下の正整数であり、Nは階層分離部430により抽出されたローカルIDの数)の通信装置100の抽出されたローカルIDを疑似ランダム関数処理部411に入力して、帰納的に秘密鍵を導出させる。なお、上記の固有の秘密鍵は、当該中継装置の派生鍵の元である秘密鍵である。
つまり、疑似ランダム関数処理制御部412は、当該中継装置に割り当てられた秘密鍵と直下の通信装置100(1階層目の通信装置100)のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部412は、秘密鍵の配布対象である下位の通信装置100の秘密鍵を生成するよう制御する。よって、この場合、下位の通信装置100は、疑似ランダム関数処理部411により生成された秘密鍵に基づいて生成された秘密鍵(派生鍵)を固有の秘密鍵として利用してMACを生成することとなる。
つまり、疑似ランダム関数処理制御部412は、当該中継装置に割り当てられた秘密鍵と直下の通信装置100(1階層目の通信装置100)のローカルIDを用いて1階層目のローカルIDに対応する秘密鍵を導出させた後、k−1階層目のローカルIDを用いて導出された秘密鍵とk階層目のローカルIDを用いて、k階層目のローカルIDに対応する秘密鍵を導出させる処理を繰り返すよう制御する。
これにより、疑似ランダム関数処理制御部412は、秘密鍵の配布対象である下位の通信装置100の秘密鍵を生成するよう制御する。よって、この場合、下位の通信装置100は、疑似ランダム関数処理部411により生成された秘密鍵に基づいて生成された秘密鍵(派生鍵)を固有の秘密鍵として利用してMACを生成することとなる。
したがって、中継装置が下位の通信装置100のための秘密鍵を生成する場合、データ伝送システム10は、次のように動作する。まず、中継装置は自身の階層化IDをデータ受信装置に向けて送付する。そして、中継装置は、データ受信装置の鍵生成装置203により生成された、当該階層化IDに対応する秘密鍵を受け取る。中継装置は受け取った秘密鍵を鍵生成装置404に入力し、鍵生成装置203と同様の動作を行う。中継装置は、下位ノードから当該中継装置までのローカルIDの系列を受け取ると、階層分離部430がローカルIDを抽出する。そして、疑似ランダム関数処理制御部412は、疑似ランダム関数を用いて帰納的に下位の階層に対しての秘密鍵を生成するよう制御する。
なお、各通信装置100に配布される秘密鍵は、当該通信装置100の階層化IDと宛先装置鍵によって一意に決まる。したがって、最上位ノードであるデータ受信装置による鍵生成と、中継装置による鍵生成では、いずれの場合も同一の通信装置100に対し同一の秘密鍵が生成される。このように、下位ノードに対しては中継装置により、データ受信装置により生成される秘密鍵と同一の秘密鍵の生成を行うことが可能である。これにより、子ノードの通信装置をネットワークに動的に追加することができる。
次に、送信元装置である通信装置100から、データ受信装置である通信装置100に対し、伝送対象のデータであるメッセージMを安全に送付するためのデータ伝送システム10の動作について説明する。図11は、データ伝送システム10における伝送の動作の流れの一例を示すフローチャートである。また、図12は、送信元装置及び中継装置における伝送経路の具体的な一例とともに情報の流れを示す模式図であり、図13は、図12で示した各通信装置における認証生成装置の処理の流れを示す模式図である。以下、図11に示すフローチャートについて、適宜、図12、図13を参照しつつ説明する。
なお、図12では、送信元装置である通信装置100を通信装置D3として示し、通信装置D3の上位の中継装置である通信装置100を通信装置D2として示し、通信装置D2の上位の中継装置であり、データ受信装置の直下のノードである通信装置100を通信装置D1として示している。通信装置D1のローカルIDをID1、通信装置D2のローカルIDをID2、通信装置D3のローカルIDをID3とする。この場合、通信装置D3の階層化IDは{ID1、ID2、ID3}である。また、通信装置D1は、データ受信装置である通信装置100から秘密鍵SK1を配布され、秘密鍵SK1を図示しない記憶装置に記憶しているものとする。同様に、通信装置D2は、配布された秘密鍵SK2を図示しない記憶装置に記憶しており、通信装置D3は、配布された秘密鍵SK3を図示しない記憶装置に記憶しているものとする。また、通信装置D1が有する認証生成装置303を認証生成装置D31、通信装置D2が有する認証生成装置403を認証生成装置D21、通信装置D1が有する認証生成装置403を認証生成装置D11と称すこととする。図12は、以上のような符号の前提のもと、初期設定後に通信装置D1、D2、D3が保持している値、認証生成装置の入出力、及びノード間の通信内容について示している。
メッセージMが伝送される場合、まず、ステップ200(S200)において、送信元装置である通信装置100が、メッセージMについてのMACを生成する。詳細には、まず、送信元装置の認証生成装置303の疑似ランダム関数処理部311は、配布された秘密鍵から派生鍵を生成する。そして、送信元装置の認証生成装置303のMAC生成関数処理部321は、派生鍵を用いて、メッセージMについてのMACを生成する。
図12、図13に示した例に基づいて具体的に説明すると、ステップ200において、次のように通信装置D3は動作する。通信装置D3は認証生成装置D31にメッセージMと秘密鍵SK3を入力する。認証生成装置D31において、まず、疑似ランダム関数処理部311は、秘密鍵としてSK3を入力とし、メッセージとして0を入力とし、派生鍵SK31を生成する。次に、MAC生成関数処理部321は、秘密鍵として派生鍵SK31を入力とし、メッセージとしてMを入力とし、計算結果であるMAC値S3を出力する。
ステップ200の後、処理は、ステップ201(S201)に進む。
ステップ201では、上位の中継装置に情報が伝達される。具体的には、送信元装置は、メッセージMと、認証生成装置303により生成されたMAC値と、送信元装置のローカルIDとを上位の中継装置に送信する。上記例により具体的に説明すると、通信装置D3の送信装置302は、(M、S3、ID3)を、通信装置D2に送信する。
ステップ201では、上位の中継装置に情報が伝達される。具体的には、送信元装置は、メッセージMと、認証生成装置303により生成されたMAC値と、送信元装置のローカルIDとを上位の中継装置に送信する。上記例により具体的に説明すると、通信装置D3の送信装置302は、(M、S3、ID3)を、通信装置D2に送信する。
ステップ201の後、処理は、ステップ202(S202)に進む。
ステップ202では、中継装置が、受信したMACについてのMACを生成する。詳細には、まず、中継装置の認証生成装置403の疑似ランダム関数処理部411は、配布された秘密鍵から派生鍵を生成する。そして、中継装置の認証生成装置403のMAC生成関数処理部421は、派生鍵を用いて、受信したMACについてのMACを生成する。
ステップ202では、中継装置が、受信したMACについてのMACを生成する。詳細には、まず、中継装置の認証生成装置403の疑似ランダム関数処理部411は、配布された秘密鍵から派生鍵を生成する。そして、中継装置の認証生成装置403のMAC生成関数処理部421は、派生鍵を用いて、受信したMACについてのMACを生成する。
上述の例に基づいて具体的に説明すると、ステップ202において、次のように通信装置D2は動作する。通信装置D2の受信装置401は、通信装置D3から(M、S3、ID3)を受信すると、認証生成装置D21にMAC値S3と秘密鍵SK2を入力する。認証生成装置D21において、まず、疑似ランダム関数処理部411は、秘密鍵としてSK2を入力とし、メッセージとして0を入力とし、派生鍵SK21を生成する。次に、MAC生成関数処理部421は、秘密鍵として派生鍵SK21を入力とし、メッセージとしてMAC値S3を入力とし、計算結果であるMAC値S2を出力する。
ステップ202の後、当該中継装置の上位ノードがデータ受信装置ではない場合(ステップ203(S203)でNo)、処理は、ステップ201に戻り、他の中継装置への情報の伝送が行われる。具体的には、中継装置は、メッセージMと、認証生成装置403により生成されたMAC値と、受信したローカルID(ローカルID群)及び当該中継装置のローカルIDとを上位の中継装置に送信する。上記例により具体的に説明すると、通信装置D2の送信装置402は、(M、S2、{ID2、ID3})を、通信装置D1に送信する。
通信装置D1は、通信装置D2と同様の動作を行う。すなわち、通信装置D1の受信装置401は、通信装置D2から(M、S2、{ID2、ID3})を受信すると、認証生成装置D11にMAC値S2と秘密鍵SK1を入力する。認証生成装置D11において、まず、疑似ランダム関数処理部411は、秘密鍵としてSK1を入力とし、メッセージとして0を入力とし、派生鍵SK11を生成する。次に、MAC生成関数処理部421は、秘密鍵として派生鍵SK11を入力とし、メッセージとしてMAC値S2を入力とし、計算結果であるMAC値S1を出力する。
これに対し、当該中継装置の上位ノードがデータ受信装置である場合(ステップ203でYes)、処理は、ステップ204へ移行する。
ステップ204(S204)では、中継装置は、データ受信装置に情報を伝達する。具体的には、中継装置は、メッセージMと、認証生成装置403により生成されたMAC値と、受信したローカルID(ローカルID群)及び当該中継装置のローカルIDとをデータ受信装置に送信する。上記例により具体的に説明すると、通信装置D1の送信装置402は、(M、S1、{ID1、ID2、ID3})を、データ受信装置である通信装置100に送信する。
ステップ204(S204)では、中継装置は、データ受信装置に情報を伝達する。具体的には、中継装置は、メッセージMと、認証生成装置403により生成されたMAC値と、受信したローカルID(ローカルID群)及び当該中継装置のローカルIDとをデータ受信装置に送信する。上記例により具体的に説明すると、通信装置D1の送信装置402は、(M、S1、{ID1、ID2、ID3})を、データ受信装置である通信装置100に送信する。
次に、データ受信装置である通信装置100における検証動作について説明する。図14は、データ受信装置における検証動作の流れの一例を示すフローチャートである。データ受信装置は、受信装置201により中継装置からメッセージMを含む情報を受信すると、以下に示すように検証装置204による検証処理を行う。
ステップ300(S300)において、階層分離部240は、メッセージMの伝送経路上の各階層の通信装置100のローカルIDを、受信装置201が受信したローカルIDの系列から抽出する。なお、上記の例では、受信装置201は、{ID1、ID2、ID3}を受信しており、これは、送信元装置の階層化IDに対応している。このステップでは、ローカルIDの系列はN階層(Nは任意の整数)の分離が行われ、N個のローカルIDが抽出される。上記の例では、階層分離部240により、ローカルIDの系列はID1、ID2、ID3と3階層に分離され、3つのローカルIDが抽出される。
次に、ステップ301(S301)において、疑似ランダム関数処理部211及び疑似ランダム関数処理制御部212は、抽出されたローカルIDと、秘密鍵記憶部230に記憶された宛先装置鍵SKとを用いて、秘密鍵を生成する。具体的には、疑似ランダム関数処理部211及び疑似ランダム関数処理制御部212は、SK0’=SKとし、0≦i<Nに対して以下が実行する。疑似ランダム関数処理制御部212は、疑似ランダム関数処理部211に、SKi’を秘密鍵として入力し、i+1階層目のローカルIDであるIDi+1をメッセージとして入力し、疑似ランダム関数処理部211からSKi+1’を得る。この時生成されるSK1’からSKN’までの値は、受信した各ローカルIDが正しい伝送経路(すなわち、データ伝送システム10におけるネットワークにより規定される伝送経路)上の通信装置100のローカルIDと一致していれば、正しい伝送経路上の通信装置100が有する秘密鍵(配布された秘密鍵)と一致する。
次に、ステップ302(S302)において、疑似ランダム関数処理部211及び疑似ランダム関数処理制御部212は、ステップ301で生成された秘密鍵と、派生鍵設定値とを用いて、派生鍵を生成する。具体的には、疑似ランダム関数処理部211及び疑似ランダム関数処理制御部212は、1≦i≦Nに対して以下を実行する。疑似ランダム関数処理制御部212は、疑似ランダム関数処理部211にSKi’を秘密鍵として入力し、0をメッセージとして入力し、派生鍵SKi_1’を得る。この時生成されるSK1_1’からSKN_1’までの値は、受信した各ローカルIDが正しい伝送経路上の通信装置100のローカルIDと一致していれば、正しい伝送経路上の通信装置100がMACを生成するための派生鍵と一致する。
次に、ステップ303(S303)において、MAC生成関数処理部221及びMAC生成関数処理制御部222は、受信したメッセージMとステップ302で生成された派生鍵を用いてMACを生成する。具体的には、MAC生成関数処理部221及びMAC生成関数処理制御部222は、S1_N+1=Mとし、N≧i≧1に対して以下を実行する。MAC生成関数処理制御部222は、MAC生成関数処理部221にSKi_1’を秘密鍵として入力し、S1_i+1をメッセージとして入力し、S1_iを得る。この時生成されるS1_NからS1_1までのそれぞれの値は、メッセージMが正しく送付されていれば、データ受信装置から送信元装置に至るまでの各階層の通信装置100が生成したMAC値と一致する。
次に、ステップ304(S304)において、比較部250は、受信したMACとステップ303で生成した1階層目の通信装置100に対応するMACとを比較する。具体的には、比較部250は、ステップ303で生成したS1_1と、受信したS1とを比較し、両者の値が一致しているか否かを判定する。比較部250は、両者が一致していれば出力値B=1を出力し、そうでなければ出力値B=0を出力する。ここで、B=1であればメッセージMが送信元装置から改ざんされずに送付され、かつ正しい伝送経路にて伝送されたことを意味する。もしB=0であればメッセージMは改ざんされたか、または、正しい伝送経路上の通信装置以外の通信装置を経由して伝送されたことを意味する。なお、比較部250の出力値により、伝送の安全性をこのように判定する判定部(図示せず)をデータ受信装置が有してもよい。
比較部250の比較結果による検証について補足説明する。送信元装置又は中継装置が他の通信装置に対してデータの送付を行う際にメッセージMが改ざんされていた場合、ステップ303においてMAC生成関数処理部6に適切な入力値が入力されないこととなる。このため、MAC生成関数が安全である限り、検証装置204による検証には通らない。
また、伝送中に生成されるMAC値S1、S2、…、SNのうちいずれかが改ざんされていた場合、ステップ303においてMAC生成関数処理部6に適切なMACが入力されないこととなるため、MAC生成関数が安全である限り、受信したS1と生成したS1_1とは一致しないため、検証装置204による検証には通らない。
また、疑似ランダム関数が安全である限り、疑似ランダム関数により生成される秘密鍵が他の秘密鍵又は派生鍵と衝突する確率(重複する確率)は、鍵のビット数に依存して指数的に小さくなる。このため、データの伝送経路を示す情報であるローカルIDの系列が改ざんされた場合、ステップ301において、適切な秘密鍵が生成されない。したがって、MAC生成関数処理部6に適切な秘密鍵が入力されないこととなるため、検証装置204による検証には通らない。
また、伝送中に生成されるMAC値S1、S2、…、SNのうちいずれかが改ざんされていた場合、ステップ303においてMAC生成関数処理部6に適切なMACが入力されないこととなるため、MAC生成関数が安全である限り、受信したS1と生成したS1_1とは一致しないため、検証装置204による検証には通らない。
また、疑似ランダム関数が安全である限り、疑似ランダム関数により生成される秘密鍵が他の秘密鍵又は派生鍵と衝突する確率(重複する確率)は、鍵のビット数に依存して指数的に小さくなる。このため、データの伝送経路を示す情報であるローカルIDの系列が改ざんされた場合、ステップ301において、適切な秘密鍵が生成されない。したがって、MAC生成関数処理部6に適切な秘密鍵が入力されないこととなるため、検証装置204による検証には通らない。
なお、kビット安全性を必要とし2^{−k}以上の確率で疑似ランダム関数の安全性に影響を及ぼさないことを必要とする場合、疑似ランダム関数に入力される秘密鍵および疑似ランダム関数から出力される秘密鍵あるいは派生鍵は、kビット以上である。
また、kビット安全性を必要とし2^{−k}以上の確率でMAC生成関数の安全性に影響を及ぼさないことを必要とする場合、MAC生成関数の出力は、2×kビット以上である。
また、kビット安全性を必要とし2^{−k}以上の確率でMAC生成関数の安全性に影響を及ぼさないことを必要とする場合、MAC生成関数の出力は、2×kビット以上である。
以上、実施の形態1について説明した。上述の通り、実施の形態1にかかるデータ伝送システム10によれば、伝送されたデータが改ざんされていないか、及び、伝送されたデータが正しい経路で伝送されているかを検証することができる。
また、上述の通り、鍵生成装置203により宛先装置鍵に基づいて各通信装置100のための秘密鍵が生成される。このため、データ受信装置が管理する秘密鍵は、ネットワーク上のノード数に依存せず、宛先装置鍵だけであり、検証装置として機能する装置における鍵の管理が容易である。また、中継装置及び送信元装置も、配布された秘密鍵のみを管理すればよく、鍵の管理が容易である。
また、特に、実施の形態1では、送信元装置及び中継装置は、配布された秘密鍵をそのまま使ってMACを計算するのではなく、派生鍵を生成した上で、この派生鍵を使ってMACを計算する。したがって、秘密鍵を導出するための暗号アルゴリズム(疑似ランダム関数)と、MACを算出するための暗号アルゴリズム(MAC生成関数)とで、異なる秘密鍵を用いることが保障され、よりセキュアなシステムを実現することができる。
なお、実施の形態1では、派生鍵を用いたMAC生成を行う構成を示したが、派生鍵を生成しなくてもよい。すなわち、配布された秘密鍵を用いてMAC生成が行われてもよい。つまり、送信元装置及び中継装置に固有の秘密鍵は、所定の疑似ランダム関数による演算を行うことで導出される秘密鍵であればよい。換言すると、通信装置に固有の秘密鍵は、配布された秘密鍵を意味してもよいし、配布された秘密鍵から生成された派生鍵を意味してもよい。なお、本実施の形態に限らず、後述する他の実施の形態でも、派生鍵を用いたMAC生成ではなく、配布された秘密鍵を用いたMAC生成が行われてもよい。なお、派生鍵を用いない場合、送信元装置、中継装置、及びデータ受信装置において、派生鍵の生成動作が不要となる。また、派生鍵を用いない場合であって、中継装置が上述の鍵生成装置404を有する場合、疑似ランダム関数処理制御部412は、下位の通信装置用の秘密鍵を生成するための制御を行い、派生鍵を生成するための制御は行わない。派生鍵を用いない場合であって、中継装置が鍵生成装置404を有する場合、当該中継装置の下位の通信装置に固有の秘密鍵は、疑似ランダム関数処理部411により生成された秘密鍵となる。
また、データ受信装置が受信する検証用のMAC値(S1)のビット長は、送信元装置までの階層の深さに依存しない。そして、S1があればメッセージMに対しての検証および伝送経路を正しく通っていることの検証の両方を同時に実行可能である。中継装置で行われるMAC生成関数による計算は、メッセージMの長さに依存しない固定長の長さ(すなわち、下位のノードが生成したMAC値の長さ)によって決まるため、計算時間が一定である。よって、様々な長さのメッセージを送信元装置が出力する場合であっても、中継装置にかかる負荷は一定である。
近年、車載マイコンの分野を含む様々な技術分野において、IoT機器からのセンサデータの伝送の際、センサデータであるメッセージが改ざんされていないことを保証する技術は非常に関心が高い。そして、正しい経路によってデータが伝送されたことを保障することも重要である。実施の形態1にかかるデータ伝送システム10では、効率的な鍵管理を実現しつつ、そのようなニーズに応えることができる。また、中継装置において、メッセージMについてのMAC値ではなく、下位ノードから受信したMAC値についてのMAC値を算出しているため、MAC値についての計算量および通信量を抑制することができる。
<実施の形態2>
次に、実施の形態2について説明する。実施の形態1では、データ受信装置のみが検証を実行した。これに対し、実施の形態2では、さらに、中継装置が検証を実行する。これにより、実施の形態2では、効率的にMACをチェックする。以下、実施の形態1と異なる点を説明する。本実施の形態では、送信元装置及び中継装置の動作が、実施の形態1と異なる。
次に、実施の形態2について説明する。実施の形態1では、データ受信装置のみが検証を実行した。これに対し、実施の形態2では、さらに、中継装置が検証を実行する。これにより、実施の形態2では、効率的にMACをチェックする。以下、実施の形態1と異なる点を説明する。本実施の形態では、送信元装置及び中継装置の動作が、実施の形態1と異なる。
本実施の形態では、送信元装置である通信装置100のMAC生成関数処理制御部322は、実施の形態1で説明した制御に加え、さらに次のような制御を行う。MAC生成関数処理制御部322は、MAC生成関数処理部321により生成されたデータについてのMAC(すなわち、送信対象のデータと秘密鍵をMAC生成関数処理部321に入力して得られたMAC)と、送信元装置に固有の秘密鍵とをMAC生成関数処理部321に入力して、MAC生成関数処理部321により生成されたMACについてのMACを生成するよう制御する。MAC生成関数処理部321が生成した2つのMACのうち、後者のMACを第1のMAC、前者のMACを第2のMACと呼ぶ。
そして、本実施の形態の送信元装置の送信装置302は、送信対象のデータと、このデータに基づいてMAC生成関数処理部321が生成した2つのMACと、当該送信元装置のローカルIDとを中継装置に送信する。
次に、実施の形態2にかかる中継装置について説明する。図15は、実施の形態2にかかる中継装置の構成の一例を示すブロック図である。中継装置としての通信装置100は、認証生成装置403が認証生成装置405に置き換わった点で、図5に示した構成と異なる。認証生成装置405は、疑似ランダム関数処理部411と、疑似ランダム関数処理制御部412と、MAC生成関数処理部421と、MAC生成関数処理制御部422とに加え、さらに比較部440を有する。
本実施の形態では、中継装置である通信装置100の疑似ランダム関数処理制御部412は、実施の形態1で説明した制御に加え、さらに次のような制御を行う。疑似ランダム関数処理制御部412は、当該中継装置に固有の秘密鍵と、受信装置401が受信したローカルIDのうち当該中継装置に対し送信を行った通信装置100(すなわち、当該中継装置の直下のノードである通信装置100)のローカルIDとを疑似ランダム関数処理部411に入力して、当該中継装置に対し送信を行った通信装置100に固有の秘密鍵を生成するよう制御する。
また、中継装置の比較部440は、受信装置401が受信した2つのMACのうちの第1のMACと、MAC生成関数処理部421により生成されたMACとを比較する。なお、下位ノードが送信元装置である場合、下位ノードは、送信対象のデータとともに、2つのMACを送信する。また、下位ノードが中継装置である場合も、下位ノードである中継装置は、後述の通り、送信対象のデータとともに、2つのMACを送信する。このため、中継装置の受信装置401は、送信対象のデータとともに、2つのMACを受信することとなる。
本実施の形態では、中継装置である通信装置100のMAC生成関数処理制御部422は、受信装置401が受信した2つのMACのうちの第2のMACと当該中継装置に対し送信を行った通信装置100に固有の秘密鍵とをMAC生成関数処理部421に入力してこの第2のMACについてのMACを生成するよう制御する。このとき比較部440は、上記第1のMACと、上記第2のMACについてのMACとを比較する。比較結果が一致していた場合はMAC生成関数処理制御部422は以下を実施し、比較結果が一致していなかった場合は以下の処理を中止する。中継装置である通信装置100のMAC生成関数処理制御部422は、上記第1のMACと当該中継装置に固有の秘密鍵とをMAC生成関数処理部421に入力して、当該第1のMACについてのMACを生成するよう制御する。
また、本実施の形態では、送信装置402は、送信対象のデータと、上記第1のMACと、上記第1のMACについてのMACと、当該中継装置のローカルID及び受信装置401が受信したローカルIDとを上位の通信装置100(すなわち、他の中継装置又はデータ受信装置)に送信する。
次に、本実施の形態における伝送動作について説明する。図16は、実施の形態2にかかるデータ伝送システムにおける伝送の動作の流れの一例を示すフローチャートである。また、図17は、送信元装置及び中継装置における伝送経路の具体的な一例とともに情報の流れを示す模式図であり、図18A〜図18Cは、図17で示した各通信装置における認証生成装置の処理の流れを示す模式図である。図18Aは、認証生成装置D31を示し、図18Bは、認証生成装置D21を示し、図18Cは、認証生成装置D11を示す。以下、図16に示すフローチャートについて、適宜、図17、図18を参照しつつ説明する。なお、図17では、図12に示した例と同様の符号を用いて、構成(通信装置、認証生成装置)及び情報(ローカルID、秘密鍵、メッセージ、MAC)を示している。図17は、そのような符号の前提のもと、初期設定後に通信装置D1、D2、D3が保持している値、認証生成装置の入出力、及びノード間の通信内容について示している。なお、本実施の形態における初期設定は、実施の形態1と同様である。
メッセージMが伝送される場合、まず、ステップ220(S220)において、図11のステップ200と同様、送信元装置である通信装置100が、メッセージMについてのMACを生成する。詳細には、まず、送信元装置の認証生成装置303の疑似ランダム関数処理部311は、配布された秘密鍵から派生鍵を生成する。そして、送信元装置の認証生成装置303のMAC生成関数処理部321は、派生鍵を用いて、メッセージMについてのMACを生成する。
図17、図18に示した例に基づいて具体的に説明すると、ステップ200において、通信装置D3の認証生成装置D31では、疑似ランダム関数処理部311は、秘密鍵SK3と、派生鍵設定値(具体的には、0)を用いて派生鍵SK31を生成する。次に、MAC生成関数処理部321は、派生鍵SK31とメッセージMを用いて、MAC値S4を出力する。
ステップ220の後、処理は、ステップ221(S221)に進む。ステップ221において、送信元装置である通信装置100は、ステップ220で生成したMACについてのMACを生成する。図17、図18に示した例に基づいて具体的に説明すると、ステップ221において、MAC生成関数処理部321は、秘密鍵として派生鍵SK31を入力とし、メッセージとしてMAC値S4を入力とし、計算結果であるMAC値S3を出力する。
ステップ221の後、処理は、ステップ222(S222)に進む。ステップ222では、上位の中継装置に情報が伝達される。具体的には、送信元装置は、メッセージMと、メッセージMに基づいて認証生成装置303により生成された2つのMAC値と、送信元装置のローカルIDとを上位の中継装置に送信する。上記例により具体的に説明すると、通信装置D3の送信装置302は、(M、S4、S3、ID3)を、通信装置D2に送信する。
ステップ222の後、処理は、ステップ223(S223)に進む。ステップ223では、中継装置が、受信した2つのMACのうちの一方のMACについてのMACを生成する。詳細には、まず、中継装置の認証生成装置403の疑似ランダム関数処理部411は、自装置に配布された秘密鍵から、メッセージMを送信してきた下位ノードの秘密鍵を生成する。さらに、疑似ランダム関数処理部411は、生成した下位ノードの秘密鍵から、この下位ノードの派生鍵を生成する。そして、中継装置の認証生成装置403のMAC生成関数処理部421は、この下位ノードの派生鍵を用いて、受信したMACのうちの一方のMACについてのMACを生成する。
上述の例に基づいて具体的に説明すると、ステップ223において、次のように通信装置D2は動作する。通信装置D2の受信装置401は、通信装置D3から(M、S4、S3、ID3)を受信すると、認証生成装置D21にMAC値S4、S3と秘密鍵SK2と、ID3を入力する。認証生成装置D21において、まず、疑似ランダム関数処理部411は、秘密鍵としてSK2を入力とし、メッセージとしてID3を入力とし、計算結果SK32を出力する。このSK32は、下位のノードに配布された秘密鍵に相当する。次に、疑似ランダム関数処理部411は、秘密鍵としてSK32を入力とし、メッセージとして0を入力とし、計算結果SK33を出力する。このSK33は、下位のノードの派生鍵に相当する。次に、MAC生成関数処理部421は、秘密鍵として派生鍵SK33を入力とし、メッセージとしてMAC値S4を入力とし、計算結果であるMAC値S31を出力する。もし誤りがなければ、秘密鍵SK32は通信装置D3の秘密鍵SK3と一致し、派生鍵SK33は通信装置D3が算出した派生鍵SK31と一致し、MAC値S31は通信装置D3が算出したMAC値S3と一致する。
ステップ223の後、処理は、ステップ224(S224)に進む。ステップ224では、中継装置の比較部440が、ステップ223で生成したMACと、受信した2つのMACのうちの他方のMACとを比較する。上述の例に基づいて具体的に説明すると、比較部440は、ステップ223で生成したMAC値S31と、受信したMAC値S3を比較する。MAC値が一致する場合(ステップ225(S225)でYes)、以下のステップ226以降の処理が行われるが、MAC値が一致しない場合(ステップ225(S225)でYes)、中継装置は、処理を終了する。
ステップ226では、中継装置が、受信した2つのMACのうちの他方のMACについてのMACを生成する。詳細には、まず、中継装置の認証生成装置403の疑似ランダム関数処理部411は、配布された秘密鍵から派生鍵を生成する。そして、中継装置の認証生成装置403のMAC生成関数処理部421は、派生鍵を用いて、受信したMACについてのMACを生成する。
上述の例に基づいて具体的に説明すると、ステップ226において、次のように通信装置D2は動作する。認証生成装置D21において、まず、疑似ランダム関数処理部411は、秘密鍵としてSK2を入力とし、メッセージとして0を入力とし、派生鍵SK21を生成する。次に、MAC生成関数処理部421は、秘密鍵として派生鍵SK21を入力とし、メッセージとしてMAC値S3を入力とし、計算結果であるMAC値S2を出力する。
ステップ226の後、当該中継装置の上位ノードがデータ受信装置ではない場合(ステップ227(S227)でNo)、処理は、ステップ222に戻り、他の中継装置への情報の伝送が行われる。具体的には、中継装置は、メッセージMと、認証生成装置403により生成された2つのMAC値と、受信したローカルID及び当該中継装置のローカルIDとを上位の中継装置に送信する。上記例により具体的に説明すると、通信装置D2の送信装置402は、(M、S3、S2、{ID2、ID3})を、通信装置D1に送信する。
通信装置D1は、通信装置D2と同様の動作を行う。すなわち、通信装置D1の受信装置401が通信装置D2から(M、S3、S2、{ID2、ID3})を受信すると、認証生成装置D11にMAC値S3、S2と秘密鍵SK1と、ID2を入力する。認証生成装置D11において、まず、疑似ランダム関数処理部411は、秘密鍵としてSK1を入力とし、メッセージとしてID2を入力とし、計算結果SK22を出力する。次に、疑似ランダム関数処理部411は、秘密鍵としてSK22を入力とし、メッセージとして0を入力とし、計算結果SK23を出力する。次に、MAC生成関数処理部421は、秘密鍵として派生鍵SK23を入力とし、メッセージとしてMAC値S3を入力とし、計算結果であるMAC値S21を出力する。そして、比較部440は、MAC値S21と、受信したMAC値S2を比較する。両者が一致している場合、認証生成装置D11は、秘密鍵SK1を用いて派生鍵SK11を算出後、MAC値S2のMACであるMAC値S1を生成する。もし誤りがなければ、秘密鍵SK22は通信装置D3の秘密鍵SK2と一致し、派生鍵SK23は通信装置D3が算出した派生鍵SK21と一致し、MAC値S21は通信装置D3が算出したMAC値S2と一致する。
中継装置の上位ノードがデータ受信装置である場合(ステップ227でYes)、処理は、ステップ228へ移行する。ステップ228(S228)では、中継装置は、データ受信装置に情報を伝達する。具体的には、中継装置は、メッセージMと、認証生成装置403により生成された2つのMAC値と、受信したローカルID及び当該中継装置のローカルIDとをデータ受信装置に送信する。上記例により具体的に説明すると、通信装置D1の送信装置402は、(M、S2、S1、{ID1、ID2、ID3})を、データ受信装置である通信装置100に送信する。なお、通信装置D1は、S2を送信しなくてもよい。以上、実施の形態2における伝送動作について説明した。なお、データ受信装置における検証動作は、実施の形態1と同様である。このため、上述の例に基づいて説明すると、データ受信装置は、通信装置D1から受信した(M、S1、{ID1、ID2、ID3})を用いて、図14に示したフローにしたがって検証処理を行う。
以上、実施の形態2について説明した。実施の形態2では、中継装置が、下位のノードから送られてきたMAC値の検証を行うことができる構成となっている。そして、中継装置のMAC生成関数処理制御部422は、上述の通り、比較部440により、第1のMACと第2のMACについてのMACとが一致すると判定された場合、第1のMACと当該中継装置に固有の秘密鍵とをMAC生成関数処理部421に入力して、第1のMACについてのMACを生成するよう制御する。言い換えると、中継装置のMAC生成関数処理制御部422は、比較部440によりMACが一致しないと判定された場合、第1のMACについてのMACを生成する処理を行わない。このため、データ伝送システムにおける処理負荷を抑制することができる。
また、中継装置の送信装置402は、比較部440により、第1のMACと第2のMACについてのMACとが一致すると判定された場合、送信対象のデータと、第1のMACと、第1のMACについてのMACと、当該中継装置のローカルID及び受信装置401が受信したローカルIDとを上位の通信装置100に送信する。言い換えると、中継装置のMAC生成関数処理制御部422は、比較部440によりMACが一致しないと判定された場合、上位のノードへの伝送を行わない。このためデータ伝送システムにおける通信量を抑制することができる。なお、上記実施の形態では、比較部440によりMACが一致しないと判定された場合、MACの生成及び上位ノードへの送信の両方が抑止されたが、上位ノードへの送信のみが抑止されてもよい。
また、送信元装置においてMAC生成を2回行って、2つのMACを生成している。このため、中継装置では、認証生成装置405に送信対象のデータであるメッセージMを入力することなく、検証を行うことができる。したがって、中継装置の認証生成装置405による計算時間はメッセージMの長さに依存しない。このため、認証生成装置405の計算時間を予め見積もることができるため、下位ノードから送られるデータの送信間隔が定まっていれば、システム遅延を生じさせることなくデータ送受信を行うことが可能な下位ノードの最大接続数を予め見積もることができる。
なお、本実施の形態においても、中継装置による秘密鍵の生成が行われてもよい。すなわち、本実施の形態において、中継装置は鍵生成装置404を有してもよい。また、本実施の形態においても、派生鍵が用いられなくてもよい。すなわち、配布された秘密鍵を用いてMAC生成が行われてもよい。なお、そのような構成は、上述のデータ伝送システムにおいて、派生鍵の生成に関する処理を省略することで実現できる。
<実施の形態3>
次に、実施の形態3について説明する。実施の形態1では、送信対象のデータは、平文のまま伝送された。これに対し、実施の形態3にかかるデータ伝送システムでは、送信対象のデータは暗号化されて伝送される。これにより、実施の形態3では、より安全にデータの伝送を行うことができる。以下、実施の形態1と異なる点を説明する。
次に、実施の形態3について説明する。実施の形態1では、送信対象のデータは、平文のまま伝送された。これに対し、実施の形態3にかかるデータ伝送システムでは、送信対象のデータは暗号化されて伝送される。これにより、実施の形態3では、より安全にデータの伝送を行うことができる。以下、実施の形態1と異なる点を説明する。
図19は、実施の形態3にかかる送信元装置の構成の一例を示すブロック図である。送信元装置としての通信装置100は、認証生成装置303が暗号装置304に置き換わった点で、図4に示した構成と異なる。暗号装置304は、MAC生成関数処理部321及びMAC生成関数処理制御部322の代わりに、認証付き暗号暗号化関数処理部331及び認証付き暗号暗号化関数処理制御部332を有する点で、認証生成装置303と異なる。なお、暗号装置304は、以下に述べるとおり、暗号文及びMACを生成する。このため、暗号装置304は、認証生成装置と称されてもよい。
認証付き暗号暗号化関数処理部331は、所定の認証付き暗号の暗号化関数による演算を行うことで、MACの生成及び暗号化処理を行う。認証付き暗号暗号化関数処理制御部332は、送信対象のデータと送信元装置に固有の秘密鍵とを認証付き暗号暗号化関数処理部331に入力して、送信対象のデータについてのMACの生成と、送信対象のデータの暗号化を行うよう制御する。なお、認証付き暗号暗号化関数処理制御部332は、疑似ランダム関数処理部311により生成された秘密鍵(派生鍵)を送信元装置に固有の秘密鍵として、認証付き暗号暗号化関数処理部331に入力する。
また、本実施の形態では、送信元装置の送信装置302は、認証付き暗号暗号化関数処理部331によって暗号化されたデータと、認証付き暗号暗号化関数処理部331が生成したMACと、当該送信元装置のローカルIDとを中継装置に送信する。
このため、本実施の形態にかかる中継装置の受信装置401は、暗号化されたデータと、MACと、通信装置100のローカルIDとを受信する。そして、中継装置の送信装置402は、受信装置401が受信した暗号化されたデータと、MAC生成関数処理部421が生成したMACと、送信元装置が生成したMACと、当該中継装置のローカルID及び受信装置401が受信したローカルIDとを他の中継装置又はデータ受信装置に送信する。
次に、実施の形態3にかかるデータ受信装置について説明する。図20は、実施の形態3にかかるデータ受信装置の構成の一例を示すブロック図である。データ受信装置としての通信装置100は、検証装置204が検証装置205に置き換わった点で、図6に示した構成と異なる。検証装置205は、認証付き暗号復号関数処理部261及び認証付き暗号復号関数処理制御部262が追加された点で、検証装置204と異なる。
認証付き暗号復号関数処理部261は、所定の認証付き暗号の復号関数による演算を行うことで、復号されたデータを生成する。認証付き暗号復号関数処理制御部262は、N階層目の通信装置100の抽出されたローカルIDに対応する秘密鍵と受信装置201が受信した暗号化されたデータと受信装置201が受信した送信元装置が生成したMACとを認証付き暗号復号関数処理部261に入力して、復号されたデータを生成するよう制御する。なお、本実施の形態にかかる受信装置201は、中継装置を介して、暗号化されたデータと、ローカルIDの系列と、中継装置が生成したMACと、送信元装置が生成したMACとを受信する。ただし、受信装置201が受信する、送信元装置が生成したMACは、厳密には送信元装置が生成したと推定されるMACであり、改ざんなどの不正が行われた場合には、送信元装置が生成したMACとは異なる。
上述の所定の認証付き暗号の暗号化関数及び復号関数は、GCMモード又はCCMモードといった暗号利用モードを用いて構成される関数であってもよいし、Encrypt−Then−MAC法などの暗号化とMACを組み合わせて構成される関数であってもよいし、CAESARコンペティションに応募されているアルゴリズムを用いて構成された専用の関数であってもよい。
また、本実施の形態にかかるMAC生成関数処理制御部222は、受信装置201により受信された送信元装置が生成したMACとN−1階層目の通信装置100の抽出されたローカルIDに対応する秘密鍵とをMAC生成関数処理部221に入力してMACを導出させる。また、MAC生成関数処理制御部222は、これにより導出されたMACとm階層目(mはN−2以下1以上の正整数)の通信装置100の抽出されたローカルIDに対応する秘密鍵とをMAC生成関数処理部221に入力して、帰納的にMACを導出させる。
つまり、MAC生成関数処理制御部222は、送信元装置が生成したMACと、疑似ランダム関数処理部211により生成されたN−1階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、N−1階層目の通信装置100が生成したMACを再現する。そして、その後、MAC生成関数処理制御部222は、m+1階層目の通信装置100についての再現したMACとm階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、m階層目の通信装置100が生成したMACを再現する処理を繰り返すよう制御する。
これにより、MAC生成関数処理制御部222は、N−1階層目から1階層目までの各通信装置100に対応するMACを生成するよう制御する。
つまり、MAC生成関数処理制御部222は、送信元装置が生成したMACと、疑似ランダム関数処理部211により生成されたN−1階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、N−1階層目の通信装置100が生成したMACを再現する。そして、その後、MAC生成関数処理制御部222は、m+1階層目の通信装置100についての再現したMACとm階層目の通信装置100に対応する秘密鍵(具体的には、派生鍵に相当する鍵である真の秘密鍵)とを用いて、m階層目の通信装置100が生成したMACを再現する処理を繰り返すよう制御する。
これにより、MAC生成関数処理制御部222は、N−1階層目から1階層目までの各通信装置100に対応するMACを生成するよう制御する。
そして、比較部250は、受信装置201により受信された中継装置が生成したMACと、MAC生成関数処理部221により生成された1階層目の通信装置100に対応するMACとを比較する。上述の実施形態と同様、正しいデータが正しい経路で伝送された場合、2つのMACが一致するが、データが改ざんされているか、又は、データが正しい経路で伝送されていない場合、2つのMACは一致しない。
図21は、検証装置205における上述の処理の流れを示す模式図である。なお、図8に示した処理の流れと同様、本実施の形態においても、まず、疑似ランダム関数により秘密鍵が生成され、そして、生成されたこれらの鍵は派生鍵設定値(図21の例では「0」)とともに、疑似ランダム関数に入力される。これにより、派生鍵が生成される。このうち、N階層目の通信装置のローカルIDに対応する派生鍵は、認証付き暗号の復号関数に入力され、N−1階層目から1階層目の通信装置のローカルIDに対応する派生鍵は、MAC生成関数に入力される。図21において、Cは、伝送された暗号文、すなわち暗号化されたデータを表す。S1_1、S1_2、・・・、S1_N−1は、MAC生成関数処理部221が出力するMACを表し、S1_Nは、伝送された、送信元装置(N階層目の通信装置100)が生成したMACを表す。S1は、伝送された、中継装置(1階層目の通信装置100)が生成したMACを表す。なお、その他の符号については、図8と同様である。図21に示すように、検証装置205は、受信した暗号文Cを認証付き暗号復号関数処理部261にて復号して、暗号化前のデータであるメッセージMを生成する。また、送信元装置からデータ受信装置までデータが伝送される際に行われる認証生成処理を再現し、MACを生成する。そして、検証装置205は、生成したMACと受信されたMACを比較することにより、正しいデータが受信されたか、及び正しい経路で伝送されたかの検証を行う。
次に、実施の形態3にかかるデータ伝送システムの動作について説明する。本実施の形態にかかる初期設定についての動作は、実施の形態1と同じであるため、説明を省略する。図22は、実施の形態3にかかるデータ伝送システムにおける伝送の動作の流れの一例を示すフローチャートである。図22に示すように本実施の形態における伝送の動作のフローチャートは、ステップ200がステップ240に置き換えられた点で、図11に示したフローチャートと異なる。また、図23は、送信元装置及び中継装置における伝送経路の具体的な一例とともに情報の流れを示す模式図であり、図24は、図23で示した各通信装置における暗号装置又は認証生成装置の処理の流れを示す模式図である。以下、図22に示すフローチャートについて、適宜、図23、図24を参照しつつ説明する。
なお、図23では、図12に示した例と同様の符号を用いて、構成(通信装置、認証生成装置)及び情報(ローカルID、秘密鍵、メッセージ、MAC)を示している。なお、図12では通信装置D3において認証生成装置D31を図示したが、上述の通り本実施の形態では送信元装置は暗号装置を有するため、図23では通信装置D3において暗号装置D31cが図示されている。図23は、そのような符号の前提のもと、初期設定後に通信装置D1、D2、D3が保持している値、暗号装置又は認証生成装置の入出力、及びノード間の通信内容について示している。
メッセージMが伝送される場合、まず、ステップ240(S240)において、送信元装置である通信装置100の認証付き暗号暗号化関数処理部331は、メッセージMを暗号化した暗号文Cを生成するとともに、メッセージMについてのMACを生成する。詳細には、まず、送信元装置の暗号装置304の疑似ランダム関数処理部311は、配布された秘密鍵から派生鍵を生成する。そして、送信元装置の暗号装置304の認証付き暗号暗号化関数処理部331は、派生鍵を用いて、メッセージMについての暗号文とMACを生成する。
図23、図24に示した例に基づいて具体的に説明すると、ステップ240において、通信装置D3の暗号装置D31cでは、疑似ランダム関数処理部311は、秘密鍵SK3と、派生鍵設定値(具体的には、0)を用いて派生鍵SK31を生成する。次に、認証付き暗号暗号化関数処理部331は、派生鍵SK31とメッセージMを用いて、暗号文Cと、MAC値S3を出力する。
ステップ240の後、実施の形態1と同様、ステップ201以降の処理が行われる。ただし、実施の形態1と異なり、平文であるメッセージMの代わりに、暗号文C及び送信元装置が生成したMACが、データ受信装置まで伝送される。したがって、通信装置D3の送信装置302は、(C、S3、ID3)を、通信装置D2に送信し、通信装置D2の送信装置402は、({C、S3}、S2、{ID2、ID3})を、通信装置D1に送信する。また、通信装置D1の送信装置402は、({C、S3}、S1、{ID1、ID2、ID3})を、データ受信装置である通信装置100に送信する。
次に、本実施の形態にかかるデータ受信装置における検証動作について説明する。図25は、実施の形態3にかかるデータ受信装置における検証動作の流れの一例を示すフローチャートである。図25に示すように本実施の形態における検証動作のフローチャートは、ステップ302とステップ303の間にステップ310が挿入されている点で、図14に示したフローチャートと異なる。実施の形態3にかかるデータ受信装置は、受信装置201により中継装置から暗号文Cを含む情報を受信すると、以下に示すように検証装置205による検証処理を行う。
まず、実施の形態1と同様、ステップ300からステップ302までの処理が行われる。すなわち、実施の形態1と同様、派生鍵SKi_1’(ただし、1≦i≦N)が生成される。ステップ302の後、処理は、ステップ310に移行する。
ステップ310(S310)において、認証付き暗号復号関数処理部261及び認証付き暗号復号関数処理制御部262は、受信装置201が受信した送信元装置が生成したMACと、受信装置201が受信した暗号文と、ステップ302で生成されたN階層目の通信装置100に対応する派生鍵とを用いて、暗号文を復号する。具体的には、認証付き暗号復号関数処理制御部262は、認証付き暗号復号関数処理部261にSKN_1’を秘密鍵として入力し、Cを暗号文として入力し、S1_NをMAC値として入力し、平文Mを生成する。なお、S1_Nは、受信装置201が受信した、送信元装置(N階層目の通信装置100)が生成したMACである。もし認証付き暗号の復号関数によるMAC値の検証に通らなかった場合は、認証付き暗号復号関数処理部261の出力は偽(false)となる。これに対し、この検証に通った場合は、認証付き暗号復号関数処理部261から正しい平文Mが出力される。認証付き暗号復号関数処理部261により生成された平文Mは検証装置205から出力される。
ステップ310の後、処理はステップ303に移行する。本実施の形態におけるステップ303では、MAC生成関数処理部221及びMAC生成関数処理制御部222は、受信した送信元装置が生成したMACとステップ302で生成された派生鍵を用いてMACを生成する。具体的には、MAC生成関数処理部221及びMAC生成関数処理制御部222は、N−1≧i≧1に対して以下を実行する。MAC生成関数処理制御部222は、MAC生成関数処理部221にSKi_1’を秘密鍵として入力し、S1_i+1をメッセージとして入力し、S1_iを得る。この時生成されるS1_N−1からS1_1までのそれぞれの値は、正しくメッセージ伝達が行われていれば、データ受信装置から送信元装置に至るまでの各階層の通信装置100が生成したMAC値と一致する。
次に、ステップ304において、比較部250は、受信装置201により受信された中継装置が生成したMACと、ステップ303で生成された1階層目の通信装置100に対応するMACとを比較する。具体的には、比較部250は、ステップ303で生成したS1_1と、受信したS1とを比較し、両者の値が一致しているか否かを判定する。比較部250は、両者が一致していれば出力値B=1を出力し、そうでなければ出力値B=0を出力する。本実施の形態においても、B=1であればメッセージMが送信元装置から改ざんされずに送付され、かつ正しい伝送経路にて伝送されたことを意味する。もしB=0であればメッセージMは改ざんされたか、または、正しい伝送経路上の通信装置以外の通信装置を経由して伝送されたことを意味する。なお、比較部250の出力値及び認証付き暗号復号関数処理部261の出力値に基づいて伝送の安全性を判定する判定部(図示せず)をデータ受信装置が有してもよい。また、この判定部は、認証付き暗号復号関数処理部261の出力値が偽でなければ、正しくメッセージが暗号化されて送られてきたと判定し、さらに、比較部250の出力がB=1であれば正しい伝送経路を経由してメッセージが伝送されたと判定してもよい。
以上、実施の形態3について説明した。本実施の形態では、暗号化されたデータが伝送される。このため、より安全にデータの伝送を行うことができる。したがって、例えばデータの秘匿性が必要なセンサネットワークや、送付するメッセージに個人情報を伴う場合などに、秘匿性を担保して伝送を行うことができる。
実施の形態3にかかる構成は、実施の形態2に示した構成と組み合わせてもよい。すなわち、暗号化されたデータを伝送するための構成と、中継装置による検証を行う構成とを組み合わせてもよい。また、実施の形態3においても、中継装置による秘密鍵の生成が行われてもよい。すなわち、実施の形態3において、中継装置は鍵生成装置404を有してもよい。また、実施の形態3では、派生鍵を用いたMAC生成を行う構成を示したが、派生鍵を生成しなくてもよい。すなわち、配布された秘密鍵を用いてMAC生成が行われてもよい。
なお、実施形態において、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。すなわち、鍵生成装置203、404、検証装置204、205、認証生成装置303、403、405、及び暗号装置304において、装置を構成する機能ブロックの一部又は全ては、メモリにロードされたプログラムがCPUにより実行されることにより実現されてもよいし、専用ハードウェア回路により実現されてもよい。また、関数処理を行う回路が、半導体製品にハードウェアとして搭載されている共通鍵暗号AESやハッシュ関数SHA2などの既存の回路を用いて構成されてもよい。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。例えば、中継装置として動作する通信装置は、送信元装置として動作してもよいことは言うまでもない。この場合、当該通信装置は、中継装置としての機能と送信元装置としての機能を備える。
1 データ受信装置
2、230 秘密鍵記憶部
3 受信部
4 識別子抽出部
5、211、311、411 疑似ランダム関数処理部
6、221、321、421 MAC生成関数処理部
7、212、312、412 疑似ランダム関数処理制御部
8、222、322、422 MAC生成関数処理制御部
9、250、440 比較部
10 データ伝送システム
100、100_0、100_1a、100_1b、100_1c、100_2a、100_2b、100_2c、100_3a、100_3b、D1、D2、D3 通信装置
201、301、401 受信装置
202、302、402 送信装置
203、404 鍵生成装置
204、205 検証装置
240、430 階層分離部
261 認証付き暗号復号関数処理部
262 認証付き暗号復号関数処理制御部
303、403、405、D11、D21、D31 認証生成装置
304、D31c 暗号装置
331 認証付き暗号暗号化関数処理部
332 認証付き暗号暗号化関数処理制御部
2、230 秘密鍵記憶部
3 受信部
4 識別子抽出部
5、211、311、411 疑似ランダム関数処理部
6、221、321、421 MAC生成関数処理部
7、212、312、412 疑似ランダム関数処理制御部
8、222、322、422 MAC生成関数処理制御部
9、250、440 比較部
10 データ伝送システム
100、100_0、100_1a、100_1b、100_1c、100_2a、100_2b、100_2c、100_3a、100_3b、D1、D2、D3 通信装置
201、301、401 受信装置
202、302、402 送信装置
203、404 鍵生成装置
204、205 検証装置
240、430 階層分離部
261 認証付き暗号復号関数処理部
262 認証付き暗号復号関数処理制御部
303、403、405、D11、D21、D31 認証生成装置
304、D31c 暗号装置
331 認証付き暗号暗号化関数処理部
332 認証付き暗号暗号化関数処理制御部
Claims (13)
- 予め定められた秘密鍵である宛先装置鍵を記憶する秘密鍵記憶部と、
データの伝送を中継する通信装置である中継装置を介して、前記データと、前記データの送信元の通信装置である送信元装置及び前記中継装置の個別識別子の系列と、前記中継装置が生成したMAC(Message Authentication Code)とを受信する受信部と、
前記データの伝送経路上の各階層の通信装置の個別識別子を、前記受信部が受信した前記系列から抽出する識別子抽出部と、
所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する疑似ランダム関数処理部と、
所定のMAC生成関数による演算を行うことでMACを生成するMAC生成関数処理部と、
前記宛先装置鍵と1階層目の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、1階層目からN階層目までの各通信装置の個別識別子に対応する秘密鍵を生成するよう制御する疑似ランダム関数処理制御部と、
前記受信部が受信した前記データとN階層目の通信装置の抽出された個別識別子に対応する秘密鍵とを前記MAC生成関数処理部に入力してMACを導出させ、かつ、導出されたMACとm階層目(mはN−1以下1以上の正整数)の通信装置の抽出された個別識別子に対応する秘密鍵とを前記MAC生成関数処理部に入力して、帰納的にMACを導出させることにより、N階層目から1階層目までの各通信装置に対応するMACを生成するよう制御するMAC生成関数処理制御部と、
前記受信部が受信したMACと、前記MAC生成関数処理部により生成された1階層目の通信装置に対応するMACとを比較する比較部と
を有するデータ受信装置。 - 前記疑似ランダム関数処理制御部は、
前記宛先装置鍵と1階層目の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して仮の秘密鍵を導出させ、該仮の秘密鍵と所定値を前記疑似ランダム関数処理部に入力して真の秘密鍵を導出させ、かつ、導出された仮の秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して、帰納的に仮の秘密鍵及び真の秘密鍵を導出させることにより、1階層目からN階層目までの各通信装置の個別識別子に対応する真の秘密鍵を生成するよう制御し、
前記MAC生成関数処理制御部は、抽出された個別識別子に対応する秘密鍵として、前記真の秘密鍵を用い、
前記個別識別子の値は、前記所定値とは異なる値である
請求項1に記載のデータ受信装置。 - 前記識別子抽出部は、さらに、伝送経路上の各階層の通信装置の個別識別子を、秘密鍵の配布対象である通信装置の階層化識別子から抽出し、
前記階層化識別子は、通信装置のそれぞれに一意に関連づけられる識別子であり、該階層化識別子に関連づけられる通信装置の個別識別子と、該通信装置からの予め定められたデータ伝送経路上の各通信装置の個別識別子とを組み合わせて構成される識別子であり、
前記疑似ランダム関数処理制御部は、さらに、前記宛先装置鍵と、1階層目の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、秘密鍵の配布対象であるN階層目の通信装置の秘密鍵を生成するよう制御する
請求項1に記載のデータ受信装置。 - 前記受信部は、前記中継装置を介して、暗号化された前記データと、前記系列と、前記中継装置が生成したMACと、前記送信元装置が生成したMACとを受信し、
前記データ受信装置は、さらに、
所定の認証付き暗号の復号関数による演算を行うことで、復号された前記データを生成する復号関数処理部と、
N階層目の通信装置の抽出された個別識別子に対応する秘密鍵と前記受信部が受信した暗号化された前記データと前記送信元装置が生成したMACとを前記復号関数処理部に入力して、復号された前記データを生成するよう制御する復号関数処理制御部と
を有し、
前記MAC生成関数処理制御部は、前記受信部により受信された前記送信元装置が生成したMACとN−1階層目の通信装置の抽出された個別識別子に対応する秘密鍵とを前記MAC生成関数処理部に入力してMACを導出させ、かつ、導出されたMACとm階層目(mはN−2以下1以上の正整数)の通信装置の抽出された個別識別子に対応する秘密鍵とを前記MAC生成関数処理部に入力して、帰納的にMACを導出させることにより、N−1階層目から1階層目までの各通信装置に対応するMACを生成するよう制御し、
前記比較部は、前記受信部により受信された前記中継装置が生成したMACと、前記MAC生成関数処理部により生成された1階層目の通信装置に対応するMACとを比較する
請求項1に記載のデータ受信装置。 - データの送信元の通信装置である送信元装置と、
前記データの伝送を中継する通信装置である中継装置と、
前記中継装置を介して前記データを受信する通信装置であるデータ受信装置と
を備え、
前記送信元装置は、
所定のMAC生成関数による演算を行うことでMAC(Message Authentication Code)を生成する第1のMAC生成関数処理部と、
前記データと該送信元装置に固有の秘密鍵とを前記第1のMAC生成関数処理部に入力して、前記データについてのMACを生成するよう制御する第1のMAC生成関数処理制御部と、
前記データと、前記第1のMAC生成関数処理部が生成したMACと、該送信元装置の個別識別子とを前記中継装置に送信する第1の送信部と
を有し、
前記送信元装置に固有の秘密鍵は、所定の疑似ランダム関数による演算を行うことで導出される秘密鍵であり、
前記中継装置は、
前記データと、MACと、通信装置の個別識別子とを受信する第1の受信部と、
前記MAC生成関数による演算を行うことでMACを生成する第2のMAC生成関数処理部と、
前記第1の受信部が受信したMACと該中継装置に固有の秘密鍵とを前記第2のMAC生成関数処理部に入力して、前記第1の受信部が受信したMACについてのMACを生成するよう制御する第2のMAC生成関数処理制御部と、
前記データと、前記第2のMAC生成関数処理部が生成したMACと、該中継装置の個別識別子及び前記第1の受信部が受信した個別識別子とを他の前記中継装置又は前記データ受信装置に送信する第2の送信部と
を有し、
前記中継装置に固有の秘密鍵は、前記疑似ランダム関数による演算を行うことで導出される秘密鍵であり、
前記データ受信装置は、
予め定められた秘密鍵である宛先装置鍵を記憶する秘密鍵記憶部と、
前記中継装置を介して、前記データと、前記送信元装置及び前記中継装置の個別識別子の系列と、前記中継装置が生成したMACとを受信する第2の受信部と、
前記データの伝送経路上の各階層の通信装置の個別識別子を、前記第2の受信部が受信した前記系列から抽出する第1の識別子抽出部と、
前記疑似ランダム関数による演算を行うことで秘密鍵を導出する第1の疑似ランダム関数処理部と、
前記MAC生成関数による演算を行うことでMACを生成する第3のMAC生成関数処理部と、
前記宛先装置鍵と1階層目の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、1階層目からN階層目までの各通信装置の個別識別子に対応する秘密鍵を生成するよう制御する第1の疑似ランダム関数処理制御部と、
前記第2の受信部が受信した前記データとN階層目の通信装置の抽出された個別識別子に対応する秘密鍵とを前記第3のMAC生成関数処理部に入力してMACを導出させ、かつ、導出されたMACとm階層目(mはN−1以下1以上の正整数)の通信装置の抽出された個別識別子に対応する秘密鍵とを前記第3のMAC生成関数処理部に入力して、帰納的にMACを導出させることにより、N階層目から1階層目までの各通信装置に対応するMACを生成するよう制御する第3のMAC生成関数処理制御部と、
前記第2の受信部が受信したMACと、前記第3のMAC生成関数処理部により生成された1階層目の通信装置に対応するMACとを比較する第1の比較部と
を有する
データ伝送システム。 - 前記第1の識別子抽出部は、さらに、伝送経路上の各階層の通信装置の個別識別子を、秘密鍵の配布対象である通信装置の階層化識別子から抽出し、
前記階層化識別子は、通信装置のそれぞれに一意に関連づけられる識別子であり、該階層化識別子に関連づけられる通信装置の個別識別子と、該通信装置からの予め定められたデータ伝送経路上の各通信装置の個別識別子とを組み合わせて構成される識別子であり、
前記第1の疑似ランダム関数処理制御部は、さらに、前記宛先装置鍵と、1階層目の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、秘密鍵の配布対象であるN階層目の通信装置の秘密鍵を生成するよう制御し、
前記送信元装置に固有の秘密鍵及び前記中継装置に固有の秘密鍵は、前記第1の疑似ランダム関数処理部により生成された秘密鍵又は前記第1の疑似ランダム関数処理部により生成された秘密鍵に基づいて生成された秘密鍵である
請求項5に記載のデータ伝送システム。 - 前記送信元装置は、さらに、
前記疑似ランダム関数による演算を行うことで秘密鍵を導出する第2の疑似ランダム関数処理部と、
前記第1の疑似ランダム関数処理部により生成された秘密鍵と所定値とを前記第2の疑似ランダム関数処理部に入力して、該送信元装置に固有の秘密鍵を生成するよう制御する第2の疑似ランダム関数処理制御部と
を有し、
前記中継装置は、さらに、
前記疑似ランダム関数による演算を行うことで秘密鍵を導出する第3の疑似ランダム関数処理部と、
前記第1の疑似ランダム関数処理部により生成された秘密鍵と前記所定値とを前記第3の疑似ランダム関数処理部に入力して、該中継装置に固有の秘密鍵を生成するよう制御する第3の疑似ランダム関数処理制御部と
を有し、
前記データ受信装置の前記第1の疑似ランダム関数処理制御部は、前記第2の受信部が前記データと前記系列と前記中継装置が生成したMACとを受信した場合、前記宛先装置鍵と1階層目の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して仮の秘密鍵を導出させ、該仮の秘密鍵と前記所定値を前記第1の疑似ランダム関数処理部に入力して真の秘密鍵を導出させ、かつ、導出された仮の秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記第1の疑似ランダム関数処理部に入力して、帰納的に仮の秘密鍵及び真の秘密鍵を導出させることにより、1階層目からN階層目までの各通信装置の個別識別子に対応する真の秘密鍵を生成するよう制御し、
前記データ受信装置の前記第3のMAC生成関数処理制御部は、抽出された個別識別子に対応する秘密鍵として、前記真の秘密鍵を用い、
前記個別識別子の値は、前記所定値とは異なる値である
請求項6に記載のデータ伝送システム。 - 前記中継装置は、さらに、
該中継装置よりも下位の通信装置であり秘密鍵の配布対象である通信装置から該中継装置の直下の通信装置までの個別識別子の系列から、各階層の通信装置の個別識別子を抽出する第2の識別子抽出部と、
前記疑似ランダム関数による演算を行うことで秘密鍵を導出する第3の疑似ランダム関数処理部と、
該中継装置に固有の秘密鍵と、該中継装置から見て1階層目の通信装置の抽出された個別識別子とを前記第3の疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵と該中継装置から見てk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記第3の疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、秘密鍵の配布対象である前記下位の通信装置の秘密鍵を生成するよう制御する第3の疑似ランダム関数処理制御部と
を有し、
前記下位の通信装置に固有の秘密鍵は、前記第3の疑似ランダム関数処理部により生成された秘密鍵又は前記第3の疑似ランダム関数処理部により生成された秘密鍵に基づいて生成された秘密鍵である
請求項6に記載のデータ伝送システム。 - 前記送信元装置の前記第1のMAC生成関数処理制御部は、さらに、前記第1のMAC生成関数処理部により生成された前記データについてのMACと、該送信元装置に固有の秘密鍵とを前記第1のMAC生成関数処理部に入力して、前記第1のMAC生成関数処理部により生成されたMACについてのMACを生成するよう制御し、
前記第1の送信部は、前記データと、前記第1のMAC生成関数処理部が生成した2つのMACと、該送信元装置の個別識別子とを前記中継装置に送信し、
前記中継装置は、さらに、
前記疑似ランダム関数による演算を行うことで秘密鍵を導出する第3の疑似ランダム関数処理部と、
該中継装置に固有の秘密鍵と、前記第1の受信部が受信した個別識別子のうち該中継装置に対し送信を行った通信装置の個別識別子とを前記第3の疑似ランダム関数処理部に入力して、該中継装置に対し送信を行った通信装置に固有の秘密鍵を生成するよう制御する第3の疑似ランダム関数処理制御部と、
前記第1の受信部が受信した2つのMACのうちの第1のMACと、前記第2のMAC生成関数処理部により生成されたMACとを比較する第2の比較部と
を有し、
前記中継装置の前記第2のMAC生成関数処理制御部は、前記第1の受信部が受信した2つのMACのうちの第2のMACと該中継装置に対し送信を行った通信装置に固有の秘密鍵とを前記第2のMAC生成関数処理部に入力して前記第2のMACについてのMACを生成するよう制御し、前記第1のMACと該中継装置に固有の秘密鍵とを前記第2のMAC生成関数処理部に入力して、前記第1のMACについてのMACを生成するよう制御し、
前記第2の比較部は、前記第1のMACと、前記第2のMACについてのMACとを比較し、
前記第2の送信部は、前記データと、前記第1のMACと、前記第1のMACについてのMACと、該中継装置の個別識別子及び前記第1の受信部が受信した個別識別子とを他の前記中継装置又は前記データ受信装置に送信する
請求項5に記載のデータ伝送システム。 - 前記中継装置の前記第2の送信部は、前記第2の比較部により、前記第1のMACと前記第2のMACについてのMACとが一致すると判定された場合、送信を行う
請求項9に記載のデータ伝送システム。 - 前記中継装置の前記第2のMAC生成関数処理制御部は、前記第2の比較部により、前記第1のMACと前記第2のMACについてのMACとが一致すると判定された場合、前記第1のMACと該中継装置に固有の秘密鍵とを前記第2のMAC生成関数処理部に入力して、前記第1のMACについてのMACを生成するよう制御する
請求項10に記載のデータ伝送システム。 - 前記送信元装置の前記第1のMAC生成関数処理部は、所定の認証付き暗号の暗号化関数による演算を行うことで、MACの生成及び暗号化処理を行い、
前記送信元装置の前記第1のMAC生成関数処理制御部は、前記データと該送信元装置に固有の秘密鍵とを前記第1のMAC生成関数処理部に入力して、前記データについてのMACの生成と、前記データの暗号化を行うよう制御し、
前記送信元装置の前記第1の送信部は、暗号化された前記データと、前記第1のMAC生成関数処理部が生成したMACと、該送信元装置の個別識別子とを前記中継装置に送信し、
前記中継装置の前記第1の受信部は、暗号化された前記データと、MACと、通信装置の個別識別子とを受信し、
前記中継装置の前記第2の送信部は、暗号化された前記データと、前記第2のMAC生成関数処理部が生成したMACと、前記送信元装置が生成したMACと、該中継装置の個別識別子及び前記第1の受信部が受信した個別識別子とを他の前記中継装置又は前記データ受信装置に送信し、
前記データ受信装置の前記第2の受信部は、前記中継装置を介して、暗号化された前記データと、前記系列と、前記中継装置が生成したMACと、前記送信元装置が生成したMACとを受信し、
前記データ受信装置は、さらに、
前記所定の認証付き暗号の復号関数による演算を行うことで、復号された前記データを生成する復号関数処理部と、
N階層目の通信装置の抽出された個別識別子に対応する秘密鍵と前記第2の受信部が受信した暗号化された前記データと前記送信元装置が生成したMACとを前記復号関数処理部に入力して、復号された前記データを生成するよう制御する復号関数処理制御部と
を有し、
前記第3のMAC生成関数処理制御部は、前記第2の受信部により受信された前記送信元装置が生成したMACとN−1階層目の通信装置の抽出された個別識別子に対応する秘密鍵とを前記第3のMAC生成関数処理部に入力してMACを導出させ、かつ、導出されたMACとm階層目(mはN−2以下1以上の正整数)の通信装置の抽出された個別識別子に対応する秘密鍵とを前記第3のMAC生成関数処理部に入力して、帰納的にMACを導出させることにより、N−1階層目から1階層目までの各通信装置に対応するMACを生成するよう制御し、
前記第1の比較部は、前記第2の受信部により受信された前記中継装置が生成したMACと、前記第3のMAC生成関数処理部により生成された1階層目の通信装置に対応するMACとを比較する
請求項5に記載するデータ伝送システム。 - 予め定められた秘密鍵である宛先装置鍵を記憶する秘密鍵記憶部と、
伝送経路上の各階層の通信装置の個別識別子を、秘密鍵の配布対象である通信装置の階層化識別子から抽出する識別子抽出部と、
所定の疑似ランダム関数による演算を行うことで秘密鍵を導出する疑似ランダム関数処理部と、
前記宛先装置鍵と、1階層目の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して秘密鍵を導出させ、かつ、導出された秘密鍵とk階層目(kは2以上N以下の正整数であり、Nは抽出された個別識別子の数)の通信装置の抽出された個別識別子を前記疑似ランダム関数処理部に入力して、帰納的に秘密鍵を導出させることにより、秘密鍵の配布対象であるN階層目の通信装置の秘密鍵を生成するよう制御する疑似ランダム関数処理制御部と、
を有し、
前記階層化識別子は、通信装置のそれぞれに一意に関連づけられる識別子であり、該階層化識別子に関連づけられる通信装置の個別識別子と、該通信装置からの予め定められたデータ伝送経路上の各通信装置の個別識別子とを組み合わせて構成される識別子である
鍵生成装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017163283A JP2019041321A (ja) | 2017-08-28 | 2017-08-28 | データ受信装置、データ伝送システム、及び鍵生成装置 |
US16/032,954 US10931447B2 (en) | 2017-08-28 | 2018-07-11 | Data receiving device, data transmission system, and key generating device |
EP18189651.5A EP3451574B1 (en) | 2017-08-28 | 2018-08-20 | Data receiving device, data transmission system, and key generating device |
KR1020180098521A KR20190024729A (ko) | 2017-08-28 | 2018-08-23 | 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치 |
CN201810983746.7A CN109428715B (zh) | 2017-08-28 | 2018-08-27 | 数据接收设备、数据传输系统和密钥生成设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017163283A JP2019041321A (ja) | 2017-08-28 | 2017-08-28 | データ受信装置、データ伝送システム、及び鍵生成装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019041321A true JP2019041321A (ja) | 2019-03-14 |
Family
ID=63311863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017163283A Pending JP2019041321A (ja) | 2017-08-28 | 2017-08-28 | データ受信装置、データ伝送システム、及び鍵生成装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10931447B2 (ja) |
EP (1) | EP3451574B1 (ja) |
JP (1) | JP2019041321A (ja) |
KR (1) | KR20190024729A (ja) |
CN (1) | CN109428715B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3705081A1 (en) | 2019-03-07 | 2020-09-09 | Tosoh Corporation | Zirconia layered body |
JP7355263B1 (ja) | 2023-05-17 | 2023-10-03 | 株式会社Ihi | 品質保証システム及び品質保証方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG10201606061PA (en) * | 2016-07-22 | 2018-02-27 | Huawei Int Pte Ltd | A method for unified network and service authentication based on id-based cryptography |
US11075753B2 (en) * | 2018-07-11 | 2021-07-27 | Akeyless Security LTD. | System and method for cryptographic key fragments management |
CN109861796B (zh) * | 2019-03-05 | 2021-12-21 | 生迪智慧科技有限公司 | 通信连接方法、客户端、云端及可读存储介质 |
CN111050397B (zh) * | 2020-03-12 | 2020-06-26 | 深圳中科爱讯科技有限公司 | 对使用伪mac策略移动终端的定位方法 |
CN112533200B (zh) * | 2020-11-23 | 2021-10-08 | 广州技象科技有限公司 | 基于系统变更的数据跳传链路管理方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7401217B2 (en) | 2003-08-12 | 2008-07-15 | Mitsubishi Electric Research Laboratories, Inc. | Secure routing protocol for an ad hoc network using one-way/one-time hash functions |
US8695089B2 (en) * | 2007-03-30 | 2014-04-08 | International Business Machines Corporation | Method and system for resilient packet traceback in wireless mesh and sensor networks |
CN101296482B (zh) * | 2007-04-28 | 2012-12-12 | 华为技术有限公司 | 实现消息认证的方法、基站、中继站及中继通信系统 |
US20130163762A1 (en) * | 2010-09-13 | 2013-06-27 | Nec Corporation | Relay node device authentication mechanism |
US8971851B2 (en) * | 2012-06-28 | 2015-03-03 | Certicom Corp. | Key agreement for wireless communication |
JP2016181815A (ja) | 2015-03-24 | 2016-10-13 | 沖電気工業株式会社 | 通信装置、通信システム及び通信プログラム |
WO2017030621A1 (en) * | 2015-05-27 | 2017-02-23 | Rubicon Labs, Inc. | Distributed and hierarchical device activation mechanisms |
WO2016199507A1 (ja) * | 2015-06-09 | 2016-12-15 | 日本電信電話株式会社 | 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム |
JP6443808B2 (ja) | 2015-07-10 | 2018-12-26 | パナソニックIpマネジメント株式会社 | マルチホップ通信システム、通信端末、マルチホップ通信方法、およびプログラム |
CN105933896B (zh) * | 2016-06-30 | 2019-05-24 | 重庆邮电大学 | 基于密钥表的无线传感器网络密钥管理方法 |
-
2017
- 2017-08-28 JP JP2017163283A patent/JP2019041321A/ja active Pending
-
2018
- 2018-07-11 US US16/032,954 patent/US10931447B2/en active Active
- 2018-08-20 EP EP18189651.5A patent/EP3451574B1/en active Active
- 2018-08-23 KR KR1020180098521A patent/KR20190024729A/ko unknown
- 2018-08-27 CN CN201810983746.7A patent/CN109428715B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3705081A1 (en) | 2019-03-07 | 2020-09-09 | Tosoh Corporation | Zirconia layered body |
JP7355263B1 (ja) | 2023-05-17 | 2023-10-03 | 株式会社Ihi | 品質保証システム及び品質保証方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3451574B1 (en) | 2021-03-10 |
KR20190024729A (ko) | 2019-03-08 |
US10931447B2 (en) | 2021-02-23 |
CN109428715A (zh) | 2019-03-05 |
CN109428715B (zh) | 2023-04-25 |
EP3451574A1 (en) | 2019-03-06 |
US20190068368A1 (en) | 2019-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109428715B (zh) | 数据接收设备、数据传输系统和密钥生成设备 | |
CN111740828B (zh) | 一种密钥生成方法以及装置、设备、加解密方法 | |
CN112865964B (zh) | 一种量子密钥分发方法、设备及存储介质 | |
US10560286B2 (en) | Gateway device and control method for the same | |
CN109714168A (zh) | 可信远程证明方法、装置和系统 | |
CN106375390B (zh) | 一种物联网中数据传输方法、系统及其装置 | |
US20170063853A1 (en) | Data cipher and decipher based on device and data authentication | |
CN110896387B (zh) | 数据传输方法、电池管理系统和存储介质 | |
CN104303451A (zh) | 密钥共享设备以及用于其配置的系统 | |
KR101608815B1 (ko) | 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법 | |
CN104854814A (zh) | 密钥共享网络设备及其配置 | |
CN112398894B (zh) | 车用的安全验证方法及装置 | |
CN106953725B (zh) | 用于非对称的密钥导出的方法和系统 | |
JP2020530726A (ja) | サプライチェーン資産管理を保護するアプリケーションを有する遠隔サーバへのnfcタグ認証 | |
CN112118245B (zh) | 密钥管理方法、系统和设备 | |
CN106941404A (zh) | 密钥保护方法及装置 | |
CN105024807A (zh) | 数据处理方法及系统 | |
CN113472734B (zh) | 一种身份认证方法及装置 | |
TWI422241B (zh) | 頻譜授權以及相關的通訊方法和裝置 | |
CN113841360A (zh) | 蝴蝶密钥扩展方案的实现 | |
CN111181730A (zh) | 用户身份生成及更新方法和装置、存储介质和节点设备 | |
US11570008B2 (en) | Pseudonym credential configuration method and apparatus | |
CN114745114A (zh) | 基于口令派生的密钥协商方法、装置、设备及介质 | |
KR101472507B1 (ko) | 위탁 연산 방법 | |
Kushwaha et al. | Enhancing Selective Encryption Algorithm for Secured MANET |