JP6888122B2 - 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム - Google Patents

半導体装置、更新データ提供方法、更新データ受取方法およびプログラム Download PDF

Info

Publication number
JP6888122B2
JP6888122B2 JP2019565643A JP2019565643A JP6888122B2 JP 6888122 B2 JP6888122 B2 JP 6888122B2 JP 2019565643 A JP2019565643 A JP 2019565643A JP 2019565643 A JP2019565643 A JP 2019565643A JP 6888122 B2 JP6888122 B2 JP 6888122B2
Authority
JP
Japan
Prior art keywords
random number
number signal
signal
update data
received
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.)
Active
Application number
JP2019565643A
Other languages
English (en)
Other versions
JPWO2019142307A1 (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.)
Mitsubishi Electric Corp
Renesas Electronics Corp
Original Assignee
Mitsubishi Electric Corp
Renesas Electronics Corp
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 Mitsubishi Electric Corp, Renesas Electronics Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2019142307A1 publication Critical patent/JPWO2019142307A1/ja
Application granted granted Critical
Publication of JP6888122B2 publication Critical patent/JP6888122B2/ja
Active 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/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/3271Cryptographic 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 challenge-response
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/06Cryptographic 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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

Description

本発明は、半導体装置、更新データ提供方法、更新データ受取方法およびプログラムに関する。
IoT(Internet of Things)機器が広く普及している。これらの機器に含まれるマイコン等の半導体装置に対して高いセキュリティを確保した状態でファームウェアアップデート等を行うことが期待されている。
特許文献1に記載の車外装置は、更新制御プログラム、当該プログラムに係るダイジェスト値の算出手段、更新後の動作が正常であるか否かを判定する手段、および判定結果を返答する手段を実現するプログラムを含む更新データを記憶している。そして、制御装置は、車外装置から送信される更新データを中継装置を介して受信する。さらに、制御装置は、受信した更新データに含まれる更新制御プログラムにより制御プログラムを更新すると共に、前記プログラムを実行して更新後の動作が正常であるか否かを判定して、その判定結果を中継装置に返答する。
特許文献2に記載の電子機器は、アプリケーションソフトウェアの動作に係るアプリケーションファイルを有し、ネットワークを介して前記アプリケーションファイルを更新する。かかる電子機器は、1つ以上のデータからなるアプリケーションファイルを記憶し、更新データと、前記アプリケーションファイルにおいて前記更新データによって更新する位置を示す位置情報とを、前記ネットワークを介して外部装置から受け取る。さらに、電子機器は、前記位置情報が示す位置に存在するデータを前記更新データに書き換えて、前記アプリケーションファイルの一部のみを更新し、更新された前記アプリケーションファイルが改竄されているか否かの確認を行う。
特許文献3に記載のプログラム書換えシステムは、マルチプロトコルに対応した車載中継装置において新プログラムと旧プログラムとの差分データを検索し、新プログラムにおける差分データをECUに送信して記憶する。
特許文献4に記載の組込機器は、ソフトウェアを更新する更新データが複数に分割された各セクションについて順に検証処理を行う。組込機器は、検証処理の途中で得られる中間値を記憶しておく。組込機器は、全てのセクションに対して検証処理が完了すると、検証処理で得られた値と、検証データとを比較して、改ざんがないことを確認する。改ざんがないことが確認できると、組込機器は、再び各セクションについて順に検証処理を行う。組込機器は、検証処理で得られた中間値と記憶しておいた中間値とを比較して、一致すると、そのセクションによってソフトウェアを更新する。
特開2015−103163号公報 国際公開第2006/129654号 特開2014−182571号公報 国際公開第2006/129654号
特許文献1に記載の技術は、中継機が更新データに対して電子署名演算を行うことが可能でなければならない。また、特許文献1は、更新データの暗号化が行われないため、更新データの秘匿性を担保できていない。また、特許文献2に記載の技術は、部分的な検証を行う一方で、全体としての検証を行わない。そのため、ブロックごとに改ざん検出の管理を行うこととなり、保存データ量が多くなるおそれがある。また、特許文献3に記載の技術は、中継装置が更新データの電子署名や復号演算を行わなければならないため、中継装置に更新データの中身を開示する必要がある一方、中継装置とECUとの通信においてのセキュリティが担保されていない。また、特許文献4に記載の技術は、各セクションにかかる中間値を記憶しておく必要があり保存データ量が多くなるおそれがある。また、各セクションに対して各2回の検証処理が必要であるために計算に時間がかかるおそれがある。さらに、上記特許文献のいずれにおいても、正当な更新対象機器との通信が行われていることを確認する手段についての提案はなされていない。
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
一実施の形態によれば、半導体装置は、メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する。前記メモリは、鍵情報を記憶し、前記乱数生成回路は、第1乱数信号および第2乱数信号を生成する。前記制御回路は、前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、前記更新データに対して第7乱数信号を用いて暗号化更新データを生成する。前記制御回路は、前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取る。前記制御回路は、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する。
一実施の形態によれば、半導体装置は、メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る。前記メモリは、更新前データと、鍵情報を記憶している。前記制御回路は、前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成する。前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成する。また、前記制御回路は、予め設定された信号を含むチャレンジコードを生成し、前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力する。前記制御回路は、出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記暗号化更新データの復号処理を行う。
前記一実施の形態によれば、半導体装置は、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
実施の形態1にかかる送受信システムの概略図である。 実施の形態1にかかる第1半導体装置のハードウェア構成図である。 実施の形態1にかかる第2半導体装置のハードウェア構成図である。 実施の形態1にかかる第3半導体装置のハードウェア構成図である。 実施の形態1にかかる送受信システムの送受信信号を示した図である。 実施の形態1にかかる第1半導体装置110の機能ブロック図である。 実施の形態1にかかる第3半導体装置の機能ブロック図である。 実施の形態1にかかる第1半導体装置の機能ブロック図である。 実施の形態1にかかる第3半導体装置の機能ブロック図である。 実施の形態1の変形例にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる送受信システムのハードウェア構成図である。 実施の形態2にかかる送受信システムの送受信信号を示した図である。 実施の形態2にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる第1半導体装置の機能ブロック図である。 実施の形態2にかかる第3半導体装置の機能ブロック図である。 実施の形態2にかかる第1半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置のハードウェア構成図である。 実施の形態3にかかる送受信システムの送受信信号を示した図である。 実施の形態3にかかる第1半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置の機能ブロック図である。 実施の形態3にかかる第2半導体装置の機能ブロック図である。
説明の明確化のため、以下の記載および図面は、適宜、省略、および簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。よって、以下の説明に回路として例示した構成は、ハードウェアまたはソフトウェアのいずれかまたはその両方によって実現することが可能であり、ある機能を実現する回路として示された構成は、同様の機能を実現するソフトウェアの一部としても示され得る。例えば、制御回路と記載された構成は、制御部として記載され得る。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD−ROM(Read Only Memory)CD−R、CD−R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(Random Access Memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、および電磁波を含む。一時的なコンピュータ可読媒体は、電線および光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
<実施の形態1>
まず、図1を参照しながら、実施の形態1について概略を説明する。図1は、実施の形態1にかかる送受信システムの概略図である。送受信システム1は、端末装置13が有する更新前データを、サーバ装置11が有している更新データに更新するためのシステムである。送受信システム1は、サーバ装置11において更新データを暗号化し、暗号化した更新データである暗号化更新データを端末装置13に送信する。端末装置13は、暗号化更新データを復号してデータを更新する。送受信システム1は、サーバ装置11、中継装置12、および端末装置13を構成とする。サーバ装置11と中継装置12とは、通信可能に接続している。また、中継装置12と端末装置13とは、通信可能に接続している。図1の例示は、サーバ装置11と中継装置12とはネットワーク900を介して通信可能に接続されている。なお、各構成を通信可能にする接続手段は有線、無線を問わず、インターネットを介しているか否かを問わない。
サーバ装置11は、例えばパーソナルコンピュータやブレードサーバであって、情報処理を司る第1半導体装置110を有している。中継装置12は、例えばスマートフォンやタブレット端末等であって、情報処理を司る第2半導体装置120を有している。また、端末装置13は、IoT機器と呼ばれるインターネット接続可能な機器や、その他通信機能を有する機器である。端末装置13は、情報処理を司る第3半導体装置130を有している。
図2は、実施の形態1にかかる第1半導体装置110のハードウェア構成図である。情報処理を司る第1半導体装置110は、主な構成として、CPU111、NVRAM112(Non-Volatile Random Access Memory)、DRAM113(Dynamic Random Access Memory)、IF114(Interface)、およびTRNG115(True Random Number Generator:真性乱数生成回路)を有しており、これらの構成は通信バスにより接続されている。
なお、以降の説明において、特別に説明を加えた場合を除き、名称が同一で符号が異なる構成は同様の機能を有するものとする。そのため、このような構成についての説明は省略する。
CPU111は、第1半導体装置110において後述する演算処理等を行うための演算装置である。CPU111は、PRF演算回路111a、比較回路111b、AE暗号化回路111c、選択回路111dを主な構成として有している。なお、CPU111は、ハードウェアとしてのこれらの構成を複数有していてもよいし、ソフトウェアとして並列処理可能に構成されていてもよい。また、本実施の形態において説明するCPUは、CPUコア以外の周辺回路を含んでもよい。
PRF演算回路111aは、任意の入力信号を予め設定された擬似ランダム関数(PRF=Pseudorandom function)により演算し、演算結果を出力する。擬似ランダム関数は、暗号学的には乱数として識別できない値であって、直感的には十分ランダムに見える出力を返す関数であり、真のランダム関数との間で両者を識別するような多項式時間のアルゴリズムが存在しないものを指す。また、PRF演算回路111aは、同じ入力に対しては同じ結果を出力する。PRF演算回路111aは、入力として出力変数の数を指定してもよい。なお、PRF演算回路111aは、上述のような出力がなされ、且つ安全性が担保できるのであれば、共通鍵暗号やハッシュ関数に基づいた関数など他の関数を用いたものであってもよい。
比較回路111bは、入力として2つの信号を受け取り、受け取った2つの信号を比較し、比較結果としてこれらの信号が一致するか否かを出力する。比較結果の出力信号の例としては、2つの信号が一致しない場合の出力信号は「0」であり、2つの信号が一致する場合の出力信号は「1」である。ただし、比較結果の出力信号はこれに限られない。
AE暗号化回路111c(AE=Authenticated Encryption)は、任意の平文と鍵情報とを入力信号として、入力信号に対して認証付き暗号化処理を行う。鍵情報は、復号処理をする際にも使用される。認証付き暗号化処理を行うことにより、AE暗号化回路111cは、暗号文、認証タグ、およびヘッダ信号を出力する。
選択回路111dは、複数の入力信号の内いずれか選択した信号を出力する機能を有している。選択回路111dは、比較回路111bから供給される比較結果信号SG20の値によって、複数の入力信号の内からどの信号を出力するかを選択する。つまり、比較結果信号SG20は、選択回路111dの選択制御信号である。選択回路111dは、ハードウェア構成の例としてはマルチプレクサである。
NVRAM112は、例えばフラッシュメモリのような読み書き可能な不揮発性の記憶装置である。NVRAM112は、更新データや通信セキュリティを担保するための鍵情報等を記憶している。
DRAM113は、揮発性の記憶装置であって、種々のデータを一時的に記憶する。なお、本実施の形態におけるDRAM113のハードウェア構成は一例であって、DRAM113は、SRAM(Static Random Access Memory)によって構成されてもよく、揮発性メモリに代えて、MRAM(Magnetoresistive Random Access Memory)、またはフラッシュメモリ等の不揮発性メモリによって構成されてもよい。
TRNG115は、真性乱数生成回路である。TRNG115は、例えば、ダイオードの生成するノイズや熱雑音、放射性物質の崩壊による放射線をセンサで検出する等、ランダムな物理現象を用い、その信号を元に乱数を生成する。CPU111は、各構成の信号を処理し、処理に応じた信号を、IF114を介して中継装置12に送信し、または、中継装置12から受信した信号を、IF114を介して受け取り、受け取った信号を処理する。
図3は、実施の形態1にかかる第2半導体装置120のハードウェア構成図である。情報処理を司る第2半導体装置120は、主な構成として、CPU121、NVRAM122、DRAM123、およびIF124を有しており、これらの構成は通信バスにより接続されている。第2半導体装置120は、これらの構成により、サーバ装置11と通信し、サーバ装置11から信号を受け取り、受け取った信号を必要に応じて処理し、端末装置13に送信する。また、中継装置12は、端末装置13から信号を受け取り、受け取った信号を必要に応じて処理し、サーバ装置11に送信する。
図4は、実施の形態1にかかる第3半導体装置130のハードウェア構成図である。情報処理を司る第3半導体装置130は、主な構成として、CPU131、NVRAM132、DRAM133、IF134、およびTRNG135を有しており、これらの構成は通信バスにより接続されている。端末装置13は、中継装置12から信号を受け取り、受け取った信号を処理する。また、端末装置13は、処理した信号を中継装置12に送信する。
CPU131は、第3半導体装置130において演算処理等を行うための演算装置である。CPU131は、PRF演算回路131a、比較回路131b、AE復号回路131cを主な構成として有している。
AE復号回路131cは、認証付き暗号化された信号に対して、復号処理および認証タグの検証を行う。すなわち、AE復号回路131cは、AE暗号化回路111cが出力した暗号文、認証タグ、およびヘッダ信号、ならびにAE暗号化回路111cが使用した鍵情報を入力信号とする。AE復号回路131cは、暗号文を復号し、復号した結果生成された認証タグと、入力信号として受け取った認証タグが一致するか検証を行う。検証の結果、これらの認証タグが一致すると、AE復号回路131cは、復号した平文を出力する。一方、これらの認証タグが一致しないと、AE復号回路131cは、認証結果不一致を示す信号を出力する。
更新制御回路131dは、ファームウェアの更新を行うための信号制御を行う。更新制御回路131dは、入力信号として、フラグ信号と更新データ信号を受け取る。更新制御回路131dは、受け取ったフラグ信号がファームウェアの更新を実行するための値であれば、入力信号として受け取った更新データを更新前データと置き換える処理を実行する。また、更新制御回路131dは、ファームウェアの更新処理が成功したか否かを出力する機能を有していてもよい。
なお、実施の形態1の変形例として後述するように、端末装置13は、TRNG135を有していない構成としてもよい。
次に、図5〜図10を参照しながら、送受信システム1の動作について詳細を説明する。まず、図5を参照しながら、送受信システム1にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図5は、実施の形態1にかかる送受信システム1の送受信信号を示した図である。
サーバ装置11は、NVRAM112に、更新データSG02、更新バージョンデータSG04、識別子SG05、およびマスタ鍵SG06を記憶している。更新データSG02は、例えば、端末装置13のための新しいバージョンのファームウェアである。更新バージョンデータSG04は、更新データSG02のバージョン情報を含むデータである。識別子SG05は、端末装置13に固有に付与されている識別情報であって、例えば端末装置13のMacアドレス(Media Access Control address)や製品固有の識別番号等である。
端末装置13は、NVRAM132に、更新前データSG01、更新前バージョンデータSG03、識別子SG05、およびマスタ鍵SG06を記憶している。更新前データSG01は、例えば、端末装置13が現在利用しているファームウェアである。更新前バージョンデータSG03は、更新前データSG01のバージョン情報を含むデータである。
以降は、送受信システム1にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について信号の処理の流れに沿って説明する。ここに示す例では、送受信システム1は、端末装置13のファームウェアのバージョンアップデート処理を行う。
まず、中継装置12は、バージョンチェック要求信号SG08を端末装置13に送信する(ステップS11)。バージョンチェック要求信号SG08は、端末装置13に対してファームウェアのバージョンを応答するように要求する信号である。
端末装置13は、中継装置12からバージョンチェック要求信号SG08を受け取ると、受け取った要求信号に応じて、端末装置13の現在のファームウェアのバージョンである更新前バージョンデータSG03と、識別子SG05とを中継装置12に送信する(ステップS12)。
中継装置12は、端末装置13から更新前バージョンデータSG03と、識別子SG05とを受け取ると、これらのデータにバージョンアップ要求信号SG09を加えて、サーバ装置11に送信する(ステップS13)。
図6を参照しながら、サーバ装置11が中継装置12から受け取った信号を処理して、要求信号を出力するまでの処理について説明する。図6において、サーバ装置11が有する第1半導体装置110は、ファームウェアのバージョンアップデート処理を行うために、端末装置13に対してかかる処理を行うか否かを判定する。かかる処理を行う場合、第1半導体装置110は、暗号化された更新データを復号する際に使用する鍵を生成するための信号と、端末装置13を認証するためのチャレンジコードとを出力する。
図6は、実施の形態1にかかるサーバ装置11における第1半導体装置110の機能ブロック図である。図6において、第1半導体装置110は中継装置12からのバージョンアップ要求信号SG09を受け付ける。次に、第1半導体装置110は、NVRAM112のデータベース領域にアクセスして、NVRAM112が記憶している識別子SG05と、中継装置12から受け取った識別子SG05とが一致するか否かを照合する。
サーバ装置11は、識別子に関するこれらの信号が一致した場合、中継装置12から受け取った端末装置13のファームウェアバージョンである更新前バージョンデータSG03と、NVRAM112に記憶している更新バージョンデータSG04とを照合する。すなわち、第1半導体装置110は、NVRAM112の更新データ領域にアクセスし、更新バージョンデータSG04をCPU111の比較回路111bに送信する。また、第1半導体装置110は、中継装置12から受け取った更新前バージョンデータSG03を比較回路111bに供給する。そして、比較回路111bは、これらのデータを比較し、比較結果信号SG10をPRF演算回路111aに出力する。
ここでは、比較回路111bがデータを比較した結果、バージョンデータが一致した場合、比較回路111bは、比較結果信号SG10として「0」を出力する。この場合、端末装置13のファームウェアは最新であり更新の必要はない。そのため、PRF演算回路111aは、ファームウェア更新のための処理を実行しない。一方、比較した結果、バージョンデータが一致しない場合、比較回路111bは、比較結果信号SG10として「1」を出力する。この場合、サーバ装置11は、後述する端末装置13のファームウェアを更新するための処理を実行する。
比較回路111bから比較結果信号SG10として「1」を受け取った場合、PRF演算回路111aは、NVRAM112のデータベース領域にアクセスし、マスタ鍵SG06を受け取る。また、PRF演算回路111aは、TRNG115から、第1乱数信号SG11を受け取る。PRF演算回路111aは、マスタ鍵SG06と、第1乱数信号SG11とを入力として、第6乱数信号SG13および第7乱数信号SG14を生成し、生成したこれらの信号を、DRAM113に記憶させる。
TRNG115は、PRF演算回路111aに対して第1乱数信号SG11を供給すると共に、第2乱数信号SG12を生成し、生成した第2乱数信号SG12をDRAM113に記憶させる。TRNG115は、生成した第1乱数信号SG11を、端末装置13が更新データを復号するための鍵を生成するための情報として出力する。また、TRNG115は、生成した第2乱数信号SG12を、端末装置13に対する要求信号であるチャレンジコードとして出力する。
図5に戻る。サーバ装置11は、TRNG115が出力した第1乱数信号SG11および第2乱数信号SG12を、中継装置12に送信する(ステップS14)。
中継装置12は、サーバ装置11から受け取った第1乱数信号SG11および第2乱数信号SG12を、端末装置13に送信する(ステップS15)。
図7を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理の概要について説明する。図7において、端末装置13が有する第3半導体装置130は、サーバ装置11から受け取った、鍵を生成するための信号(第1乱数信号SG11)を使用して、暗号化された更新データを復号する際に使用する鍵(第7乱数信号SG14)を生成する。また、第3半導体装置130は、サーバ装置11から受け取った、チャレンジコード(第2乱数信号SG12)に対する応答信号としてレスポンスコード(第9乱数信号SG16)を出力する。さらに、第3半導体装置130は、応答する際にサーバ装置11を認証するためのチャレンジコード(第3乱数信号SG15)を出力する。
図7は、実施の形態1にかかる端末装置の機能ブロック図である。図7において、PRF演算回路が2つ存在するため、ここでは説明の便宜上一方をPRF演算回路131a_1、もう一方をPRF演算回路131a_2と称する。当然ながら、PRF演算回路131a_1とPRF演算回路131a_2とは、別の構成であっても構わないし、一個の構成であって、異なる演算を行うものであってよい。また、以降の説明においても1つのブロック図において同じ種類の構成が複数存在する場合には、同様の符号をつけることがある。
端末装置13が有する第3半導体装置130は、受け取った第1乱数信号SG11をCPU131が有するPRF演算回路131aに入力する。また、PRF演算回路131aは、NVRAM132が記憶しているマスタ鍵SG06を入力信号として読み出す。
PRF演算回路131a_1は、マスタ鍵SG06と、第1乱数信号SG11とを入力として、第6乱数信号SG13および第7乱数信号SG14を生成する。PRF演算回路131a_1は、生成した信号のうち、第6乱数信号SG13をPRF演算回路131a_2に入力する。また、PRF演算回路131a_1は、生成した信号のうち、第7乱数信号SG14をDRAM133に記憶させる。
第6乱数信号SG13が入力されたPRF演算回路131a_2は、さらに中継装置12から受け取った第2乱数信号SG12を、入力信号として受け取る。また、PRF演算回路131a_2は、もう一つの入力信号として、TRNG135から第3乱数信号SG15を受け取る。
PRF演算回路131a_2は、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号として、第9乱数信号SG16および第10乱数信号SG17を生成する。PRF演算回路131a_2は、生成したこれらの信号のうち、第9乱数信号SG16を、サーバ装置11から受け取った要求信号に対する応答信号として出力する。また、PRF演算回路131a_2は、生成したこれらの信号のうち、第10乱数信号SG17を、DRAM133に記憶させる。
TRNG135は、PRF演算回路131a_2の入力信号として生成した第3乱数信号SG15を、サーバ装置11から受け取った要求信号に対する応答信号として出力する。すなわち、第3半導体装置130は、第9乱数信号SG16と、第3乱数信号SG15とを、サーバ装置11から受け取った要求信号に対する応答信号として出力する。
図5に戻る。端末装置13は、第3半導体装置130が出力した第3乱数信号SG15および第9乱数信号SG16を、中継装置12に送信する(ステップS16)。
中継装置12は、サーバ装置11から受け取った第3乱数信号SG15および第9乱数信号SG16を、サーバ装置11に送信する(ステップS17)。
図8を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取ったサーバ装置11が行う処理について説明する。図8において、サーバ装置11が有する第1半導体装置110は、端末装置13から受け取った、チャレンジコード(第3乱数信号SG15)に対する応答信号としてレスポンスコード(第11乱数信号SG19)を出力する。また、第1半導体装置110は、端末装置13から受け取った、レスポンスコード(第9乱数信号SG16)が期待値と一致するか否かを比較し、比較結果に応じた暗号文SG23を出力する。
図8は、実施の形態1にかかる第1半導体装置の機能ブロック図である。第1半導体装置110は、受け取った第3乱数信号SG15をPRF演算回路111aに入力する。PRF演算回路111aは、さらに入力信号として、DRAM113から第6乱数信号SG13および第2乱数信号SG12を受け取る。
PRF演算回路111aは、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号として、第8乱数信号SG18と、第11乱数信号SG19とを生成する。PRF演算回路111aは、生成した第8乱数信号SG18を比較回路111bに送信する。また、PRF演算回路111aは、生成した第11乱数信号SG19を端末装置13から受け取ったチャレンジコードに応答するレスポンスコードとして出力する。
第1半導体装置110は、受け取った第9乱数信号SG16を、比較回路111bに入力する。比較回路111bは、入力信号として、PRF演算回路111aが出力した第8乱数信号SG18と、端末装置13が出力した第9乱数信号SG16とをそれぞれ受け取り、受け取ったこれらの信号を比較する。すなわち、サーバ装置11は、サーバ装置11が送信したチャレンジコードに対して端末装置13が応答したレスポンスコードが期待値と一致するか否かを比較する。比較回路111bがデータを比較した結果、これらの信号が一致しない場合、比較回路111bは、比較結果信号SG20として「0」を出力する。一方、比較した結果、これらの信号が一致する場合、比較回路111bは、比較結果信号SG20として「1」を出力する。比較回路111bは出力した比較結果信号SG20を、選択回路111dに供給する。
AE暗号化回路111cは、NVRAM112から入力信号として更新データSG02と、更新バージョンデータSG04を受け取る。また、AE暗号化回路111cは、更新データSG02および更新バージョンデータSG04を暗号化するための鍵情報である第7乱数信号SG14をDRAM113から受け取る。AE暗号化回路111cは、これらの入力信号に基づいて、暗号化更新データSG21を出力し、出力した暗号化更新データSG21を選択回路111dに入力する。
TRNG115は、第4乱数信号SG22を生成し、生成した信号を、選択回路111dに入力する。TRNG115が出力する第4乱数信号SG22は、真性乱数であって、信号の桁数が暗号化更新データSG21と同じになるように設定されている。すなわち、復号できない場合、暗号化更新データSG21と第4乱数信号SG22との区別は容易ではない。
選択回路111dは、入力信号として、上述した暗号化更新データSG21と第4乱数信号SG22とを受け取るとともに、選択制御信号として、比較結果信号SG20を受け取る。選択回路111dは、比較結果信号SG20の値が「1」の場合、出力信号である暗号文SG23として暗号化更新データSG21を選択する。一方、選択回路111dは、比較結果信号SG20の値が「0」の場合、出力信号である暗号文SG23として暗号化更新データSG21に代えて第4乱数信号SG22を選択する。選択回路111dは、このようにして信号を選択し、選択した信号を暗号文SG23として出力する。
このように、第1半導体装置110は、端末装置13の認証が正しく行われた場合には更新データを含む暗号化信号を出力し、端末装置13の認証が正しく行われなかった場合には、正しく認証されない送信先にとって暗号化更新データSG21との区別が容易ではない乱数信号を送信する。このように、正しく認証されない相手に対して形式的に正しい信号と区別が容易ではない信号を送信することにより、第三者からの不要な攻撃を抑制することができる。
図8の構成により、第1半導体装置110は、チャレンジコードである第3乱数信号SG15に対するレスポンスコードとして第11乱数信号SG19を出力し、端末装置13から受け取ったレスポンスコードである第9乱数信号SG16に応じて暗号文SG23を出力する。
図5に戻る。サーバ装置11は、第1半導体装置110が出力した第11乱数信号SG19および暗号文SG23を、中継装置12に送信する(ステップS18)。
中継装置12は、サーバ装置11から受け取った第11乱数信号SG19および暗号文SG23を、端末装置13に送信する(ステップS19)。
図9を参照しながら、第11乱数信号SG19および暗号文SG23を受け取った端末装置13が行う処理について説明する。図9において、端末装置13が有する第3半導体装置130は、サーバ装置11から受け取った、レスポンスコード(第11乱数信号SG19)を使用して、サーバ装置11に対する認証を行う。また、第3半導体装置130は、サーバ装置11に対する認証結果に応じて、サーバ装置11から受け取った暗号文SG23を復号するか否かを判定し、判定結果に応じた処理を行う。
図9は、実施の形態1にかかる第3半導体装置の機能ブロック図である。図9において、端末装置13の第3半導体装置130は、サーバ装置11から受け取った第11乱数信号SG19と、DRAM133が記憶している第10乱数信号SG17とを比較回路131b_1に入力し、これらの信号を比較する。比較回路131b_1は、これらの信号が一致していない場合には比較結果信号SG24として「0」を出力し、これらの信号が一致している場合には比較結果信号SG24として「1」を出力し、出力した信号を、AE復号回路131cに供給する。
また、第3半導体装置130は、サーバ装置11から受け取った、暗号文SG23を、AE暗号化回路111cに入力する。AE暗号化回路111cは、さらに入力信号として、DRAM133が記憶している第7乱数信号SG14を受け取る。
ここで、比較結果信号SG24の値が「0」の場合は、サーバ装置11の認証が正しく行われなかったことを意味している。この場合、AE復号回路131cは、暗号文SG23を復号する処理を実行しない。一方、比較結果信号SG24の値が「1」の場合は、サーバ装置11の認証が正しく行われたことを意味している。この場合、AE復号回路131cは、暗号文SG23を復号する以下の処理を実行する。
このように、認証が正しく行われなかった場合に受け取った暗号文の復号処理を実行しないことにより、悪意ある第三者等からのアップデート要求を防止することが出来る。
AE復号回路131cは、暗号文SG23と、暗号文SG23を復号するための鍵情報である第7乱数信号SG14とを入力信号として、暗号文SG23を復号する。暗号文SG23が復号されると、AE復号回路131cは、出力信号に含まれている更新バージョンデータSG04を比較回路131b_2に供給する。比較回路131b_2は、NVRAM132から第3半導体装置130が記憶する現在のファームウェアのバージョン情報である更新前バージョンデータSG03を受け取る。比較回路131b_2は、更新バージョンデータSG04が更新前バージョンデータSG03より大きいか否かを比較し、比較結果信号SG25を更新制御回路131dに供給する。
更新制御回路131dは、比較回路131b_2から比較結果信号SG25を受け取ると共に、AE復号回路131cから復号された更新データSG02を受け取る。更新制御回路131dは、NVRAM132が記憶するファームウェアのバージョンよりも、復号されたファームウェアのバージョンが大きい場合には、NVRAM132が記憶するファームウェアを更新する処理を行う。ファームウェアを更新する処理として、更新制御回路131dは、更新前データSG01に代えて、更新データSG02をNVRAM132に記憶させ、更新前バージョンデータSG03に代えて更新バージョンデータSG04をNVRAM132に記憶させる。
実施の形態1にかかる送受信システムは、以上のような構成となっている。上述した説明から、送受信システム1の処理をまとめると、以下のように説明することが出来る。すなわち、サーバ装置と、前記サーバ装置から更新データを受け取る端末装置とを含む送受信システム1は、以下のように処理を実行する。
まず、サーバ装置11は、認証付き暗号を復号するための鍵を生成するための信号(111)および端末装置13を認証するためのチャレンジコード(112)を端末装置13へ送信する。
端末装置13は、チャレンジコード(112)に対するレスポンスコードと、サーバ装置11を認証するためのチャレンジコードをサーバ装置11へ送信する。
サーバ装置は、レスポンスコードの検証を行い、検証結果に応じて、予め設定された暗号を送信するとともに、端末装置13から受け取ったチャレンジコードに対するレスポンスコードを端末装置13へ送信する。
端末装置13は、サーバ装置11から受け取ったレスポンスコードの検証を行い、検証結果に応じて、レスポンスコードと共に受け取った暗号に対する処理を決定する。
また、送受信システム1は、サーバ装置11と端末装置13との間に中継装置12が介在し、サーバ装置11と中継装置12とが通信し、中継装置12と端末装置13とが通信する。
送受信システム1は、サーバ装置11と端末装置13とが有する共通鍵を用いて更新データを送受信する。また、送受信システム1は、サーバ装置11と端末装置13とが有する共通の擬似ランダム関数を用いて信号をそれぞれ演算する。そのため、送受信システム1は、更新データの秘匿性を維持し、第三者への情報漏えいを防ぐことが出来る。
送受信システム1は、認証付き暗号化技術を利用して更新データの送受信をおこなう。そのため、仮に、端末装置13に改ざんされた更新データが供給された場合、送受信システム1は、認証タグを検証することにより、正しくないデータによる更新を防止できる。
また、送受信システム1は、サーバ装置11と端末装置13との間に中継装置12が介在する。これにより、送受信システム1は、サーバ装置11の通信方式と、端末装置13の通信方式が異なる場合にも、サーバ装置11と端末装置13との信号の送受信が可能となる。したがって、送受信システム1は、例えば、端末装置13が直接インターネットに接続していない場合においても、ファームウェアの更新を行うことが出来、運用コストを低減することができる。
また、送受信システム1は、サーバ装置11と端末装置13とがそれぞれ共通の鍵を有している。このような構成により、送受信システム1は、高速に処理をおこなうことができる。例えば、一般的な公開鍵を利用したシステムと比較すると、本実施の形態にかかるシステムの処理速度は100倍程度速い。
<実施の形態1の変形例>
以下に、図10を参照しながら、実施の形態1の変形例について説明する。実施の形態1の変形例に係る送受信システム1は、端末装置13がTRNG135を有していない点において、上述した端末装置13の構成と異なる。
図10は、実施の形態1の変形例にかかる第3半導体装置の機能ブロック図である。図10の機能ブロック図は、図5におけるステップS15において第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理について説明するものであって、実施の形態1の図7に対応する。
図10は、実施の形態1にかかる端末装置の機能ブロック図である。図10を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置13が行う処理について上述した実施の形態1と異なる点について概要を説明する。図10において、端末装置13が有する第3半導体装置130は、サーバ装置11を認証するためのチャレンジコードとして、第3乱数信号SG15に代えてPRF演算回路131a_2が第12乱数信号SG07_nを生成する。第3半導体装置130は、PRF演算回路131a_2が生成した第12乱数信号SG07_nを、NVRAM132に記憶させる。また、第3半導体装置130は、第9乱数信号SG16をレスポンスコードとして出力すると共に、第12乱数信号SG07_nをチャレンジコードとして出力する。
以下に、第12乱数信号SG07_nについて詳細を説明する。図10において、第3半導体装置130は、NVRAM132に予め第12乱数信号SG07_nの初期値として、乱数である第12乱数信号SG07_0を記憶している。第3半導体装置130が最初に処理を行う場合、PRF演算回路131aは、NVRAM132にアクセスし、第12乱数信号SG07_0を受け取る。また、PRF演算回路131a_2は、第2乱数信号SG12と、PRF演算回路131a_1が出力した第6乱数信号SG13を同じく入力信号として受け取る。PRF演算回路131a_2は、これらを入力信号として演算を行い、出力信号として、第9乱数信号SG16、第10乱数信号SG17、および第12乱数信号SG07_1を生成する。PRF演算回路131a_2は、これらの出力信号のうち、第12乱数信号SG07_1を、サーバ装置11を認証するためのチャレンジコードとして外部に出力するとともに、第12乱数信号SG07_1を、NVRAM132に記憶させる。PRF演算回路131a_2は、演算の度に第12乱数信号SG07_nを新しい値に順次更新し、更新した信号をNVRAM132に記憶する。
これにより、端末装置13は、TRNG135を有さず、サーバ装置11の認証を行うことが出来る。したがって、送受信システム1は、端末装置13を簡便な構成とすることができる。したがって、実施の形態1変形例において、送受信システム1は、簡便な構成により、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
なお、実施の形態1の変形例としては、これに限らず、例えば、チャレンジコードとして、上述した第3乱数信号SG15や第12乱数信号SG07_nに代えて、外部に出力する度にインクリメントする数値を用いてもよい。このような構成にすることにより、実施の形態1変形例において、送受信システム1は、簡便な構成により、効率的かつ安全に更新プログラムの授受を行い、プログラムの更新を実現することができる。
<実施の形態2>
次に、図11〜図16を参照して本発明の実施の形態について説明する。実施の形態2にかかる送受信システム2は、サーバ装置のCPUの構成、および、端末装置のCPUの構成が実施の形態1と異なる。また、実施の形態2にかかる送受信システム2は、サーバ装置において端末装置が有するファームウェアのバージョンを管理する点において、実施の形態1にかかる送受信システム1と異なる。
図11は、実施の形態2にかかる送受信システムのハードウェア構成図である。送受信システム2は、サーバ装置21、中継装置22、および端末装置23を有している。サーバ装置21は、第1半導体装置210を有しており、第1半導体装置210は、CPU211を含んでいる。CPU211は、更新制御回路211eを含む点において、実施の形態1にかかるCPU111と異なる。端末装置23は、第3半導体装置230を有しており、第3半導体装置230は、CPU231を含んでいる。CPU231は、選択回路231eを含む点において、実施の形態1にかかるCPU231と異なる。
次に、図12を参照しながら、送受信システム2にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図12は、実施の形態2にかかる送受信システムの送受信信号を示した図である。
サーバ装置21は、NVRAM112に、更新前バージョンデータSG03を記憶している点において、実施の形態1にかかるサーバ装置11と異なる。すなわち、サーバ装置21は、端末装置23の現在のファームウェアのバージョンが何であるかを管理している。なお、端末装置23は、実施の形態1にかかる端末装置13と同様の信号を記憶している。
以降は、送受信システム2にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について、実施の形態1と異なる点について説明する。図12に示すように、送受信システム2は、ステップS11からステップS15までの処理は、実施の形態1と同様である。
次に、図13を参照しながら、第1乱数信号SG11および第2乱数信号SG12を受け取った端末装置23が行う処理について、図7に示した実施の形態1と異なる点について説明する。図13において、端末装置23が有する第3半導体装置230は、PRF演算回路231a_2が出力する信号が、実施の形態1と異なる。すなわち、PRF演算回路231a_2は、第6乱数信号SG13、第2乱数信号SG12、および第3乱数信号SG15を入力信号とした演算において、第9乱数信号SG16と第10乱数信号SG17に加え、第13乱数信号SG26も出力する。第13乱数信号SG26は、ファームウェアの更新が正しく行われたことを示すための信号として用いられる。PRF演算回路231a_2は、出力した第13乱数信号SG26をDRAM133に記憶させる。図13において、上述の処理を実行した第3半導体装置230は、実施の形態1と同様に、第3乱数信号SG15および第9乱数信号SG16を出力する。
図12に戻る。端末装置23は、第3乱数信号SG15および第9乱数信号SG16を中継装置22に送信し(ステップS26)、中継装置22はこれらの信号をサーバ装置21に送信する(ステップS27)。
次に、図14を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取ったサーバ装置21が行う処理について、図8に示した実施の形態1と異なる点について説明する。図14は、実施の形態2にかかるサーバ装置の機能ブロック図である。
図14において、サーバ装置21が有する第1半導体装置210は、PRF演算回路211a出力する信号が、実施の形態1と異なる。すなわち、PRF演算回路211aは、第2乱数信号SG12、第6乱数信号SG13、および第3乱数信号SG15を入力信号とした演算において、第8乱数信号SG18と第11乱数信号SG19に加え、第14乱数信号SG27も出力する。第14乱数信号SG27は、端末装置23から受け取るファームウェア更新結果信号を検証するための信号として用いられる。PRF演算回路211aは、出力した第14乱数信号SG27をDRAM113に記憶させる。図14において、上述の処理を実行した第1半導体装置210は、実施の形態1と同様に、第11乱数信号SG19および暗号文SG23を出力する。
図12に戻る。サーバ装置21は、第11乱数信号SG19および暗号文SG23を中継装置22に送信し(ステップS28)、中継装置22はこれらの信号を端末装置23に送信する(ステップS29)。
次に、図15を参照しながら、第11乱数信号SG19および暗号文SG23を受け取った端末装置23が行う処理について、図9に示した実施の形態1と異なる点について説明する。図15において、端末装置23が有する第3半導体装置230は、更新制御回路231dが更新結果を出力し、更新制御回路231dが出力した更新結果に基づいて、第3半導体装置230が更新結果信号をサーバ装置21に送信する点が、実施の形態1と異なる。
図15は、実施の形態2にかかる端末装置の機能ブロック図である。図15において、更新制御回路231dは、比較回路231bから比較結果信号SG25を受け取ると共に、AE復号回路231cから復号された更新データSG02を受け取る。更新制御回路231dは、NVRAM132が記憶するファームウェアのバージョンよりも、復号されたファームウェアのバージョンが大きい場合には、NVRAM132が記憶するファームウェアを更新する処理を行う。
更新制御回路231dは、ファームウェアを更新する処理が完了すると、かかる処理が成功したか否かを示す第1更新結果信号SG28を生成し、生成した第1更新結果信号SG28を、選択回路231eに選択制御信号として供給する。ファームウェアを更新する処理が成功した場合、更新制御回路231dは、第1更新結果信号SG28として「1」を出力する。一方、ファームウェアを更新する処理が成功しなかった場合、更新制御回路231dは、第1更新結果信号SG28として「0」を出力する。
選択回路231eは、入力信号として、DRAM133から第13乱数信号SG26を受け取り、さらに、TRNG135から第5乱数信号SG29を受け取る。第5乱数信号SG29は、第13乱数信号SG26と同じ桁数の真性乱数である。選択回路231eは、更新制御回路231dから第1更新結果信号SG28として「1」を受け取った場合、出力する信号として第13乱数信号SG26を選択する。一方、選択回路231eは、更新制御回路231dから第1更新結果信号SG28として「0」を受け取った場合、出力する信号として第5乱数信号SG29を選択する。選択回路231eは、選択した信号を、第2更新結果信号SG30として出力する。第3半導体装置230は、選択回路231eが出力した第2更新結果信号SG30を出力する。
ファームウェアを更新する処理が成功したか否かを示すための信号をこのように出力することにより、かかる信号は秘匿性を維持し、第三者への情報漏えいを防ぐことが出来る。
図12に戻る。端末装置23は、第2更新結果信号SG30を中継装置22に送信し(ステップS30)、中継装置22はこれをサーバ装置21に送信する(ステップS31)。
次に、図16を参照しながら、サーバ装置21が行う処理について説明する。図16は、実施の形態2にかかるサーバ装置の機能ブロック図である。図16において、サーバ装置21が有する第1半導体装置210は、第2更新結果信号SG30を受け取ると、受け取った第2更新結果信号SG30を比較回路211bに供給する。また、比較回路211bは、DRAM113から第14乱数信号SG27を受け取る。すなわち、比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とを比較し、比較結果信号SG31を更新制御回路211eに出力する。
比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とが一致していた場合は、比較結果信号SG31として「1」を出力する。一方、比較回路211bは、第2更新結果信号SG30と第14乱数信号SG27とが一致していない場合は、比較結果信号SG31として「0」を出力する。
更新制御回路211eは、比較結果信号SG31として「0」を受け取った場合、NVRAM112のデータを更新する処理を実行しない。この場合、端末装置23が更新処理に失敗したと判断し比較結果信号SG31をNVRAM112に保存してもよい。一方、更新制御回路211eは、比較結果信号SG31として「1」を受け取った場合、NVRAM112のデータを更新する処理を実行する。すなわち、更新制御回路211eは、NVRAM112の更新データ領域にアクセスし、端末装置23に送信した更新データにかかる更新バージョンデータSG04を受け取る。そして、更新制御回路211eは、NVRAM112のデータベース領域に記憶されている更新前バージョンデータSG03に代えて、更新バージョンデータSG04を記憶させる処理を行う。
以上に説明した構成を有することにより、実施の形態2にかかる送受信システムは、端末装置の更新データを容易に管理できる。したがって、例えばサーバ装置が複数の端末装置を管理する場合に、それぞれの有するデータの更新状況を管理することができ、ネットワーク脆弱性等を把握することが可能となる。
<実施の形態3>
次に、図17から図21を参照して、実施の形態3について説明する。実施の形態3にかかる送受信システム3は、端末装置間の通信処理が実施の形態1と異なる。すなわち、実施の形態3にかかる送受信システム3は、まず、サーバ装置31と中継装置32との通信を行い、次に、サーバ装置31と中継装置32との通信を行うことがない状況において、中継装置32と端末装置33との間の通信を行う。また、実施の形態3にかかる送受信システム3は、中継装置32の構成が実施の形態1と異なる。
図17は、実施の形態3にかかる第2半導体装置のハードウェア構成図である。送受信システム3において、中継装置32と端末装置が有する第2半導体装置320は、および、CPU321の構成が、実施の形態1にかかるCPU121と異なる。CPU321は、PRF演算回路321a、比較回路321b、AE復号回路321c、および選択回路321dを主な構成として有している。また、第2半導体装置320は、TRNG325を有している点が実施の形態1と異なる。
次に、図18を参照しながら、送受信システム3にかかるそれぞれの装置が有する信号と、それぞれの装置が送受信する信号について説明する。図18は、実施の形態3にかかる送受信システムの送受信信号を示した図である。
図18に示す送受信システム3は、サーバ装置31のNVRAM112が共通鍵SG32を記憶している点、および中継装置32のNVRAM122が共通鍵SG32を記憶している点において、実施の形態1と異なる。なお、端末装置33のNVRAM132が記憶するデータは、実施の形態1と同様である。
以降は、送受信システム3にかかるそれぞれの装置が送受信する信号と、それぞれの装置が行う処理について、実施の形態1と異なる点について説明する。図18に示すように、送受信システム3は、ステップS11からステップS13までの処理は、実施の形態1と同様である。
次に、図19を参照しながら、サーバ装置11が行う処理について実施の形態1と異なる点について説明する。図19は、実施の形態3にかかるサーバ装置の機能ブロック図である。図19において、サーバ装置11の第1半導体装置110は、暗号化された更新データを復号する際に使用する鍵を生成するための信号(第1乱数信号SG11)と、端末装置13を認証するためのチャレンジコード(第2乱数信号SG12)とを出力する。第1乱数信号SG11および第2乱数信号SG12を出力するまでの処理については実施の形態1と同様であるため説明を省略する。
第1半導体装置110は、共通鍵SG32と、第6乱数信号SG13とをAE暗号化回路111c_1に入力する。AE暗号化回路111c_1は、これらの信号を受け取り、受け取った信号に対して認証付き暗号化処理を行い、暗号文SG33を生成する。
また、第1半導体装置110は、更新データSG02、更新バージョンデータSG04、および第7乱数信号SG14をAE暗号化回路111c_2に入力する。AE暗号化回路111c_2は、これらの信号を受け取り、受け取った信号に対して認証付き暗号化処理を行い、暗号化更新データSG21を生成する。
以上の処理により、第1半導体装置110は、第1乱数信号SG11、第2乱数信号SG12、暗号文SG33、および暗号化更新データSG21を外部へ出力する。そして、サーバ装置11は、これらの信号を中継装置32に送信する(図18のステップS31)。
次に、図20を参照しながら、上述の信号を受け取った中継装置が行う処理について説明する。図20は、実施の形態3にかかる中継装置の機能ブロック図である。図20において、中継装置32の第2半導体装置320は、以下の処理を行う。
まず、AE復号回路321cは、暗号文SG33を入力信号として受け取り、さらにNVRAM122に記憶されている共通鍵SG32を入力信号として受け取る。そして、AE復号回路321cは、これらを入力信号として、暗号文SG33に含まれていた第6乱数信号SG13を復号により生成する。AE復号回路321cは、生成した第6乱数信号SG13をNVRAM122に記憶させる。
次に、第2半導体装置320は、第1乱数信号SG11、第2乱数信号SG12、および暗号化更新データSG21をNVRAM122に記憶させるとともに、第1乱数信号SG11および第2乱数信号SG12を端末装置33へ出力する処理を行う。中継装置32は、これらの信号を端末装置33に送信する(図18のステップS32)。
次に、端末装置33は、中継装置32から受け取った第1乱数信号SG11および第2乱数信号SG12を処理し、中継装置32に対して第3乱数信号SG15および第9乱数信号SG16を送信する(図18のステップS33)。端末装置33が第1乱数信号SG11および第2乱数信号SG12を処理し、中継装置32に対して第3乱数信号SG15および第9乱数信号SG16を送信する処理は、実施の形態1において図7を参照しながら説明したものと同様である。
次に、図21を参照しながら、第3乱数信号SG15および第9乱数信号SG16を受け取った中継装置32が行う処理について説明する。図21は、図19は、実施の形態3にかかる中継装置の機能ブロック図である。
第2半導体装置320において、PRF演算回路321aは、入力信号として、端末装置33が送信した第3乱数信号SG15を受け取る。また、PRF演算回路321aは、入力信号として、NVRAM122に記憶している第6乱数信号SG13、および第2乱数信号SG12を受け取る。PRF演算回路321aは、これらの信号を入力信号として演算処理を行い、第8乱数信号SG18、および第11乱数信号SG19を生成する。
第2半導体装置320は、PRF演算回路321aが生成した第11乱数信号SG19を、端末装置33のチャレンジコード(第3乱数信号SG15)に対するレスポンスコードとして出力する。
比較回路321bは、PRF演算回路321aが生成した第8乱数信号SG18と、中継装置32からレスポンスコードとして受け取った第9乱数信号SG16とをそれぞれ受け取り、受け取ったこれらの信号を比較する。
比較回路321bがデータを比較した結果、これらの信号が一致しない場合、比較回路321bは、比較結果信号SG20として「0」を出力する。一方、比較した結果、これらの信号が一致する場合、比較回路321bは、比較結果信号SG20として「1」を出力する。比較回路321bは出力した比較結果信号SG20を、選択回路321dに供給する。
TRNG125は、第4乱数信号SG22を生成し、生成した信号を、選択回路321dに入力する。TRNG125が出力する第4乱数信号SG22は、信号の桁数が暗号化更新データSG21と同じである真性乱数である。
選択回路321dは、入力信号として、NVRAM122に記憶されている暗号化更新データSG21と第4乱数信号SG22とを受け取るとともに、選択制御信号として、比較結果信号SG20を受け取る。選択回路321dは、比較結果信号SG20の値が「1」の場合、出力信号である暗号文SG23として暗号化更新データSG21を選択する。一方、選択回路321dは、比較結果信号SG20の値が「0」の場合、出力信号である暗号文SG23として暗号化更新データSG21に代えて第4乱数信号SG22を選択する。選択回路321dは、このようにして信号を選択し、選択した信号を暗号文SG23として出力する。
中継装置32は、第2半導体装置320が出力した第11乱数信号SG19および暗号文SG23を、端末装置33に送信する(図18のステップS34)。以降の端末装置33における処理は、実施の形態1において図9を参照しながら説明したものと同様である。
なお、図18のステップS11およびステップS12において中継装置32と端末装置33とが送受信するデータは、秘匿性があるものではない。そのため、端末装置33にかかる更新前バージョンデータSG03および識別子SG05を、中継装置32が予め記憶しておいてもよい。
このような構成により、実施の形態3にかかる送受信システム3は、サーバ装置31と中継装置32との通信と、中継装置32と端末装置33との通信と、を分離してデータの更新処理を行うことが出来る。例えば、送受信システム3は、端末装置33が遠隔の地にある場合や、近距離通信のみを備えている場合であって、サーバ装置31と中継装置32との通信を行うことが出来ない環境であっても、端末装置33に対して更新データを提供することができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
(付記1)
メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する半導体装置であって、
前記メモリは、鍵情報を記憶し、
前記乱数生成回路は、第1乱数信号および第2乱数信号を生成し、
前記制御回路は、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
(付記2)
前記制御回路は、
前記第6乱数信号、前記第7乱数信号、および前記第8乱数信号を、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
付記1に記載の半導体装置。
(付記3)
前記制御回路は、前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
付記1に記載の半導体装置。
(付記4)
前記制御回路は、前記外部端末装置から、提供した前記暗号化更新データに対する応答信号である第3応答信号を受け取った場合に、前記第3応答信号が、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として生成された第10乱数信号と一致するか否かを判定し、一致する場合には、データが更新されたことを登録し、一致しない場合には、データが更新されなかったことを登録する、
付記1に記載の半導体装置。
(付記5)
メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る半導体装置であって、
前記メモリは、更新前データと、鍵情報を記憶し、
前記制御回路は、
前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
予め設定された信号を含むチャレンジコードを生成し、
前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
半導体装置。
(付記6)
前記制御回路は、
前記第6乱数信号、前記第7乱数信号、前記第9乱数信号、および前記第10乱数信号を、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
付記5に記載の半導体装置。
(付記7)
前記制御回路は、受け取った前記認証信号と、前記第10乱数信号とが一致していない場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行わない、
付記5に記載の半導体装置。
(付記8)
前記制御回路は、予め設定された桁数の数値を順次インクリメントすることにより前記チャレンジコードを生成する、
付記5に記載の半導体装置。
(付記9)
前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第12乱数信号を生成することにより前記チャレンジコードを生成する、
付記5に記載の半導体装置。
(付記10)
第3乱数信号を生成する乱数生成回路をさらに備え、
前記制御回路は、前記第9乱数信号および前記第10乱数信号を生成する際に、前記第2乱数信号と前記第6乱数信号に加えて前記第3乱数信号も入力信号として入力し、
前記チャレンジコードとして第3乱数信号を前記外部サーバ装置へ出力する、
付記5に記載の半導体装置。
(付記11)
前記制御回路は、少なくとも前記第2乱数信号と前記第6乱数信号とを入力信号として含む擬似ランダム関数の出力として第13乱数信号を生成し、
前記暗号化更新データの復号処理が成功した場合に、前記第13乱数信号を前記外部サーバ装置へ出力する、
付記5に記載の半導体装置。
(付記12)
前記制御回路は、前記暗号化更新データの復号処理が成功しなかった場合に、前記第13乱数信号に代えて、乱数信号を前記外部サーバ装置へ出力する、
付記11に記載の半導体装置。
(付記13)
真性乱数生成回路をさらに備え、
前記乱数信号は、真性乱数信号である、
付記12に記載の半導体装置。
(付記14)
外部端末装置に更新データを提供する方法であって、
鍵情報を記憶し、
第1乱数信号および第2乱数信号を生成し、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
更新データ提供方法。
(付記15)
外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
更新前データと、鍵情報を記憶し、
前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
予め設定された信号を含むチャレンジコードを生成し、
前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
更新データ受取方法。
(付記16)
コンピュータに以下の方法を実行させるプログラムであって、前記方法は、
外部端末装置に更新データを提供する方法であって、
鍵情報を記憶し、
第1乱数信号および第2乱数信号を生成し、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
プログラム。
(付記17)
コンピュータに以下の方法を実行させるためのプログラムであって、前記方法は、
外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
更新前データと、鍵情報を記憶し、
前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
予め設定された信号を含むチャレンジコードを生成し、
前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
プログラム。
(付記18)
メモリと、乱数生成回路と、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取り、受け取った暗号化更新データを外部端末装置に提供する半導体装置であって、
前記メモリは、前記外部サーバ装置との間で使用可能な共通鍵を記憶し、
前記制御回路は、
前記外部サーバ装置から、第1乱数信号、第2乱数信号、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および暗号化更新データを受け取り、
前記暗号化鍵データを前記共通鍵により復号して第6乱数信号を生成し、
前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を出力し、
前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
(付記19)
前記第6乱数信号および前記第8乱数信号は、
予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算される、
付記18に記載の半導体装置。
(付記20)
前記制御回路は、
前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
付記18に記載の半導体装置。
(付記21)
サーバ装置と、前記サーバ装置から更新データを受け取る端末装置とを含む送受信システムであって、
前記サーバ装置と、前記端末装置とは、マスタ鍵情報をそれぞれ予め記憶し、
前記サーバ装置は、前記端末装置に対して、第1乱数信号と、前記端末装置を認証するための第1チャレンジコードと、を前記端末装置へ送信し、
前記端末装置は、サーバ装置に対して、
前記第1乱数信号および前記第1チャレンジコードに基づいて生成した第1レスポンスコードと、前記サーバ装置を認証するための第2チャレンジコードと、を送信し、
前記サーバ装置は、前記端末装置に対して、
前記第1レスポンスコードが期待値と一致する場合に、前記マスタ鍵により暗号化された暗号化更新データと、前記第2チャレンジコードに対する第2レスポンスコードを送信し、
前記端末装置は、
前記第2レスポンスコードが期待値と一致する場合に、前記マスタ鍵を用いて受け取った前記暗号化更新データを復号する、
送受信システム。
(付記22)
前記サーバ装置と、前記端末装置とは、それぞれ共通の擬似ランダム関数を記憶し、
前記端末装置は、前記擬似ランダム関数に前記第1チャレンジコードを入力して前記第1レスポンスコードを生成し、
前記サーバ装置は、前記擬似ランダム関数に前記第2チャレンジコードを入力して前記第2レスポンスコードを生成する、
付記21に記載の送受信システム。
(付記23)
前記サーバ装置は、真性乱数生成回路を有しており、
前記第1乱数信号と前記第1チャレンジコードとはそれぞれ真性乱数信号である、
付記21に記載の送受信システム。
(付記24)
前記端末装置は、真性乱数生成回路を有しており、
前記第2チャレンジコードは真性乱数信号である、
付記23に記載の送受信システム。
(付記25)
前記端末装置は、受け取った前記暗号化更新データに基づいて更新データの登録が完了した場合に、前記第1乱数信号および第1チャレンジコードに基づいて生成した更新結果信号を前記サーバ装置に送信し、
前記サーバ装置は、
前記端末装置から受け取った前記更新結果信号が、期待値と一致する場合には、前記端末装置のデータが前記更新データであることを登録するか、期待値と一致しない場合には、前記端末装置のデータが前記更新データでないことを登録する、
付記21に記載の送受信システム。
(付記26)
前記サーバ装置は、前記第1チャレンジコードが期待値と一致しない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を送信する、
付記21に記載の送受信システム。
(付記27)
前記端末装置は、前記レスポンスコードが期待値と一致しない場合に、受け取った前記暗号化更新データを復号しない、
付記21に記載の送受信システム。
(付記28)
前記サーバ装置と前記端末装置との通信を中継する中継装置を更に有し、
前記中継装置は、前記端末装置に対して更新前データのバージョン情報を要求する信号を送信し、前記端末装置から受け取った前記バージョン情報と、前記更新前データを更新する処理を要求する信号と、を前記サーバ装置に送信する、
付記21に記載の送受信システム。
(付記29)
前記サーバ装置と前記端末装置との通信を中継する中継装置を更に有し、
前記サーバ装置と、前記中継装置とは、共通鍵をそれぞれ予め記憶し、
前記サーバ装置は、前記中継装置に対して、
第1乱数信号、前記第1チャレンジコード、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および前記暗号化更新データ、を送信し、
前記中継装置は、前記端末装置に対して、
前記第1乱数信号と、第1チャレンジコードと、を送信し、
前記端末装置は、前記中継装置に対して、
前記第1乱数信号と、前記第1レスポンスコードと、前記第2チャレンジコードと、を送信し、
前記中継装置は、前記端末装置に対して、
前記第1レスポンスコードが期待値と一致する場合に、
前記暗号化更新データと、前記第2レスポンスコードと、を送信し、
前記端末装置は、前記第2レスポンスコードが期待値と一致する場合に、受け取った前記暗号化更新データを復号する、
付記21に記載の送受信システム。
一実施の形態は、更新プログラムの授受を行うサーバ装置、端末装置等に適用可能である。
1、2、3 送受信システム
11、21、31 サーバ装置
12、22、32 中継装置
13、23、33 端末装置
110、210 第1半導体装置
120、320 第2半導体装置
130、230 第3半導体装置
900 ネットワーク
SG01 更新前データ
SG02 更新データ
SG03 更新前バージョンデータ
SG04 更新バージョンデータ
SG05 識別子
SG06 マスタ鍵
SG07 第12乱数信号
SG08 バージョンチェック要求信号
SG09 バージョンアップ要求信号
SG10 比較結果信号
SG11 第1乱数信号
SG12 第2乱数信号
SG13 第6乱数信号
SG14 第7乱数信号
SG15 第3乱数信号
SG16 第9乱数信号
SG17 第10乱数信号
SG18 第8乱数信号
SG19 第11乱数信号
SG20 比較結果信号
SG21 暗号化更新データ
SG22 第4乱数信号
SG23 暗号文
SG24 比較結果信号
SG25 比較結果信号
SG26 第13乱数信号
SG27 第14乱数信号
SG28 第1更新結果信号
SG29 第5乱数信号
SG30 第2更新結果信号
SG31 比較結果信号
SG32 共通鍵
SG33 暗号文

Claims (20)

  1. メモリと、乱数生成回路と、制御回路と、を有し、外部端末装置に更新データを提供する半導体装置であって、
    前記メモリは、鍵情報を記憶し、
    前記乱数生成回路は、第1乱数信号および第2乱数信号を生成し、
    前記制御回路は、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
    前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
    前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
    前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
    前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
  2. 前記制御回路は、
    前記第6乱数信号、前記第7乱数信号、および前記第8乱数信号を、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
    請求項1に記載の半導体装置。
  3. 前記制御回路は、前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
    請求項1に記載の半導体装置。
  4. 前記制御回路は、前記外部端末装置から、提供した前記暗号化更新データに対する応答信号である第3応答信号を受け取った場合に、前記第3応答信号が、前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として生成された第10乱数信号と一致するか否かを判定し、一致する場合にデータが更新されたことを登録し、一致しない場合には、データが更新されなかったことを登録する、
    請求項1に記載の半導体装置。
  5. メモリと、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取る半導体装置であって、
    前記メモリは、更新前データと、鍵情報を記憶し、
    前記制御回路は、
    前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
    予め設定された信号を含むチャレンジコードを生成し、
    前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
    出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
    受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    半導体装置。
  6. 前記制御回路は、
    前記第6乱数信号、前記第7乱数信号、前記第9乱数信号、および前記第10乱数信号を、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算する、
    請求項5に記載の半導体装置。
  7. 前記制御回路は、受け取った前記認証信号と、前記第10乱数信号とが一致していない場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行わない、
    請求項5に記載の半導体装置。
  8. 前記制御回路は、予め設定された桁数の数値を順次インクリメントすることにより前記チャレンジコードを生成する、
    請求項5に記載の半導体装置。
  9. 前記制御回路は、前記第2乱数信号と前記第6乱数信号とを入力信号として、第12乱数信号を生成することにより前記チャレンジコードを生成する、
    請求項5に記載の半導体装置。
  10. 第3乱数信号を生成する乱数生成回路をさらに備え、
    前記制御回路は、前記第9乱数信号および前記第10乱数信号を生成する際に、前記第2乱数信号と前記第6乱数信号に加えて前記第3乱数信号も入力信号として入力し、
    前記チャレンジコードとして第3乱数信号を前記外部サーバ装置へ出力する、
    請求項5に記載の半導体装置。
  11. 前記制御回路は、少なくとも前記第2乱数信号と前記第6乱数信号とを入力信号として含む擬似ランダム関数の出力として第13乱数信号を生成し、
    前記暗号化更新データの復号処理が成功した場合に、前記第13乱数信号を前記外部サーバ装置へ出力する、
    請求項5に記載の半導体装置。
  12. 前記制御回路は、前記暗号化更新データの復号処理が成功しなかった場合に、前記第13乱数信号に代えて、乱数信号を前記外部サーバ装置へ出力する、
    請求項11に記載の半導体装置。
  13. 真性乱数生成回路をさらに備え、
    前記乱数信号は、真性乱数信号である、
    請求項12に記載の半導体装置。
  14. 外部端末装置に更新データを提供する方法であって、
    鍵情報を記憶し、
    第1乱数信号および第2乱数信号を生成し、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
    前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
    前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
    前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
    前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
    更新データ提供方法。
  15. 外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
    更新前データと、鍵情報を記憶し、
    前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
    予め設定された信号を含むチャレンジコードを生成し、
    前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
    出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
    受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    更新データ受取方法。
  16. コンピュータに以下の方法を実行させるプログラムであって、前記方法は、
    外部端末装置に更新データを提供する方法であって、
    鍵情報を記憶し、
    第1乱数信号および第2乱数信号を生成し、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記更新データに対して第7乱数信号を用いて暗号化更新データを生成し、
    前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を生成し、
    前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
    前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
    前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、
    プログラム。
  17. コンピュータに以下の方法を実行させるためのプログラムであって、前記方法は、
    外部サーバ装置から暗号化更新データである暗号化更新データを受け取る方法であって、
    更新前データと、鍵情報を記憶し、
    前記外部サーバ装置から第1乱数信号および第2乱数信号を要求信号として受け取り、
    前記第1乱数信号および前記鍵情報から第6乱数信号および第7乱数信号を生成し、
    前記第2乱数信号と前記第6乱数信号とを入力信号として、第9乱数信号および第10乱数信号を生成し、
    予め設定された信号を含むチャレンジコードを生成し、
    前記要求信号に対する応答信号として前記第9乱数信号および前記チャレンジコードを前記外部サーバ装置へ出力し、
    出力した前記応答信号に基づいて前記外部サーバ装置から認証信号と前記暗号化更新データとを受け取り、
    受け取った前記認証信号と、前記第10乱数信号とが一致している場合に、前記外部サーバ装置から受け取った前記暗号化更新データの復号処理を行う、
    プログラム。
  18. メモリと、乱数生成回路と、制御回路と、を有し、外部サーバ装置から暗号化更新データを受け取り、受け取った暗号化更新データを外部端末装置に提供する半導体装置であって、
    前記メモリは、前記外部サーバ装置との間で使用可能な共通鍵を記憶し、
    前記制御回路は、
    前記外部サーバ装置から、第1乱数信号、第2乱数信号、前記共通鍵により暗号化された第6乱数信号を含む暗号化鍵データ、および暗号化更新データを受け取り、
    前記暗号化鍵データを前記共通鍵により復号して第6乱数信号を生成し、
    前記外部端末装置に送信する要求信号として前記第1乱数信号および前記第2乱数信号を出力し、
    前記要求信号に対する応答信号として前記外部端末装置から第1応答信号および第2応答信号を受け取り、
    前記第1応答信号と前記第2乱数信号と前記第6乱数信号とを入力信号として、第8乱数信号を生成し、
    前記第2応答信号と前記第8乱数信号とが一致している場合に、前記暗号化更新データを前記外部端末装置に提供する、半導体装置。
  19. 前記第6乱数信号および前記第8乱数信号は、
    予め設定された同一の擬似ランダム関数に入力することよりそれぞれ演算される、
    請求項18に記載の半導体装置。
  20. 前記制御回路は、
    前記第2応答信号と前記第8乱数信号とが一致していない場合に、前記暗号化更新データに代えて、前記暗号化更新データと同じ桁数の乱数信号を前記外部端末装置に提供する、
    請求項18に記載の半導体装置。
JP2019565643A 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム Active JP6888122B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2018/001521 WO2019142307A1 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2019142307A1 JPWO2019142307A1 (ja) 2020-11-19
JP6888122B2 true JP6888122B2 (ja) 2021-06-16

Family

ID=67300979

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019565643A Active JP6888122B2 (ja) 2018-01-19 2018-01-19 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム

Country Status (5)

Country Link
US (1) US11516024B2 (ja)
EP (1) EP3742665A4 (ja)
JP (1) JP6888122B2 (ja)
CN (1) CN111512593B (ja)
WO (1) WO2019142307A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11090545B2 (en) * 2019-03-20 2021-08-17 Samuel W. Rall Wireless customizable referee paging system
US11269999B2 (en) * 2019-07-01 2022-03-08 At&T Intellectual Property I, L.P. Protecting computing devices from malicious tampering
US20220116206A1 (en) * 2021-12-22 2022-04-14 Intel Corporation Systems and methods for device authentication in supply chain

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4292736B2 (ja) 2001-11-15 2009-07-08 ソニー株式会社 伝送システム、伝送方法
KR20080013940A (ko) 2005-06-01 2008-02-13 마츠시타 덴끼 산교 가부시키가이샤 전자기기, 갱신 서버장치, 키 갱신장치
JP5453324B2 (ja) * 2009-02-16 2014-03-26 パナソニック株式会社 不正モジュール特定装置、情報処理装置、不正モジュール特定方法、不正モジュール特定プログラム、集積回路、不正モジュール無効化システム、および不正モジュール無効化方法
JP2012093921A (ja) * 2010-10-27 2012-05-17 Nec Engineering Ltd 情報漏洩防止ストレージシステム
US20120324557A1 (en) * 2011-06-17 2012-12-20 Raytheon Bbn Technologies Corp System and method for remote integrity verification
JP2014182571A (ja) 2013-03-19 2014-09-29 Denso Corp 車載電子制御装置のプログラム書換システム及び車載中継装置
JP5907937B2 (ja) * 2013-09-11 2016-04-26 京セラドキュメントソリューションズ株式会社 組込システム
US20160267273A1 (en) 2013-11-06 2016-09-15 Mitsubishi Electric Corporation Software update apparatus and computer-readable storage medium storing software update program
JP5949732B2 (ja) 2013-11-27 2016-07-13 株式会社オートネットワーク技術研究所 プログラム更新システム及びプログラム更新方法
US9894066B2 (en) * 2014-07-30 2018-02-13 Master Lock Company Llc Wireless firmware updates
GB201413836D0 (en) * 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
CN105577625B (zh) * 2014-10-17 2019-04-23 西安西电捷通无线网络通信股份有限公司 基于预共享密钥的实体鉴别方法及装置
JP2017022654A (ja) * 2015-07-14 2017-01-26 株式会社東芝 記憶装置及び方法
US10171478B2 (en) * 2016-06-30 2019-01-01 Faraday & Future Inc. Efficient and secure method and apparatus for firmware update
CN106603485B (zh) * 2016-10-31 2020-03-03 美的智慧家居科技有限公司 密钥协商方法及装置

Also Published As

Publication number Publication date
CN111512593B (zh) 2023-08-29
EP3742665A4 (en) 2021-08-18
WO2019142307A1 (ja) 2019-07-25
EP3742665A1 (en) 2020-11-25
JPWO2019142307A1 (ja) 2020-11-19
CN111512593A (zh) 2020-08-07
US11516024B2 (en) 2022-11-29
US20200351108A1 (en) 2020-11-05

Similar Documents

Publication Publication Date Title
US10469256B2 (en) Cryptographic communication system and cryptographic communication method
JP5690412B2 (ja) ハードウェアデバイスの鍵プロビジョン方法および装置
TWI491236B (zh) Information processing device, controller, key issuer, invalidation list validity determination method and key issue method
JP4392672B2 (ja) ソフトウェア無線通信装置、及びソフトウェア更新方法、並びに、ソフトウェア無線通信システム
US10193691B2 (en) Information processing device, server device, information processing system, moving object, and information processing method
US9165148B2 (en) Generating secure device secret key
CN111611593A (zh) 安全数据处理设备
US20170353315A1 (en) Secure electronic entity, electronic apparatus and method for verifying the integrity of data stored in such a secure electronic entity
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
US20100241865A1 (en) One-Time Password System Capable of Defending Against Phishing Attacks
KR20170017455A (ko) 세션 키 및 인증 토큰에 기반한 상호 인증 장치들 간의 상호 인증 방법 및 상호 인증 장치들
CN112703500A (zh) 在低功率模式期间保护存储在IoT装置的存储器中的数据
US10404718B2 (en) Method and device for transmitting software
US20180145992A1 (en) Data verification method
JP2019095969A (ja) 半導体装置、認証システム及び認証方法
KR102282788B1 (ko) 트랜잭션에 포함된 평문 데이터의 변경을 지원하는 블록체인 시스템
JP6014214B2 (ja) 暗号通信システムおよび暗号通信方法
CN112637122B (zh) 用于通信单元主站访问控制的测试方法、响应方法及其系统
JP2021141567A (ja) 情報処理装置、プログラム更新方法、及びデータ送信方法
KR20230108594A (ko) 차량의 보안 키 제어 방법
KR20230037588A (ko) 프로그래밍가능 장치를 원격으로 프로그래밍하는 방법
JP2010135950A (ja) 暗号処理装置および暗号処理方法
JP2013197810A (ja) 暗号処理装置
JP2014178906A (ja) 認証方法、認証プログラムおよび認証装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200430

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: 20210511

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210519

R150 Certificate of patent or registration of utility model

Ref document number: 6888122

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250