JP2017506850A - 公開鍵およびセッション鍵による認証 - Google Patents

公開鍵およびセッション鍵による認証 Download PDF

Info

Publication number
JP2017506850A
JP2017506850A JP2016553393A JP2016553393A JP2017506850A JP 2017506850 A JP2017506850 A JP 2017506850A JP 2016553393 A JP2016553393 A JP 2016553393A JP 2016553393 A JP2016553393 A JP 2016553393A JP 2017506850 A JP2017506850 A JP 2017506850A
Authority
JP
Japan
Prior art keywords
key
public key
payload
session key
combinations
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.)
Granted
Application number
JP2016553393A
Other languages
English (en)
Other versions
JP2017506850A5 (ja
JP6510546B2 (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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of JP2017506850A publication Critical patent/JP2017506850A/ja
Publication of JP2017506850A5 publication Critical patent/JP2017506850A5/ja
Application granted granted Critical
Publication of JP6510546B2 publication Critical patent/JP6510546B2/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/3247Cryptographic 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 involving digital signatures
    • 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
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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
    • G06F21/575Secure boot
    • 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
    • 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/76Protecting 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 application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • 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/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/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

Landscapes

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

Abstract

データを認証する手法の1つは、公開鍵およびセッション鍵IDの表記の複数の組み合わせを不揮発性メモリに記憶すること(302、304)を含む。ペイロードと、ペイロードに付随する公開鍵、セッション鍵IDおよび署名とが入力される(402)。署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数(118)である。ペイロードの真偽は、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された組み合わせに基づいて、署名およびペイロードから判断される(406、410、418、420)。ペイロードが真正であるという判断に応答して、ペイロードの処理を実行し(424)、ペイロードが真正ではないという判断に応答して、ペイロードの処理(422)を無効化する。

Description

発明の分野
本開示は、一般的に、データの認証に関する。
背景
一般的に、認証とは、データを受信する受信者が、受信したデータが信頼できるソースから来たものか否かを判断するプロセスである。認証されるデータは、例えば、実行可能なプログラム、プログラム可能なロジックの構成データ、電子メールメッセージ、または応用プログラムデータであってもよい。
認証の1つの手法は、公開鍵および秘密鍵のペアに依存している。送信者は、鍵ペア内の送信者の秘密鍵で署名することによって、データに署名を付ける。受信者は、鍵ペア内の送信者の公開鍵および受信したデータを用いて、データと共に送信された署名が送信者の署名であるか否かを判断するすることができる。署名が受信したデータの予期署名であれば、受信したデータが承認される。それ以外の場合、受信したデータが信頼できないソースから送信された可能性があり、または改ざんされた可能性がある。
入力データを認証するために受信装置に使用された公開鍵は、一般的には、装置の不揮発性メモリに記憶される。いくつかの実装装置は、公開鍵を失効することができる。公開鍵の失効は、その鍵の将来の使用を無効化する。殆どの場合、使用中の公開鍵が失効されると、新規の公開鍵が形成される。
フラッシュメモリは、非揮発性であり且つ再プログラムできるため、しばしば公開鍵を記憶するために使用される。しかしながら、フラッシュメモリは、いくつかの用途には不適切である。例えば、フィールドプログラム可能なゲートアレイ(FPGA)は、SRAMの技術を用いて作製されたものである。フラッシュメモリをSRAMに基づく装置に組み合わせることは、技術的に困難であり、費用的に高価である。したがって、場合によって、電子ヒューズ(eヒューズ)を用いて、公開鍵を記憶する。しかしながら、電子ヒューズは、電子ヒューズの状態によって表される少量の情報に対して、大きな領域を占める。したがって、公開鍵の記憶および失効のために、費用効率の良いシステムが望まれる。
概要
データを認証する方法が開示されている。この方法は、不揮発性メモリ内の公開鍵およびセッション鍵識別子(ID)の表記の複数の組み合わせを記憶することを含む。ペイロードと、ペイロードに付随する公開鍵、セッション鍵IDおよび署名とが入力される。署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数である。方法は、付随する公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された組み合わせから、および署名およびペイロードから、ペイロードが真正であるか否かを判断する。ペイロードが真正であるという判断に応答して、ペイロードの処理を実行する。ペイロードが真正ではないという判断に応答して、ペイロードの処理を無効化する。
認証システムも記載されている。システムは、不揮発性ストレージと、プロセッサとを含む。不揮発性ストレージは、公開鍵およびセッション鍵IDの表記の組み合わせを記憶するように構成可能である。プロセッサは、不揮発性ストレージに連結され、ペイロードと、ペイロードに付随する公開鍵、セッション鍵IDおよび署名とを入力するように構成されている。署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数である。プロセッサはさらに、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、並びに署名およびペイロードから、ペイロードが真正であるか否かを判断するように構成されている。ペイロードが真正であるという判断に応答して、プロセッサは、ペイロードを処理する。ペイロードが真正ではないという判断に応答して、プロセッサは、ペイロードの処理を無効化する。
他の特徴は、以下の詳細な説明および特許請求の範囲を検討することによって、認識されるであろう。
方法およびシステムのさまざまな態様および特徴は、以下の詳細な説明を検討し、および図面を参照することによって、明らかになるであろう。
ペイロードの認証情報の構築および認証鍵の失効を可能にするためのペイロード認証を示すフローチャートである。 認証鍵を用いて、システムの起動および/または設定を制御するシステムを示すブロック図である。 認証システムを初期設定するプロセスを示すフローチャートである。 公開鍵およびセッション鍵IDを用いて、入力されたペイロードを認証するプロセスを示すフローチャートである。 公開鍵またはセッション鍵IDを失効するプロセスを示すフローチャートである。 本明細書に記載のさまざまな手法を用いて、システムを実装できる例示的なSOCアーキテクチャを示す図である。
図面の詳細な説明
システムおよび方法は、装置の使用期間に亘って使用できる認証鍵の数を増加すると共に、認証鍵を安全に管理するための手法を提供する。システムおよび方法は、公開鍵、セッション鍵識別子(ID)、およびペイロード署名を用いて、ペイロードを認証する。公開鍵の失効またはセッション鍵IDに関連付けられたセッション鍵の失効は、既に認証された構成データまたはプログラムコードを用いて、システムを起動した後のみに許可される。鍵の失効は、鍵の無効化と呼ばれることがある。
一実装において、セッション鍵は、装置の起動または初期設定の後、ソフトウェアまたはハードウェア負荷を認証するために使用することができる公開鍵である。装置上に記憶された別の公開鍵(またはルート鍵)およびセッション鍵IDを用いて、初期ブートプログラムまたはハードウェア設定および付随のセッション鍵を認証することができる。装置を設定または起動した後にロードされたソフトウェアまたはハードウェア構成は、セッション鍵を用いて、認証することができる。これによって、ルート鍵の使用を最小限に抑える。以下の説明から明らかになるように、セッション鍵を失効する手法は、セッション鍵の使用管理に柔軟性を提供する。
システムは、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するための不揮発性ストレージを備える。これらの表記は、公開鍵およびセッション鍵IDの実際値のバイナリ形式であってもよく、公開鍵およびセッション鍵IDのハッシュ値のバイナリ形式であってもよい。説明を容易にするために、公開鍵およびセッション鍵IDの表記を言及する場合、公開鍵およびセッション鍵ID自身が使用され得る。
システムに入力されたペイロードには、ペイロードの公開鍵、セッション鍵IDおよび署名が付随される。署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数である。システムは、ペイロードが真正であるか否かを判断するプロセッサを含む。ペイロードの真偽は、ペイロードの署名ではなく、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された公開鍵およびセッション鍵IDの表記の組み合わせに基づいて、判断される。
ペイロードが真正である場合、プロセッサは、ペイロードの処理を許可する。ペイロードが真正でない場合、プロセッサは、ペイロードのさらなる処理を無効化する。例示的な応用において、ペイロードの処理は、ペイロードに含まれるプログラムコードを使用してシステムを起動することまたはシステムオンチップ(SOC)に見られるプログラム可能なロジックを構成することと共に、行われてもよい。
図1は、ペイロードの認証情報の構築および認証鍵の失効を可能にするためのペイロード認証を示すフローチャートである。例示的な応用において、ペイロードは、例えば、プロセッサ用のブートプログラムであってもよく、プログラム可能なロジックの構成データであってもよい。フローチャートは、2つの主要な段階、すなわち、認証情報の構築と、認証情報によるペイロードの認証とを示している。認証情報の構築は、大括弧102で標記され、ペイロードの認証は、大括弧104で標記されている。
システムに提供されるペイロード106は、付随する公開鍵Pu 108およびセッション鍵ID 110を有している。ペイロードは、セッション鍵ID 110に対応するセッション鍵を含むことができる。このペイロードは、ハッシュ関数112に入力され、ハッシュ関数112は、ペイロードに基づき、ハッシュ値114を計算する。代替の実装において、公開鍵108およびセッション鍵ID 110の両方をハッシュ関数に入力することができる。例示的な実装において、ハッシュ関数は、SHAに基づく関数であってもよい。暗号化関数118は、秘密鍵Pr 116を用いて、ハッシュ値114を暗号化することによって、署名120を生成する。署名120は、ペイロード106に付随する情報に追加される。ペイロード106、公開鍵108、セッション鍵ID 110、および署名120は、例示的な応用において、システムの安全起動に使用される設定ファイルにフォーマットされてもよい。
ペイロードの認証は、ペイロード106と、付随する公開鍵108、セッション鍵ID 110および署名120とを入力するシステムによって行われる。このシステムは、公開鍵134およびセッション鍵ID 136の表記を記憶するための不揮発性メモリ132を備える。一実装において、ストレージ要件を軽減するために、公開鍵のハッシュ値が記憶される。例えば、2048ビットの公開鍵をハッシュ関数に適用することによって、生成された結果が256ビットであってもよい。別の実装において、公開鍵は、ハッシュ化されない。また、不揮発性メモリは、公開鍵の鍵状態を記憶する。各公開鍵の鍵状態は、その公開鍵に関連付けられた有効ビット138によって示すことができる。公開鍵134、セッション鍵ID 136および有効ビット138は、例えば、電子ヒューズに記憶されてもよい。
不揮発性メモリが公開鍵のハッシュ値を記憶する実装において、入力されたペイロード106に付随する公開鍵108をハッシュ関数140に入力することによって、ハッシュ値142を生成する。比較関数144は、ハッシュ値142を不揮発性メモリに記憶された公開鍵134のハッシュ値と比較する。ハッシュ値142が公開鍵134のハッシュ値のいずれかとマッチングしないことに応答して、比較関数は、ペイロードが真正でないことを指示し、システムは、ロックダウン関数146を用いて、ペイロード106のさらなる処理を無効化する。例えば、プロセッサは、システムの起動またはプログラム可能なロジックの構築を中止することによって、システムをロックダウンすることができる。指示は、信号または値の状態として、レジスタまたはメモリに記憶されてもよい。
別の実装において、セッション鍵ID 136および公開鍵134の各組み合わせは、1つのハッシュ値を有してもよい。この実装において、ペイロード106に付随する公開鍵108およびセッション鍵ID 110の両方は、ハッシュ関数140に入力され、比較関数144は、得られたハッシュ値を不揮発性メモリ内のハッシュ化された公開鍵およびセッション鍵IDの総合値と比較する。
比較関数144がマッチングを発見した場合、検証関数148は、ハッシュ化された公開鍵とマッチングする(または代替的に、ハッシュ化された公開鍵およびセッション鍵IDの組み合わせとマッチングする、またはハッシュ化されていない公開鍵とマッチングする)鍵に関連付けられた有効ビットが鍵の有効性を示す鍵状態を有するか否かを判断する。鍵状態によってマッチングする鍵が有効ではないことが示された場合、検証関数148は、ペイロードが真正でないことを指示し、システムは、ロックダウン関数150を用いて、システムの起動またはプログラム可能なロジックの構築を中止することによって、ペイロード106のさらなる処理を無効化する。
有効ビットが鍵の有効性を示す鍵状態を有することに応答して、ペイロード106の署名は、ペイロード106をハッシュ関数112と同様のハッシュ関数152に入力し、ハッシュ値154を生成することによって確認される。ペイロード106に付随する署名120および公開鍵108は、復号化関数158に入力され、復号化関数158は、公開鍵を用いて署名を復号することによって、復号された署名158を生成する。比較関数160は、復号された署名を計算されたハッシュ値と比較する。署名がマッチングしないことに応じて、システムは、ロックダウン関数162を用いて、システムの起動またはプログラム可能なロジックの構築を中止することによって、ペイロード106のさらなる処理を無効化する。
復号された署名がハッシュ値とマッチングすることに応答して、比較関数164は、入力されたペイロードに付随するセッション鍵ID 110を、不揮発性メモリ132に記憶され且つハッシュ化された公開鍵134のいずれか1つとマッチングする鍵に関連付けられたセッション鍵IDと比較する。セッション鍵ID 120がセッション鍵ID 136のいずれか1つとマッチングしないことに応答して、比較関数164は、ペイロードが真正ではないと指示し、システムは、ロックダウン関数162を用いて、システムの起動またはプログラム可能なロジックの構築を中止することによって、ペイロード106のさらなる処理を無効化する。セッション鍵ID 120がセッション鍵ID 136のいずれか1つとマッチングすることに応答して、システムは、ブートプログラムの実行および/またはプログラム可能なロジック168の構築などを続行することによって、ペイロード106の処理を可能にする。各セッション鍵ID 136および各公開鍵134の各組み合わせが単一のハッシュ値である実装において、比較関数164が必要とされず、比較関数160が肯定的な比較結果を発見した場合、処理関数168は、ブートプログラムの実行および/またはプログラム可能なロジック168の構築などを続行する。
関連する公開鍵に独立して、セッション鍵を失効することができる。例示的な実装において、各々のセッション鍵ID 136は、1セットの電子ヒューズに記憶される。セッション鍵を失効するために、セッション鍵IDを記憶する電子ヒューズのうちいずれかに電流を通さないようにする。ヒューズを溶断することによって、セッション鍵IDの値を変更するため、ヒューズのセットに記憶された過去のセッション鍵IDを効果的に失効することができる。したがって、例示的な実装において、セッション鍵IDは、単項形式で記憶されている。
公開鍵を失効すると、公開鍵だけでなく、関連するセッション鍵も効果的に失効される。上述したように、不揮発性メモリ132は、公開鍵134およびセッション鍵ID136の組み合わせに関連付けられた鍵状態を記憶するための有効ビットを含む。各組み合わせは、1つの公開鍵および1つのセッション鍵IDを含む。有効ビットに記憶された組み合わせに関連付けられた鍵状態は、関連する組み合わせが有効(失効されていない)であるか否かを示している。有効ビットは、電子ヒューズとして実装されてもよい。
図2は、認証鍵を用いて、システムの起動および/または設定を制御するシステム200を示すブロック図である。システム200は、プロセッサ202と、プログラム可能なロジック204と、ROM 206と、RAM 208と、不揮発性メモリ132と、ROM 212と、ストレージ214と、インターフェイス216、218および220とを含む。プロセッサ202、プログラム可能なロジック204、ROM 206、RAM 208、不揮発性メモリ132、およびインターフェイス216、218、220は、システムオンチップ(SOC)として実装されてもよい。プロセッサは、公開鍵134のいずれか1つとセッション鍵ID136のいずれか1つとの組み合わせを用いて、第1段階のブートローダ(FSBL)232および/または設定ビットストリーム234を認証する。認証後、プロセッサは、FSBLコードを実行する際にまたは設定ビットストリームを用いて構築されたプログラム可能なロジックを実行する際に、公開鍵および/またはセッション鍵IDのいずれかを失効することができる。
システムを起動する際に、プロセッサ202は、ROM 206からプログラムコードを読み込み、実行する。そのプログラムコードによって、プロセッサは、FSBL 232および/または設定ビットストリーム234をRAM 208に入力し、その後、FSBLまたはビットストリームを認証する。プロセッサに入力されたFSBLおよび設定ビットストリームは、付随の公開鍵、セッション鍵IDおよび署名を有する。上述したように、プロセッサは、入力されたFSBLまたはビットストリームが真正であると判断した場合、FSBLのプログラムコードを実行することによって、または設定ビットストリームを用いてプログラム可能なロジック204を構築することによって、ペイロードの処理を続行することができる。
例示的な実装において、不揮発性メモリ132は、電子ヒューズから構成される。公開鍵は、選択された電子ヒューズを溶断することにより、公開鍵のバイナリ値または公開鍵のハッシュ値を形成することによって、形成される。公開鍵に関連付けられたセッション鍵IDも、同様に、1つ以上の電子ヒューズを溶断することにより、セッション鍵IDの値を表すことによって、形成される。そのセッション鍵IDを記憶する別の電子ヒューズを溶断することによって、関連付けられた公開鍵と共に使用される新規セッション鍵を形成することができる。したがって、セッション鍵のIDは、電子ヒューズにおいて単項形式で具体化される。例えば、32個の電子ヒューズを用いてセッション鍵IDを表す場合、そのセッション鍵IDは、32個の異なる値を有することができる。
公開鍵およびセッション鍵IDの組み合わせに関連付けられた有効ビット138も、電子ヒューズを用いて実装される。有効ビットの電子ヒューズを溶断した場合、公開鍵は、無効化される。公開鍵に関連付けられたセッション鍵IDがその公開鍵のみと共に使用されるため、そのセッション鍵IDに関連付けられたセッション鍵も効果的に無効化される。有効ビット138およびセッション鍵ID 136の電子ヒューズは、プロセッサ202上で実行するプログラムコードによって溶断されてよく、もしくはプログラムコードまたは構成ビットストリームを認証した後、プログラム可能なロジック204に構成された回路によって溶断されてもよい。
一実装において、ライトイネーブル(WE)電子ヒューズ242は、第1公開鍵を除き、すべての公開鍵を制御する。これによって、プロセッサは、認証されていないプログラムコードまたは認証されていない設定ビットストリームを用いて構築されたプログラム可能なロジックを実行することによって、第1公開鍵をプログラムすることができる。不認証を受ける鍵が揮発性メモリ132に存在しないため、公開鍵スペースの最初のプログラミングは、認証なしで行うことができる。第1公開鍵を設定した後、後続鍵のプログラミングまたは失効は、プログラムコードまたは構成ビットストリームの認証をしなければ、行うことができない。
第1公開鍵以外の公開鍵は、WE電子ヒューズ242によって制御されることができる。一旦すべての所望値を公開鍵にプログラムすると、WEビットの電子ヒューズを溶断することができる。別の実装において、個々のWEビットを用いて、公開鍵のプログラミングを個別に制御することができる。
システムは、公開鍵の不正プログラミングを防止する。権限のある者は、公開鍵を初期プログラミングする際に、電子ヒューズ内のすべての公開鍵134に値を設定することができる。その後、WE電子ヒューズ242を溶断することによって、公開鍵のさらなる設定を無効化するができる。代替的な手法では、権限のある者は、初期プログラミングの際に、WE電子ヒューズで保護されていない公開鍵(第1公開鍵)の値のみを設定することができる。その後、他の公開鍵を設定するまたは失効すること前に、まず、有効な公開鍵およびセッション鍵を用いて、入力されたプログラムコードまたは設定ビットストリームを認証しなければならない。
図3は、認証システムを初期設定するプロセスを示すフローチャートである。ブロック302において、非揮発性メモリに1つ以上の公開鍵の表記が設定される。実装要件に応じて、各公開鍵の表記は、公開鍵の実際値であってもよく、公開鍵のハッシュ値であってもよい。
一実装において、すべての公開鍵は、初期セットアップにおいて、不揮発性メモリに設定される。代替的には、第1公開鍵のみが設定され、プログラムコードまたは設定ビットストリームを認証した後に調整され、他の公開鍵が、SOCのプロセッサ上で動作するプログラムによってまたはSOCのプログラム可能なロジックに構成された回路によって設定されてもよい。
ブロック304において、必要に応じて、値または1つ以上のセッション鍵IDを不揮発性メモリに設定することができる。ブロック302に設定された各公開鍵に、初期のセッション鍵IDを設定することができる。セッション鍵IDの初期値が0であってもよいので、セッション鍵IDの設定は、必須ではない。これによって、電子ヒューズを溶断する必要がない。しかしながら、所望値が0以外の場合、その値を示すように、電子ヒューズを溶断してもよい。
ブロック306において、必要に応じて、公開鍵を制御するWE電子ヒューズを溶断することができる。このことは、初期セットアップ時にすべての公開鍵をSOCに設定するシナリオにおいて、有用であり得る。WE電子ヒューズの溶断は、公開鍵の後続更新を無効化する。
図4は、公開鍵およびセッション鍵IDを用いて、入力されたペイロードを認証するプロセスを示すフローチャートである。プロセスは、ブロック402において、入力から、ペイロードに付随する公開鍵を読み取り、ブロック404において、公開鍵のハッシュ値を計算する。実際の公開鍵を不揮発性メモリに記憶する実装において、ハッシュ値を計算する必要がない。
計算されたハッシュ値が不揮発性メモリに記憶された公開鍵のハッシュ値のいずれかとマッチングしない場合、プロセスは、判断ブロック406からブロック408に進行し、システムをロックダウンする。例えば、認証を実行するプロセッサは、システムのさらなる起動を中止することができ、またはプログラム可能なロジックの構築を中止することができる。
計算されたハッシュ値が不揮発性メモリに記憶された公開鍵のハッシュ値のいずれかとマッチングしない場合、プロセスは、判断ブロック406から判定ブロック410に進行し、関連する有効ビットの状態から、マッチングした公開鍵のハッシュ値が有効であるか否かをチェックする。マッチングした公開鍵のハッシュ値が有効ではない場合、ブロック408において、システムをロックダウンする。
公開鍵のハッシュ値が有効である場合、ブロック412において、ペイロードからハッシュ値を計算し、ブロック414において、ペイロードに付随する署名を読み出し、入力された公開鍵を用いて復号化する。
ブロック416において、入力からセッション鍵IDを読み取り、判定ブロック418において、入力されたセッション鍵IDが不揮発性メモリに記憶されたマッチング公開鍵に関連付けられたセッション鍵IDとマッチングするか否かを判定する。入力されたセッション鍵IDにマッチングがない場合、ブロック408において、システムをロックダウンする。そうでなければ、判断ブロック420において、復号化された署名がブロック412でペイロードから計算されたハッシュ値と等しいか否かを判定する。復号化された署名にマッチングがない場合、ブロック422において、システムをロックダウンする。そうでなければ、プロセッサは、ブロック424において、プログラムの実行またはプログラム可能なロジックの構築を継続することができる。
公開鍵およびセッション鍵IDが共にハッシュ化された実装(図示せず)において、入力された公開鍵およびセッション鍵IDから、単一のハッシュ値を計算し、計算されたハッシュ値を不揮発性メモリに記憶された公開鍵およびセッション鍵IDのハッシュ値と比較する。したがって、ブロック402、404および406は、入力された公開鍵と共に、入力されたセッション鍵IDを処理するように変更することができ、ブロック416および418は、必要としない。
図5は、公開鍵またはセッション鍵IDを失効するプロセスを示すフローチャートである。SOC実装において、公開鍵またはセッション鍵の失効は、SOCのプロセッサ上で動作するプログラムコードによって、または認証された設定ビットストリームを用いて構築したSOCのプログラム可能なロジックによって実行することができる。
ブロック502において、入力されたペイロードが認証される。ペイロードは、例えば、プログラムコードまたは設定ビットストリームのいずれであってもよく、セッション鍵を含んでもよい。認証は、ペイロードに付随する公開鍵およびセッション鍵IDと共に、ペイロードの署名を用いて、行われる。
ブロック504において、公開鍵を失効するために、この公開鍵に関連付けられた有効ビットを実装する電子ヒューズを溶断する。各セッション鍵が可能な公開鍵のいずれかと共に使用されるため、公開鍵を失効することによって、公開鍵および関連付けられたセッション鍵の組み合わせを効果的に失効する。
ブロック506において、セッション鍵を失効するために、セッション鍵IDを実装する電子ヒューズセットのうち、失効されたセッション鍵に関連付けられたセッション鍵IDを実装する1つ以上の電子ヒューズを溶断する。電子ヒューズの溶断がセッション鍵IDの値を変更するため、電子ヒューズセットに記憶された過去のセッション鍵IDが失効され、新規のセッション鍵IDが電子ヒューズセットの状態によって示される。理解すべきことは、セッション鍵IDを失効するために、1つのみの電子ヒューズを溶断すると、その後に電流を通すように再構成することができないため、そのセットの電子ヒューズと共に使用できるセッション鍵IDの数を最大化することができることである。
図6は、本明細書に記載のさまざまな手法を用いて、システムを実装できる例示的なSOCアーキテクチャ600を示す図である。当業者なら分かるように、図6のSOCは、本発明の方法を実施することができる集積回路装置の単なる一例を提供するものである。SOC 600は、例えば、マルチギガビットトランシーバ(MGT 601)、構成可能なロジックブロック(CLB 602)、ランダムアクセスメモリブロック(BRAM 603)、入力/出力ブロック(IOB 604)、設定およびクロッキングロジック(CONFIG/CLOCKS 605)、デジタル信号処理ブロック(DSPの606)は、専用入力/出力ブロック(I/O 607)(たとえば、設定ポートおよびクロックポート)、および他のプログラム可能なロジック608、例えば、デジタルクロックマネージャ、アナログデジタルコンバータおよびシステム監視ロジックなどを含む多数の異なるプログラム可能なタイルを備える。例示のSOCは、配線により接続されたプロセッサ610をさらに備える。
いくつかの実装において、各プログラム可能なタイルは、プログラム可能な相互接続素子(INT)611を備える。INT611は、隣接する各タイルに位置する対応の相互接続素子への標準化接続およびそこからの標準化接続を含む。したがって、プログラム可能な相互接続素子を互いに接続することによって、図示されたSOCのプログラム可能な相互接続構造を実現する。図6の上部の例示によって示すように、プログラム可能な相互接続素子(INT 611)は、同一タイル内のプログラム可能なロジックプリミティブへの接続およびそこからの接続を含む。
例えば、CLB 602は、ユーザロジックを実現するようにプログラムすることができる構成可能なロジック素子(CLE 612)と、単一のプログラム可能な相互接続素子(INT 611)とを含むことができる。BRAM 603は、1つ以上のプログラム可能な相互接続素子の他に、BRAMロジックプリミティブ(BRL 613)を含むことができる。一般的には、タイルに含まれる相互接続素子の数は、タイルの高さに依存する。図示された実装において、BRAMタイルは、4つのCLBと同様の高さを有するが、他の数(例えば、5つ)のCLBと同様の高さを有してもよい。DSPタイル606は、適切な数のプログラム可能な相互接続素子の他に、DSPロジックプリミティブ(DSPL 614)を含むことができる。IOB 604は、たとえば、1つのプログラム可能な相互接続素子(INT 611)の他に、2つの入力/出力ロジックプリミティブ(IOL 615)を含むことができる。当業者には明らかなように、I/Oロジックプリミティブ615に接続された実際のI/Oパッドは、例えば、上述に例示されたさまざまなロジックブロック上に積層された金属を用いて製造され、一般的に入力/出力ロジックプリミティブ615の面積に限定されない。
図6に示されたアーキテクチャを利用する一部のSOCは、プログラム可能なロジックの大部分を構成する規則的なコラム状構造を乱す追加のロジックブロックを含む。追加のロジックブロックは、プログラム可能なブロックおよび/または専用ロジックであってもよい。たとえば、図6に示されたプロセッサブロック(PROC)610は、複数列のCLBおよびBRAMを跨る。
図示された実装において、(図6に網掛けで表示された)ダイ中央付近のコラム状領域は、設定、クロックおよび他の制御ロジックに使用される。このコラムから延在する水平領域609は、SOCの全幅に亘ってクロックおよび設定信号を分配するように構成されている。構成ポート(図示せず)を用いて、プログラム可能なロジックの構成メモリ(図示せず)にアクセスすることによって、プログラム可能なロジックおよび相互接続リソースを構築することができる。一実施形態において、内部スクラバ(図示せず)は、内部構成アクセスポートを介して、構成メモリを連続的に読み取るおよび校正することができる。
なお、図6は、単に例示的なSOCアーキテクチャを図示することを意図している。コラム内のロジックブロックの数、コラムの相対幅、コラムの数および順番、コラムに包含されたロジックブロックの種類、ロジックブロックの相対サイズ、および図6の上部に示された相互接続/ロジック実装は、単に例示的なものである。たとえば、実際のSOCにおいて、ユーザロジックの効率的な実装を容易にするために、一般的に、CLBの2つ以上の隣接する列は、CLBの出現する箇所に含まれる。
場合によって、態様および特徴を個々の図面で説明したが、理解すべきことは、1つの図面の特徴は、別の図形の特徴と併用するように明示的に示されまたは明示的に記載されていなくても、別の図形の特徴と併用することができることである。
以下、いくつかの例を説明する。しかしながら、当業者にとって明白なことは、以下に説明する詳細のすべてを必要せず、1つ以上の他の実施例および/またはこれらの実施例の変形例を実施できることである。
本明細書に記載の例示的な方法は、一般的にデータの認証に関する。この方法は、
公開鍵およびセッション鍵IDの表記の複数の組み合わせを不揮発性メモリに記憶するステップと、ペイロードと、ペイロードに付随する公開鍵、セッション鍵IDおよび署名とを入力するステップとを備え、署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数であり、プロセッサを用いて、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された組み合わせから、および署名およびペイロードから、ペイロードが真正であるか否かを判断するステップと、ペイロードが真正であるという判断に応答して、ペイロードの処理を実行するステップと、ペイロードが真正ではないという判断に応答して、ペイロードの処理を無効化するステップとを備える。
場合によって、方法は、複数の組み合わせのうち1つの組み合わせ中のセッション鍵IDの表記を記憶する複数の電子ヒューズのうち1つの電子ヒューズに電流を通さないようにすることによって、新規セッション鍵を形成するステップをさらに備え、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含む。
場合によって、方法は、公開鍵およびセッション鍵IDの表記の複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するステップをさらに備え、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断するステップは、複数の組み合わせのうち、1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および1つの組み合わせに関連付けられた鍵状態から、1つの組み合わせが有効であるか否かを判断するステップと、1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、ペイロードが真正ではないことを指示するステップとを備える。
場合によって、方法において、公開鍵およびセッション鍵IDの表記の複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するステップは、各鍵状態を1つ以上の電子ヒューズに記憶するステップを含む。
場合によって、方法は、複数の組み合わせのうち1つの組み合わせ中のセッション鍵IDの表記を記憶する複数の電子ヒューズのうち1つの電子ヒューズに電流を通さないようにすることによって、新規セッション鍵を形成するステップをさらに備え、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含む。
場合によって、方法において、公開鍵およびセッション鍵IDの表記の複数の組み合わせのうち、各公開鍵の表記は、公開鍵のハッシュ値であり、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断するステップは、付随の公開鍵のハッシュ値を計算するステップと、付随の公開鍵のハッシュ値が、複数の組み合わせのうち、1つの組み合わせの公開鍵の表記とマッチングするか否かを判定するステップと、付随の公開鍵のハッシュ値が複数の組み合わせの公開鍵の表記とマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するステップとを含む。
場合によって、方法において、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断するステップは、公開鍵およびセッション鍵IDの複数の組み合わせのうち、付随の公開鍵のハッシュ値とマッチングする公開鍵の表記を有する1つの組み合わせに対して、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングするか否かを判断するステップと、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングするという判断に応答して、ペイロードが真正であることを指示するステップと、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するステップとを含む。
場合によって、方法において、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含む。
場合によって、方法は、公開鍵およびセッション鍵IDの表記の複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するステップをさらに備え、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断するステップは、複数の組み合わせのうち、1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および1つの組み合わせに関連付けられた鍵状態から、1つの組み合わせが有効であるか否かを判断するステップと、1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、ペイロードが真正ではないことを指示するステップとを備える。
場合によって、方法において、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含む。
場合によって、方法は、複数の組み合わせのうち1つの組み合わせ中のセッション鍵IDの表記を記憶する複数の電子ヒューズのうち1つの電子ヒューズに電流を通さないようにすることによって、新規セッション鍵を形成するステップをさらに備え、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含む。
場合によって、方法において、公開鍵およびセッション鍵IDの表記の複数の組み合わせのうち、各公開鍵の表記は、公開鍵のハッシュ値であり、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断するステップは、付随の公開鍵のハッシュ値を計算するステップと、付随の公開鍵のハッシュ値が、複数の組み合わせのうち、1つの組み合わせの公開鍵の表記とマッチングするか否かを判定するステップと、付随の公開鍵のハッシュ値が複数の組み合わせの公開鍵の表記とマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するステップとを含む。
本明細書に記載の例示的な装置は、認証システムに関する。この装置は、公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するように構成可能な不揮発性メモリと、不揮発性ストレージに連結されたプロセッサとを備え、プロセッサは、ペイロードと、ペイロードに付随する公開鍵、セッション鍵IDおよび署名とを入力するように構成され、署名は、ペイロードと、付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数であり、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、および署名およびペイロードから、ペイロードが真正であるか否かを判断し、ペイロードが真正であるという判断に応答して、ペイロードの処理を実行し、ペイロードが真正ではないという判断に応答して、ペイロードの処理を無効化するように構成されている。
場合によって、装置において、不揮発性メモリは、公開鍵およびセッション鍵IDの表記の組み合わせを記憶するための複数の電子ヒューズを含み、プロセッサはさらに、複数の組み合わせのうち1つの組み合わせ中のセッション鍵IDの表記を記憶する複数の電子ヒューズのうち1つに電流を通さないようにすることによって、新規セッション鍵を形成するように構成されている。
場合によって、装置において、不揮発性メモリは、公開鍵およびセッション鍵IDの表記の複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するストレージをさらに含み、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、プロセッサは、さらに、複数の組み合わせのうち1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および1つの組み合わせに関連付けられた鍵状態から、組み合わせが有効であるか否かを判断し、1つの組み合わせが付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、ペイロードが真正ではないことを指示するように構成されている。
場合によって、装置において、複数の鍵状態を記憶するための複数の電子ヒューズを含む。
場合によって、装置において、不揮発性メモリは、セッション鍵IDの表記を記憶するための複数の電子ヒューズを含み、プロセッサはさらに、複数の組み合わせのうち1つの組み合わせ中のセッション鍵IDの表記を記憶する複数の電子ヒューズのうち1つに電流を通さないようにすることによって、新規セッション鍵を形成するように構成されている。
場合によって、装置において、公開鍵およびセッション鍵IDの表記の複数の組み合わせのうち、各公開鍵の表記は、公開鍵のハッシュ値であり、プロセッサは、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断する際に、付随の公開鍵のハッシュ値を計算し、付随の公開鍵のハッシュ値が、複数の組み合わせのうち、1つの組み合わせの公開鍵の表記とマッチングするか否かを判定し、付随の公開鍵のハッシュ値が複数の組み合わせの公開鍵の表記とマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するように構成されている。
場合によって、装置において、プロセッサは、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断する際に、公開鍵およびセッション鍵IDの複数の組み合わせのうち、付随の公開鍵のハッシュ値とマッチングする公開鍵の表記を有する1つの組み合わせに対して、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングするか否かを判断し、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングするという判断に応答して、ペイロードが真正であることを指示し、付随のセッション鍵ID番号が1つの組み合わせのセッション鍵ID番号の表記とマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するように構成されている。
場合によって、装置において、不揮発性メモリ内の公開鍵およびセッション鍵IDの表記の複数の組み合わせのうち、各組み合わせは、公開鍵およびセッション鍵IDのハッシュ値であり、プロセッサは、付随の公開鍵およびセッション鍵ID並びに不揮発性メモリに記憶された複数の組み合わせから、ペイロードが真正であるか否かを判断する際に、付随の公開鍵およびセッション鍵IDの第1ハッシュ値を計算し、第1ハッシュ値が不揮発性メモリ内のハッシュ値のいずれかとマッチングするか否かを判断し、第1ハッシュ値が不揮発性メモリ内のハッシュ値のいずれかとマッチングしないという判断に応答して、ペイロードが真正ではないことを指示するように構成されている。
本発明のシステムおよび方法は、さまざまな認証システムに適用可能であると考えられる。他の態様および特徴は、明細書を参照すれば当業者にとって明白であろう。システムおよび方法は、ソフトウェアを実行するように構成された1つ以上のプロセッサとして、特定用途向け集積回路(ASIC)として、またはプログラム可能なロジック装置上のロジックとして実装することができる。なお、本明細書および図面は例示のみとして見なされるべきであり、本発明の範囲は、特許請求の範囲によって示される。

Claims (15)

  1. データを認証する方法であって、
    公開鍵およびセッション鍵IDの表記の複数の組み合わせを不揮発性メモリに記憶するステップと、
    ペイロードと、前記ペイロードに付随する公開鍵、セッション鍵IDおよび署名とを入力するステップとを備え、前記署名は、前記ペイロードと、前記付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数であり、
    プロセッサを用いて、前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記組み合わせから、および前記署名および前記ペイロードから、前記ペイロードが真正であるか否かを判断するステップと、
    前記ペイロードが真正であるという判断に応答して、前記ペイロードの処理を実行するステップと、
    前記ペイロードが真正ではないという判断に応答して、前記ペイロードの処理を無効化するステップとを備える、方法。
  2. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせを記憶する前記ステップは、各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップを含み、
    前記方法は、前記複数の組み合わせのうち1つの組み合わせ中の前記セッション鍵IDの表記を記憶する前記複数の電子ヒューズのうち1つの電子ヒューズに電流を通さないようにすることによって、新規セッション鍵を形成するステップをさらに備える、請求項1に記載の方法。
  3. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するステップをさらに備え、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、
    前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断するステップは、
    前記複数の組み合わせのうち1つの組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および前記1つの組み合わせに関連付けられた前記鍵状態から、前記1つの組み合わせが有効であるか否かを判断するステップと、
    前記1つの組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、前記ペイロードが真正ではないことを指示するステップとを備える、請求項1に記載の方法。
  4. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶する前記ステップは、各鍵状態を1つ以上の電子ヒューズに記憶するステップを含む、請求項3に記載の方法。
  5. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせのうち、各公開鍵の表記は、公開鍵のハッシュ値であり、
    前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断するステップは、
    前記付随の公開鍵のハッシュ値を計算するステップと、
    前記付随の公開鍵の前記ハッシュ値が、前記複数の組み合わせのうち1つの組み合わせの公開鍵の表記とマッチングするか否かを判定するステップと、
    前記付随の公開鍵の前記ハッシュ値が前記複数の組み合わせの公開鍵の表記とマッチングしないという判断に応答して、前記ペイロードが真正ではないことを指示するステップとを含む、請求項1に記載の方法。
  6. 前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断するステップは、
    公開鍵およびセッション鍵IDの前記複数の組み合わせのうち、前記付随の公開鍵の前記ハッシュ値とマッチングする前記公開鍵の表記を有する1つの組み合わせに対して、付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングするか否かを判断するステップと、
    前記付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングするという判断に応答して、前記ペイロードが真正であることを指示するステップと、
    前記付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングしないという判断に応答して、前記ペイロードが真正ではないことを指示するステップとを含む、請求項5に記載の方法。
  7. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するステップをさらに備え、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、
    前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断するステップは、
    前記複数の組み合わせのうち1つの組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および前記組み合わせに関連付けられた前記鍵状態から、前記組み合わせが有効であるか否かを判断するステップと、
    前記組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、前記ペイロードが真正ではないことを指示するステップとを含み、
    公開鍵およびセッション鍵IDの表記の前記複数の組み合わせを記憶する前記ステップは、
    各セッション鍵IDの表記を複数の電子ヒューズに記憶するステップと、
    前記複数の組み合わせのうち1つの組み合わせ中の前記セッション鍵IDの表記を記憶する前記複数の電子ヒューズのうち1つに電流を通さないようにすることによって、新規セッション鍵を形成するステップとを含む、請求項5に記載の方法。
  8. 認証システムであって、
    公開鍵およびセッション鍵IDの表記の複数の組み合わせを記憶するように構成可能な不揮発性メモリと、
    前記不揮発性ストレージに連結されたプロセッサとを備え、
    前記プロセッサは、
    ペイロードと、前記ペイロードに付随する公開鍵、セッション鍵IDおよび署名とを入力するように構成され、前記署名は、前記ペイロードと、前記付随の公開鍵および秘密鍵を含む鍵ペアのうち秘密鍵との関数であり、
    前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、および前記署名および前記ペイロードから、前記ペイロードが真正であるか否かを判断し、
    前記ペイロードが真正であるという判断に応答して、前記ペイロードの処理を実行し、
    前記ペイロードが真正ではないという判断に応答して、前記ペイロードの処理を無効化するように構成されている、システム。
  9. 前記不揮発性メモリは、公開鍵およびセッション鍵IDの表記の前記組み合わせを記憶するための複数の電子ヒューズを含み、
    前記プロセッサはさらに、前記複数の組み合わせのうち1つの組み合わせ中の前記セッション鍵IDの表記を記憶する前記複数の電子ヒューズのうち1つに電流を通さないようにすることによって、新規セッション鍵を形成するように構成されている、請求項8に記載のシステム。
  10. 前記不揮発性メモリは、公開鍵およびセッション鍵IDの表記の前記複数の組み合わせにそれぞれ関連付けられた複数の鍵状態を記憶するストレージをさらに含み、各鍵状態は、関連付けられた組み合わせが有効であるか否かを示し、
    プロセッサは、さらに、
    前記複数の組み合わせのうち1つの組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有するか否か、および前記1つの組み合わせに関連付けられた前記鍵状態から、前記組み合わせが有効であるか否かを判断し、
    前記1つの組み合わせが前記付随の公開鍵とマッチングする公開鍵の表記を有し且つ有効ではないという判断に応答して、前記ペイロードが真正ではないことを指示するように構成されている、請求項8に記載のシステム。
  11. 前記不揮発性メモリは、前記複数の鍵状態を記憶するための複数の電子ヒューズを含む、請求項10に記載のシステム。
  12. 前記不揮発性メモリは、前記セッション鍵IDの表記を記憶するための複数の電子ヒューズを含み、
    前記プロセッサはさらに、前記複数の組み合わせのうち1つの組み合わせ中の前記セッション鍵IDの表記を記憶する前記複数の電子ヒューズのうち1つに電流を通さないようにすることによって、新規セッション鍵を形成するように構成されている、請求項11に記載のシステム。
  13. 公開鍵およびセッション鍵IDの表記の前記複数の組み合わせのうち、各公開鍵の表記は、公開鍵のハッシュ値であり、
    前記プロセッサは、前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断する際に、
    前記付随の公開鍵のハッシュ値を計算し、
    前記付随の公開鍵の前記ハッシュ値が、前記複数の組み合わせのうち1つの組み合わせの公開鍵の表記とマッチングするか否かを判定し、
    前記付随の公開鍵の前記ハッシュ値が前記複数の組み合わせの公開鍵の表記とマッチングしないという判断に応答して、前記ペイロードが真正ではないことを指示するように構成されている、請求項10に記載のシステム。
  14. 前記プロセッサは、前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断する際に、
    公開鍵およびセッション鍵IDの前記複数の組み合わせのうち、前記付随の公開鍵の前記ハッシュ値とマッチングする前記公開鍵の表記を有する1つの組み合わせに対して、付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングするか否かを判断し、
    前記付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングするという判断に応答して、前記ペイロードが真正であることを指示し、
    前記付随のセッション鍵ID番号が前記1つの組み合わせの前記セッション鍵ID番号の表記とマッチングしないという判断に応答して、前記ペイロードが真正ではないことを指示するように構成されている、請求項13に記載のシステム。
  15. 前記不揮発性メモリ内の公開鍵およびセッション鍵IDの表記の前記複数の組み合わせのうち、各組み合わせは、公開鍵およびセッション鍵IDのハッシュ値であり、
    前記プロセッサは、前記付随の公開鍵およびセッション鍵ID並びに前記不揮発性メモリに記憶された前記複数の組み合わせから、前記ペイロードが真正であるか否かを判断する際に、
    前記付随の公開鍵および前記セッション鍵IDの第1ハッシュ値を計算し、
    前記第1ハッシュ値が前記不揮発性メモリ内の前記ハッシュ値のいずれかとマッチングするか否かを判断し、
    前記第1ハッシュ値が前記不揮発性メモリ内の前記ハッシュ値のいずれかとマッチングしないという判断に応答して、前記ペイロードが真正ではないことを指示するように構成されている、請求項10のシステム。
JP2016553393A 2014-02-20 2015-02-18 公開鍵およびセッション鍵による認証 Active JP6510546B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/185,780 2014-02-20
US14/185,780 US9270469B2 (en) 2014-02-20 2014-02-20 Authentication using public keys and session keys
PCT/US2015/016417 WO2015126967A1 (en) 2014-02-20 2015-02-18 Authentication using public keys and session keys

Publications (3)

Publication Number Publication Date
JP2017506850A true JP2017506850A (ja) 2017-03-09
JP2017506850A5 JP2017506850A5 (ja) 2018-03-29
JP6510546B2 JP6510546B2 (ja) 2019-05-08

Family

ID=52633630

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016553393A Active JP6510546B2 (ja) 2014-02-20 2015-02-18 公開鍵およびセッション鍵による認証

Country Status (6)

Country Link
US (1) US9270469B2 (ja)
EP (1) EP3108609B1 (ja)
JP (1) JP6510546B2 (ja)
KR (1) KR102345177B1 (ja)
CN (1) CN106031082B (ja)
WO (1) WO2015126967A1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659191B2 (en) * 2014-04-09 2017-05-23 Seagate Technology Llc Encryption key storage and modification in a data storage device
US10541817B2 (en) * 2016-03-14 2020-01-21 Ricoh Company, Ltd. Data generation apparatus, data recording system, and program product
CN107451432A (zh) * 2016-05-30 2017-12-08 深圳市中兴微电子技术有限公司 一种启动程序检查方法和装置
US10390114B2 (en) 2016-07-22 2019-08-20 Intel Corporation Memory sharing for physical accelerator resources in a data center
US10268844B2 (en) * 2016-08-08 2019-04-23 Data I/O Corporation Embedding foundational root of trust using security algorithms
TWI648741B (zh) * 2017-06-05 2019-01-21 慧榮科技股份有限公司 資料儲存裝置之控制器以及進階資料抹除的方法
US10541820B2 (en) * 2017-08-17 2020-01-21 Global Bonsai LLC Distributed digital ledger
WO2019152515A1 (en) * 2018-01-31 2019-08-08 Walmart Apollo, Llc System and method for prescription security and authentication
KR102192477B1 (ko) * 2018-07-16 2020-12-18 (주)이더블유비엠 Fido 기반 인증 대용의 암묵인증방법, 시스템 및 프로그램
US11232219B1 (en) 2019-01-31 2022-01-25 Xilinx, Inc. Protection of electronic designs
KR20220126733A (ko) * 2019-11-20 2022-09-16 (주)이더블유비엠 Fido 기반 암묵인증방법, 시스템 및 프로그램
US11582021B1 (en) 2019-11-20 2023-02-14 Xilinx, Inc. Protection against differential power analysis attacks involving initialization vectors
US11280829B1 (en) 2019-12-19 2022-03-22 Xlnx, Inc. System-on-chip having secure debug mode
US11893118B2 (en) * 2021-05-25 2024-02-06 Microsoft Technology Licensing, Llc Transfer of ownership of a computing device via a security processor

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003348079A (ja) * 2002-05-27 2003-12-05 Konica Minolta Holdings Inc 画像形成装置
JP2004304304A (ja) * 2003-03-28 2004-10-28 Fujitsu Ltd 電子署名生成方法,電子署名検証方法,電子署名生成依頼プログラム,及び電子署名検証依頼プログラム
JP2009217722A (ja) * 2008-03-12 2009-09-24 Nippon Telegr & Teleph Corp <Ntt> 認証処理システム、認証装置、管理装置、認証処理方法、認証処理プログラムおよび管理処理プログラム
JP2010081400A (ja) * 2008-09-26 2010-04-08 Nec Commun Syst Ltd 電子メール検証システム、送信端末、受信端末、電子メール処理端末、電子メール検証、送信および受信方法
WO2010116618A1 (ja) * 2009-04-06 2010-10-14 パナソニック株式会社 鍵実装システム

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7917760B2 (en) * 1997-02-21 2011-03-29 Multos Limited Tamper resistant module having separate control of issuance and content delivery
US6816596B1 (en) * 2000-01-14 2004-11-09 Microsoft Corporation Encrypting a digital object based on a key ID selected therefor
US6760752B1 (en) * 1999-06-28 2004-07-06 Zix Corporation Secure transmission system
GB2355819A (en) 1999-10-26 2001-05-02 Marconi Comm Ltd Authentication of data and software
US6851049B1 (en) * 2000-10-02 2005-02-01 Pgp Corporation Method and apparatus for facilitating secure anonymous email recipients
MXPA04000999A (es) * 2001-08-01 2004-04-20 Matsushita Electric Ind Co Ltd Sistema de comunicacion con encriptacion.
US7440571B2 (en) 2002-12-03 2008-10-21 Nagravision S.A. Method for securing software updates
US20050235145A1 (en) * 2002-12-05 2005-10-20 Canon Kabushiki Kaisha Secure file format
EP1536606A1 (fr) * 2003-11-27 2005-06-01 Nagracard S.A. Méthode d'authentification d'applications
JP4546231B2 (ja) * 2004-12-09 2010-09-15 株式会社日立製作所 Idベース署名及び暗号化システムおよび方法
US7987365B2 (en) * 2006-03-24 2011-07-26 Microsoft Corporation Subscription-based computing implemented in hardware of computing device
US20070269040A1 (en) * 2006-05-16 2007-11-22 Microsoft Corporation Cryptographic Protocol for Commonly Controlled Devices
US7987358B1 (en) * 2006-06-09 2011-07-26 Xilinx, Inc. Methods of authenticating a user design in a programmable integrated circuit
US8863230B1 (en) * 2006-06-09 2014-10-14 Xilinx, Inc. Methods of authenticating a programmable integrated circuit in combination with a non-volatile memory device
US8166304B2 (en) * 2007-10-02 2012-04-24 International Business Machines Corporation Support for multiple security policies on a unified authentication architecture
US8242831B2 (en) * 2009-12-31 2012-08-14 Intel Corporation Tamper resistant fuse design
US8539610B2 (en) * 2010-10-29 2013-09-17 Nokia Corporation Software security
US9219604B2 (en) * 2011-05-09 2015-12-22 Cleversafe, Inc. Generating an encrypted message for storage
US8639928B2 (en) * 2011-12-05 2014-01-28 Certicom Corp. System and method for mounting encrypted data based on availability of a key on a network
CN102761420B (zh) * 2012-08-08 2014-10-29 飞天诚信科技股份有限公司 一种安全认证方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003348079A (ja) * 2002-05-27 2003-12-05 Konica Minolta Holdings Inc 画像形成装置
JP2004304304A (ja) * 2003-03-28 2004-10-28 Fujitsu Ltd 電子署名生成方法,電子署名検証方法,電子署名生成依頼プログラム,及び電子署名検証依頼プログラム
JP2009217722A (ja) * 2008-03-12 2009-09-24 Nippon Telegr & Teleph Corp <Ntt> 認証処理システム、認証装置、管理装置、認証処理方法、認証処理プログラムおよび管理処理プログラム
JP2010081400A (ja) * 2008-09-26 2010-04-08 Nec Commun Syst Ltd 電子メール検証システム、送信端末、受信端末、電子メール処理端末、電子メール検証、送信および受信方法
WO2010116618A1 (ja) * 2009-04-06 2010-10-14 パナソニック株式会社 鍵実装システム

Also Published As

Publication number Publication date
EP3108609A1 (en) 2016-12-28
WO2015126967A1 (en) 2015-08-27
US20150236856A1 (en) 2015-08-20
CN106031082A (zh) 2016-10-12
EP3108609B1 (en) 2020-06-24
KR102345177B1 (ko) 2021-12-30
KR20160123336A (ko) 2016-10-25
CN106031082B (zh) 2019-08-27
JP6510546B2 (ja) 2019-05-08
US9270469B2 (en) 2016-02-23

Similar Documents

Publication Publication Date Title
JP6510546B2 (ja) 公開鍵およびセッション鍵による認証
US20180183586A1 (en) Assigning user identity awareness to a cryptographic key
US9806883B2 (en) Secure provision of a key
US8065517B2 (en) Method and system for transferring information to a device
US9430658B2 (en) Systems and methods for secure provisioning of production electronic circuits
JP6371919B2 (ja) セキュアなソフトウェアの認証と検証
US9870488B1 (en) Method and apparatus for securing programming data of a programmable device
US20150188707A1 (en) Method for safeguarding a system-on-a-chip
US10984107B2 (en) Secure boot
EP2056228A1 (en) Method and system for transferring information to a device
JP2017504267A (ja) セキュアブート中のキー抽出
TWI763379B (zh) 安全積體電路晶片裝置及其保護其方法
US9003197B2 (en) Methods, apparatus and system for authenticating a programmable hardware device and for authenticating commands received in the programmable hardware device from a secure processor
US9218505B1 (en) Programmable integrated circuit with DPA-resistant decryption
US11977666B2 (en) Flexible cryptographic device
KR102199464B1 (ko) 컨소시엄 블록체인 참가 노드 간의 인증 방안
US10067770B2 (en) Platform key hierarchy
US9530022B1 (en) Protection of designs for electronic systems
JP2015015542A (ja) 情報処理システム
Fischer et al. PUF based lightweight hardware trust anchor for secure embedded systems

Legal Events

Date Code Title Description
A529 Written submission of copy of amendment under article 34 pct

Free format text: JAPANESE INTERMEDIATE CODE: A529

Effective date: 20161017

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180213

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190404

R150 Certificate of patent or registration of utility model

Ref document number: 6510546

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250