JP6338949B2 - 通信システム及び鍵情報共有方法 - Google Patents

通信システム及び鍵情報共有方法 Download PDF

Info

Publication number
JP6338949B2
JP6338949B2 JP2014139074A JP2014139074A JP6338949B2 JP 6338949 B2 JP6338949 B2 JP 6338949B2 JP 2014139074 A JP2014139074 A JP 2014139074A JP 2014139074 A JP2014139074 A JP 2014139074A JP 6338949 B2 JP6338949 B2 JP 6338949B2
Authority
JP
Japan
Prior art keywords
hash value
communication device
value
information
hash
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.)
Expired - Fee Related
Application number
JP2014139074A
Other languages
English (en)
Other versions
JP2016019054A (ja
JP2016019054A5 (ja
Inventor
高田 広章
広章 高田
亮 倉地
亮 倉地
直樹 足立
直樹 足立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nagoya University NUC
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Tokai National Higher Education and Research System NUC
Original Assignee
Nagoya University NUC
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Tokai National Higher Education and Research System NUC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nagoya University NUC, Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd, Tokai National Higher Education and Research System NUC filed Critical Nagoya University NUC
Priority to JP2014139074A priority Critical patent/JP6338949B2/ja
Priority to PCT/JP2015/067865 priority patent/WO2016002559A1/ja
Priority to DE112015003134.0T priority patent/DE112015003134T5/de
Priority to CN201580036674.XA priority patent/CN106471767B/zh
Priority to US15/319,098 priority patent/US10110377B2/en
Publication of JP2016019054A publication Critical patent/JP2016019054A/ja
Publication of JP2016019054A5 publication Critical patent/JP2016019054A5/ja
Application granted granted Critical
Publication of JP6338949B2 publication Critical patent/JP6338949B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R25/00Fittings or systems for preventing or indicating unauthorised use or theft of vehicles
    • B60R25/20Means to switch the anti-theft system on or off
    • B60R25/24Means to switch the anti-theft system on or off using electronic identifiers containing a code not memorised by the user
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key 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/0841Key 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 Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key 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 Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2325/00Indexing scheme relating to vehicle anti-theft devices
    • B60R2325/10Communication protocols, communication systems of vehicle anti-theft devices
    • B60R2325/108Encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/40Bus networks
    • H04L2012/40267Bus for use in transportation systems
    • H04L2012/40273Bus for use in transportation systems the transportation system being a vehicle
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0838Network architectures or network communication protocols for network security for authentication of entities using passwords using one-time-passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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/3239Cryptographic 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 non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

本発明は、第1通信装置及び第2通信装置が暗号処理に用いる鍵情報を共有する通信システム及び鍵情報共有方法に関する。
従来、複数の通信装置がネットワークを介して通信を行う通信システムにおいて、通信の信頼性を高めるためデータの暗号化又はメッセージ認証子を付与した通信等が行われる。暗号化などの処理を行うためには、通信を行う各通信装置が共有鍵を保持している必要がある。
特許文献1においては、共通鍵暗号方式で使用される暗号鍵の更新を行う暗号鍵更新システムが提案されている。この暗号鍵更新システムでは、電子キー及び車載機の間で予め秘密情報を共有し、秘密情報に対してハッシュ関数を繰り返し適用し得られる結果を共通の暗号鍵とする。暗号鍵を更新する際には、以前の繰り返し回数より1少ない回数だけハッシュ関数を適用して得られる結果を暗号鍵とする。
特開2009−284086号公報
本願の発明者は、通信装置の記憶部に記憶されたプログラム及びデータ等に対する不正な改ざんを検知することができる通信システムを発明し、既に特許出願している。本通信システムにおいても通信の安全性及び信頼性等を向上するため、鍵情報を共有して通信装置間で送受信するデータの暗号化又はメッセージ認証子を付与した通信等を行うことが望まれる。
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、第1通信装置及び第2通信装置が鍵情報を共有して暗号処理を行うことができる通信システム及び鍵情報共有方法を提供することにある。
本発明に係る通信システムは、第1通信装置と記憶部を有する第2通信装置とが暗号処理に用いる鍵情報を共有する通信システムにおいて、前記第1通信装置は、前記第2通信装置の前記記憶部の記憶内容を記憶した記憶部と、該記憶部の記憶内容に基づくハッシュ値を算出する第1ハッシュ値算出手段と、該第1ハッシュ値算出手段が算出したハッシュ値から第1部分を抽出する抽出手段と、該抽出手段が抽出した前記第1部分を前記第2通信装置へ送信する第1部分送信手段とを有し、前記第2通信装置は、自らの記憶部の記憶内容に基づくハッシュ値を算出する第2ハッシュ値算出手段と、前記第1通信装置から前記第1部分を受信する第1部分受信手段と、該第1部分受信手段が受信した前記第1部分が、前記第2ハッシュ値算出手段が算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定手段と、該ハッシュ値判定手段が一致すると判定した場合に、前記第2ハッシュ値算出手段が算出したハッシュ値から前記第1部分と異なる第2部分を抽出する抽出手段と、該抽出手段が抽出した前記第2部分を前記第1通信装置へ送信する第2部分送信手段と、前記第2ハッシュ値算出手段が算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に基づいて前記鍵情報を生成する生成手段とを有し、前記第1通信装置は、更に、前記第2通信装置から前記第2部分を受信する第2部分受信手段と、該第2部分受信手段が受信した前記第2部分が、前記第1ハッシュ値算出手段が算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定手段と、該ハッシュ値判定手段が一致すると判定した場合に、前記第1ハッシュ値算出手段が算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に基づいて前記鍵情報を生成する生成手段とを有し、前記記憶内容にはランダムに決定された値を含むこととを特徴とする。
また、本発明に係る通信システムは、前記第1通信装置及び前記第2通信装置の生成手段が、前記残余値を前記鍵情報とすることを特徴とする。
また、本発明に係る通信システムは、前記第1通信装置が、第1秘密値を生成する第1秘密値生成手段と、前記残余値及び前記第1秘密値生成手段が生成した第1秘密値に基づいて、第1公開値を生成する第1公開値生成手段と、該第1公開値生成手段が生成した第1公開値を前記第2通信装置へ送信する第1公開値送信手段と、前記第2通信装置から第2公開値を受信する第2公開値受信手段とを有し、前記第1通信装置の生成手段は、前記第1秘密値及び前記第2公開値受信手段が受信した前記第2公開値に基づいて、前記鍵情報を生成するようにしてあり、前記第2通信装置は、第2秘密値を生成する第2秘密値生成手段と、前記残余値及び前記第2秘密値生成手段が生成した第2秘密値に基づいて、前記第2公開値を生成する第2公開値生成手段と、該第2公開値生成手段が生成した第2公開値を前記第1通信装置へ送信する第2公開値送信手段と、前記第1通信装置から前記第1公開値を受信する第1公開値受信手段とを有し、前記第2通信装置の生成手段は、前記第2秘密値及び前記第1公開値受信手段が受信した前記第1公開値に基づいて、前記鍵情報を生成するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記第1通信装置及び前記第2通信装置が、複数の素数を記憶した素数テーブルと、前記素数テーブルから素数を選択する素数選択手段とをそれぞれ有し、前記第1通信装置の前記第1公開値生成手段は、前記素数選択手段が選択した素数を用いて前記第1公開値を生成するようにしてあり、前記第2通信装置の前記第2公開値生成手段は、前記素数選択手段が選択した素数を用いて前記第2公開値を生成するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記第1秘密値生成手段及び前記第2秘密値生成手段が、乱数に基づいて前記第1秘密値及び前記第2秘密値を生成するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記第1通信装置は、ハッシュ値算出に用いる情報を生成するハッシュ値算出用情報生成手段と、該ハッシュ値算出用情報生成手段が生成したハッシュ値算出用情報を前記第2通信装置へ送信するハッシュ値算出用情報送信手段とを有し、前記第1ハッシュ値算出手段は、前記ハッシュ値算出用情報生成手段が生成したハッシュ値算出用情報を用いてハッシュ値を算出するようにしてあり、前記第2通信装置は、前記第1通信装置から前記ハッシュ値算出用情報を受信するハッシュ値算出用情報受信手段を有し、前記第2ハッシュ値算出手段は、前記ハッシュ値算出用情報受信手段が受信したハッシュ値算出用情報を用いてハッシュ値を算出するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記ハッシュ値算出用情報生成手段が生成するハッシュ値算出用情報には、乱数を含むことを特徴とする。
また、本発明に係る通信システムは、前記ハッシュ値算出用情報生成手段が生成するハッシュ値算出用情報には、ハッシュ値の算出対象とする前記第2通信装置の記憶部の領域を規定する情報を含むことを特徴とする。
また、本発明に係る通信システムは、前記第1通信装置は、前記第1ハッシュ値算出手段が算出したハッシュ値を記憶する第1ハッシュ値記憶部と、該第1ハッシュ値記憶部が記憶したハッシュ値に基づいて前記鍵情報を更新する処理を行う更新処理手段とを有することを特徴とする。
また、本発明に係る通信システムは、前記更新処理手段が、前記第1通信装置の抽出手段により前記第1ハッシュ値記憶部が記憶したハッシュ値から第1部分を抽出し、抽出した前記第1部分を前記第1部分送信手段により前記第2通信装置へ送信し、前記第2部分受信手段にて前記第2通信装置から第2部分を受信して、前記残余値を更新するようにしてあることを特徴とする。
また、本発明に係る通信システムは、前記第2通信装置が、前記第2ハッシュ値算出手段が算出したハッシュ値を記憶する第2ハッシュ値記憶部と、前記第1通信装置の前記更新処理手段の更新処理により送信された前記第1部分に基づいて前記第2通信装置の抽出手段により前記第2部分を抽出し、抽出した前記第2部分を前記第2部分送信手段により前記第1通信装置へ送信し、前記第1部分及び前記第2部分に基づいて前記残余値を更新する更新処理手段とを有することを特徴とする。
また、本発明に係る鍵情報共有方法は、第1通信装置と、記憶部を有する第2通信装置とが暗号処理に用いる鍵情報を共有する鍵情報共有方法において、前記第1通信装置に、前記第2通信装置の記憶部の記憶内容を複写しておき、前記第1通信装置が、複写した記憶内容に基づくハッシュ値を算出する第1ハッシュ値算出ステップと、該第1ハッシュ値算出ステップにて算出したハッシュ値から第1部分を抽出する抽出ステップと、該抽出ステップにて抽出した前記第1部分を前記第2通信装置へ送信する第1部分送信ステップと、前記第2通信装置が、前記記憶部の記憶内容に基づくハッシュ値を算出する第2ハッシュ値算出ステップと、前記第2通信装置が、前記第1通信装置から前記第1部分を受信する第1部分受信ステップと、該第1部分受信ステップにて受信した前記第1部分が、前記第2ハッシュ値算出ステップにて算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定ステップと、該ハッシュ値判定ステップにて一致すると判定した場合に、前記第2ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分と異なる第2部分を抽出する抽出ステップと、該抽出ステップにて抽出した前記第2部分を前記第1通信装置へ送信する応答情報送信ステップと、前記第2ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に応じた鍵情報を生成する鍵情報生成ステップと、前記第1通信装置が、前記第2通信装置から前記第2部分を受信する第2部分受信ステップと、該第2部分受信ステップにて受信した前記第2部分が、前記第1ハッシュ値算ステップにて算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定ステップと、該ハッシュ値判定ステップにて一致すると判定した場合に、前記第1ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に応じた鍵情報を生成する鍵情報生成ステップとを含み、前記記憶内容にはランダムに決定された値を含むことを特徴とする。
本発明においては、第1通信装置及び第2通信装置が鍵情報を共有する。第1通信装置は、第2通信装置の記憶部の記憶内容を複写したものを記憶しておき、複写した記憶内容に基づいてハッシュ値を算出する第1ハッシュ値算出手段を有する。第2通信装置は、自らの記憶部の記憶内容に基づいてハッシュ値を算出する第2ハッシュ値算出手段を有する。なお第1ハッシュ値算出手段及び第2ハッシュ値算出手段は、同じ演算を行うものであり、入力情報が同じであれば算出するハッシュ値は同じである。
第1通信装置は、複写した記憶内容に基づくハッシュ値を算出し、その一部分を第1部分として抽出して第2通信装置へ送信する。第2通信装置は、第1通信装置から受信したハッシュ値の第1部分と、自らの記憶内容に基づいて算出したハッシュ値とを比較し、受信した第1部分と自らのハッシュ値の一部分とが一致するか否かを判定する。両ハッシュ値が一致しない場合、第2通信装置の記憶内容と第1通信装置の複写した記憶内容とが一致しないこととなるため、第2通信装置の記憶内容が不正に改ざんされた可能性があると判断できる。両ハッシュ値が一致する場合、第2通信装置は、自らが算出したハッシュ値から受信した第1部分と異なる第2部分を抽出して第2通信装置へ送信する。
第1通信装置は、第2通信装置から受信したハッシュ値の第2部分と、自らが算出したハッシュ値とを比較し、受信した第2部分と自らのハッシュ値の一部分とが一致するか否かを判定する。両ハッシュ値が一致しない場合、第2通信装置の記憶内容と第1通信装置の複写した記憶内容とが一致しないこととなるため、第2通信装置の記憶内容が不正に改ざんされた可能性があると判断できる。両ハッシュ値が一致する場合、第1通信装置及び第2通信装置は共に、それぞれ算出したハッシュ値が一致し、記憶内容に不正な改ざんがなされていないと判断できる。
そこで第1通信装置及び第2通信装置は、自らが算出したハッシュ値から、第1通信装置が抽出した第1部分と、第2通信装置が抽出した第2部分とを除いた残余値を算出し、この残余値に基づいて鍵情報を生成する。
これにより第1通信装置及び第2通信装置は、第2通信装置の記憶部の記憶内容の不正改ざんを検知する処理と、暗号処理のための鍵情報を決定する処理とを同時的に行うことができる。
また本発明においては、第1通信装置及び第2通信装置は、算出した残余値を鍵情報として暗号処理を行う。なお、残余値の全部を鍵情報としてもよく、残余値の一部を鍵情報としてもよい。これにより第1通信装置及び第2通信装置は、不正改ざんの検知処理の終了と共に鍵情報を取得することができる。
また本発明においては、第1通信装置及び第2通信装置は、例えば乱数などにより秘密値をそれぞれ生成し、秘密値及び残余値に基づいて公開値を生成して互いに送信し、自らの秘密値及び受信した公開値に基づいて鍵情報をそれぞれ生成する。
例えば、第1通信装置及び第2通信装置は、共通の素数テーブルを記憶しておく。素数テーブルには複数の素数が記憶されており、第1通信装置及び第2通信装置は、素数テーブルから素数を選択し、選択した素数を用いてそれぞれ公開値を生成する。
これらにより、第1通信装置及び第2通信装置が共有する鍵情報の秘匿性を高めることができる。
また本発明においては、ハッシュ値の算出に先立って、第1通信装置はハッシュ値算出用情報を生成して第2通信装置へ送信する。例えばハッシュ値算出用情報は、乱数とすることができる。また例えばハッシュ値算出用情報は、ハッシュ値算出の対象とする記憶部の領域を規定する情報とすることができる。第1通信装置及び第2通信装置は、ハッシュ値算出用情報を用いて、記憶内容に基づくハッシュ値の算出を行う。
これらにより、ハッシュ値算出が困難化されるため、記憶内容の不正改ざんの検知の信頼性を向上することができ、共有する鍵情報の信頼性を向上することができる。
また本発明においては、第1通信装置及び第2通信装置は、算出したハッシュ値をそれぞれ記憶しておく。第1通信装置は、例えば鍵情報を生成してから所定期間が経過した場合などの適宜のタイミングで、鍵情報の更新処理を行う。更新処理においては、記憶しておいたハッシュ値を用いることにより、処理負荷を低減することができる。第1通信装置は、記憶しておいたハッシュ値から、以前とは異なる第1部分を抽出して第2通信装置へ送信することにより、鍵情報の更新処理を開始する。第2通信装置は、受信した第1部分と記憶しておいたハッシュ値とに基づいて第2部分の抽出を行い、第2部分を第1通信装置へ送信する。これにより第1通信装置及び第2通信装置は、新たな第1部分及び第2部分に基づいて残余値を算出することができ、鍵情報を更新することができる。
本発明による場合は、第2通信装置の記憶部の記憶内容に対する不正改ざん検知の処理を利用して、第1通信装置及び第2通信装置により鍵情報の共有を行うことができる。第1通信装置及び第2通信装置は、共有した鍵情報を用いて暗号処理を行うことにより、信頼性の高い通信を行うことができる。
本実施の形態に係る通信システムの構成を示す模式図である。 ECUの構成を示すブロック図である。 ECUのROMの構成を示す模式図である。 監視装置の構成を示すブロック図である。 監視装置の記憶部に記憶される複写データの構成を説明する模式図である。 監視装置及びECUによる不正改ざん検知処理及び共有鍵生成処理を説明するための模式図である。 監視装置及びECUによる不正改ざん検知処理及び共有鍵生成処理を説明するための模式図である。 共有鍵の更新処理を説明するための模式図である。 監視装置が行う不正改ざん検知及び共有鍵生成の処理手順を示すフローチャートである。 監視装置からのハッシュ値計算指示に応じてECUが行う処理の手順を示すフローチャートである。 監視装置からのハッシュ確認指示に応じてECUが行う処理の手順を示すフローチャートである。 監視装置が行う共有鍵の更新処理の手順を示すフローチャートである。 実施の形態2に係る通信システムの共有鍵生成方法を説明するための模式図である。 素数テーブルの一例を示す模式図である。
(実施の形態1)
<システム構成>
図1は、本実施の形態に係る通信システムの構成を示す模式図である。本実施の形態に係る通信システムは、車両1に搭載された複数のECU(Electronic Control Unit)3と、1つの監視装置5とを備えて構成されている。ECU3及び監視装置5は、車両1に敷設された共通の通信線を介して接続され、相互にデータを送受信することができる。本実施の形態においては、この通信線をCAN(Controller Area Network)バスとし、ECU3及び監視装置5は、CANプロトコルに従った通信を行う。ECU3は、例えば車両1のエンジンの制御を行うエンジンECU、車体の電装品の制御を行うボディECU、ABS(Antilock Brake System)に関する制御を行うABS−ECU、又は、車両1のエアバッグの制御を行うエアバッグECU等のように、種々の電子制御装置であってよい。監視装置5は、ECU3が記憶するプログラム及びデータに対する不正な改ざん、及び、車内ネットワークに対する不正なデータ送信等を監視する装置である。監視装置5は、監視専用の装置として設けられてもよく、例えばゲートウェイなどの装置に監視の機能を付加した構成であってもよく、また例えばいずれか1つのECU3に監視の機能を付加した構成であってもよい。
図2は、ECU3の構成を示すブロック図である。なお図2においては、車両1に設けられた複数のECU3について、通信及び不正検知等に関するブロックを抜き出して図示してある。これらのブロックは各ECU3に共通である。本実施の形態に係るECU3は、処理部31、ROM(Read Only Memory)32、記憶部33及びCAN通信部34等を備えて構成されている。処理部31は、CPU(Central Processing Unit)又はMPU(Micro-Processing Unit)等の演算処理装置を用いて構成されている。処理部31は、ROM32に記憶されたプログラム32aを読み出して実行することにより、車両1に係る種々の情報処理又は制御処理等を行う。
ROM32は、マスクROM、フラッシュメモリ又はEEPROM(Electrically Erasable Programmable ROM)等の不揮発性のメモリ素子を用いて構成されている。ROM32は、処理部31が実行するプログラム32aと、これにより行われる処理に必要な種々のデータ32bとが記憶されている。なおROM32に記憶されるプログラム32a及びデータ32bは、ECU3毎に異なる。なお本実施の形態においては、ROM32がフラッシュメモリなどのデータ書き換え可能なメモリ素子を用いて構成されている場合であっても、処理部31の処理によりROM32のデータ書換は行われないものとする。
記憶部33は、フラッシュメモリ又はEEPROM等のデータ書き換え可能なメモリ素子を用いて構成されている。なお記憶部33は、SRAM(Static Random Access Memory)又はDRAM(Dynamic Random Access Memory)等の揮発性のメモリ素子を用いて構成されていてもよい。記憶部33は、処理部31の処理により生成された種々のデータを記憶する。また本実施の形態においては、記憶部33は、処理部31の処理により算出されたハッシュ値33aを記憶する。
CAN通信部34は、CANの通信プロトコルに従って、CANバスを介した他のECU3又は監視装置5との通信を行う。CAN通信部34は、処理部31から与えられた送信用の情報を、CANの通信プロトコルに従った送信信号に変換し、変換した信号をCANバスへ出力することで他のECU3又は監視装置5への情報送信を行う。CAN通信部34は、CANバスの電位をサンプリングすることによって、他のECU3又は監視装置5が出力した信号を取得し、この信号をCANの通信プロトコルに従って2値の情報に変換することで情報の受信を行い、受信した情報を処理部31へ与える。
本実施の形態においてECU3の処理部31には、ハッシュ値算出部41、ハッシュ値判定部42、抽出部43、鍵生成部44及び暗号処理部45等が設けられている。ハッシュ値算出部41〜暗号処理部45は、ハードウェアの機能ブロックとして構成されるものであってもよく、ソフトウェアの機能ブロックとして構成されるものであってもよい。ハッシュ値算出部41〜暗号処理部45が行う処理の詳細は後述する。
図3は、ECU3のROM32の構成を示す模式図である。図示の例では、ROM32はアドレスが0000h〜FFFFhで表される記憶領域を有している。ROM32には、処理部31にて実行される2つのプログラム32a(図3においてはプログラム1及びプログラム2と示す)と、各プログラムの実行にそれぞれ必要な2種のデータ(データ1及びデータ2)とが記憶されている。ROM32には、アドレスの先頭側からプログラム1、プログラム2、データ1、データ2の順に記憶されているが、それぞれの間の記憶領域及びアドレスの末尾側の記憶領域にはダミーデータが記憶されている。
ダミーデータはどのような値であってもよいが、例えばランダムに決定された値を記憶しておくことができる。ダミーデータはROM32の余剰領域の全てに書き込まれる。即ちROM32には、その全記憶領域に何らかのデータが記憶されている。これにより、ROM32の余剰領域に不正なプログラムを記憶して不正な処理が行われることを防止できる。またROM32に記憶されたプログラム32a及びデータ32bを圧縮することを困難化することができる。
図4は、監視装置5の構成を示すブロック図である。監視装置5は、処理部51、記憶部52及びCAN通信部53等を備えて構成されている。処理部51は、CPU又はMPU等の演算処理装置を用いて構成され、記憶部52に記憶されたプログラムを読み出して実行することにより、車両1のECU3の挙動及び通信等を監視する処理を行う。
記憶部52は、フラッシュメモリ又はEEPROM等のデータ書き換え可能な不揮発性のメモリ素子を用いて構成されている。本実施の形態において記憶部52は、車両1に搭載されたECU3のROM32の記憶内容を複写した複写データ52aを記憶している。また記憶部52は、処理部51の処理により算出されたハッシュ値52bを記憶する。なお、記憶部52は耐タンパ性と呼ばれる外部からの解析に対する耐性を持ち、複写データ52aやハッシュ値52bの改ざんや解読はされないものとする。
CAN通信部53は、CANの通信プロトコルに従って、CANバスを介したECU3との通信を行う。CAN通信部53は、処理部51から与えられた送信用の情報を、CANの通信プロトコルに従った送信信号に変換し、変換した信号をCANバスへ出力することでECU3への情報送信を行う。CAN通信部53は、CANバスの電位をサンプリングすることによって、ECU3が出力した信号を取得し、この信号をCANの通信プロトコルに従って2値の情報に変換することで情報の受信を行い、受信した情報を処理部51へ与える。
本実施の形態において監視装置5の処理部51には、ハッシュ値算出部61、抽出部62、ハッシュ値判定部63、鍵生成部64及び暗号処理部65等が設けられている。ハッシュ値算出部61〜暗号処理部65は、ハードウェアの機能ブロックとして構成されるものであってもよく、ソフトウェアの機能ブロックとして構成されるものであってもよい。ハッシュ値算出部61〜暗号処理部65が行う処理の詳細は後述する。
図5は、監視装置5の記憶部52に記憶される複写データ52aの構成を説明する模式図である。監視装置5は、車両1に搭載された監視対象の全てのECU3について、ROM3の記憶内容と同じものを複写データ52aとして記憶している。複写データ52aは、各ECU3に対して一意に付された識別情報(図5においてECUa、ECUb…)と、各ECU3のROM3の記憶内容とが対応付けて記憶されている。
<不正改ざん検知及び共有鍵生成>
本実施の形態に係る通信システムでは、例えば車両1のイグニッションスイッチがオフ状態からオン状態へ切り替えられた場合に、監視装置5が各ECU3の不正改ざんの検知処理と、共有鍵の生成処理とを行う。これらの処理は、監視装置5と1つのECU3とが1対1で情報交換を行うことにより行われる。監視装置5は、車両1に搭載された複数のECU3に対して、所定の順序で処理を行う。監視装置5による処理が終了した後、各ECU3による個別の処理が開始される。以下、監視装置5と1つのECU3との間で行われる不正改ざん検知処理及び共有鍵生成処理について説明する。
図6及び図7は、監視装置5及びECU3による不正改ざん検知処理及び共有鍵生成処理を説明するための模式図である。なお、図6には監視装置5及びECU3の間で行われる情報の送受信の手順を示し、図7には算出されるハッシュ値の構成を示してある。不正改ざん検知処理及び共有鍵生成処理において、監視装置5は、まずハッシュ値算出に用いられる情報の生成を行う。本実施の形態において監視装置5は、ランダムシード及び領域指定情報を生成する。監視装置5の処理部51は、所定のアルゴリズムにより乱数を発生させて得られた所定ビット長のデータをランダムシードとする。領域指定情報は、ハッシュ値算出の対象とするROM32の領域を指定する情報であり、例えば開始アドレス及び終了アドレス、又は、開始アドレス及びデータサイズ等の情報である。処理部51は、例えば乱数に基づいて開始アドレスを決定し、この開始アドレスに所定数を加算したものを終了アドレスとすることができる。また例えば処理部51は、初回の開始アドレスを0などの初期値とし、2回目以降については前回の開始アドレスに所定数を加算したものを今回の開始アドレスとすることができる。
監視装置5の処理部51は、生成したランダムシード及び領域指定情報を、ハッシュ値の計算指示と共に、処理対象のECU3へ送信する。また処理部51のハッシュ値算出部61は、記憶部52の複写データ52aから処理対象のECU3の記憶内容を読み出し、読み出した記憶内容と、生成したランダムシード及び領域指定情報とを用いて、ハッシュ値を算出する。ハッシュ値算出部61は、複写された記憶内容から領域指定情報にて指定された箇所を抽出し、抽出した記憶内容とランダムシードとを予め定められたハッシュ関数へ入力することにより、ハッシュ値を算出する。本実施の形態においてハッシュ値算出部61は、SHA−1のハッシュ関数を用いて160ビットのハッシュ値を算出するものとする。処理部51は、ハッシュ値算出部61が算出したハッシュ値を記憶部52に記憶しておく。
監視装置5からのランダムシード及び領域指定情報を受信したECU3は、自らのROM32の記憶内容と、受信したランダムシード及び領域指定情報とを用いて、処理部31のハッシュ値算出部41にてハッシュ値を算出する。ハッシュ値算出部41は、ROM32から領域指定情報にて指定された箇所を抽出し、抽出した記憶内容とランダムシードとを予め定められたハッシュ関数へ入力することにより、ハッシュ値を算出する。処理部31は、ハッシュ値算出部41が算出したハッシュ値を記憶部33に記憶しておく。なお、監視装置5が用いるハッシュ関数と、ECU3が用いるハッシュ関数とは同じものである。よって監視装置5が算出するハッシュ値と、ECU3が算出するハッシュ値とは、複写データ52aの記憶内容がROM32の記憶内容と同じであれば、同じ値となる。逆に、両ハッシュ値が異なる値となった場合、ECU3のROM32の記憶内容が改ざんされている可能性がある。
ここで、監視装置5のハッシュ値算出部61及びECU3のハッシュ値算出部41によるハッシュ値算出の方法を簡単に説明する。ハッシュ値算出部41,61は、例えばMD(Message Digest)4、MD5、SHA−1、SHA−256、SHA−384、SHA−512、EIPEMD−160又はSHA−3等の既存のハッシュ関数を利用してハッシュ値の算出を行う構成とすることができる。これらはいわゆる一方向のハッシュ関数であり、入力された情報に対して一つのハッシュ値を出力する関数である。ハッシュ関数に入力される情報は、本実施の形態においてECU3のROM32に記憶されたプログラム32a又はデータ32bの一部又は全部である。ハッシュ関数に入力されるものがプログラム32a若しくはデータ32bのいずれであっても、又は、プログラム32a及びデータ32bの両方であっても、ハッシュ関数は入力されたものを単に2値の情報として扱い、ハッシュ値を算出することができる。ハッシュ値算出部41,61は、予め定められたハッシュ関数を記憶しており、このハッシュ関数を用いてハッシュ値の算出を行う。
以下、ハッシュ値算出部41,61がSHA−1のハッシュ関数を用いてハッシュ値を算出する場合について、算出方法を説明する。なおSHA−1のハッシュ関数の詳細な処理、及び、ハッシュ値算出部41,61が他のハッシュ関数を用いる場合については、これらのハッシュ関数は既存の技術であるため、説明を省略する。
SHA−1のハッシュ関数を利用する場合、ハッシュ値算出部41,61は、まずパディング処理を行う。パディング処理においてハッシュ値算出部41,61は、入力情報の後に余分なデータを付け加えることによって、処理対象の情報のサイズを所定値(512ビット)の整数倍となるように調整する。次いでハッシュ値算出部41,61は、パディング処理された情報を512ビット毎のブロックに分割し、各ブロックについて80個の値を算出する第1処理を行う。
次いでハッシュ値算出部41,61は、所定サイズ(160ビット)の初期値に対して、第1処理にて算出した値を用いた演算を行い、演算後の160ビットの値をハッシュ値とする第2処理を行う。第2処理において、まずハッシュ値算出部41,61は、160ビットの初期値に対して、1つのブロックについて算出した80個の値を用いて80ステップの演算を行う。この80ステップの演算により、160ビットの初期値に対して、ブロックの情報を混ぜ込むことができ、出力として160ビットの値が得られる。ハッシュ値算出部41,61は、得られた160ビットの値を初期値として、次のブロックについて算出した80個の値を用いて同様に80ステップの演算を行う。ハッシュ値算出部41,61は、全ブロックについて同様の80ステップの処理を行い、最終的に得られた160ビットの値をハッシュ値とする。
また本実施の形態においてハッシュ値算出部41,61は、監視装置5が生成したランダムシードを利用してハッシュ値の算出を行う必要がある。例えばハッシュ値算出部41,61は、上記のパディング処理において、入力情報に付加するデータにランダムシードを用いることができる。また例えばハッシュ値算出部41,61は、上記の第2処理において、160ビットの初期値にランダムシードを用いることができる。本実施の形態においては、第2処理の初期値にランダムシードを用いるものとする。
なおハッシュ値算出部41,61によるランダムシードの利用方法は上記のものに限らない。例えばハッシュ値算出部41,61は、ハッシュ値算出の対象とするROM32の記憶内容とランダムシードとの論理演算値(排他的論理和など)をハッシュ関数への入力情報とすることができる。また例えばハッシュ値算出部41,61は、ハッシュ値算出の対象とするROM32の記憶内容の先頭部分又は末尾部分等の所定位置にランダムシードを付加したものをハッシュ関数への入力情報とすることができる。
監視装置5の処理部51は、ランダムシード及び領域指定情報のECU3への送信並びにハッシュ値算出部41によるハッシュ値の算出を終えた後、算出したハッシュ値の一部分を抽出する処理を抽出部62にて行う。本実施の形態において抽出部62は、算出した160ビットのハッシュ値から、64ビットの値を抽出して確認用情報(ハッシュ値の第1部分)とする。図7に示す例では、160ビットのハッシュ値のうち0〜63の64ビットを確認用情報として抽出している。処理部51は、抽出部62が抽出した確認用情報を含むハッシュ確認指示を、処理対象のECU3へ送信する。
監視装置5からハッシュ確認指示を受信したECU3の処理部31は、受信したハッシュ確認指示に含まれる確認用情報を取得する。処理部31のハッシュ値判定部42は、監視装置5から取得した確認用情報と、自らがハッシュ値算出部41にて算出したハッシュ値とを比較する。ハッシュ値判定部42は、ハッシュ値算出部41が算出したハッシュ値に、監視装置5から確認用情報として取得したハッシュ値の一部が含まれるか否かを判定する。自らのハッシュ値に確認用情報のハッシュ値が含まれないとハッシュ値判定部42が判定した場合、ECU3が算出したハッシュ値と監視装置5が算出したハッシュ値が一致しないと考えられるため、処理部31は処理を中断し、監視装置5へエラー通知などを行う。
自らのハッシュ値に確認用情報のハッシュ値が含まれるとハッシュ値判定部42が判定した場合、ECU3が算出したハッシュ値と監視装置5が算出したハッシュ値とが同じ値であるとみなし、処理部31は、監視装置5へハッシュ確認指示に対する応答(ハッシュ確認応答)を送信する処理を行う。このときに処理部31の抽出部43は、ハッシュ値算出部41が算出した160ビットのハッシュ値から確認用情報に相当する64ビットを除いた部分から、更に64ビットの情報を抽出する。図7に示す例では、監視装置5からの確認用情報に続く64ビットの情報を、抽出部43が応答情報(ハッシュ値の第2部分)として抽出している。処理部31は、抽出部43が抽出した64ビットの応答情報をハッシュ確認応答に含めて監視装置5へ送信する。なおハッシュ値から確認用情報及び応答情報を抽出する方法は、図7に示すものに限らない。例えば確認用情報及び応答情報の一部が重複していてもよい。
ECU3からハッシュ確認応答を受信した監視装置5の処理部51は、受信したハッシュ確認応答に含まれる応答情報を取得する。処理部51のハッシュ値判定部63は、ECU3から取得した応答情報と、自らがハッシュ値算出部61にて算出したハッシュ値とを比較する。ハッシュ値判定部63は、ハッシュ値算出部61が算出したハッシュ値から抽出部62が抽出した確認用情報を除いた部分に、ECU3からの応答情報として取得したハッシュ値の一部が含まれるか否かを判定する。自らのハッシュ値に応答情報のハッシュ値が含まれないとハッシュ値判定部63が判定した場合、監視装置5が算出したハッシュ値とECU3が算出したハッシュ値とが一致しないと考えられるため、処理部51は処理を中断し、ECU3へエラー通知などを行う。
自らのハッシュ値に応答情報のハッシュ値が含まれるとハッシュ値判定部63が判定した場合、処理部51は、監視装置5が算出したハッシュ値とECU3が算出したハッシュ値とが同じ値であるとみなす。このときに処理部51は、ECU3へハッシュ値の判定に成功した旨を通知してもよい。処理部51の鍵生成部64は、ハッシュ値算出部61が算出したハッシュ値と、抽出部62が抽出した確認用情報と、ECU3から取得した応答情報とに基づいて、ECU3との通信にて暗号処理に用いる共有鍵を生成する。処理部51は、鍵生成部64が生成した共有鍵を、例えば記憶部52に記憶しておく。図7に示す例では、ハッシュ値算出部61が算出した160ビットのハッシュ値から、確認用情報の64ビットと応答情報の64ビットとを取り除いた32ビットの情報を共有鍵としている。
同様に、ECU3の鍵生成部44は、自らのハッシュ値算出部41が算出した160ビットのハッシュ値から、確認用情報として監視装置5から受信した64ビットの情報と、抽出部43が応答情報として抽出した64ビットの情報とを取り除いた32ビットの情報を共有鍵とする。処理部31は、鍵生成部44が生成した共有鍵を、例えば記憶部33に記憶しておく。これにより、ECU3及び監視装置5は、32ビットの鍵情報を共有することができる。なお鍵情報は、図7に示すものに限らない。例えば確認用情報及び応答情報の一部が重複していてもよい。
以後、ECU3及び監視装置5は、上記の手順で生成した共有鍵を用いて通信を行う。なお共有鍵を用いた通信は、既存の技術であるため、詳細な説明は省略する。例えばECU3の処理部31は、監視装置5へ送信する情報を暗号処理部45にて共有鍵を用いて暗号化し、暗号化した情報をCAN通信部34へ与えて監視装置5へ送信する。監視装置5の処理部51は、ECU3から受信した情報を暗号処理部65にて復号する。又は、例えばECU3の処理部31は、監視装置5へ送信する情報及び共有鍵に基づいて暗号処理部45が認証情報を生成し、生成した認証情報を送信情報に付して監視装置5へ送信する。監視装置5の処理部51は、ECU3からの受信情報に付された認証情報が正当なものであるか否かを暗号処理部45が共有鍵を用いて判定し、認証情報が正当なものである場合に受信情報を用いた処理を行う。
<共有鍵の更新>
ECU3及び監視装置5の間で同じ共有鍵を用いて通信を繰り返し行った場合、通信内容を傍受した悪意の装置が共有鍵を推定する可能性が高まる。そこで本実施の形態に係る通信システムでは、所定のタイミングで共有鍵を更新する処理を行う。例えば、共有鍵を所定回数(10回又は100回等)用いた場合に更新処理を行う構成とすることができる。例えば、車両1のイグニッションスイッチがオフ状態からオン状態へ変化した場合に更新処理を行う構成とすることができる。また例えば、何らかの通信エラーが発生した場合に更新処理を行う構成とすることができる。これら以外のタイミングで共有鍵の更新処理を行ってもよい。
本実施の形態に係る通信システムでは、共有鍵の更新処理について2種の方法を提供する。第1の方法は、上述のような共有鍵の生成処理を最初から行う方法である。即ち共有鍵を更新するタイミングとなった場合、監視装置5がランダムシード及び領域指定情報を生成してハッシュ値計算指示をECU3へ送信し、ハッシュ値の再算出及び共有鍵の再生成を行う。
共有鍵を更新する第2の方法は、ECU3及び監視装置5がそれぞれ記憶している算出済みのハッシュ値を用いる方法である。この方法は、ECU3及び監視装置5にてハッシュ値を算出するための処理を行う必要がないため、短時間で行うことが可能であるという利点がある。以下、記憶したハッシュ値を利用して共有鍵を更新する方法について説明する。
図8は、共有鍵の更新処理を説明するための模式図である。ECU3は、共有鍵を生成した際に算出したハッシュ値33aを記憶部33に記憶している。同様に監視装置5は、共有鍵を生成した際に算出したハッシュ値52bを記憶部52に記憶している。ECU3及び監視装置5が記憶しているハッシュ値は同じ値である。ただし、監視装置5は複数のECU3との間で共有鍵の生成処理を行うため、各ECU3についてハッシュ値を記憶している。図8上段に示した図は、図7に示した図と同じものであり、ECU3及び監視装置5が記憶しているハッシュ値及び現時点(更新処理前)での共有鍵等を図示してある。
共有鍵を更新する必要が生じた場合、監視装置5の処理部51は、記憶部52に記憶しているハッシュ値52bから、新たな確認用情報を抽出する処理を抽出部62にて行う。このときに抽出部62は、前回の共有鍵生成又は更新の際とは異なる確認用情報を抽出する。このため監視装置5は、確認用情報を抽出した位置(ハッシュ値の何ビット目から何ビット目までを確認用情報としたか)を記憶していることが好ましいが、現在の共有鍵が記憶しているハッシュ値のいずれの部分に該当するかを調べることにより前回の確認用情報の抽出位置を特定することもできる。
例えば抽出部62は、乱数を生成し、前回の抽出位置に対して乱数を加算した位置を今回の抽出位置とすることができる。図8中段に示した例では、前回の抽出位置(0〜63ビット)に対して10ビットを加算し、記憶しているハッシュ値の10〜73ビットを確認用情報として抽出している。監視装置5の処理部51は、抽出部62が抽出した64ビットの確認用情報を含むハッシュ確認指示をECU3へ送信する。これを受信したECU3の抽出部43は、記憶部33に記憶しているハッシュ値33aから応答情報を抽出する。図8中段に示した例では、確認用情報に続く74〜137ビットを応答情報として抽出している。ECU3の処理部31は、抽出した確認用情報を含むハッシュ確認応答を監視装置5へ送信する。これにより監視装置5及びECU3は、新たな確認用情報及び応答情報を得ることができ、自らが記憶しているハッシュ値から確認用情報及び応答情報を除いた32ビットの情報を新たな共有鍵とする。図8中段に示した例では、ハッシュ値の138〜159ビット、0〜9ビットの情報を共有鍵としている。
図8下段には、更に共有鍵を更新する必要が生じた場合の例を示してある。監視装置5は、前回の抽出位置に対して2ビットを加算し、ハッシュ値の32〜95ビットを確認用情報として抽出してECU3へ送信する。ECU3は、確認用情報に続く96〜159ビットを応答情報として抽出して監視装置5へ送信する。監視装置5及びECU3は、記憶しているハッシュ値から確認用情報及び応答情報を除いた0〜31ビットを共有鍵とする。
このように、本実施の形態に係る通信システムでは、算出済みのハッシュ値を再利用し、監視装置5によるハッシュ値からの確認用情報の抽出位置を変化させることによって、共有鍵を更新することができる。本例の場合、160ビットのハッシュ値からは少なくとも160通りの共有鍵を得ることが可能である。また本実施の形態に係る通信システムでは、監視装置5がランダムシード及び領域指定情報を変更してハッシュ値の再算出を行うことによって、更に多くの共有鍵を得ることが可能である。
<フローチャート>
以下、本実施の形態に係る通信システムの監視装置5及びECU3が行う処理を、フローチャートを用いて説明する。図9は、監視装置5が行う不正改ざん検知及び共有鍵生成の処理手順を示すフローチャートである。監視装置5の処理部51は、ハッシュ値算出に用いられるランダムシードと、ECU3のROM32の記憶領域をしている領域指定情報とを生成する(ステップS1)。処理部51は、生成したランダムシード及び領域指定情報を含むハッシュ値計算指示を、CAN通信部53にて処理対象のECU3へ送信する(ステップS2)。
処理部51のハッシュ値算出部61は、記憶部52から処理対象のECU3の記憶内容の複写データ52aを取得し、取得した複写データ52aとステップS1にて生成したランダムシード及び領域指定情報とを基に、所定のハッシュ関数を用いてハッシュ値を算出し、算出したハッシュ値を記憶部52に記憶する(ステップS3)。処理部51の抽出部62は、ステップS3にて算出したハッシュ値から一部分を確認用情報として抽出する(ステップS4)。処理部51は、抽出した確認用情報を含むハッシュ確認指示を、CAN通信部53にて処理対象のECU3へ送信する(ステップS5)。
次いで処理部51は、ハッシュ確認指示に対してECU3が送信するハッシュ確認応答をCAN通信部53にて受信したか否かを判定する(ステップS6)。ハッシュ確認応答を受信していない場合(S6:NO)、処理部51は、処理対象のECUからエラー通知を受信したか否かを判定する(ステップS7)。エラー通知を受信していない場合(S7:NO)、処理部51はステップS6へ処理を戻し、ハッシュ確認応答又はエラー通知をECU3から受信するまで待機する。
処理対象のECU3からハッシュ確認応答を受信した場合(S6:YES)、処理部51のハッシュ値判定部63は、受信したハッシュ確認応答に含まれる応答情報が、ステップS3にて算出したハッシュ値に含まれるか否かに応じて、応答情報の成否を判定する(ステップS8)。ECU3からエラー通知を受信した場合(S7:YES)、又は、ECU3から受信した応答情報が正しいものでない場合(S8:NO)、処理部51は、対象のECU3のROM32の記憶内容が改変された可能性があると判断し、例えばこのECU3の動作を停止させるなどの適宜のエラー処理を行って(ステップS9)、処理を終了する。
ECU3から受信した応答情報が正しい場合(S8:YES)、処理部51の鍵生成部64は、ECU3との通信に用いる共有鍵の生成を行う(ステップS10)。このときに鍵生成部64は、ステップS3にて算出したハッシュ値から、ステップS4にて抽出した確認用情報及びステップS6にて受信した応答情報を除いたものを共有鍵とする。処理部51は、鍵生成部64が生成した共有鍵を記憶部52に記憶して(ステップS11)、処理を終了する。
図10は、監視装置5からのハッシュ値計算指示に応じてECU3が行う処理の手順を示すフローチャートである。ECU3の処理部31は、CAN通信部34にて監視装置5からハッシュ値計算指示を受信したか否かを判定する(ステップS21)。ハッシュ値計算指示を受信していない場合(S21:NO)、処理部31は、ハッシュ値計算指示を受信するまで待機する。ハッシュ値計算指示を受信した場合(S21:YES)、処理部31は、受信したハッシュ値計算指示に含まれるランダムシード及び領域指定情報を取得する(ステップS22)。処理部31のハッシュ値算出部41は、ROM32の記憶内容と、ステップS22にて取得したランダムシード及び領域指定情報とに基づいて、所定のハッシュ関数を用いてハッシュ値を算出する(ステップS23)。処理部31は、算出したハッシュ値を記憶部33に記憶し(ステップS24)、処理を終了する。
図11は、監視装置5からのハッシュ確認指示に応じてECU3が行う処理の手順を示すフローチャートである。なお本処理は、最初に共有鍵を生成する場合と、共有鍵を更新する場合とで共通である。ECU3の処理部31は、CAN通信部34にて監視装置5からハッシュ確認指示を受信したか否かを判定する(ステップS31)。ハッシュ確認指示を受信していない場合(S31:NO)、処理部31は、ハッシュ確認指示を受信するまで待機する。ハッシュ確認指示を受信した場合(S31:YES)、処理部31は、記憶部33に記憶したハッシュ値33aを読み出す(ステップS32)。処理部31のハッシュ値判定部42は、ステップS31にて受信したハッシュ確認指示に含まれる確認用情報が、ステップS32にて読み出したハッシュ値に含まれるか否かに応じて、確認用情報の成否を判定する(ステップS33)。確認用情報が正しものでない場合(S33:NO)、処理部31は、エラー通知を監視装置5へ送信し(ステップS34)、処理を終了する。
監視装置5からの確認用情報が正しい場合(S33:YES)、処理部31の抽出部43は、ステップS32にて読み出したハッシュ値から確認用情報を除いた部分から、応答情報を抽出する(ステップS35)。処理部31は、抽出した応答情報をCAN通信部34にて監視装置5へ送信する(ステップS36)。処理部31の鍵生成部44は、監視装置5との通信に用いる共有鍵の生成を行う(ステップS37)。このときに鍵生成部44は、ステップS32にて読み出したハッシュ値から、ステップS31にて受信した確認用情報と、ステップS35にて抽出した応答情報とを除いたものを共有鍵とする。処理部31は、鍵生成部44が生成した共有鍵を記憶部33に記憶して(ステップ38)、処理を終了する。
図12は、監視装置5が行う共有鍵の更新処理の手順を示すフローチャートである。監視装置5の処理部51は、例えば共有鍵を所定回数利用した場合など、共有鍵を更新するタイミングに至ったか否かを判定する(ステップS41)。共有鍵を更新するタイミングに至っていない場合(S41:NO)、処理部51は、共有鍵を更新するタイミングに至るまで待機する。共有鍵を更新するタイミングに至った場合(S41:YES)、処理部51は、記憶部52に記憶されたハッシュ値52bを読み出す(ステップS42)。
次いで処理部51の抽出部62は、ハッシュ値から前回の確認用情報を抽出した位置を取得する(ステップS43)。抽出部62は、前回の抽出位置を記憶部52などに記憶しておいてこれを取得してもよく、ハッシュ値と現時点の共有鍵とを比較して抽出位置を取得してもよい。抽出部62は、乱数を発生させ(ステップS44)、前回の抽出位置に乱数を加えた位置を算出して、ステップS42にて読み出したハッシュ値の該当位置から確認用情報を抽出する(ステップS45)。
処理部51は、抽出部62が抽出した確認用情報を含むハッシュ確認指示を処理対象のECU3へ送信する(ステップS46)。なお以降の処理は、図9に示したフローチャートのステップS6〜S11と同じであるが、図12にはこれらの処理を簡略化して手順を示してある。処理部51は、ハッシュ確認指示に対してECU3が送信するハッシュ確認応答を受信する(ステップS47)。処理部51のハッシュ値判定部63は、受信したハッシュ確認応答に含まれる応答情報が正しいか否かの判定を行う(ステップS48)。処理部51の鍵生成部64は、ステップS42にて読み出したハッシュ値と、ステップS45にて抽出した確認用情報と、ステップS48にて正しいと判定した応答情報とに基づいて、新たな共有鍵を生成し(ステップS49)、生成した共有鍵を記憶部52に記憶して(ステップS50)、処理を終了する。
<まとめ>
以上の構成の本実施の形態に係る通信システムは、ECU3及び監視装置5が鍵情報を共有し、この鍵情報を用いた通信を行う。ECU3は、ROM32の記憶内容に基づいてハッシュ値を算出するハッシュ値算出部41を有する。監視装置5は、ECU3のROM32の記憶内容の複写データ52aを記憶部52に記憶しておき、複写した記憶内容に基づいてハッシュ値を算出するハッシュ値算出部61を有する。ECU3のハッシュ値算出部41と監視装置5のハッシュ値算出部61とは、同じハッシュ関数による演算を行うものであり、入力される情報が同じであれば算出されるハッシュ値は同じ値となる。
監視装置5は、複写データ52aに基づくハッシュ値を算出し、その一部分を確認用情報としてECU3へ送信する。ECU3は、監視装置5から確認用情報として受信したハッシュ値の一部分と、自らが算出したハッシュ値とを比較し、受信したハッシュ値の一部分が自らのハッシュ値に含まれるか否かを判定する。受信したハッシュ値の一部分が自らのハッシュ値に含まれない場合、監視装置5の複写データ52aとECU3のROM32の記憶内容とが一致しないこととなるため、ECU3のROM32の記憶内容が不正に改ざんされた可能性があると判断できる。受信したハッシュ値の一部分が自らのハッシュ値に含まれる場合、ECU3は、自らが算出したハッシュ値から確認用情報を除いた値から、更に一部分を抽出して応答情報として監視装置5へ送信する。
監視装置5は、ECU3から応答情報として受信したハッシュ値の一部分と、自らが算出したハッシュ値とを比較し、受信したハッシュ値の一部分が自らのハッシュ値に含まれるか否かを判定する。受信したハッシュ値の一部分が自らのハッシュ値に含まれない場合、ECU3のROM32の記憶内容が不正に改ざんされた可能性があると判断できる。受信したハッシュ値の一部分が自らのハッシュ値に含まれる場合、ECU3及び監視装置5がそれぞれ算出したハッシュ値が一致し、ROM32の記憶内容に不正な改ざんがなされていないと判断できる。
ECU3及び監視装置5は、それぞれ自らが算出したハッシュ値から、監視装置5が抽出した確認用情報と、ECU3が抽出した応答情報とを除いた残余値を算出し、この残余値を鍵情報として共有して暗号処理を行う。なお残余値の全てを鍵情報としてもよく、残余値の一部を鍵情報としてもよい。これらにより、ECU3及び監視装置5は、ECU3のROM32の記憶内容の不正改ざんを検知する処理と、暗号処理のための鍵情報を決定する処理とを同時的に行うことができる。
また本実施の形態に係る通信システムでは、ハッシュ値の算出に先立って、監視装置5はランダムシード及び領域指定情報を生成してハッシュ値算出用情報としてECU3へ送信する。ECU3及び監視装置5は、ランダムシード及び領域指定情報を用いてハッシュ値の算出を行う。これにより、ハッシュ値算出が困難化されるため、記憶内容の不正改ざんの検知の信頼性を向上することができ、共有する鍵情報の信頼性を向上することができる。
また本実施の形態に係る通信システムでは、ECU3及び監視装置5は、算出したハッシュ値をそれぞれ記憶しておく。監視装置5は、例えば鍵情報を生成下から所定期間が経過した場合などの適宜のタイミングで、鍵情報の更新処理を行う。更新処理においては、新たにハッシュ値の算出を行うことなく、記憶しておいたハッシュ値を用いることにより、処理負荷を低減する。監視装置5は、記憶しておいたハッシュ値から、現時点の鍵情報を生成した際の確認用情報とは異なる一部分を抽出し、抽出した情報を新たな確認用情報としてECU3へ送信する。監視装置5による確認用情報の送信により、鍵情報の更新処理が開始される。ECU3は、受信した確認用情報と、記憶しておいたハッシュ値とに基づいて応答情報を生成して監視装置5へ送信する。これによりECU3及び監視装置5は、記憶しておいたハッシュ値と、新たな確認用情報及び応答情報とに基づいて新たな鍵情報を生成することができ、鍵情報を更新することができる。
なお本実施の形態においては、ECU3及び監視装置5の通信を、車両1に敷設されたCANバスを介した有線通信にて行う構成としたが、これに限るものではなく、無線LANなどの無線通信を行う構成としてもよい。またCAN以外のプロトコルによる有線通信を行う構成としてもよい。また監視装置5は、ECU3のROM32の記憶内容を複写した複写データ52aを記憶部52に記憶する構成としたが、これに限るものではない。例えば複写データ52aは別のサーバ装置などが記憶し、監視装置5が必要に応じてサーバ装置から複写データ52aを取得してもよく、更にはサーバ装置にハッシュ値算出機能を設けて監視装置5がサーバ装置から必要なハッシュ値を取得する構成としてもよい。また本実施の形態においては、車両1に搭載された通信システムを例に説明を行ったが、通信システムは車両1に搭載されるものに限らず、例えば飛行機又は船舶等の移動体に搭載されるものであってよく、また例えば移動体ではなく工場、オフィス又は学校等に設置されるものであってもよい。
(変形例)
変形例に係る通信システムの監視装置5は、上述の処理に加えて、ECU3へハッシュ確認指示を送信してから、このECU3からのハッシュ確認応答を受信するまでの時間を計測する処理を行う。監視装置5は、計測した時間が閾値を超えるか否かを判定し、計測時間が閾値を超える場合、ECU3のROM32の記憶内容に対する不正な書き換えが行われたと判定する。なお判定に用いる閾値は、監視装置5及びECU3の通信速度、及び、ECU3の処理能力等を考慮し、本システムの設計段階などにおいて予め決定しておく。
例えば監視装置5及びECU3の間に不正な機器が介在し、監視装置5及びECU3の間で送受信される情報の中継及び改変等が行われる虞がある。また例えばECU3のROM32に記憶されたプログラム32a及びデータ32bが圧縮され、圧縮によるROM32の空き領域に不正なプログラムを侵入させて不正な処理が行われる虞がある。このような場合、不正な機器又はプログラム等がハッシュ値を算出して監視装置5への応答を行うことができるものであったとしても、応答の送信までに正常時と比較して長い時間を要することが予想される。このため本実施の形態に係る通信システムは、上記のような時間監視を行うことによって、不正な機器又はプログラム等による不正な処理が行われることを防止できる。
(実施の形態2)
実施の形態2に係る通信システムでは、ECU3及び監視装置5は、自らが算出したハッシュ値から確認用情報及び応答情報を除いた残余値を共有鍵とするのではなく、この残余値を用いて更に演算を行うことで共有鍵を生成する。図13は、実施の形態2に係る通信システムの共有鍵生成方法を説明するための模式図である。なお本図は、監視装置5がハッシュ値計算指示及びハッシュ確認指示をECU3へ送信し、ECU3がハッシュ確認応答を監視装置5へ送信し、ECU3及び監視装置5が自らの算出したハッシュ値から確認用情報及び応答情報を除いた残余値を算出した後からの処理を図示してある。共有鍵の生成処理において、まず実施の形態2に係るECU3及び監視装置5は、自らの算出したハッシュ値から確認用情報及び応答情報を除いた残余値を元gとする(SA1、SB1)。ECU3及び監視装置5が算出するハッシュ値は同じ値であるため、ECU3及び監視装置5の元gは同じ値となる。
次いでECU3及び監視装置5は、予め記憶している素数テーブルから1つの素数pを選択する処理を行う(SA2、SB2)。図14は、素数テーブルの一例を示す模式図である。本実施の形態に係る素数テーブルは、0〜159の160個のラベルに対して、素数0〜素数159の160個の大きな素数が記憶されたテーブルである。ECU3及び監視装置5は、自らの算出したハッシュ値と監視装置5が抽出した確認用情報とを比較し、ハッシュ値における確認用情報の位置を調べ、確認用情報の開始ビットがハッシュ値における何ビット目に相当するかを調べる。例えば確認用情報がハッシュ値の10〜73ビットに相当する場合、確認用情報の開始ビットである10をECU3及び監視装置5は取得し、素数テーブルのラベル10に対応する素数10を選択する。なおECU3及び監視装置5は、同じ内容の素数テーブルを予め記憶しており、選択される素数pは同じ値となる。
次いでECU3は、秘密値aを生成する(SA3)。秘密値aは、ECU3内でのみ利用される値であり、例えば乱数などに基づいて生成することができる。同様に監視装置5は、秘密値bを生成する(SB3)。秘密値bは、監視装置5内でのみ利用される値であり、例えば乱数などに基づいて生成することができる。ECU3の秘密値aと、監視装置5の秘密値bとは、異なる値であってよい。
次いでECU3は、元g、素数p及び秘密値aを用いて(1)式により公開値Aを生成する(SA4)。同様に監視装置5は、元g、素数p及び秘密値bを用いて(2)式により公開値Bを生成する(SB4)。
Figure 0006338949
次いでECU3は、算出した公開値Aを監視装置5へ送信すると共に(SA5)、監視装置5から送信される公開値Bを受信する(SA6)。同様に監視装置5は、算出した公開値BをECU3へ送信すると共に(SB5)、ECU3から送信される公開値Aを受信する(SB6)。
次いでECU3は、受信した公開値B、秘密値a及び素数pを用いて(3)式により共有鍵Kaを生成する(SA7)。同様に監視装置5は、受信した公開値A、秘密値b及び素数pを用いて(4)式により共有鍵Kbを生成する(SB7)。なおECU3が生成する共有鍵Kaと、監視装置5が生成する共有鍵Kbとは同じ値となる。
Figure 0006338949
共有鍵を生成したECU3及び監視装置5は、生成した共有鍵を記憶しておき、以後の通信においてこの共有鍵を用いて暗号処理を行う。また共有鍵の更新処理を行う場合、ECU3及び監視装置5は、図13に示した処理を行って共有鍵を再生成する。
以上の構成の実施の形態2に係る通信システムは、ECU3及び監視装置5は、例えば乱数などにより秘密値a、bをそれぞれ生成し、秘密値a、b及び残余値に基づいて公開値A、Bをそれぞれ生成して互いに送信し、自らの秘密値a、b及び受信した公開値A、Bに基づいて鍵情報Ka、Kbをそれぞれ生成する。またECU3及び監視装置5は、共通の素数テーブルを記憶しておく。素数テーブルには複数の素数が記憶されており、ECU3及び監視装置5は、ハッシュ値における確認用情報の開始ビット位置に応じて1つの素数を選択する。ECU3及び監視装置5は、選択した素数を用いて公開値A、Bを生成する。
これらにより、ECU3及び監視装置5が共有する鍵情報の秘匿性を高めることができる。
なお本実施の形態においては、秘密値a、bを乱数に基づいて生成するものとしたが、これに限るものではなく、その他の種々の方法で秘密値a、bを生成してよい。例えば素数テーブルと同様に複数の秘密値を記憶した秘密値テーブルを予め記憶しておき、秘密値テーブルから1つの秘密値を選択する構成とすることができる。また素数テーブルの構成は図14に示したものに限らず、その他の種々の構成であってよい。また素数テーブルから1つの素数を選択する方法は、確認用情報の開始ビット位置に基づくものに限らず、その他の種々の方法を採用してよい。
実施の形態2に係る通信システムのその他の構成は、実施の形態1に係る通信システムの構成と同様であるため、同様の箇所には同じ符号を付して詳細な説明を省略する。
1 車両
3 ECU(第2通信装置)
5 監視装置(第1通信装置)
31 処理部(第2秘密値生成手段、第2公開値生成手段、素数選択手段、更新処理手段)
32 ROM(記憶部)
32a プログラム
32b データ
33 記憶部(第2ハッシュ値記憶部)
33a ハッシュ値
34 CAN通信部(第1部分受信手段、第2部分送信手段、第2公開値送信手段、第1公開値受信手段、ハッシュ値算出用情報受信手段)
41 ハッシュ値算出部(第2ハッシュ値算出手段)
42 ハッシュ値判定部(ハッシュ値判定手段)
43 抽出部(抽出手段)
44 鍵生成部(鍵情報生成手段)
45 暗号処理部(暗号処理手段)
51 処理部(第1秘密値生成手段、第1公開値生成手段、素数選択手段、ハッシュ値算出用情報生成手段、更新処理手段)
52 記憶部(第1ハッシュ値記憶部)
52a 複写データ
52b ハッシュ値
53 CAN通信部(第1部分送信手段、第2部分受信手段、第1公開値送信手段、第2公開値受信手段、ハッシュ値算出用情報送信手段)
61 ハッシュ値算出部(第1ハッシュ値算出手段)
62 抽出部(抽出手段)
63 ハッシュ値判定部(ハッシュ値判定手段)
64 鍵生成部(鍵情報生成手段)
65 暗号処理部

Claims (12)

  1. 第1通信装置と記憶部を有する第2通信装置とが暗号処理に用いる鍵情報を共有する通信システムにおいて、
    前記第1通信装置は、
    前記第2通信装置の前記記憶部の記憶内容を記憶した記憶部と、
    該記憶部の記憶内容に基づくハッシュ値を算出する第1ハッシュ値算出手段と、
    該第1ハッシュ値算出手段が算出したハッシュ値から第1部分を抽出する抽出手段と、
    該抽出手段が抽出した前記第1部分を前記第2通信装置へ送信する第1部分送信手段と
    を有し、
    前記第2通信装置は、
    自らの記憶部の記憶内容に基づくハッシュ値を算出する第2ハッシュ値算出手段と、
    前記第1通信装置から前記第1部分を受信する第1部分受信手段と、
    該第1部分受信手段が受信した前記第1部分が、前記第2ハッシュ値算出手段が算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定手段と、
    該ハッシュ値判定手段が一致すると判定した場合に、前記第2ハッシュ値算出手段が算出したハッシュ値から前記第1部分と異なる第2部分を抽出する抽出手段と、
    該抽出手段が抽出した前記第2部分を前記第1通信装置へ送信する第2部分送信手段と、
    前記第2ハッシュ値算出手段が算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に基づいて前記鍵情報を生成する生成手段と
    を有し、
    前記第1通信装置は、更に、
    前記第2通信装置から前記第2部分を受信する第2部分受信手段と、
    該第2部分受信手段が受信した前記第2部分が、前記第1ハッシュ値算出手段が算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定手段と、
    該ハッシュ値判定手段が一致すると判定した場合に、前記第1ハッシュ値算出手段が算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に基づいて前記鍵情報を生成する生成手段と
    を有し、
    前記記憶内容にはランダムに決定された値を含むこと
    を特徴とする通信システム。
  2. 前記第1通信装置及び前記第2通信装置の生成手段は、前記残余値を前記鍵情報とすること
    を特徴とする請求項1に記載の通信システム。
  3. 前記第1通信装置は、
    第1秘密値を生成する第1秘密値生成手段と、
    前記残余値及び前記第1秘密値生成手段が生成した第1秘密値に基づいて、第1公開値を生成する第1公開値生成手段と、
    該第1公開値生成手段が生成した第1公開値を前記第2通信装置へ送信する第1公開値送信手段と、
    前記第2通信装置から第2公開値を受信する第2公開値受信手段と
    を有し、
    前記第1通信装置の生成手段は、前記第1秘密値及び前記第2公開値受信手段が受信した前記第2公開値に基づいて、前記鍵情報を生成するようにしてあり、
    前記第2通信装置は、
    第2秘密値を生成する第2秘密値生成手段と、
    前記残余値及び前記第2秘密値生成手段が生成した第2秘密値に基づいて、前記第2公開値を生成する第2公開値生成手段と、
    該第2公開値生成手段が生成した第2公開値を前記第1通信装置へ送信する第2公開値送信手段と、
    前記第1通信装置から前記第1公開値を受信する第1公開値受信手段と
    を有し、
    前記第2通信装置の生成手段は、前記第2秘密値及び前記第1公開値受信手段が受信した前記第1公開値に基づいて、前記鍵情報を生成するようにしてあること
    を特徴とする請求項1に記載の通信システム。
  4. 前記第1通信装置及び前記第2通信装置は、
    複数の素数を記憶した素数テーブルと、
    前記素数テーブルから素数を選択する素数選択手段と
    をそれぞれ有し、
    前記第1通信装置の前記第1公開値生成手段は、前記素数選択手段が選択した素数を用いて前記第1公開値を生成するようにしてあり、
    前記第2通信装置の前記第2公開値生成手段は、前記素数選択手段が選択した素数を用いて前記第2公開値を生成するようにしてあること
    を特徴とする請求項3に記載の通信システム。
  5. 前記第1秘密値生成手段及び前記第2秘密値生成手段は、乱数に基づいて前記第1秘密値及び前記第2秘密値を生成するようにしてあること
    を特徴とする請求項3又は請求項4に記載の通信システム。
  6. 前記第1通信装置は、
    ハッシュ値算出に用いる情報を生成するハッシュ値算出用情報生成手段と、
    該ハッシュ値算出用情報生成手段が生成したハッシュ値算出用情報を前記第2通信装置へ送信するハッシュ値算出用情報送信手段と
    を有し、
    前記第1ハッシュ値算出手段は、前記ハッシュ値算出用情報生成手段が生成したハッシュ値算出用情報を用いてハッシュ値を算出するようにしてあり、
    前記第2通信装置は、前記第1通信装置から前記ハッシュ値算出用情報を受信するハッシュ値算出用情報受信手段を有し、
    前記第2ハッシュ値算出手段は、前記ハッシュ値算出用情報受信手段が受信したハッシュ値算出用情報を用いてハッシュ値を算出するようにしてあること
    を特徴とする請求項1乃至請求項5のいずれか1つに記載の通信システム。
  7. 前記ハッシュ値算出用情報生成手段が生成するハッシュ値算出用情報には、乱数を含むこと
    を特徴とする請求項6に記載の通信システム。
  8. 前記ハッシュ値算出用情報生成手段が生成するハッシュ値算出用情報には、ハッシュ値の算出対象とする前記第2通信装置の記憶部の領域を規定する情報を含むこと
    を特徴とする請求項6又は請求項7に記載の通信システム。
  9. 前記第1通信装置は、
    前記第1ハッシュ値算出手段が算出したハッシュ値を記憶する第1ハッシュ値記憶部と、
    該第1ハッシュ値記憶部が記憶したハッシュ値に基づいて前記鍵情報を更新する処理を行う更新処理手段と
    を有すること
    を特徴とする請求項1乃至請求項8のいずれか1つに記載の通信システム。
  10. 前記更新処理手段は、前記第1通信装置の抽出手段により前記第1ハッシュ値記憶部が記憶したハッシュ値から第1部分を抽出し、抽出した前記第1部分を前記第1部分送信手段により前記第2通信装置へ送信し、前記第2部分受信手段にて前記第2通信装置から第2部分を受信して、前記残余値を更新するようにしてあること
    を特徴とする請求項9に記載の通信システム。
  11. 前記第2通信装置は、
    前記第2ハッシュ値算出手段が算出したハッシュ値を記憶する第2ハッシュ値記憶部と、
    前記第1通信装置の前記更新処理手段の更新処理により送信された前記第1部分に基づいて前記第2通信装置の抽出手段により前記第2部分を抽出し、抽出した前記第2部分を前記第2部分送信手段により前記第1通信装置へ送信し、前記第1部分及び前記第2部分に基づいて前記残余値を更新する更新処理手段と
    を有すること
    を特徴とする請求項10に記載の通信システム。
  12. 第1通信装置と、記憶部を有する第2通信装置とが暗号処理に用いる鍵情報を共有する鍵情報共有方法において、
    前記第1通信装置に、前記第2通信装置の記憶部の記憶内容を複写しておき、
    前記第1通信装置が、複写した記憶内容に基づくハッシュ値を算出する第1ハッシュ値算出ステップと、
    該第1ハッシュ値算出ステップにて算出したハッシュ値から第1部分を抽出する抽出ステップと、
    該抽出ステップにて抽出した前記第1部分を前記第2通信装置へ送信する第1部分送信ステップと、
    前記第2通信装置が、前記記憶部の記憶内容に基づくハッシュ値を算出する第2ハッシュ値算出ステップと、
    前記第2通信装置が、前記第1通信装置から前記第1部分を受信する第1部分受信ステップと、
    該第1部分受信ステップにて受信した前記第1部分が、前記第2ハッシュ値算出ステップにて算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定ステップと、
    該ハッシュ値判定ステップにて一致すると判定した場合に、前記第2ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分と異なる第2部分を抽出する抽出ステップと、
    該抽出ステップにて抽出した前記第2部分を前記第1通信装置へ送信する応答情報送信ステップと、
    前記第2ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に応じた鍵情報を生成する鍵情報生成ステップと、
    前記第1通信装置が、前記第2通信装置から前記第2部分を受信する第2部分受信ステップと、
    該第2部分受信ステップにて受信した前記第2部分が、前記第1ハッシュ値算ステップにて算出したハッシュ値の一部分と一致するか否かを判定するハッシュ値判定ステップと、
    該ハッシュ値判定ステップにて一致すると判定した場合に、前記第1ハッシュ値算出ステップにて算出したハッシュ値から前記第1部分及び前記第2部分を除いた残余値に応じた鍵情報を生成する鍵情報生成ステップと
    を含み、
    前記記憶内容にはランダムに決定された値を含むこと
    を特徴とする鍵情報共有方法。
JP2014139074A 2014-07-04 2014-07-04 通信システム及び鍵情報共有方法 Expired - Fee Related JP6338949B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2014139074A JP6338949B2 (ja) 2014-07-04 2014-07-04 通信システム及び鍵情報共有方法
PCT/JP2015/067865 WO2016002559A1 (ja) 2014-07-04 2015-06-22 通信システム及び鍵情報共有方法
DE112015003134.0T DE112015003134T5 (de) 2014-07-04 2015-06-22 Kommunikationssystem und Verfahren zum Teilen von Schlüsselinformationen
CN201580036674.XA CN106471767B (zh) 2014-07-04 2015-06-22 通信***及密钥信息共享方法
US15/319,098 US10110377B2 (en) 2014-07-04 2015-06-22 Communication system and key information sharing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014139074A JP6338949B2 (ja) 2014-07-04 2014-07-04 通信システム及び鍵情報共有方法

Publications (3)

Publication Number Publication Date
JP2016019054A JP2016019054A (ja) 2016-02-01
JP2016019054A5 JP2016019054A5 (ja) 2018-05-31
JP6338949B2 true JP6338949B2 (ja) 2018-06-06

Family

ID=55019103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014139074A Expired - Fee Related JP6338949B2 (ja) 2014-07-04 2014-07-04 通信システム及び鍵情報共有方法

Country Status (5)

Country Link
US (1) US10110377B2 (ja)
JP (1) JP6338949B2 (ja)
CN (1) CN106471767B (ja)
DE (1) DE112015003134T5 (ja)
WO (1) WO2016002559A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6260066B2 (ja) * 2016-01-18 2018-01-17 Kddi株式会社 車載コンピュータシステム及び車両
JP2017169147A (ja) * 2016-03-17 2017-09-21 株式会社東芝 検証装置、電子機器、プログラムおよび検証システム
JP2017167916A (ja) * 2016-03-17 2017-09-21 株式会社デンソー 情報処理システム
US10271209B2 (en) * 2016-06-12 2019-04-23 Apple Inc. Session protocol for backward security between paired devices
EP3624349B1 (en) * 2017-05-24 2023-06-14 Huawei Technologies Co., Ltd. Decoding method and device
CN110999210A (zh) * 2017-08-04 2020-04-10 日本电产株式会社 认证***、在该认证***中使用的电子设备以及认证方法
JP6925907B2 (ja) * 2017-08-09 2021-08-25 オムロンヘルスケア株式会社 データ送信装置、データ受信装置、方法及びプログラム
CN109391466A (zh) * 2017-08-10 2019-02-26 比亚迪股份有限公司 汽车电子控制单元的安全访问方法、装置及***
JP6950539B2 (ja) * 2018-01-12 2021-10-13 株式会社デンソー ネットワークシステム
JP6739685B2 (ja) * 2018-03-20 2020-08-12 三菱電機株式会社 監視制御システム
CN113676320A (zh) * 2018-08-01 2021-11-19 百度在线网络技术(北京)有限公司 车辆ecu密钥的确定方法、装置、设备及存储介质
US11184423B2 (en) * 2018-10-24 2021-11-23 Microsoft Technology Licensing, Llc Offloading upload processing of a file in a distributed system using a key that includes a hash created using attribute(s) of a requestor and/or the file
KR20200056192A (ko) * 2018-11-14 2020-05-22 현대자동차주식회사 데이터 통신 시스템과 데이터 통신 방법, 서버, 차량
CN109495248B (zh) * 2018-11-23 2021-07-20 曹鸣佩 基于秘密共享方案的可监察隐私通信方法
US11012425B2 (en) 2018-12-28 2021-05-18 Micron Technology, Inc. Replay protection nonce generation
AU2020353720A1 (en) * 2019-09-25 2022-03-31 Commonwealth Scientific And Industrial Research Organisation Cryptographic services for browser applications
JP7487046B2 (ja) * 2020-08-21 2024-05-20 株式会社東海理化電機製作所 システムおよび制御装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5058600B2 (ja) * 2003-09-12 2012-10-24 イーエムシー コーポレイション 無連絡認証を提供するシステムおよび方法
US7409526B1 (en) * 2003-10-28 2008-08-05 Cisco Technology, Inc. Partial key hashing memory
WO2005076522A1 (en) * 2004-02-10 2005-08-18 Cryptico A/S Methods for generating identification values for identifying electronic messages
DE102004036810A1 (de) * 2004-07-29 2006-03-23 Zf Lenksysteme Gmbh Kommunikationsverfahren für wenigstens zwei Systemkomponenten eines Kraftfahrzeugs
US8775820B1 (en) * 2006-06-02 2014-07-08 Sprint Communications Company L.P. System and method of enterprise administrative password generation and control
JP5073307B2 (ja) * 2007-02-07 2012-11-14 株式会社東海理化電機製作所 暗号データ通信システム
JP2009009541A (ja) * 2007-05-25 2009-01-15 Nec Corp 認証システム、端末、サーバ、認証方法、及びプログラム
JP2009284086A (ja) 2008-05-20 2009-12-03 Tokai Rika Co Ltd 暗号鍵更新システム及び暗号鍵更新方法
JP2010050760A (ja) * 2008-08-22 2010-03-04 Hitachi Ltd コンテンツ保護装置、および、コンテンツ利用装置
WO2012025988A1 (ja) * 2010-08-24 2012-03-01 三菱電機株式会社 暗号化装置、暗号化システム、暗号化方法及び暗号化プログラム
DE102010042539B4 (de) * 2010-10-15 2013-03-14 Infineon Technologies Ag Datensender mit einer sicheren, aber effizienten Signatur
KR101310253B1 (ko) * 2011-10-28 2013-09-24 (주)네오위즈게임즈 해시 데이터 생성 방법, 해시 데이터 비교 시스템 및 방법
CN103010127B (zh) 2012-12-25 2016-08-31 北京理工大学 电动汽车网络化控制***
US9736147B1 (en) * 2013-04-08 2017-08-15 Titanium Crypt, Inc. Artificial intelligence encryption model (AIEM) with device authorization and attack detection (DAAAD)

Also Published As

Publication number Publication date
JP2016019054A (ja) 2016-02-01
US20170149562A1 (en) 2017-05-25
CN106471767A (zh) 2017-03-01
DE112015003134T5 (de) 2017-03-16
US10110377B2 (en) 2018-10-23
CN106471767B (zh) 2019-12-24
WO2016002559A1 (ja) 2016-01-07

Similar Documents

Publication Publication Date Title
JP6338949B2 (ja) 通信システム及び鍵情報共有方法
JP6181493B2 (ja) 書換検出システム、書換検出装置及び情報処理装置
JP2013031151A (ja) 暗号通信システムおよび暗号通信方法
JP6342281B2 (ja) 書換検出システム及び情報処理装置
CN111147260B (zh) 一种车辆密钥生成及发行方法、装置
US20160211974A1 (en) Data generation apparatus, communication apparatus, communication system, mobile object, data generation method, and computer program product
CN111565182B (zh) 一种车辆诊断方法、装置及存储介质
JP2019105946A (ja) 車載更新装置、プログラム及びプログラム又はデータの更新方法
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
JP2018073245A (ja) 検査装置、検査システム、情報処理装置、検査方法およびコンピュータプログラム
US20160277182A1 (en) Communication system and master apparatus
CN113055181A (zh) Ota文件安全处理方法、装置及***
US20220209946A1 (en) Key revocation for edge devices
KR20190112959A (ko) 암호화 데이터를 이용하는 기계학습 모델 운영방법 및 기계학습 모델 기반 장치
CN107409046A (zh) 用于在可编程的硬件模块中生成密钥的装置和方法
WO2017126471A1 (ja) 認証システム、認証要求装置、車載電子機器、コンピュータプログラム及び認証処理方法
WO2017094561A1 (ja) 暗号化装置、暗号通信システム及び暗号化送信方法
US10404718B2 (en) Method and device for transmitting software
CN109426727B (zh) 数据加密方法、解密方法、加密***及解密***
JP6014214B2 (ja) 暗号通信システムおよび暗号通信方法
US20230205887A1 (en) Secure automotive system
JP2021141567A (ja) 情報処理装置、プログラム更新方法、及びデータ送信方法
CN112433742A (zh) 安全的固件更新方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180413

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180424

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180509

R150 Certificate of patent or registration of utility model

Ref document number: 6338949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees