JP2017076854A - 電子装置、及びデータ検証方法 - Google Patents
電子装置、及びデータ検証方法 Download PDFInfo
- Publication number
- JP2017076854A JP2017076854A JP2015202645A JP2015202645A JP2017076854A JP 2017076854 A JP2017076854 A JP 2017076854A JP 2015202645 A JP2015202645 A JP 2015202645A JP 2015202645 A JP2015202645 A JP 2015202645A JP 2017076854 A JP2017076854 A JP 2017076854A
- Authority
- JP
- Japan
- Prior art keywords
- bit string
- transmission
- data
- received
- generation unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013524 data verification Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims description 26
- 230000005540 biological transmission Effects 0.000 claims abstract description 251
- 238000001514 detection method Methods 0.000 claims abstract description 154
- 230000004044 response Effects 0.000 claims abstract description 78
- 230000004075 alteration Effects 0.000 claims abstract description 48
- 230000008859 change Effects 0.000 claims abstract description 5
- 238000010586 diagram Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 27
- 206010009944 Colon cancer Diseases 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 238000004364 calculation method Methods 0.000 description 9
- 239000000470 constituent Substances 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003449 preventive effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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/72—Protecting 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Mathematical Physics (AREA)
- Automation & Control Theory (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】改ざん耐性を有するデータ検証が可能な装置を提供する。
【解決手段】電子装置11は、改ざん検出ビット列生成部112と、送信データ生成部113と、データ出力部SDAとを有する。改ざん検出ビット列生成部112は、送信ビットの少なくとも1つの「1」を「0」に変更することに対応して、すくなくとも1つの「0」を「1」に変更することが必要なビット配列を有する送信改ざん検出ビット列を生成する。送信データ生成部113は送信ビット列と、送信改ざん検出ビット列とを含む送信データを生成し、データ出力部SDAは送信データをオープンドレイン出力する。
【選択図】図6
【解決手段】電子装置11は、改ざん検出ビット列生成部112と、送信データ生成部113と、データ出力部SDAとを有する。改ざん検出ビット列生成部112は、送信ビットの少なくとも1つの「1」を「0」に変更することに対応して、すくなくとも1つの「0」を「1」に変更することが必要なビット配列を有する送信改ざん検出ビット列を生成する。送信データ生成部113は送信ビット列と、送信改ざん検出ビット列とを含む送信データを生成し、データ出力部SDAは送信データをオープンドレイン出力する。
【選択図】図6
Description
本発明は、電子装置、及びデータ検証方法に関する。
近年、プリンタカートリッジ、電池、ゲーム機のカートリッジ等の製品の偽造品(以下、クローン品とも称する)が販売されている。例えば、電池のクローン品は、十分な品質が確保されていないおそれがあり、電池のクローン品が製造、販売されて需要者に使用されると不具合が発生するおそれがある。電池のクローン品が使用されることを防止するために、電池が正規品であることが認証されることが好ましい。
電池を認証する一例として、自動車及び航空機等の制御装置に搭載された認証装置は、自動車及び航空機等に搭載された電池に搭載された被認証装置と通信して、被認証装置を搭載した電池が正規品であることを認証する。認証装置は被認証装置にチャレンジを送信し、チャレンジを受信した被認証装置は秘密鍵等の秘密情報に応じたレスポンスを認証装置に送信する。レスポンスを受信した認証装置は、送信したチャレンジと受信したレスポンスを比較して、被認証装置を認証するか否かを判定する。被認証装置に格納された秘密情報は、攻撃者が秘密情報を外部からの解読が容易ではないので、認証処理を実行することで、秘密情報を有する被認証装置を搭載した電池等が正規品であることが認証される。
また、認証装置と被認証装置との間の通信には、シリアル通信バス方式が採用される。シリアル通信バス方式は、アイ・スクエアド・シー(Inter-Integrated Circuit、I2C)バス、シリアル・ペリフェラル・インタフェース(Serial Peripheral Interface 、SPI)、1−wire(登録商標)及びUART等を含む。認証装置と被認証装置との間の通信にシリアル通信バス方式を採用することにより、パラレル通信バス方式を採用するときよりもICチップの入出力回路の数が削減され、ICチップの製造コストの低減が可能になる。
シリアル通信バス方式は、認証処理だけでなく、各種データ転送処理にも採用される。また、シリアル通信方式は、センサーノード、ウェアラブル機器等のIoT機器、家電、自動車及び航空機等で採用される組み込みシステム、携帯電話、スマートフォン及びスマートカード等の種々の機器に幅広く採用される。
I2Cバス等のシリアル通信バス方式において、送信装置が送信した送信データと、受信装置が受信した受信データとの間の整合性を、誤り検出技術及び暗号化技術により検証して、改ざんの有無を検出する技術が知られる(例えば、特許文献1を参照)。
「UM10204 I2C バス仕様およびユーザーマニュアル Rev. 5.0J - 2012 年 10 月 9 日 (日本語翻訳 11 月 2 日) ユーザーマニュアル」http://www.nxp.com/documents/user_manual/UM10204_JA.pdf
しかしながら、誤り検出技術を使用して改ざんの有無を検出する場合、高い改ざん耐性を実現することは容易ではない。
一実施形態では、改ざん耐性を有するデータ検証が可能な電子装置を提供することを目的とする。
1つの態様では、電子装置は、改ざん検出ビット列生成部と、送信データ生成部と、データ出力部とを有する。改ざん検出ビット列生成部は、送信ビット列の少なくとも1つの「1」を「0」に変更することに対応して、少なくとも1つの「0」を「1」に変更することが必要なビット配列を有する送信改ざん検出ビット列を生成する。送信データ生成部は送信ビット列と、送信改ざん検出ビット列とを含む送信データを生成し、データ出力部は送信データをオープンドレイン出力する。
一実施形態では、改ざん耐性を有するデータ検証が可能な電子装置を提供することが可能になる。
以下図面を参照して、本発明に係る電子装置及びデータ検証方法について説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されない。
(実施形態に係る電子装置の概要)
実施形態に係る電子装置は、送信ビット列及び送信改ざん検出ビット列を含む送信データをオープンドレイン出力する。また、送信改ざん検出ビット列は、少なくとも1つの「0」が「1」に改ざんされないときに、送信ビット列の改ざんを検出可能なビット配列を有する。実施形態に係る電子装置では、送信ビット列及び送信改ざん検出ビット列を含む送信データは、オープンドレイン出力されるので、送信ビット列及び送信改ざん検出ビット列は何れも「0」を「1」に改ざんされるおそれはない。オープンドレイン出力された送信データに含まれるビットは、「0」を「1」に改ざんされるおそれはないので、送信改ざん検出ビット列を使用して改ざんの有無を検出することができる。
実施形態に係る電子装置は、送信ビット列及び送信改ざん検出ビット列を含む送信データをオープンドレイン出力する。また、送信改ざん検出ビット列は、少なくとも1つの「0」が「1」に改ざんされないときに、送信ビット列の改ざんを検出可能なビット配列を有する。実施形態に係る電子装置では、送信ビット列及び送信改ざん検出ビット列を含む送信データは、オープンドレイン出力されるので、送信ビット列及び送信改ざん検出ビット列は何れも「0」を「1」に改ざんされるおそれはない。オープンドレイン出力された送信データに含まれるビットは、「0」を「1」に改ざんされるおそれはないので、送信改ざん検出ビット列を使用して改ざんの有無を検出することができる。
(実施形態に係る電子装置に関連する技術)
実施形態に係る電子装置について説明する前に、実施形態に係る電子装置に関連する技術について簡単に説明する。
実施形態に係る電子装置について説明する前に、実施形態に係る電子装置に関連する技術について簡単に説明する。
(I2Cバス)
図1(a)は、I2Cバスによりデータを送受信する回路を含む通信システムの一例を示す回路ブロック図である。図1(b)は図1(a)に示す通信システムで利用されるデータフォーマットの一例を示す図であり、図1(c)は図1(a)に示す通信システムで利用されるデータフォーマットの他の例を示す図である。
図1(a)は、I2Cバスによりデータを送受信する回路を含む通信システムの一例を示す回路ブロック図である。図1(b)は図1(a)に示す通信システムで利用されるデータフォーマットの一例を示す図であり、図1(c)は図1(a)に示す通信システムで利用されるデータフォーマットの他の例を示す図である。
通信システム800は、マスタチップ801と、第1スレーブチップ802と、第2スレーブチップ803と、SDAバス804と、SCLバス805と、SDAプルアップ抵抗素子806と、SCKプルアップ抵抗素子807とを有する。
マスタチップ801はマスタとして機能し、第1スレーブチップ802及び第2スレーブチップ803はスレーブとして機能する。マスタチップ801、第1スレーブチップ802及び第2スレーブチップ803のそれぞれは、シリアル・データライン(SDA)端子とシリアル・クロックライン(SCL)端子の2つの端子とを有する。SDA端子は、I2Cバスのマスタとスレーブとの間のデータ信号、及びアクノリッジ(Acknowledge、ACK)信号等を送信又受信する端子である。SCL端子は、I2Cバスのマスタからスレーブに、SDA端子が送信又受信する信号をラッチするクロック信号を送信又受信する端子である。
SDAプルアップ抵抗素子806及びSCKプルアップ抵抗素子807のそれぞれは、SDAバス804及びSCLバス805のそれぞれにワイヤードAND接続される。
マスタチップ801、第1スレーブチップ802及び第2スレーブチップ803のSDA端子は、出力段としてオープンコレクタを有し、SDAバス804を介して互いに接続される。また、マスタチップ801、第1スレーブチップ802及び第2スレーブチップ803のSCL端子は、出力段としてオープンコレクタを有し、SCLバス805を介して互いに接続される。SDAバス804に「1」を出力するとき、マスタチップ801、第1スレーブチップ802及び第2スレーブチップ803のSDA端子の出力段は「Hi−Z」になる。一方、SDAバス804に「0」を出力するとき、マスタチップ801、第1スレーブチップ802及び第2スレーブチップ803のSDA端子の出力段は接地レベルになる。
通信システム800における通信は、マスタチップ801と第1スレーブチップ802及び第2スレーブチップ803との間で行われ、第1スレーブチップ802と第2スレーブチップ803との間では行われない。通信システム800は、マスタがスレーブにデータを送信する場合と、マスタがスレーブからデータを受信する場合の2つの場合がある。マスタがスレーブにデータを送信する場合、すなわちマスタチップ801から第1スレーブチップ802又は第2スレーブチップ803にデータを送信する通信を、第1データ通信と称する。また、マスタがスレーブからデータを受信する場合、すなわちマスタチップ801が第1スレーブチップ802又は第2スレーブチップ803からデータを受信する通信を、第2データ通信と称する。
第1データ通信では、マスタチップ801は、第1スレーブチップ802又は第2スレーブチップ803のアドレスを指定し、且つ図1(b)のR/Wビットを「0」に設定することでマスタチップ801が送信側であることを指定する(第1ステップ)。次いで、マスタチップ801は、第1スレーブチップ802又は第2スレーブチップ803からACK信号を受信し(第2ステップ)、第1スレーブチップ802又は第2スレーブチップ803にデータを送信する(第3ステップ)。以降、マスタチップ801は、図1(b)のPビットでストップ条件が成立する(第4ステップ)まで、第2ステップ及び第3ステップを繰り返す。ストップ条件が成立する(第4ステップ)と、処理は終了する。
第2データ通信では、マスタチップ801は、第1スレーブチップ802又は第2スレーブチップ803のアドレスを指定し、且つ図1(c)のR/Wビットを「1」に設定することでマスタチップ801が受信側であることを指定する(第1ステップ)。次いで、マスタチップ801は、第1スレーブチップ802又は第2スレーブチップ803からACK信号を受信し(第2ステップ)、第1スレーブチップ802又は第2スレーブチップ803からデータを受信する(第3ステップ)。以降、マスタチップ801は、図1(c)のPビットでストップ条件が成立する(第4ステップ)まで、第2ステップ及び第3ステップを繰り返す。ストップ条件が成立する(第4ステップ)と、処理は終了する。
(チャレンジアンドレスポンス認証)
チャレンジアンドレスポンス認証プロトコルは、認証ICチップ等において機器の正当性を確認するために利用される通信プロトコルである。すなわち、チャレンジアンドレスポンス認証は、ビット列等のデジタル情報を用いた合言葉である。自動車又は航空機に搭載された認証を行う側の認証ICチップ(以下、「親機」とも称する)は、「チャレンジ」とも称される認証要求ビット列を、バッテリ等に搭載された認証される側の被認証ICチップ等(以下、「子機」とも称する)に送信する。子機は、受信した「チャレンジ」を暗号処理して「レスポンス」とも称される認証応答ビット列を生成し、生成した「レスポンス」を親機に送信する。親機は、送信した「チャレンジ」と、受信した「レスポンス」を復号化したビット列とを比較し、比較結果が正しいと判定したときに、子機が正当な機器であると判断する。
チャレンジアンドレスポンス認証プロトコルは、認証ICチップ等において機器の正当性を確認するために利用される通信プロトコルである。すなわち、チャレンジアンドレスポンス認証は、ビット列等のデジタル情報を用いた合言葉である。自動車又は航空機に搭載された認証を行う側の認証ICチップ(以下、「親機」とも称する)は、「チャレンジ」とも称される認証要求ビット列を、バッテリ等に搭載された認証される側の被認証ICチップ等(以下、「子機」とも称する)に送信する。子機は、受信した「チャレンジ」を暗号処理して「レスポンス」とも称される認証応答ビット列を生成し、生成した「レスポンス」を親機に送信する。親機は、送信した「チャレンジ」と、受信した「レスポンス」を復号化したビット列とを比較し、比較結果が正しいと判定したときに、子機が正当な機器であると判断する。
チャレンジアンドレスポンス認証では、「チャレンジ」として所定のビット列を使用すると、「チャレンジ」と「レスポンス」の双方が固定値になり、「チャレンジ」及び「レスポンス」が認証ICチップの信号を観察する攻撃者に知得されるおそれがある。「チャレンジ」として所定のビット列を使用する場合、「チャレンジ」及び「レスポンス」が攻撃者に知得され易いので、知得した「レスポンス」を再送する再送攻撃(Replay attack)を受けるおそれがあると共に、認証ICチップが偽造されるおそれがある。
乱数生成器により生成された乱数を「チャレンジ」に使用することで、「チャレンジ」及び「レスポンス」は、攻撃者に知得され難くされる。乱数を「チャレンジ」に使用すると「レスポンス」が「チャレンジ」に応じて変化するので、再送攻撃等に対する防止措置が可能である。また、「チャレンジ」を受信した子機は、種々の暗号関数を使用して「レスポンス」を生成可能であるが、共通鍵暗号方式を使用することで、子機の回路規模を比較的小さくなる。
図2(a)は共通鍵暗号方式を用いたチャレンジアンドレスポンス認証の一例のシーケンスを示す図であり、図2(b)は共通鍵暗号方式を用いたチャレンジアンドレスポンス認証の他の例のシーケンスを示す図である。親機811及び子機812並びに親機821及び子機822のそれぞれは、不図示のROMに書き込まれた秘密鍵Kを有する。
図2(a)に示す例では、まず、親機811は、不図示の乱数生成器等を使用してチャレンジGを生成し(S801)、生成したチャレンジGを子機812に送信する(S802)。チャレンジGを受信した子機812は、不図示のROMに記憶された秘密鍵Kを使用して暗号化(A=Enc(G,K))を実行してレスポンスAを生成(S803)し、生成したレスポンスAを親機811に送信する(S804)。レスポンスAを受信した親機811は、ROMに記憶された秘密鍵Kを使用して復号化(Gc=Dec(A,K))を実行して、復号化結果Gcを生成する(S805)。親機811は、復号化結果Gcが、子機812に送信したチャレンジGと一致したときに、認証が成功したと判定する(S806)。
図2(b)に示す例では、まず、親機821は、不図示の乱数生成器等を使用してチャレンジGを生成し(S811)、生成したチャレンジGを子機812に送信する(S812)。チャレンジGを受信した子機822は、不図示のROMに記憶された秘密鍵Kを使用して暗号化(A=Enc(G,K))を実行してレスポンスAを生成(S813)し、生成したレスポンスAを親機821に送信する(S814)。レスポンスAを受信した親機821は、ROMに記憶された秘密鍵Kを使用して暗号化(A=Enc(G,K))を実行して暗号化結果A´を生成する(S815)。親機821は、生成した暗号化結果A´が、子機822から送信されたレスポンスAと一致したときに、認証が成功したと判定する(S816)。
共通鍵暗号方式を用いたチャレンジアンドレスポンス認証では、チャレンジGに対応した正当なレスポンスAを生成可能な子機は、秘密鍵Kを有する子機に限られるので、親機は、子機の正当性を確認することが可能である。
(I2Cバスを使用してチャレンジアンドレスポンス認証を行う場合の問題点)
図3はI2Cバスを使用してチャレンジアンドレスポンス認証を行う場合の問題点を説明する図であり、図3(a)は問題が発生しない場合を示す図であり、図3(b)は問題が発生する場合を示す図である。図3では、マスタチップからチャレンジが送信されたスレーブチップがレスポンスをマスタに送信する状態を例に説明する。
図3はI2Cバスを使用してチャレンジアンドレスポンス認証を行う場合の問題点を説明する図であり、図3(a)は問題が発生しない場合を示す図であり、図3(b)は問題が発生する場合を示す図である。図3では、マスタチップからチャレンジが送信されたスレーブチップがレスポンスをマスタに送信する状態を例に説明する。
認証システム820は、マスタとして機能する親機821と、スレーブとして機能する子機822と、親機821のSDA端子に入力されるデータを改ざんする悪意を有する悪意チップ823とを有する。親機821及び子機822のそれぞれは、不図示のROMに書き込まれた秘密鍵Kを有する。一例では、親機821は、自動車又は航空機の制御装置に搭載され、子機822は自動車又は航空機に電力を供給する電池に搭載される。
図3(a)に示す状態では、親機821のSDA端子は、チャレンジを受信した子機822のSDA端子から「0」がレスポンスとして送信される。子機822は、「0」を出力するために、SDA端子の出力段を接地レベルにする。一方、悪意チップ823は、データを改ざんするために「1」を親機821に送信するためにSDA端子の出力段を「Hi−Z」にする。しかしながら、子機822のSDA端子の出力段は接地レベルなので、悪意チップ823のSDA端子の出力段を「Hi−Z」にしても、親機821のSDA端子は、「0」が入力される状態が維持される。
図3(b)に示す状態では、親機821のSDA端子は、チャレンジを受信した子機822のSDA端子から「1」がレスポンスとして送信される。子機822は、「1」を出力するために、SDA端子の出力段を「Hi−Z」にする。一方、悪意チップ823は、データを改ざんするために「0」を親機821に送信するためにSDA端子の出力段を接地レベルにする。図3(b)に示す状態では、子機822のSDA端子のから「1」がレスポンスとして送信されるにもかかわらず、悪意チップ823のSDA端子の出力段が接地レベルになるので、親機821のSDA端子は、「0」が入力される状態に改ざんされる。
親機821は、子機822から「0」がレスポンスとして送信されるときは、悪意チップ823から「1」を送信されてもレスポンスが改ざんされるおそれはない。一方、親機821は、子機822から「1」がレスポンスとして送信されるときは、悪意チップ823から「0」を送信されると、レスポンスが改ざんされる。
認証システム820では、親機821が「1」がレスポンスとして送信されるときはレスポンスが改ざんされるため、子機822が正規のICチップであるにもかかわらず、親機821は認証失敗と判定する。親機821が認証失敗と判定するため、子機822が搭載される電池等の装置は、子機822正常に動作せず、悪意チップ823による認証システム820へのDoS攻撃(サービス拒否攻撃)が可能になる。
同様に、悪意チップ823は、親機821及び子機822が送信するビット列に含まれる「1」を「0」に改ざんすることによりのDoS攻撃以外の認証システム820への攻撃が可能である。非特許文献1等で規定されるI2Cバスの仕様では、セキュリティ対策が十分でないため、SDAバス824及びSCLバスを通信されるビット列の改ざんが可能であり、セキュリティ問題が生じるおそれがある。
(ビット列の改ざんを防止する技術)
ビット列に含まれるデータの改ざんを防ぐために、送信するビット列に、改ざん等に起因する送信ビット列の誤りの検出に使用される送信誤り検出ビット列(以降、ダイジェストとも称する)が付加される。チェックサム及びCRC等では、ダイジェストは、誤り検出技術を使用して生成される。SHA−256では、ダイジェストは、暗号学的ハッシュ関数を使用して生成される。
ビット列に含まれるデータの改ざんを防ぐために、送信するビット列に、改ざん等に起因する送信ビット列の誤りの検出に使用される送信誤り検出ビット列(以降、ダイジェストとも称する)が付加される。チェックサム及びCRC等では、ダイジェストは、誤り検出技術を使用して生成される。SHA−256では、ダイジェストは、暗号学的ハッシュ関数を使用して生成される。
(チェックサム)
図4(a)は送信ビット列及びチェックサムを含む送信データの一例を示す図であり、図4(b)は誤りを含む送信ビット列及びチェックサムを含む送信データの一例を示す図である。図4(c)は、改ざんされた送信ビット列及び改ざんされたチェックサムを含む送信データの一例を示す図である。
図4(a)は送信ビット列及びチェックサムを含む送信データの一例を示す図であり、図4(b)は誤りを含む送信ビット列及びチェックサムを含む送信データの一例を示す図である。図4(c)は、改ざんされた送信ビット列及び改ざんされたチェックサムを含む送信データの一例を示す図である。
チェックサムは、送信されるビット列の1バイトデータの総計(チェックサム)の下位1バイトをダイジェストとして生成する。送信データ900は、1バイト毎に区切られた16進数表記で{70,00,00,00,00,00,00,08}で示される64ビット(8バイト)の送信ビット列901を送信する。以下「{}」で示される数字は、16進数表記である。送信データ900では、送信ビット列901に含まれる1バイト毎のビット列の総和は、{78}となるので、ダイジェスト902は{78}のビット列を含む。
送信データ910は、送信データ900と比較すると、送信ビット列911の最上位バイトが{70}から{60}に誤りにより変化する。一方、送信データ910のダイジェスト912は、送信データ900のダイジェスト902と等しく{78}である。送信データ910は、送信ビット列911の総計の下位1バイトが{68}であるのに対し、ダイジェスト912が{78}であるので、送信データ910の誤りは、検出可能である。
送信データ920は、送信データ900と比較すると、送信ビット列911の最下位バイト{08}が{00}に改ざんにより変化する。また、送信データ920は、送信データ900と比較すると、ダイジェスト922が{78}に{70}が改ざんにより変化する。送信データ910は、送信ビット列911の総計の下位1バイト及びダイジェスト912の双方が{70}であるので、送信ビット列921が改ざんされるのにもかかわらず、送信データ920の誤りは、検出されない。
チェックサムは、送信ビット列に含まれるビットのみが誤りにより変化した場合に誤り検出が可能であるが、送信ビット列及びダイジェストの双方が意図に改ざんされた場合には、誤りが検出されない可能性がある。ビット列に含まれるビット「1」を「0」に改ざんすることはI2Cバスでは比較的容易なので、チェックサムは、攻撃者がI2Cバスで通信されるビット列を改ざんしたときに、ビット列の改ざんが検出されないおそれがある。
(CRC)
CRCは、巡回冗長検査とも称され、送信ビット列を所定の除数により除算したときの剰余をダイジェストとする。CRCのダイジェストのビット長は、除算に使用する除数に依存する。例えば、CRC−16(CRC−CCITT)では、除数は、(1+ X5 + X12 + X16)なので、ダイジェストのビット長は16ビット(2バイト)になる。CRCは、チェックサムと同様に、送信ビット列に含まれるビット「1」を「0」にの改ざんすることにより、送信ビット列を所定の除数で除算したときの剰余とダイジェストが一致するように改ざんされるおそれがある。
CRCは、巡回冗長検査とも称され、送信ビット列を所定の除数により除算したときの剰余をダイジェストとする。CRCのダイジェストのビット長は、除算に使用する除数に依存する。例えば、CRC−16(CRC−CCITT)では、除数は、(1+ X5 + X12 + X16)なので、ダイジェストのビット長は16ビット(2バイト)になる。CRCは、チェックサムと同様に、送信ビット列に含まれるビット「1」を「0」にの改ざんすることにより、送信ビット列を所定の除数で除算したときの剰余とダイジェストが一致するように改ざんされるおそれがある。
チェックサム及びCRCは、ダイジェストを生成するときの計算コストは比較的小さく且つダイジェストのビット長も比較的小さくすること可能であるが、改ざん耐性は比較的低い。
(暗号学的ハッシュ関数)
送信ビット列のビットをSHA−256に入力してダイジェストを生成する等、SHA−2アルゴリズム等の暗号学的ハッシュ関数(以後、単にハッシュ関数とよぶ)を使用してダイジェストを生成することで、送信ビット列とダイジェストとの間の整合性を維持した改ざんが困難になる。すなわち、ハッシュ関数により生成されるダイジェストを使用することで、改ざん耐性を向上させることが可能になる。
送信ビット列のビットをSHA−256に入力してダイジェストを生成する等、SHA−2アルゴリズム等の暗号学的ハッシュ関数(以後、単にハッシュ関数とよぶ)を使用してダイジェストを生成することで、送信ビット列とダイジェストとの間の整合性を維持した改ざんが困難になる。すなわち、ハッシュ関数により生成されるダイジェストを使用することで、改ざん耐性を向上させることが可能になる。
しかしながら、ハッシュ関数は、チェックサム及びCRCと比較して、ダイジェストを生成するための計算コストは大きく且つダイジェストのビットサイズが大きくなるという問題がある。例えば、暗号関数処理であるSHA−256を使用してダイジェストを生成すると、複数回に亘ってハッシュ関数を演算するため、が計算量が増大すると共に、ダイジェストのビットサイズは、256ビットは比較的大きい。
図5は、チェックサム及びCRC誤り検出技術と、SHA等のハッシュ関数を使用する技術との比較を示す図である。
チェックサム及びCRCを使用してダイジェストを生成する場合は、送信ビット列とダイジェストとの間の整合性を維持した改ざんを攻撃者が実行可能であるので、改ざん耐性が低いという問題がある。一方、ハッシュ関数を使用してダイジェストを生成する場合は、送信ビット列とダイジェストとの間の整合性を維持した改ざんは容易ではないが、計算コスト及びダイジェストのビットサイズが増大するという問題がある。
実施形態に係る電子装置は、I2Cバス等のシリアル通信バスにおいて、高い改ざん耐性と、計算コストの削減との両立を目的とする。
(第1実施形態に係るデータ検証システムの構成及び機能)
図6は、第1実施形態に係るデータ検証システムのブロック図である。
図6は、第1実施形態に係るデータ検証システムのブロック図である。
データ検証システム1は、マスタチップ11と、第1スレーブチップ12と、第2スレーブチップ13と、SDAバス14と、SCLバス15と、SDAプルアップ抵抗素子16と、SCKプルアップ抵抗素子17とを有する。SDAバス14、SCLバス15、SDAプルアップ抵抗素子16及びSCKプルアップ抵抗素子17は、SDAバス804、SCLバス805、SDAプルアップ抵抗素子806及びSCKプルアップ抵抗素子807と同様な構成及び機能を有する。SDAバス14、SCLバス15、SDAプルアップ抵抗素子16及びSCKプルアップ抵抗素子17の詳細な説明は、ここでは省略する。
マスタチップ11はマスタとして機能し、第1スレーブチップ12及び第2スレーブチップ13スレーブとして機能する。マスタチップ11、第1スレーブチップ12及び第2スレーブチップ13のそれぞれは、SDA端子とSCL端子の2つの端子とを有する。SDA端子は、I2Cバスのマスタとスレーブとの間のデータ信号、及びACK信号等を送信又受信する端子である。SCL端子は、I2Cバスのマスタからスレーブに、SDA端子が送信又受信する信号をラッチするクロック信号を送信又受信する端子である。マスタチップ11、第1スレーブチップ12及び第2スレーブチップ13のSDA端子は、出力段としてオープンコレクタを有し、SDAバス14を介して互いに接続される。また、マスタチップ11、第1スレーブチップ12及び第2スレーブチップ13のSCL端子は、出力段としてオープンコレクタを有し、SCLバス15を介して互いに接続される。マスタチップ11及び第1スレーブチップ12のそれぞれは、CPU、マイコン、RAM又はROMとして機能してもよいが、これに限定されない。
マスタチップ11は、送信ビット列生成部111と、改ざん検出ビット列生成部112と、送信データ生成部113と、改ざん検出部114とを有する。送信ビット列生成部111は、第1スレーブチップ12に送信する情報に対応する送信ビット列を生成する。改ざん検出ビット列生成部112は、送信ビット列生成部111が生成した送信ビット列の全てのビットを反転させた反転ビット列を送信改ざん検出ビット列として生成する。送信データ生成部113は、送信ビット列生成部111が生成した送信ビット列に、改ざん検出ビット列生成部112が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する。送信データ生成部113は、生成した送信データを第1スレーブチップ12に送信する。改ざん検出部114は、受信ビット列及び受信ビット列の改ざんの検出に使用される受信改ざん検出ビット列に基づいて、受信ビット列の改ざんの有無を検出する。
第1スレーブチップ12は、送信ビット列生成部121と、改ざん検出ビット列生成部122と、送信データ生成部123と、改ざん検出部124とを有する。送信ビット列生成部121、改ざん検出ビット列生成部122、送信データ生成部123及び改ざん検出部124は、送信ビット列生成部111、改ざん検出ビット列生成部112、送信データ生成部113及び改ざん検出部114と同様な機能を有する。
第2スレーブチップ13は、マスタチップ11から第1スレーブチップ12に送信される送信データを改ざんする悪意を有する悪意チップである。
(第1実施形態に係るデータ検証システムのデータ検証処理)
図7(a)はデータ検証システム1におけるデータ検証処理のシーケンスを示す図であり、図7(b)は図7(a)に示すS105の詳細な処理のフローチャートを示す図である。
図7(a)はデータ検証システム1におけるデータ検証処理のシーケンスを示す図であり、図7(b)は図7(a)に示すS105の詳細な処理のフローチャートを示す図である。
まず、送信ビット列生成部111は、第1スレーブチップ12に送信する情報に対応する送信ビット列を生成する(S101)。次いで、改ざん検出ビット列生成部112は、送信ビット列生成部111が生成した送信ビット列の全てのビットを反転させた送信反転ビット列を送信改ざん検出ビット列として生成する(S102)。次いで、送信データ生成部113は、送信ビット列生成部111が生成した送信ビット列に、改ざん検出ビット列生成部112が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する(S103)。
図8は、送信データ生成部113が生成する送信データを示す図である。図8において、*印は「0」又は「1」の1ビットを表す。
送信データ100は、送信ビット列101と、ダイジェスト102とを有する。ダイジェスト102は、送信ビット列の全てのビットを反転させたビット列を含む。例えば、送信ビット列101が「00000000」を含む場合、ダイジェスト102は「11111111」を含む。また、送信ビット列101が「01100001」を含む場合、ダイジェスト102は「10011110」を含む。ダイジェスト102のビット長は、送信ビット列101のビット長と等しい。
次いで、送信データ生成部113は、送信データをSDA端子からオープンドレイン出力して第1スレーブチップ12に送信する(S104)。第1スレーブチップ12は、マスタチップ11からオープンドレイン出力により送信された送信データを受信データとして受信し、受信した受信データが改ざんされたか否かを判定する(S105)。
S105において、まず、改ざん検出部124は、オープンドレイン出力された受信データを、受信ビット列と受信改ざん検出ビット列とに分離する(S201)。受信ビット列はマスタチップ11が送信した送信ビット列に対応し、受信改ざん検出ビット列はマスタチップ11が送信した送信改ざん検出ビット列に対応する。次いで、改ざん検出部124は、受信ビット列の全てのビットを反転させた受信反転ビット列を生成する(S202)。次いで、改ざん検出部124は、受信反転ビット列と、受信改ざん検出ビット列とが一致するか否かを判定する(S203)。改ざん検出部124は、受信反転ビット列と、受信改ざん検出ビット列とが一致すると判定すると、受信データは改ざんされていないと判定する(S204)。一方、改ざん検出部124は、受信反転ビット列と、受信改ざん検出ビット列とが一致しないと判定すると、受信データは改ざんされたと判定する(S205)。
(第1実施形態に係るデータ検証システムの作用効果)
マスタチップ11は、送信ビット列の全てのビットを反転した送信反転ビット列を、送信ビット列の改ざんの検出に使用される送信改ざん検出ビット列として送信ビット列に付加して生成した送信データを第1スレーブチップ12に送信する。送信改ざん検出ビット列は送信ビット列の全てのビットを反転した送信反転ビット列であるので、送信ビット列の「1」のビットに対応する送信改ざん検出ビット列のビットは「0」である。また、送信ビット列の「0」のビットに対応する送信改ざん検出ビット列のビットは「1」である。第2スレーブチップ13は、送信ビット列の「1」のビットを「0」に改ざんする場合、対応する送信改ざん検出ビット列のビットを「0」から「1」に改ざんしないと、第2スレーブチップ13は、改ざん検出部124は、誤判定することはない。しかしながら、マスタチップ11は、送信データをSDA端子からオープンドレイン出力するので、送信改ざん検出ビット列に含まれる「0」は、「1」に改ざんされることはない。同様に、第2スレーブチップ13が送信反転ビット列に含まれる「1」を「0」に改ざんしたときは、送信ビット列に含まれる「0」が「1」に改ざんされることはない。データ検証システム1は、送信データは、送信ビット列の全てのビットを反転した送信反転ビット列を送信改ざん検出ビット列を含むので、或るビットが改ざんされると、送信ビット列と送信改ざん検出ビット列の対応関係の誤りから改ざんを検知できる。
マスタチップ11は、送信ビット列の全てのビットを反転した送信反転ビット列を、送信ビット列の改ざんの検出に使用される送信改ざん検出ビット列として送信ビット列に付加して生成した送信データを第1スレーブチップ12に送信する。送信改ざん検出ビット列は送信ビット列の全てのビットを反転した送信反転ビット列であるので、送信ビット列の「1」のビットに対応する送信改ざん検出ビット列のビットは「0」である。また、送信ビット列の「0」のビットに対応する送信改ざん検出ビット列のビットは「1」である。第2スレーブチップ13は、送信ビット列の「1」のビットを「0」に改ざんする場合、対応する送信改ざん検出ビット列のビットを「0」から「1」に改ざんしないと、第2スレーブチップ13は、改ざん検出部124は、誤判定することはない。しかしながら、マスタチップ11は、送信データをSDA端子からオープンドレイン出力するので、送信改ざん検出ビット列に含まれる「0」は、「1」に改ざんされることはない。同様に、第2スレーブチップ13が送信反転ビット列に含まれる「1」を「0」に改ざんしたときは、送信ビット列に含まれる「0」が「1」に改ざんされることはない。データ検証システム1は、送信データは、送信ビット列の全てのビットを反転した送信反転ビット列を送信改ざん検出ビット列を含むので、或るビットが改ざんされると、送信ビット列と送信改ざん検出ビット列の対応関係の誤りから改ざんを検知できる。
また、ダイジェストに含まれる送信改ざん検出ビット列は、送信ビット列に含まれる全てのビットを反転することで生成されるので、送信改ざん検出ビット列を生成するための計算するコストは軽微である。
(第2実施形態に係るデータ検証システムの構成及び機能)
図9は、第2実施形態に係るデータ検証システムのブロック図である。
図9は、第2実施形態に係るデータ検証システムのブロック図である。
データ検証システム2は、マスタチップ11及び第1スレーブチップ12の代わりにマスタチップ21及び第1スレーブチップ22が配置されることがデータ検証システム1と相違する。マスタチップ21及び第1スレーブチップ22以外のデータ検証システム2の構成素子は、同一符号が付されたデータ検証システム1の構成素子と同様な構成及び機能を有するので、ここでは詳細な説明は省略する。
マスタチップ21は、送信ビット列生成部211と、改ざん検出ビット列生成部212と、送信データ生成部213と、改ざん検出部214とを有する。送信ビット列生成部211は、第1スレーブチップ22に送信する情報に対応する送信ビット列を生成する。改ざん検出ビット列生成部212は、送信ビット列生成部211が生成した送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列として生成する。送信データ生成部213は、送信ビット列生成部211が生成した送信ビット列に、改ざん検出ビット列生成部212が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する。送信データ生成部213は、生成した送信データを第1スレーブチップ22に送信する。改ざん検出部214は、受信ビット列及び受信ビット列の改ざんの検出に使用される受信改ざん検出ビット列に基づいて、前記受信ビット列の改ざんの有無を検出する。
第1スレーブチップ22は、送信ビット列生成部221と、改ざん検出ビット列生成部222と、送信データ生成部223と、改ざん検出部224とを有する。送信ビット列生成部221、改ざん検出ビット列生成部222、送信データ生成部223及び改ざん検出部224は、送信ビット列生成部211、改ざん検出ビット列生成部212、送信データ生成部213及び改ざん検出部214と同様な機能を有する。
(第2実施形態に係るデータ検証システムのデータ検証処理)
図10(a)はデータ検証システム2におけるデータ検証処理のシーケンスを示す図であり、図10(b)は図10(a)に示すS305の詳細な処理のフローチャートを示す図である。
図10(a)はデータ検証システム2におけるデータ検証処理のシーケンスを示す図であり、図10(b)は図10(a)に示すS305の詳細な処理のフローチャートを示す図である。
まず、送信ビット列生成部211は、第1スレーブチップ22に送信する情報に対応する送信ビット列を生成する(S301)。次いで、改ざん検出ビット列生成部212は、送信ビット列生成部211が生成した送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列として生成する(S302)。次いで、送信データ生成部213は、送信ビット列生成部211が生成した送信ビット列に、改ざん検出ビット列生成部212が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する(S303)。
図11は、送信データ生成部213が生成する送信データを示す図である。図11において、*印は「0」又は「1」の1ビットを表す。
送信データ200は、送信ビット列201と、ダイジェスト202とを有する。送信ビット列201に含まれる「0」の数に対応するビット列を含む。例えば、送信ビット列101が8個の「0」を含む「00000000」である場合、ダイジェスト102は「1000」を含む。また、送信ビット列101が5個の「0」を含む「01100001」である場合、ダイジェスト102は「0101」を含む。
ダイジェスト202に含まれるビット列のビット数は、送信ビット列201のビット数をNとすると、「floor(log2N)+1」で示される。ここで、floor(X)は床関数であり、Xを超えない最大の整数を意味する。
次いで、送信データ生成部213は、送信データをSDA端子からオープンドレイン出力して第1スレーブチップ22に送信する(S304)。第1スレーブチップ22は、マスタチップ21からオープンドレイン出力により送信された送信データを受信データとして受信し、受信した受信データが改ざんされたか否かを判定する(S305)。
S305において、まず、改ざん検出部224は、オープンドレイン出力された受信データを、受信ビット列と受信改ざん検出ビット列とに分離する(S401)。受信ビット列はマスタチップ21が送信した送信ビット列に対応し、受信改ざん検出ビット列はマスタチップ21が送信した送信改ざん検出ビット列に対応する。次いで、改ざん検出部224は、受信ビット列に含まれる「0」の数をカウントし(S402)、受信ビット列に含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致するか否かを判定する(S403)。改ざん検出部224は、受信ビット列に含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致すると判定すると、受信データは改ざんされていないと判定する(S404)。一方、改ざん検出部224は、受信ビット列に含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致しないと判定すると、受信データは改ざんされたと判定する(S405)。
(第2実施形態に係るデータ検証システムの作用効果)
マスタチップ21は、送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を、送信ビット列の改ざんの検出に使用される送信改ざん検出ビット列として送信ビット列に付加して生成した送信データを第1スレーブチップ22に送信する。第2スレーブチップ13が送信ビット列に含まれるM個の「1」が「0」に改ざんされたとき、送信ビット列に含まれる「0」の数はM個増加する。送信ビット列に含まれる「0」数はM個増加するので、第2スレーブチップ13は、送信改ざん検出ビット列をM回インクリメントした値に変更しないと、改ざん検出部224は、データが改ざんされたと判定する。送信改ざん検出ビット列に含まれる少なくとも1つの「0」が「1」に改ざんされなければ、送信改ざん検出ビット列をM回インクリメントした値に変更されない。しかしながら、マスタチップ21は、送信データをSDA端子からオープンドレイン出力するので、送信改ざん検出ビット列に含まれる「0」は、「1」に改ざんされることはない。データ検証システム2は、送信データは、送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列を含むので、或るビットが改ざんされると、送信ビット列と送信改ざん検出ビット列の対応関係の誤りから改ざんを検知できる。
マスタチップ21は、送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を、送信ビット列の改ざんの検出に使用される送信改ざん検出ビット列として送信ビット列に付加して生成した送信データを第1スレーブチップ22に送信する。第2スレーブチップ13が送信ビット列に含まれるM個の「1」が「0」に改ざんされたとき、送信ビット列に含まれる「0」の数はM個増加する。送信ビット列に含まれる「0」数はM個増加するので、第2スレーブチップ13は、送信改ざん検出ビット列をM回インクリメントした値に変更しないと、改ざん検出部224は、データが改ざんされたと判定する。送信改ざん検出ビット列に含まれる少なくとも1つの「0」が「1」に改ざんされなければ、送信改ざん検出ビット列をM回インクリメントした値に変更されない。しかしながら、マスタチップ21は、送信データをSDA端子からオープンドレイン出力するので、送信改ざん検出ビット列に含まれる「0」は、「1」に改ざんされることはない。データ検証システム2は、送信データは、送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列を含むので、或るビットが改ざんされると、送信ビット列と送信改ざん検出ビット列の対応関係の誤りから改ざんを検知できる。
また、ダイジェストに含まれる送信改ざん検出ビット列は、送信ビット列の「0」の数をカウントすることにより生成されるので、送信改ざん検出ビット列を生成するための計算するコストは軽微である。さらに、送信改ざん検出ビット列のビットサイズも小さくすることができる。
図12は、ダイジェストを生成するときに使用される技術の比較を示す図である。チェックサム及びCRC等の誤り検出技術を使用する場合は、改ざんされる可能性があるので、改ざん耐性が低い。SHA等のハッシュ関数を使用する場合は、計算コスト及びダイジェストのビットサイズが大きくなる。第1実施形態に係るデータ検証システム1は、計算コストが低く且つ高い改ざん耐性を有する。第2実施形態に係るデータ検証システム2は、計算コストが低く且つ高い改ざん耐性を有することに加えて、ダイジェストのビットサイズを小さくすることができる。
(第3実施形態に係るデータ検証システムの構成及び機能)
図13は、第3実施形態に係るデータ検証システムのブロック図である。
図13は、第3実施形態に係るデータ検証システムのブロック図である。
データ検証システム3は、マスタチップ21及び第1スレーブチップ22の代わりにマスタチップ31及び第1スレーブチップ32が配置されることがデータ検証システム2と相違する。マスタチップ31及び第1スレーブチップ32以外のデータ検証システム3の構成素子は、同一符号が付されたデータ検証システム2の構成素子と同様な構成及び機能を有するので、ここでは詳細な説明は省略する。
マスタチップ31は、チャレンジ生成部311と、改ざん検出部312と、認証部313とを有する。チャレンジ生成部311は、乱数発生器を有し、所定のビット長を有する認証要求ビット列、すなわちチャレンジを生成する。改ざん検出部312は、第1スレーブチップ32から受信したレスポンス及びレスポンスの改ざんの検出に使用される受信改ざん検出ビット列に基づいて、レスポンスの改ざんの有無を検出する。認証部313は、暗号処理部を有し、共通鍵を使用して、送信したチャレンジと受信したレスポンスを復号化したチャレンジとを比較して、第1スレーブチップ32を認証するか否かを判定する。
第1スレーブチップ32は、レスポンス生成部321と、改ざん検出ビット列生成部322と、送信データ生成部323とを有する。レスポンス生成部321は、暗号処理部を有し、共通鍵を使用して、認証応答ビット列、すなわちチャレンジを暗号化してレスポンスを生成する。改ざん検出ビット列生成部322は、レスポンス生成部321が生成したレスポンスに含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列として生成する。送信データ生成部323は、レスポンス生成部321が生成したレスポンスに、改ざん検出ビット列生成部322が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する。送信データ生成部323は、生成した送信データを第1スレーブチップ32に送信する。
(第3実施形態に係るデータ検証システムのデータ検証処理)
図14はデータ検証システム3におけるデータ検証処理のシーケンスを示す図であり、図15は図14に示すS507の詳細な処理のフローチャートを示す図である。
図14はデータ検証システム3におけるデータ検証処理のシーケンスを示す図であり、図15は図14に示すS507の詳細な処理のフローチャートを示す図である。
まず、チャレンジ生成部311は、チャレンジを生成して(S501)、生成したチャレンジをSDA端子からオープンドレイン出力して、第1スレーブチップ32に送信する(S502)。次いで、レスポンス生成部321は、チャレンジを暗号化してレスポンスを生成する(S503)。次いで、改ざん検出ビット列生成部322は、レスポンス生成部321が生成したレスポンスに含まれる「0」の数に対応するゼロ数ビット列を送信改ざん検出ビット列として生成する(S504)。次いで、送信データ生成部323は、レスポンス生成部321が生成したレスポンスに、改ざん検出ビット列生成部322が生成した送信改ざん検出ビット列をダイジェストとして付加して送信データを生成する(S505)。次いで、送信データ生成部323は、送信データをSDA端子からオープンドレイン出力して、マスタチップ31に送信する(S506)。次いで、マスタチップ31は、第1スレーブチップ32からオープンドレイン出力により送信された送信データを受信データとして受信し、受信した受信データが改ざんされたか否かを判定する(S507)。
S507において、まず、改ざん検出部224は、オープンドレイン出力された受信データを、レスポンスと受信改ざん検出ビット列とに分離する(S601)。受信改ざん検出ビット列は、第1スレーブチップ32が送信した送信改ざん検出ビット列に対応する。次いで、改ざん検出部324は、レスポンスに含まれる「0」の数をカウントする(S602)。次いで、改ざん検出部224は、レスポンスに含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致するか否かを判定する(S603)。改ざん検出部324は、レスポンスに含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致すると判定すると、レスポンスは改ざんされていないと判定する(S604)。一方、改ざん検出部324は、レスポンスに含まれる「0」の数と、受信改ざん検出ビット列が示す「0」の数とが一致しないと判定すると、レスポンスは改ざんされたと判定する(S605)。
そして、認証部313は、送信したチャレンジと、レスポンスを復号化したチャレンジとを比較して、第1スレーブチップ32を認証するか否かを判定する(S508)。
(第3実施形態に係るデータ検証システムの作用効果)
図16は第3実施形態に係る改ざん検出機能を有さないデータ検証システムのブロック図であり、図17はデータ検証システム3のブロック図である。
図16は第3実施形態に係る改ざん検出機能を有さないデータ検証システムのブロック図であり、図17はデータ検証システム3のブロック図である。
データ検証システム4は、マスタチップ31及び第1スレーブチップ32の代わりにマスタチップ41及び第1スレーブチップ42が配置されることがデータ検証システム3と相違する。マスタチップ41及び第1スレーブチップ42以外のデータ検証システム3の構成素子は、同一符号が付されたデータ検証システム3の構成素子と同様な構成及び機能を有するので、ここでは詳細な説明は省略する。
マスタチップ41は改ざん検出部312を有さないことがマスタチップ31と相違し、第1スレーブチップ32は改ざん検出ビット列生成部322及び送信データ生成部323を有さないことが第1スレーブチップ32と相違する。データ検証システム4では、マスタチップ41は、第2スレーブチップ13がレスポンスを改ざんしたとき、第1スレーブチップ32が正規のICチップであるにもかかわらず、認証失敗と判定する。
一方、データ検証システム3では、マスタチップ31は、第2スレーブチップ13がレスポンスを改ざんしたとき、ダイジェストに含まれる改ざん検出ビット列を使用して改ざんを検出し、悪意のあるICチップの存在を検知することが可能になる。
データ検証システム3では、改ざん検出部はマスタチップにのみ搭載され、改ざん検出ビット生成部はスレーブチップにのみ搭載されるが、改ざん検出部及び改ざん検出ビット生成部は、マスタチップ及びスレーブチップの双方に搭載されてもよい。
1〜3 データ検証システム
11、21、31 マスタチップ(電子装置)
12、22、32 第1スレーブチップ
13 第2スレーブチップ
111、121、211、221 送信ビット列生成部
112、122、212、222、322 改ざん検出ビット列生成部
113、123、213、223、323 送信データ生成部
114、124、214、224、313 改ざん検出部
311 チャレンジ生成部
313 認証部
321 レスポンス生成部
11、21、31 マスタチップ(電子装置)
12、22、32 第1スレーブチップ
13 第2スレーブチップ
111、121、211、221 送信ビット列生成部
112、122、212、222、322 改ざん検出ビット列生成部
113、123、213、223、323 送信データ生成部
114、124、214、224、313 改ざん検出部
311 チャレンジ生成部
313 認証部
321 レスポンス生成部
Claims (8)
- 送信ビット列の少なくとも1つの「1」を「0」に変更することに対応して、少なくとも1つの「0」を「1」に変更することが必要なビット配列を有する送信改ざん検出ビット列を生成する改ざん検出ビット列生成部と、
前記送信ビット列と、前記送信改ざん検出ビット列とを含む送信データを生成する送信データ生成部と、
前記送信データをオープンドレイン出力するデータ出力部と、
を有する電子装置。 - 前記送信改ざん検出ビット列は、前記送信ビット列に含まれる全てのビットを反転させた送信反転ビット列を含む、請求項1に記載の電子装置。
- 前記送信改ざん検出ビット列は、前記送信ビット列に含まれる「0」の数に対応するゼロ数ビット列を含む、請求項1に記載の電子装置。
- オープンドレイン出力された受信データに含まれる複数のビットを含む受信ビット列及び受信改ざん検出ビット列に基づいて、前記受信ビット列の改ざんの有無を検出する改ざん検出部を更に有する、請求項1に記載の電子装置。
- 前記改ざん検出部は、前記受信ビット列に含まれる全てのビットを反転させた受信反転ビット列と、前記受信改ざん検出ビット列とが一致しないときに、前記受信ビット列が改ざんされたと判定する、請求項4に記載の電子装置。
- 前記改ざん検出部は、前記受信ビット列に含まれる「0」の数が、前記受信改ざん検出ビット列が示す「0」の数と一致しないときに、前記受信ビット列が改ざんされたと判定する、請求項4に記載の電子装置。
- 前記送信ビット列は、認証要求ビット列を含み、
前記受信ビット列は、前記認証要求ビット列を暗号化した認証応答ビット列を含み、
前記認証応答ビット列を復号化し、前記送信ビット列に含まれる認証要求ビット列と、前記認証応答ビット列から復号化された認証要求ビット列とが一致したときに、認証が成功したと判定する認証部を更に含む、請求項4〜6の何れか一項に記載の電子装置。 - 送信ビット列の少なくとも1つの「1」を「0」に変更することに対応して、少なくとも1つの「0」を「1」に変更することが必要なビット配列を有する改ざん検出ビット列を生成し、
前記ビット列及び前記改ざん検出ビット列を含む送信データを生成し、
前記送信データをオープンドレイン出力し、
前記ビット列及び前記改ざん検出ビット列に基づいて、前記ビット列の改ざんの有無を検出する、
ことを含むデータ検証方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015202645A JP2017076854A (ja) | 2015-10-14 | 2015-10-14 | 電子装置、及びデータ検証方法 |
US15/291,565 US20170109545A1 (en) | 2015-10-14 | 2016-10-12 | Electronic device and data verification method |
EP16193661.2A EP3157185A1 (en) | 2015-10-14 | 2016-10-13 | Electronic device and data verification method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015202645A JP2017076854A (ja) | 2015-10-14 | 2015-10-14 | 電子装置、及びデータ検証方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017076854A true JP2017076854A (ja) | 2017-04-20 |
Family
ID=57178258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015202645A Pending JP2017076854A (ja) | 2015-10-14 | 2015-10-14 | 電子装置、及びデータ検証方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170109545A1 (ja) |
EP (1) | EP3157185A1 (ja) |
JP (1) | JP2017076854A (ja) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112912852B (zh) * | 2019-09-18 | 2024-03-26 | Lg电子株式会社 | 车辆信息娱乐设备及其操作方法 |
US11662846B2 (en) | 2019-09-26 | 2023-05-30 | Chongqing Boe Optoelectronics Technology Co., Ltd. | Touch circuit and driving method thereof, and driving system for a touch display device |
CN110531899B (zh) * | 2019-09-26 | 2024-03-05 | 京东方科技集团股份有限公司 | 用于笔记本电脑的驱动系统 |
CN112486756B (zh) * | 2020-11-26 | 2024-05-24 | 江苏科大亨芯半导体技术有限公司 | 一种利用扩展i2c协议调试芯片的方法、存储介质、电子设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3578645B2 (ja) * | 1998-10-19 | 2004-10-20 | 矢崎総業株式会社 | 変換方法、復調方法、変換装置、及び復調装置 |
US6625163B1 (en) * | 1999-04-21 | 2003-09-23 | Nortel Networks Ltd. | Collision detection on a differential bus |
US7594159B2 (en) * | 2004-10-26 | 2009-09-22 | Spirent Communications Inc. | Signature field in a latency measurement frame |
US20060095454A1 (en) * | 2004-10-29 | 2006-05-04 | Texas Instruments Incorporated | System and method for secure collaborative terminal identity authentication between a wireless communication device and a wireless operator |
US20100153716A1 (en) * | 2007-04-10 | 2010-06-17 | Kirihata Yasuhiro | System and method of managing files and mobile terminal device |
US8340134B1 (en) * | 2009-11-04 | 2012-12-25 | Pmc-Sierra, Inc. | Method and system for controlling count information in generic mapping procedure |
US8924611B2 (en) * | 2012-06-26 | 2014-12-30 | Intel Corporation | Providing a serial protocol for a bidirectional serial interconnect |
JP5954030B2 (ja) * | 2012-08-02 | 2016-07-20 | 富士通株式会社 | 暗号処理装置および方法 |
US9455962B2 (en) | 2013-09-22 | 2016-09-27 | Winbond Electronics Corporation | Protecting memory interface |
-
2015
- 2015-10-14 JP JP2015202645A patent/JP2017076854A/ja active Pending
-
2016
- 2016-10-12 US US15/291,565 patent/US20170109545A1/en not_active Abandoned
- 2016-10-13 EP EP16193661.2A patent/EP3157185A1/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US20170109545A1 (en) | 2017-04-20 |
EP3157185A1 (en) | 2017-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101702545B1 (ko) | 데이터 인증방법 및 그 장치 | |
US10474823B2 (en) | Controlled secure code authentication | |
US9628278B2 (en) | Method for the secure unindirectional transmission of signals | |
JP5963847B2 (ja) | 遠隔バイオメトリック動作のためのシステム及び方法 | |
US20170063853A1 (en) | Data cipher and decipher based on device and data authentication | |
US20180248690A1 (en) | Security device and security method | |
JP2017076854A (ja) | 電子装置、及びデータ検証方法 | |
CN110995685A (zh) | 数据的加解密方法、装置、系统及存储介质 | |
WO2020197776A1 (en) | Error identification in executed code | |
CN114662085A (zh) | 用于自治系统的后量子安全远程证明 | |
CN107332833B (zh) | 校验方法及装置 | |
US10862675B2 (en) | Method for exchanging messages between security-relevant devices | |
JP6534913B2 (ja) | 情報処理装置および不正メッセージ検知方法 | |
WO2014076911A1 (ja) | メッセージ認証システム、およびメッセージ認証方法 | |
CN110287733B (zh) | 一种文件防篡改方法和装置 | |
CN113826071A (zh) | 空中更新确认 | |
KR102364450B1 (ko) | 블록체인을 기반으로 한 센서 네트워크 시스템 및 상기 센서 네트워크 시스템에서의 동적 링크키 생성 방법 | |
CN105554033A (zh) | 一种图像输入设备的可信认证方法及其图像输入设备 | |
US20240348450A1 (en) | Safe and secure communication | |
JP6161392B2 (ja) | 認証システム及び認証方法 | |
JP7105894B2 (ja) | 相互認証方法及び通信システム | |
TWI807766B (zh) | 安全之全晶片通信 | |
WO2024057411A1 (ja) | メモリ更新装置、情報処理システム、メモリ更新方法及びコンピュータ可読媒体 | |
JP2014153743A (ja) | 乱数生成システム、乱数生成方法及び制御装置 | |
JP6124338B2 (ja) | 情報処理システム |