JP6557727B2 - メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置 - Google Patents

メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置 Download PDF

Info

Publication number
JP6557727B2
JP6557727B2 JP2017529366A JP2017529366A JP6557727B2 JP 6557727 B2 JP6557727 B2 JP 6557727B2 JP 2017529366 A JP2017529366 A JP 2017529366A JP 2017529366 A JP2017529366 A JP 2017529366A JP 6557727 B2 JP6557727 B2 JP 6557727B2
Authority
JP
Japan
Prior art keywords
data
block
ciphertext
plaintext
message
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
JP2017529366A
Other languages
English (en)
Other versions
JP2017536581A (ja
Inventor
ワイスール,ブレヒト
Original Assignee
ナグラビジョン エス アー
ナグラビジョン エス アー
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 ナグラビジョン エス アー, ナグラビジョン エス アー filed Critical ナグラビジョン エス アー
Publication of JP2017536581A publication Critical patent/JP2017536581A/ja
Application granted granted Critical
Publication of JP6557727B2 publication Critical patent/JP6557727B2/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/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Description

本発明は、認証付き暗号化(AE:authenticated encryption )のためのブロック暗号動作モード(block cipher mode of operation)を用いるメッセージの暗号化及び逆方向動作モード(reverse mode of operation)を用いるメッセージの復号化の分野に関する。より具体的には、本発明は、認証付き暗号化方式に関し、特に、所謂カウンタ暗号フィードバック(CCFB:Counter Cipher FeedBack)方式の改良に関する。変形において、本発明は、また、関連データによる認証付き暗号化方式(AEAD:Authenticated Encryption schemes with Associated Data)に対する、特にCCFB+H方式の改良に対する、拡張機能を備える。最終的に、本発明は、また、同様の方式を用いる逆方向暗号演算(reverse cryptographic operation)に関する。
第1のエンティティから第2のものに対して機密に属すメッセージを送信しなければならない場合、メッセージのプライバシ及びその完全性/確実性を保護することは一般的である。過去においては、メッセージ認証コード(MAC:message authentication code)又はデジタル署名を用いることによって典型的に取り扱われる完全性保護が、異なる手段によって完全に実現されるべき目標であったということが考慮されたため、これらの2つのセキュリティ目標は、別々に取り扱われてきた。
分離された確実性モードと共に機密性モードを実施することは困難であり且つエラーを起こしやすい可能性があるということに気づいた後、単一の暗号方式に機密性と完全性/確実性との両方を組み合わせる動作モードを提供することが示唆された。動作モードは、暗号アルゴリズム、特に、対称暗号化方式に基づくあらゆるアルゴリズムの効果を向上させるための技術と見なすことができる。認証付き暗号化(AE)方式は、単一のコンパクトな動作モードにおいて処理されたメッセージのプライバシ及び完全性/確実性を同時に保護するように設計される。一例として、提供者がクライアントに対して機密情報を送信したい場合、データプライバシは、情報が内密のままであるということを保証するように要求される。更に、完全性及び確実性は、情報を送信したエンティティが実際に前記の提供者であり、且つ情報がその通過の間に変更されなかったということを保証するように更に要求される。
AEモードは、それが必要とするデータ上のパスの数に従って分類されることができる。いくつかのAEモードは、データ上に1つのパスのみを用いるが、他のAEモードは、2つのパスを用いる。単一パスモードは、メッセージの単一処理の直後に、認証付き暗号化を提供する。2パスモードは、(暗号及び認証の両方に1個の鍵をそのまま用いる)2つのフェーズにおいてデータを処理する。
メッセージがこのような「統合された」認証付き暗号化方式によって暗号化される場合、暗号文は、付加的情報と共に送信されるかもしれない。これは、ある者があなたの暗号化されたメッセージに対して暗号化されていないヘッダを添付することができるということを意味する。メッセージと共にこのようなパケットヘッダ(平文メッセージに対して結合されたクリアテキストヘッダ)を認証する必要があるが、それを暗号化する必要はない。実際に、ネットワークパケットにおいて典型的には、ペイロードは、暗号化されて認証されるべきであるが、ヘッダは、認証のみされるべきである(即ち、それは暗号化されないままであるべきである)。理由は、それらを正しくルーティングする方法を知るためにルータがパケットのヘッダを読み取ることが可能でなければならない、ということである。いくつかの動作モードは、暗号文メッセージに関連づけられたデータを効率的に認証するのに特に適切である。このようなモードは、関連データによる認証付き暗号化(AEAD:Authenticated Encryption with Associated Data)と称される。それらは、関連データが方式内に入力として含まれることを可能にする。
AE方式及びAEAD方式の短所の1つは、それらが一次差分電力解析(DPA:first-order Differential Power Analysis)攻撃になりやすいということである。電力解析は、ハッカーが暗号装置の電源消費を調査するサイドチャネル攻撃(非侵襲性攻撃)の形式である。このような装置は、マイクロプロセッサカード、バッジ、鍵、プリント回路基板の集積回路チップ、デスクランブラモジュール内のセキュリティモジュールを指すことができるか、又はソフトウェア形式のみにおいて実施される関数であることが可能である。回路の電流及び電圧入力及び出力(又は装置のタイミング若しくは更に電磁気放射)を調査することによって、通常の装置動作の間に用いられる暗号鍵などの秘密情報を発見することが可能になるかもしれない。実際には、いくつかの演算は、更に多くの消費電力を必要とする。従って、デジタルオシロスコープ及び従来のパーソナルコンピュータを用いることによって、変動及びスパイクの分析は、暗号解読者に引き出される貴重な情報である可能性がある。
単純電力解析(SPA:Simple Power Analysis)は、装置の消費電力の直接観察を通じて秘密キーを回復し、その一方で、DPA攻撃は、複数の消費電力測定から秘密鍵情報を抽出するために統計的手法を利用する。DPAは、複数の暗号演算から、典型的には何千もの演算から、収集されたデータを統計的に分析することによって暗号計算内の中間値を計算することを可能にする電力解析の高度な形式である。DPA攻撃は、SPAを用いて分析することができないあまりにも多くのノイズを含む測定結果から秘密を抽出することができる信号処理及びエラー訂正の特性を有する。DPA攻撃を用いて、ハッカーは、脆弱な暗号系上で実行される複数の暗号演算から消費電力測定結果を分析することによって秘密キーを取得することができる。
このようなサイドチャネル攻撃を解決するために、対抗策が開発された。これらの対抗策のいくつかは、例えば、暗号演算を切り抜ける数学的関係によって実効値に関するデータ上で暗号演算を実行することによる、暗号アルゴリズムの改良を含む。1つのアプローチは、更に適切な結果を生しながら、暗号系によって操作されたデータをランダム化するためのブラインドパラメータを含む。消費電力測定(サイドチャネル)とオリジナルの中間値との間の相関性を低減するために、予測不能の情報が中間値の中に組み込まれる。別のアプローチによれば、信号対ノイズ比(S/N)を減少させるために信号の振幅を故意に低減することによって、原信号をマスク化することが可能である。変形において、1つのアプローチは、また、S/N比を減少させるために消費電力測定の中に振幅又は時間的なノイズを追加することができる。他の対抗策は、例えば、電気信号を非同期させるためにチップの内部クロック周期数を変えることによる、ハードウェア改良を含むことができるし、又は、例えば、暗号系の存続期間の間に継続的に秘密を回復させて更新することによる暗号のプロトコル改良を含むことができる。
しかしながら、消費電力におけるわずかな変動さえもが攻撃に利用できる弱点に結びつく可能性があるので、DPA攻撃の防止は、極めて難易度が高い。更に、特許によって付与された保護のため、多くの場合、このような対抗策に対して自由にアクセスできない。従って、これらの短所を少なくとも部分的に克服するために、新たなAE方式を提供する必要がある。
DPA攻撃から暗号系を保護するための新たな対抗策を提供する代わりに、本発明は、DPA攻撃を留意しながら、改良型の動作モードを示唆する。このため、本発明は、DPA攻撃を緩和するのに一層よく適した、CCFB方式に基づく、動作モードに言及する。特に、本発明は、平文メッセージから、暗号文メッセージと前記暗号文メッセージを認証するためのグローバルタグとを提供するための巡回反復(round repetition)を用いるブロック暗号方法を示唆する。平文メッセージは、すべて同じビット長を有する複数の順序付けられた平文ブロックに変換される(特に、もしあれば分割しパディングする)。これらの平文ブロックの各々は、巡回(round)の間に現在の平文ブロック(current plaintext block)として順序付けられた方法で連続的に処理される。方法は、
・第1のデータをレジスタ内にロードする動作と、
・ブロック暗号アルゴリズム内に入力データを入力するための第1のステップであって、当該入力データはレジスタのデータと例えばカウンタデータ又は任意の他の再現可能なデータ(reproducible data)系列などの再現可能なデータとを備える第1のステップと、
・ブロック暗号アルゴリズム内で、単一の暗号鍵を用いて入力データを暗号化することによって暗号文を計算するための第2のステップであって、この暗号文は第1のセグメントと第2のセグメントとを備え、後者は認証ローカルタグとして定義される第2のステップと、
・第1のセグメント、認証ローカルタグ、及び現在の平文ブロックをオペランドとして使用して、第1の演算を実行することによって暗号文ブロックを計算するための第3のステップと
の各ステップを実行することによって巡回を実行する動作と、
・すべての前述の平文ブロックが当該巡回において処理されていない限り、最後に計算された暗号文ブロックをレジスタに再ロードし、前記第1のステップから再び開始することによって新たな巡回を実行する前に、再現可能なデータに対して例えばインクリメント関数などの更新関数を適用する動作と、
・順序付けられた方法において、好ましくは前述の順序付けられた方式において、すべての巡回によって提供された暗号文ブロックを連結することによって暗号文メッセージを決定する動作と、
・その後、最後に計算された暗号文ブロックをレジスタに再ロードし、巡回の最初の2ステップのみを実行する前に再現可能なデータに対して更新関数を適用する動作と、
・その後、オペランドとして計算された認証ローカルタグをすべて用いて第2の演算によってグローバルタグを計算する動作と
を備える方法である。
上記の方法から、本発明の新たな動作モードがカウンタ暗号フィードバック(CCFB)方式に基づくということは注目されるべきである。厳密に言うと、CCFB方式は、その構造が、ワンパス解決手段のものと非常に類似する2パスAE方式である。開示された革新的方法は、好ましくは、暗号と認証との両方を提供するための2つの動作モード、即ち、カウンタモード(CTR:counter mode)と暗号フィードバック(CFB:Cipher Feedback)モードとの独特な組み合わせを採用する。この実施形態によれば、暗号文の第2のセグメントの計算から起因する認証ローカルタグは、第2のパスの間にグローバルタグを計算するために用いられるだけでなく、各暗号文ブロックを計算するための第1のパスの間にも有利的に用いられる。従って、既知の攻撃に対する耐性を含む(但しこれらに限定されない)、確実なコンピューティングシステムの演算に対する改良を実現することができる、ということが提案される。
付加的な実施形態は、上述の方法を実施するための装置を記載する。好ましくは、これらの装置の1つは、特に、メッセージを暗号化することに専用であるが、その一方で、他の装置は、逆方向処理(reverse process)に専用である。それらが同様な構成要素を備えるとすれば、これらの装置は、両方とも、極めて類似し、以下の詳細な説明において更に多くの詳細な記述にて記載されることになる。
本発明の目的及び効果は、独立の方法クレームの主題と一致する暗号方法によって、及び他の独立の装置クレームの主題と一致する装置によって実現される。
他の効果及び実施形態は、以下の詳細な説明において提示されることになる。
本発明は、以下の添付の図面によって一層良く理解されることになる。
平文メッセージの暗号文メッセージへの変換処理を概略的に表現する。 本発明の暗号方法の、特に暗号化フェーズの好ましい実施形態を示すフローチャートである。 図2に基づく方法の部分的な図示による別の実施形態を示す。 図2と全く同様であるが、復号化フェーズに関する。 本発明の暗号方法の任意の実施形態を実施するための、特にこの方法の任意のフェーズ(暗号化又は復号化)を実施するための装置の実施形態を示す。
図1を参照すると、後半(the latter)は、付加的な入力データ20による本発明によって処理される平文メッセージ(M)10と、前記入力データ20によるこの平文メッセージ10の主な変換ステップと、補完データ52による処理から出力される暗号文メッセージ(C)50とを概略的に示す。オプションとして、平文メッセージ10は、典型的には、平文メッセージ10のヘッダに関連することができる関連データ(AD)15を備えていてもよい。
好ましい実施形態によれば、前述の入力データ20は、第1のデータ21、例えば初期化ベクトル(IV)と、任意のデフォルト値に初期設定(リセット)されることができる再現可能なデータ22とを備える。この再現可能なデータは、好ましくはカウンタデータ(CDt)、即ち、カウンタによって提供される値などのデータである。但し、このようなデータを厳密な意味でカウンタによって提供されるデータに限定する必要はないので、それは所謂再現可能なデータと称される。それらが用いられる前に予め定義されていない場合を除き、「再現可能(reproducible)」という用語は、あらゆるランダムデータを排除する。従って、前述の再現可能なデータが、任意のデータ、即ち、更新関数又は再生関数と見なすことができる再現可能な処理又は関数によって再生されることができる値を指すということは理解されるべきである。例えば、当該処理又は関数は、ハッシュ関数、又は初期値に対して適用されるインクリメント関数若しくはデクリメント関数に関することができる。また、それは、一定の順序で連続的にとられた既定のリスト又は一連の乱数若しくは擬似乱数を、再現可能なデータと称してもよい。好ましくは、これらのすべての数は、あらゆる反復を回避するために異なる数になる。本明細書において、表現「カウンタデータ(counter data)」は、好ましい実施形態によって、即ち非限定的な例として、用いられる。補完データ52は、以降で更に説明するように、タグに、特に複数のローカルタグから決定されるグローバルタグ(TG)に関する。グローバルタグ52は、処理の終端で暗号文メッセージ50を認証するための認証データとして用いられる。
図1に示すように、平文メッセージ10は、複数の平文ブロック(m1、m2、m3、…mi)に変換される。この図において、これらの平文ブロックの各々は、共通の符号11によって識別される。平文ブロックメッセージ10を複数の平文ブロック11に変換するために用いられる変換処理は、主に、平文メッセージ10を同じビット長を有するブロックに分割することを意図する。平文メッセージ10が、平文ブロックのビット数の倍数でないビット長を有する場合において、変換処理は、少なくとも1デフォルトビットにより(例えばゼロに等しいビットにより)、2つの終端の平文ブロックの少なくとも1つ(例えば最後の平文ブロック及び/又は最初の平文ブロック)をパディングするためのステップを更に備えることになる。パディングするステップの目的は、終端ブロックに他のブロックと同じビット長を提供することである。
平文ブロック11は、特定の順序で処理されていなければならず、その結果、同じ順序は暗号文メッセージを復号化することを目的とする逆方向処理の間に適用されることができる。従って、平文ブロック11は、順序付けられた方式で配置される。代替え的に、各ブロックは、このような特定の順序を決定するために識別可能な位置と共にアサインされる。これらのブロックの順序によって、暗号文メッセージ50から平文メッセージ10を再建することが可能になる。好ましくは、平文メッセージ10がブロック11に分割される場合、後者(the latter)は混合されないが、それらが分割された順序が維持される。このような順序の維持は、例えば、ブロックの双方のコンテンツ及びメッセージ10内の位置を記録に格納することによって、実現され得る。変形において、インデックスは、そのインデックス1、2、3、…iによって任意のブロックm1、m2、m3、…miの適正位置を検索することを可能にするように、各ブロックのコンテンツに関連づけられることができるかもしれない。
その後、これらの平文ブロック11の各々は、方法の巡回Rの間のこのような順序付けられた方式において、所謂現在の平文ブロックとして、連続的に処理される。各々の巡回の終端において、暗号文ブロック51は、現在の平文ブロック11の対応関係において取得される。例えば、図1に示す平文ブロックm1は、巡回の出力において暗号文ブロックc1を提供する。
各巡回は、また、タグ、特に同じ巡回によって関連する暗号文ブロック51の出力と対応するローカルタグ32、を提供する。暗号文ブロック51を演算することを可能にする反復のセットは、方法の第1のパスを構成する。1つの実施形態において、第2のパスは、計算されてきたローカルタグ32をすべて用いることによってグローバルタグ52を決定することを目的とする。
暗号文メッセージ50は、平文メッセージ10内のブロック11と暗号文メッセージ50内の対応するブロック51との間のそれぞれの位置を保持するように、暗号文ブロック51をすべてともに組み合わせることによって、特に、前述の順序付けられた方式に従ってチェーンを形成するようにそれらを連結することによって、取得される。関連データ15が典型的にはメッセージ10のヘッダである可能性があるならば、従って、それは暗号化されないままであり、暗号文メッセージ50に対して単に添付される。処理の終端において、暗号文メッセージ50、その関連データ15(もしあれば)、及びグローバルタグ52は、3つの統合された関連エンティティをともに形成する。
本発明を実施する好ましい方法は、暗号化フェーズの間に講じられた複数の反復(IT1、IT2、IT3、…ITi)を通じて、動作及びステップを示す図2によって、更に詳細な記述においてここで説明されることになる。これらの反復の各々は、1セットのステップ及び動作の終端において1つの暗号文ブロック51を提供する。
第1の動作は、第1のデータ21をレジスタ23内にロードすることである。好ましくは、及び図2において表現された実施形態に示すように、第1の反復IT1の第1のデータ21は、任意の乱数又は偽似乱数生成器によって生成されることができる初期化ベクトルIVである。次の動作は、以下の3つの主ステップを実行することによって方法の巡回を実行するように意図する。
巡回の第1のステップは、ブロック暗号アルゴリズム(E)35内に入力データ20を入力するために用いられる。このアルゴリズムは、DES、IDEA、AES、又は任意の他のブロック暗号アルゴリズムを指すことができる総括的なブロック暗号化方式である。入力データ20は、レジスタ23内にロードされたデータ、即ち第1のデータ21及びカウンタデータ(CDti)22を備える。カウンタデータ22は、カウンタ(CTR)25によって提供される値を指す。このカウンタは、新たな反復ITnが講じられる度に、それが更新される、即ちインクリメントされる(又はデクリメントされる)ので、アップデータ(即ち更新するための装置)として見なされることができる。従って、各巡回は、新たなカウンタデータ(CDt1、CDt2、…CDti、CDti+1)とともに開始する。カウンタデータは、所謂「ノンス(nonce)」として、即ち「1回だけ用いられる数(number used once)」として、用いられる。実際は、カウンタによって提供される各値は、すべての処理されたブロック11にわたってユニークである。
巡回の第2のステップの間に、暗号文30は、単一の暗号鍵(K)34を用いて入力データ20を暗号化することによって、計算され、その後ブロック暗号アルゴリズム35から出力される。この暗号文30は、第1のセグメント(S1)31と第2のセグメント32とを備える。後者は、認証タグ(Tn)であるものとして、特に、第1のセグメント31を認証するローカルタグであるものとして、定義される。好ましくは、グローバルタグが各反復の間に漸進的に決定されるケースにおいて、グローバルタグ52が計算されるか、又は少なくとも一時的に次の巡回の次のローカルタグ32と共に中間の計算が実行されるまで、ローカルタグ32は、メモリ内に格納される。
巡回の第3のステップは、現在の平文ブロック11の暗号文ブロック51を計算することに専念する。このため、暗号文ブロック51は、第1のセグメント31、現在の平文ブロック11、及びローカルタグ32をオペランドとして使用して、第1の演算41を実行することによって決定される。従って、暗号文ブロック51は、3つのデータ上で実行された演算結果である。
この第1の演算41が3つのオペランドを用いるとすれば、従って、それは2ステップにおいて、即ち第1の演算子を用いて第1のサブ演算OP11を実行することによって、その後第2の演算子を用いて第2のサブ演算OP12を実行することによって、実行される。典型的には、2つのサブ演算OP11、OP12は、論理演算(ブール代数)、典型的には可換演算である。更に好ましくは、演算子の少なくとも1つは、排他的論理和演算(XOR演算)である。
それに加えて、XORサブ演算の交換法則に起因して、3つのオペランドが第1の演算41内で任意の順序において処理されていることができる、ということは注目されるべきである。図1の例に示すように、現在の平文ブロック11は、第1のサブ演算OP11によって第1のセグメント31と共に処理され、その後、この第1のサブ演算の結果は、第2のサブ演算OP12によってローカルタグ32と共に処理される。その結果、第2のサブ演算OP12は、暗号文ブロック51を提供し、第1の反復IT1を終了する。
XOR演算等のブール演算を用いる代わりに、第2のサブ演算OP12が、入力として用いられる2つのオペランドの1つが未知の場合、所与の暗号文ブロック51に対して(即ち所与の出力に対して)他のオペランドを演算することが可能にならないように、これらの2つのオペランドの分散を混合することができる任意の他の関数に基づくことができる、ということは注目されるべきである。しかしながら、関数は、確実に可逆的なままでなければならず、さもなければ、復号化の実現は可能ではないだろう。例えば、モジュラー加算が暗号化フェーズの間に演算として用いられると、モジュラー減算が、復号化フェーズの間にモジュラー加算の代わりに用いられることになる。従って、復号化フェーズの間に実行される演算は、暗号化フェーズの間に実行された演算の逆になる。
XOR演算は、最も当然の選択であるが、モジュラー減算又はそれぞれのモジュラー除算が復号化フェーズとして用いられれば、暗号化フェーズの間にこのような演算を実行するためにモジュラー加算又はモジュラー乗算が用いられ得る、ということが注目されるべきである。但し、このようなモジュラー演算は、それらが他のサイドチャネル攻撃によって用いられ得る情報(例えばモジュラー加算における繰り上げビット)をリリースするかもしれないので、それほど適切ではない。
すべての平文ブロック11が完全には処理されていない限り、レジスタ23には、その後、暗号文ブロック51が(即ち図2に示したように、現在若しくは最後に計算された暗号文ブロック51が)再ロードされ、更新関数、例えばインクリメント関数は、新たな巡回を実行する前に(即ち上述の巡回の第1のステップから再開する前に)カウンタデータ22に対して適用される。従って、第2の反復IT2の第1のデータ21は、第1の反復IT1から生じた暗号文ブロック51に対応することになり、第2の反復のカウンタデータCDt2は、第1の反復IT1のカウンタデータCDT1に対して適用されたインクリメント関数の結果に対応することになる。本明細書において、表現「インクリメント関数(incrementing function)」は、「更新関数(updating function)」の好ましい実施形態として用いられることになる。従って、「インクリメント関数」を任意の「更新関数」で置き換えることができるということは理解されるべきである。同様に、本明細書において言及されるカウンタ25は、既に上で記されているような「アップデータ(updater)」と見なすことができる。
平文ブロック11がすべて処理されると、レジスタ23には、最後に計算された暗号文ブロック51が再ロードされ、カウンタのインクリメント関数は、先の反復のように、(現在の)カウンタデータCDTiに対して適用される。但し、巡回の2つの第1のステップのみが、その後、暗号鍵34を用いてブロック暗号アルゴリズム35内で処理された入力データ20から(即ちci及びCDti+1から)暗号文30を得るために実行される。従って、これらの動作は、(前に行われたものとして)完了した反復を指すことはないが、むしろ部分的な反復であると見なされるべきである。この最後の暗号文30から、ローカルタグ(Ti+1)32は、その後、計算されたすべてのローカルタグ、即ち第1の反復IT1から計算されたすべてのローカルタグを用いて第2の演算(OP2)42によってグローバルタグ52を計算するために用いられる。この部分的な反復のローカルタグ(第2のセグメント32)のみが用いられるということは注目されるべきである。従って、第1のセグメント31の決定は、オプションのままであるが、単一のデータとして処理された暗号文30の計算を通じて暗に行われる。
第2の演算(OP2)の結果は、グローバルタグ52を提供する。この結果は、第1の演算(OP1)の結果を決定することと同様の方法で、即ち複数のサブ演算(OP21〜OP2i)によって、計算される。好ましくは、各サブ演算は、関連する反復ITnのローカルタグTnと、先の反復ITn−1において決定された先のサブ演算の結果とを、オペランドとして用いる。第2の演算OP2の性質(即ち種類)は、第1の演算OP1の性質と同様又は同一である。同じことが、グローバルタグ52を決定するためにオペランドが用いられる順序の点で当てはまる。すべてのローカルタグからのグローバルタグ52の決定は、動作モードの第2のパスに対応する。
暗号文メッセージ50は、以降に記載される逆方向処理の間に暗号文メッセージ50から平文メッセージ10を回復するために再使用される特定の順序において、すべての暗号文ブロック51をともに組み合わせる(連結する)ことによって決定される。例えば、このような順序は、平文ブロック11が処理された順序と同一にすることができる。変形において、これらのブロックが処理されたときの順序を識別するために各暗号文ブロック51に対してインデックスがアサインされ得る。
有利的には、2つのオペランドの代わりに3つのオペランドを用いることにより第1の演算OP1を実行することによって、暗号文ブロック51は、単一の演算から起因しないが、2つの連続的な演算、即ち第1のサブ演算OP11及び第2のサブ演算OP12から起因する。第1のサブ演算は、入力として3つのオペランドのうちの2つを用い、第2のサブ演算は、入力として第3のオペランドと第1のサブ演算の結果とを用いる。多くの入力(例えば100,000のパワートレースを観測するために100,000回)にわたってブロック暗号アルゴリズムを実行することによって、このような処理上にDPA攻撃を実行するつもりの攻撃者は、最初の2つのオペランドに基づいて決定される中間出力に対してアクセスできないことになる。それどころか、攻撃者は、第2のサブ演算OP12の後に提供される出力を観測することができるのみである。従って、攻撃者は、第1のサブ演算OP11を分析することができる前に、まず第2のサブ演算を攻撃する必要があることになる。しかしながら、第2のサブ演算は、2つの未知の値に基づくのであり、双方は、一様に分散し相互に関連しない。その結果、DPAは作動しないか、又は、従来技術の処理の1つにこのような攻撃を適用するよりも本発明の主題に対してこのような攻撃を適用するほうが、少なくともはるかに困難であろう。
1つの実施形態によれば、方法は、第1のデータ21(即ちレジスタ23内にロードされたデータ)とカウンタデータ22との間の共通のビット長を回復するための予備的なステップを更に備える。この予備的なステップは、第1のデータ21及びカウンタデータ22が同じビット長を有しないケースにおいて実行される。好ましくは、この予備的なステップは、ブロック暗号アルゴリズム35に、又はアルゴリズム35自体の内部に、前記入力データ20を入力する前に講じられる。好ましくは、第1のセグメント31及びローカルタグ32は、同じビット長を有する。そうでなければ、方法は、これらの2つのセグメント間で同じビット長を回復するために、付加的なステップ(パディングステップ)を更に備えてもよい。更に、好ましくは、第1のデータ21(例えばIV)、カウンタデータ22、第1のセグメント31、及び第2のセグメント32(ローカルタグ)は、すべて、同じビット長、即ち入力データ20のビット長の半分)を有する。
図3に示す1つの実施形態によれば、第1のデータ21は、オペランドとして平文関連データ(AD)24を用いた初期演算(OP0)43の結果であることができる。この図の例に示すように、初期化ベクトルIVは、初期演算43の第2のオペランドとして用いられてもよい。関連データ24は、典型的には、平文メッセージ10のヘッダに関してもよい。この場合、ヘッダ(即ち関連データ)がメッセージ自身と同じ方法で処理されないが、それはメッセージの付録のままである、ということは理解されるべきである。初期演算OP0の性質は、第1の演算OP1の性質、又は第2の演算OP2の性質と同様又は同一である。通常、関連データは、初期化ベクトルに対して追加される。
図4を参照すると、図4は、図2に示す暗号化フェーズに従って取得された暗号文メッセージ50の復号化フェーズを示す。平文メッセージ10(図2)を暗号化するための動作モードが可逆的な暗号化処理に関するならば、図4に示す復号方法は、図2の暗号方法と非常に類似する。
より具体的には、図4は、暗号文メッセージ50から、平文メッセージ10と前記平文メッセージを認証するためのグローバルタグ52とを提供するための巡回反復を用いるブロック復号方法を表現する。暗号文メッセージ50は、複数の順序付けられた暗号文ブロック51に変換され、それらはすべて同じビット長を有する(このような演算は、図4には示さないが、図1に示したものと類似する)。特に、このビット長は、暗号化フェーズ(図2)の間に、この暗号文メッセージ50の起源であった平文メッセージ10から平文ブロック11を取得するために定義されたものと同一である。暗号化フェーズに関して説明されるように、もしあれば、終端ブロック(関連する暗号化フェーズの間にパディングされたブロックに応じた第1のブロック又は最後のブロック)に対してもパディングステップを適用することができる。暗号文ブロック51の各々は、巡回の間に現在の暗号文ブロックとして順序付けられた方式で連続的に処理される。特に、この順序付けられた方式は、平文メッセージ10内のブロック11と暗号文メッセージ50内の対応するブロック51との間のそれぞれの位置を保持することを可能にする。
概して言えば、暗号化フェーズの間に実行された動作と同じ動作が講じられ、即ち第1のデータ21をレジスタ23内にロードし、その後、以下のステップを実行することによって巡回を実行する。
ブロック復号アルゴリズム35内に入力データ20を入力するための第1のステップ。この入力データは、レジスタ23内にロードしたデータとカウンタデータ22とを備える。
ブロック復号アルゴリズム35内で、単一の暗号鍵34(即ち暗号化フェーズに用いられたものと同じ鍵K)を用いて入力データ20を復号化することによって第1の出力30を計算するための第2のステップ。この第1の出力30は、第1のセグメント31と第2のセグメント32とを備え、後者は認証ローカルタグとして定義される。
第1のセグメント31、現在の暗号文ブロック51、及び第2のセグメント32(即ち現在の反復によって提供されたローカルタグ)をオペランドとして使用して第1の演算(OP1)41を実行することによって平文ブロック11を計算するための第3のステップ。従って、平文ブロック11は、3つのデータ上で実行された演算結果である。この第1の演算41が3つのオペランドを用いるとすれば、従って、それは暗号化フェーズに関して既に説明されたような2つのステップにおいて実行される。
復号化フェーズ(図4)の間に実行された演算(OP1)41が、暗号化フェーズ(図2)の間に実行された演算(OP1)41とは逆であるということが注目されるべきである。更に、これらの演算41の各々が2つの連続的なサブ演算(即ち第1のOP11及びその後のOP12)を備えるので、暗号化フェーズにおいて実行された第2のサブ演算OP12の逆に対して、復号化フェーズの間に実行された第1のサブ演算OP11が対応するということが理解されるべきである。同様に、復号化フェーズの間に実行された第2のサブ演算OP12は、復号化フェーズの間に第1に実行したサブ演算OP11の逆に対応する。
すべての暗号文ブロック51が完全には処理されていない限り、レジスタには、現在の暗号文ブロック51が(即ち、図4に示すように、最後に計算された暗号文ブロック51が)次の反復の間に再ロードされ、インクリメント関数は、新たなカウンタデータ22を得るために先の反復のカウンタデータ上に、カウンタ25によって、適用される。本復号方法の第1のステップから再び開始することによって、現在の新たな反復において、新たな巡回を実行するときに、この新たなカウンタデータ22が用いられることになる。特に、インクリメント関数は、暗号化フェーズの間に用いられる関数と同じ関数である。更に、復号化フェーズの間に開始値として(即ち第1の反復IT1’によって)用いられる第1のカウンタデータ(CDt1)は、暗号化フェーズの間に開始値として(第1の反復IT1によって)用いられるものと同じである。この理由のために、暗号文メッセージ50を復号化することを担当している復号化装置に対して暗号化フェーズの第1のカウンタデータ(CDt1)を送信できる。典型的には、例えば暗号文メッセージ50の(暗号化されていない)ヘッダにおいて暗号文メッセージ50と共にこのようなカウンタデータ(CDt1)が送信され得る。更に、このデータが任意の理由のために(例えば送信器と受信器との間の再同期化の目的のために)復号化装置に対して再送信されるべき場合において、暗号化装置内部にこのカウンタデータ(CDt1)を少なくとも一時的に格納することもできる。同じことは、第1のデータ21(IV)に関しても当てはまる。別の方法によれば、初期のカウンタデータ(CDt1)は、それを通信する必要がないように、デフォルト値に設定することができる(例えば、1に設定することができる)。実際には、第1の反復IT1とIT1’との間で、レジスタ内に同じ第1のデータ21をロードしなければならない。従って、第1のカウンタデータと同じような方法によって第1のデータ21(IV)が送信され得るし、又は同じ理由のために暗号化装置内に格納され得るし、又は通信される必要がなくデフォルト値に設定することができる。変形において、初期化フェーズの間に、暗号化装置と復号化装置との間で、第1のカウンタデータ(CDt1)、第1のデータ21(IV)、及び暗号鍵34(K)及び/又はカウンタ25のインクリメント関数などの変化するかもしれない他のデータは、少なくとも一旦共有され得る。例えば、システムをリセットするか又はシステムを更新するために、このような初期化フェーズを後で再び行うことができる。
平文メッセージ10は、暗号文メッセージ50を提供するために暗号化フェーズの間に元来用いられた平文メッセージを検索するように、上記のように、同じ順序ですべての巡回の間に取得された平文ブロック11を組み合わせること(連結すること)によって決定される。
その後、レジスタ23には、現在の暗号文ブロック51が(即ち、最後の反復ITi’の間に処理された最後の暗号文ブロック51が)再ロードされ、インクリメント関数は、(部分的な反復を参照する際に暗号化フェーズの間に実行されたものと同様に)巡回の最初の2ステップのみを実行する前に最後のカウンタデータ22にもう1回適用される。この最後の第1の出力30から、ローカルタグ(Ti+1)32は、その後、オペランドとして計算された認証ローカルタグ32をすべて用いる第2の演算(OP2)42によってグローバルタグ52(TG)を計算するために用いられる。暗号化フェーズに関して既に説明されたように、第2の演算OP2から起因するグローバルタグ52は、第1の演算(OP1)の結果を決定することと同様の方式で、即ち複数のサブ演算(OP21〜OP2i)によって、計算される。暗号化フェーズの間に言及されたものと同じ種類の演算及び変形は、復号化フェーズの間に適用されることができる。
暗号化フェーズ又は復号化フェーズに関係なく、一旦ブロック11及び51がすべて処理されていれば、サブ演算(OP21〜OP2i)は、必ずしも計算されない、ということは注目されるべきである。実際は、これらのサブ演算は、中間結果を決定することによって、各反復の間に1つずつ漸進的に計算され得る。次の反復(又は処理の終端における部分的な反復)によって提供された次のローカルタグ(第2のオペランド)によりオペランドとして処理されるまで、この中間結果をメモリ内に格納することができる。それぞれのブロック11、51からメッセージ10、50を決定するための同じ原理が適用されることができる。
それに加えて、アルゴリズム35の逆方向特性のために、暗号化フェーズにおいて言及されたブロック暗号アルゴリズムが復号化フェーズのブロック復号アルゴリズムと同じである、ということに留意するべきである。更に、アルゴリズム35によって提供される結果が復号化フェーズにおける所謂「第1の出力」30であるとして定義される、ということに留意するべきである。この表現は、この出力がむしろ復号化されたデータであると見なされるべきであるので、用語暗号文の代わりに選択されている(技術的に言うと、アルゴリズム35には所謂第1の出力と所謂暗号文との間に違いがないが)。
1つの実施形態によれば、ブロック復号方法は、レジスタ23内にロードされた第1のデータ21とカウンタデータ22との間の共通のビット長を回復するための予備的なステップを更に備える。この予備的なステップは、第1のデータ21及びカウンタデータ22が同じビット長を有しないケースにおいて用いられる。このような予備的なステップは、ブロック暗号アルゴリズム35内に入力データ20を入力する前に講じられることになる。
暗号化フェーズに関して既に言及されたように、第1のデータ21は、初期化ベクトルIV、特に、カウンタデータ22のビット長と同じビット長を有する単一のブロックにすることができる。
1つの実施形態によれば、及び図3に示したものと同様に、第1のデータ21は、平文関連データ24をオペランドとして用いる初期演算OP0の結果であってもよい。好ましくは、この初期演算OP0、第1の演算OP1及び第2の演算OP2は、排他的論理和演算である。しかしながら、及び前述のように、他の種類の演算を用いることもできる。
更に、本復号方法の暗号文メッセージ50は、認証データ(特に、関連するブロック暗号方法によって暗号化フェーズの間に取得されるグローバルタグ)に更に関連づけられることができる、ということに留意するべきである。このような場合において、本復号方法は、この関連する認証データが復号方法の第2のパスによって決定されたグローバルタグ52と同一であるか否かをチェックするためのステップを更に備えることができる。グローバルタグ52が暗号文メッセージ50に関連づけられた認証データと同一でなければ、後者は信頼性がないものとして宣言されることになる。
暗号化フェーズ及び復号化フェーズが、暗号化方法及び復号化方法としてそれぞれ提示されてきたが、本発明は、また、暗号化フェーズ及び復号化フェーズの両方を備える単一の方法に言及することもできる。
本発明は、また、本明細書において開示された方法又は実施形態の1つを実施するための暗号装置60、60’に言及する。図1、図2、及び図5を参照すると、第1の暗号装置60は、平文メッセージ10から、暗号文メッセージ50と暗号文メッセージを認証するためのグローバルタグ52とを提供するための巡回反復を用いるブロック暗号方法の実施に専用である。このため、暗号装置60は、以下の構成要素、即ち、
・第1のデータ21を受信するための、典型的にはメモリ(例えばメモリセル)の形式の、レジスタ23と、
・更新関数fに従って再現可能なデータ22を更新するためのアップデータ25であって、例えば、それは、インクリメント関数(f)に従ってカウンタデータ22をインクリメントするためのカウンタ25を指してもよいアップデータ25と、
・少なくとも平文メッセージ10を受信するためのインタフェース61と、
・全く同じビット長を有する複数の順序付けられた平文ブロック11(m1、m2、…mi)に、平文メッセージ10を変換して好ましくは格納するための変換装置62と、
・巡回の間に現在の平文ブロックとして、順序付けられた方式で平文ブロック11の各々を連続的に処理するための処理装置64であって、ブロック暗号アルゴリズム35をホスティングする暗号装置65と、単一の暗号鍵34(K)を備えるメモリ66とを更に備える処理装置64と
を備える。
各巡回は、
・ブロック暗号アルゴリズム35内に入力データ20を(例えば図5に示すような処理装置64を通じて)入力するための第1のステップであって、この入力データ20は、レジスタ23のデータ21と再現可能なデータ(カウンタデータ22)とを備える第1のステップと、
・単一の暗号鍵34を用いて入力データ20を暗号化することによって暗号文30を、ブロック暗号アルゴリズム35内で計算するための第2のステップであって、暗号文30は第1のセグメント31と第2のセグメント32とを備え、後者は、認証ローカルタグとして定義されており、例えば、処理装置64の内部又は外部に配置されたメモリ66内のメモリ内に格納される第2のステップと、
・第1のセグメント31、現在の平文ブロック11、及び第2のセグメント32(即ちローカルタグ)をオペランドとして使用して第1の演算OP1を実行することによって、暗号文ブロック51を計算し、例えばこのようなメモリ66内に格納するための第3のステップと
を備える。
すべての平文ブロック11が完全には処理されていない限り、処理装置64は、現在の暗号文ブロック51(即ち最後に計算された暗号文ブロック51)をレジスタ23に再ロードし、第1のステップから再び開始することによって新たな巡回を実行する前にカウンタデータ22をインクリメントするように(即ち再現可能なデータを更新するように)更に構成される。
変換装置62は、平文メッセージ10内のブロック11と暗号文メッセージ50内の対応するブロック51との間のそれぞれの位置を保持するように、順序付けられた方式で、特に前述の順序付けられた方式で、すべての巡回の暗号文ブロック51(c1、c2、…ci)を連結することによって暗号文メッセージ50を決定するように更に構成される。
処理装置64は、最後に計算された暗号文ブロック51をレジスタ23に再ロードし、巡回の最初の2ステップのみを実行する前にそれをインクリメントするためにカウンタデータ22にインクリメント関数(f)を適用するように更に構成される。その後、処理装置64は、すべての計算された認証ローカルタグ(32)をオペランドとして使用して、例えばメモリ66から、第2の演算OP2によってグローバルタグ52を計算するように構成される。
インタフェース61(又は任意の他のインタフェース)は、暗号文メッセージ50及びグローバルタグ52を出力するように更に構成される。
変換装置62によって実行される変換演算は、平文メッセージ10を同じビット長を有するブロック11に分割し、もしあれば、1回分割されたこの平文メッセージの2つの終端ブロック11の少なくとも1つに適用されるパディング演算に関係することができる。
暗号装置60は、本明細書に開示された実施形態のいずれかによる方法を実施するために用いることができる初期化ベクトル(IV)を生成するための生成器67(又は擬生成器)を更に含むことができる。このようなジェネレータ(又は別のもの)は、初期値によってカウンタ25を初期設定するために、典型的にはリセット目的のために、用いられ得る。それに加えて、レジスタ23、カウンタ25、及びもしあれば生成器67は、処理装置64内に配置され得る、ということは注目されるべきである。
第1の装置として、特に送信器側において、動作する場合、暗号化装置60は、第2の装置として、特に受信器側において動作する、復号化装置60’によってその後復号化されることになる平文メッセージ10を暗号化するために用いられるように典型的には意図される。復号化フェーズが暗号化フェーズの逆方向処理に対応するならば、暗号化装置を形成する電子構成要素は、復号化装置の電子構成要素と同一又は類似する。復号化装置のいくつかの構成要素に関連づけられた関数のみが、暗号化装置の構成要素とは異なることができる。従って、本発明の復号化装置も、また、図5の構成要素を参照して以降記載されることになる。
従って、この第2の装置は、暗号文メッセージ50から、平文メッセージ10と平文メッセージを認証するためのグローバルタグ52とを提供するための巡回反復を用いてブロック復号方法を実施する暗号装置60’に関する。この暗号装置60’は、
・第1のデータ21を受信するための、典型的にはメモリ(又はメモリセル)の形式の、レジスタ23と、
・更新関数fに従って再現可能なデータ22を更新するためのアップデータ25であって、例えば、それは、インクリメント関数(f)に従ってカウンタデータ22をインクリメントするためのカウンタ25を指してもよいアップデータ25と、
・少なくとも暗号文メッセージ50を受信するためのインタフェース61と、
・全く同じビット長を有する複数の順序付けられた暗号文ブロック51内に暗号文メッセージ50を変換して好ましくは格納するための変換装置62と、
・巡回の間に現在の暗号文ブロックとして、順序付けられた方式で暗号文ブロック51の各々を連続的に処理するための処理装置64であって、ブロック復号アルゴリズム35をホスティングする暗号装置65と、単一の暗号鍵34(K)を備えるメモリ66とを更に備える処理装置64と
を備える。
各巡回は、
・ブロック復号アルゴリズム35内に入力データ20を入力するための第1のステップであって、この入力データは、レジスタ23内にロードされたデータ21と再現可能なデータ(カウンタデータ22)とを備える第1のステップと、
・単一の暗号鍵34を用いて入力データ20を処理することによって第1の出力30を、ブロック暗号アルゴリズム35内で計算するための第2のステップであって、第1の出力30は第1のセグメント31及び第2のセグメント32を備え、後者は、認証ローカルタグとして定義されており、メモリ、例えばメモリ66内に(少なくとも一時的に)格納される第2のステップと、
・第1のセグメント31、現在の暗号文ブロック11、及び第2のセグメント32(即ちローカルタグ)をオペランドとして使用して第1の演算OP1を実行することによって、平文ブロック11を計算し、その後、(例えばこのようなメモリ66内に)格納するための第3のステップと
を備える。
すべての暗号文ブロック51が完全には処理されていない限り、処理装置64は、現在の暗号文ブロック51(即ち最後に計算された暗号文ブロック51)をレジスタ23に再ロードし、第1のステップから再び開始することによって新たな巡回を実行する前に再現可能なデータを更新するように(即ちカウンタ25のインクリメント関数によってカウンタデータ22をインクリメントするように)更に構成される。
変換装置62は、平文メッセージ10内のブロック11と暗号文メッセージ50内の対応するブロック51との間のそれぞれの位置を保持するために、順序付けられた方式で、特に前述の順序付けられた方式で、すべての巡回の平文ブロック11を連結することによって平文メッセージ10を決定するように更に構成される。
処理装置64は、現在の平文ブロック(即ち、処理されてきた最後の暗号文ブロック)をレジスタ23に再ロードし、巡回の最初の2ステップのみを実行する前にそれをインクリメントするためにカウンタデータ22にインクリメント関数(f)を適用するように更に構成される。その後、処理装置64は、すべての計算された認証ローカルタグ(32)をオペランドとして使用して、例えばメモリ66から、第2の演算OP2によってグローバルタグ52を計算するように構成される。
好ましくは、暗号装置60’の処理装置64は、暗号文メッセージ50と共に提供された認証データとグローバルタグ52とが同一であるか否かをチェックするように更に構成される。このような認証データは、典型的には、暗号装置60によって暗号化フェーズの間に決定されたグローバルタグ52になる。暗号装置60、60’の各々によって提供されるグローバルタグ52間の相違がある(同じメッセージ50に対して)ケースにおいて、これは、平文メッセージ10(又は暗号文メッセージ50)に信頼性がないということを意味する。従って、処理装置64は、適切な動作を講じることができ、例えば、警告メッセージを作動させてもよい、平文メッセージ10のリリースを中断してもよい、及び/又は、報告データとして情報を送信してもよい。
もちろん、インタフェース61は、一旦平文メッセージ10が回復されれば、平文メッセージ10を出力するように更に構成される。
暗号装置60の暗号アルゴリズムが暗号装置60’の復号アルゴリズムとして同じである、ということは注目されるべきである。実際は、このようなアルゴリズム35は、復号化することに加えて暗号化するために用いることができる。
それに加えて、グローバルタグ52を決定することを考慮して、メモリ66(又は別のメモリ)は、グローバルタグが各反復間に漸進的に決定されるという場合には、ローカルタグ32又は中間結果をすべて格納するために用いられることになる。1つの実施形態において、同じ方法で暗号文メッセージ50又は平文メッセージ10を決定することができる。
暗号装置60、60’のメモリ66は、安全なメモリとすることができる。1つの実施形態において、暗号装置60、60’の構成要素は、単一的な装置内に備えられ、そのため、それは単一的な装置を破壊することなく、構成要素に、特に少なくとも機密に属する構成要素に物理的にアクセスすることができないだろう。
暗号鍵34は、暗号装置60、60’によって暗号化又は復号化の両方の目的のために使用される。
本開示の実施形態が具体例の実施形態に関連して記載されてきたが、様々な改良及び変更が、これらの実施形態の広い範囲から逸脱せずに、これらの実施形態に対して行われてもよいことは明らかだろう。従って、明細書及び図面は、限定的な観念ではなく、むしろ例示的な観念として見なされるべきである。これに関して一部分を形成する添付の図面は、限定ではなく、実例として、発明の主題が実施されることができる特定の実施形態を示す。図示される実施形態は、本明細書に開示された教示を当業者が実施することを可能にするのに十分に詳細な記述で記載されているものと確信する。他の実施形態が、この開示の範囲から逸脱せずに構造及び論理的な置換及び変更がなされ得るように、そこから利用され、導き出されてもよい。この詳細な説明は、従って、限定的な意味にとることはできないし、様々な実施形態の範囲は、添付された特許請求の範囲が権利をもつすべての範囲の等価物に加えて、添付の特許請求の範囲によってのみ規定される。
発明の主題のこのような実施形態は、実際上1つ以上が開示されるいかなる単一の発明の概念に、この出願の範囲を自発的に限定する意図を伴わずに、単に利便性のために用語「発明」によって、本明細書において、個々に及び/又は総体として参照されてもよい。このように、特定の実施形態が本明細書に図示され記載されたが、同じ目的を実現するように計画された任意の設備が、示された特定の実施形態の代わりに用いられてもよい、ということは認識されるべきである。この開示は、様々な実施形態のあらゆる適応又は変形を網羅するように意図される。上記の実施形態の組み合わせ、及び特に本明細書に記載されない他の実施形態は、上記の明細書の検討に際して当業者にとって明らかになる。

Claims (16)

  1. 平文メッセージ(10)から、暗号文メッセージ(50)と前記暗号文メッセージ(50)を認証するためのグローバルタグ(52)とを提供するために巡回反復を用いるブロック暗号方法であって、前記平文メッセージ(10)は、既定のビット長を有する複数の順序付けられた平文ブロック(11)に変換され、前記平文ブロック(11)の各々は、巡回の間に現在の平文ブロックとして順序付けられた方式で連続的に処理され、前記方法は、
    ・第1のデータ(21)をレジスタ(23)内にロードする動作と、
    ・ブロック暗号アルゴリズム(35)内に入力データ(20)を入力するための第1のステップであって、前記入力データ(20)は、前記レジスタ(23)のデータ(21)と再現可能なデータ(22)とを備える第1のステップと、
    ・前記ブロック暗号アルゴリズム(35)内で、単一の暗号鍵(34)を用いて前記入力データ(20)を暗号化することによって暗号文(30)を計算するための第2のステップであって、前記暗号文(30)は、第1のセグメント(31)と第2のセグメント(32)とを備え、後者は認証ローカルタグとして定義される第2のステップと、
    ・前記第1のセグメント(31)、前記認証ローカルタグ、及び前記現在の平文ブロック(11)をオペランドとして使用して第1の演算(41)を実行することによって暗号文ブロック(51)を計算するための第3のステップと
    の各ステップを実行することによって前記巡回を実行する動作と、
    ・すべての前記平文ブロック(11)が巡回において処理されていない限り、前記暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記第1のステップから再び開始することによって新たな巡回を実行する前に前記再現可能なデータ(22)に更新関数を適用する動作と、
    ・前記順序付けられた方式において、すべての巡回の前記暗号文ブロック(51)を連結することによって前記暗号文メッセージ(50)を決定する動作と、
    ・その後、最後に計算された暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記巡回の最初の2ステップのみを実行する前に前記再現可能なデータ(22)に対して前記更新関数を適用する動作と、
    ・その後、オペランドとして前記計算された認証ローカルタグ(32)をすべて用いて第2の演算(42)によって前記グローバルタグ(52)を計算する動作と
    を備えることを特徴とする方法。
  2. 前記レジスタ(23)の前記第1のデータ(21)及び前記再現可能なデータ(22)が同じビット長を有していなくても、前記第1のデータ(21)と前記再現可能なデータ(22)との間の共通のビット長を回復するための予備的なステップであって、ブロック暗号アルゴリズム(35)内に前記入力データ(20)を入力する前に講じられる前記予備的なステップを更に備える請求項1に記載のブロック暗号方法。
  3. 前記第1のデータ(21)は、初期化ベクトルである請求項1又は2に記載のブロック暗号方法。
  4. 前記第1のデータ(21)は、オペランドとして平文テキスト関連データ(24)を用いた初期演算(43)の結果である請求項1又は2に記載のブロック暗号方法。
  5. 前記初期演算(43)と前記第1の演算(41)及び前記第2の演算(42)とは、排他的論理和演算である請求項1〜4のいずれか1項に記載のブロック暗号方法。
  6. 前記平文メッセージ(10)が前記平文ブロック(11)のビット数の倍数でないビット数を有するケースにおいて、少なくとも1デフォルトビットにより終端の平文ブロック(11)をパディングするためのステップを更に備える請求項1〜5のいずれか1項に記載のブロック暗号方法。
  7. 前記第3のステップにおける前記第1の演算(41)が、第1のサブ演算(OP1 1 )及び第2のサブ演算(OP1 2 )を含み、前記第1のサブ演算(OP1 1 )がオペランドとして現在の平文ブロック及び第1のセグメント(31)を使用し、前記第2のサブ演算(OP1 2 )がオペランドとして前記認証ローカルタグ及び前記第1のサブ演算(OP1 1 )の結果を使用する請求項1に記載のブロック暗号方法。
  8. 暗号文メッセージ(50)から、平文メッセージ(10)と、前記平文メッセージを認証するためのグローバルタグ(52)とを提供するために巡回反復を用いるブロック復号方法であって、前記暗号文メッセージ(50)は、同じビット長を有する複数の順序付けられた暗号文ブロック(51)に変換され、前記暗号文ブロック(51)の各々は、巡回の間に現在の暗号文ブロックとして順序付けられた方式で連続的に処理され、前記方法は、
    ・第1のデータ(21)をレジスタ(23)内にロードする動作と、
    ・ブロック復号アルゴリズム(35)内に入力データ(20)を入力するための第1のステップであって、前記入力データ(20)は、前記レジスタ(23)のデータ(21)と再現可能なデータ(22)とを備える第1のステップと、
    ・前記ブロック復号アルゴリズム(35)内で、単一の暗号鍵(34)を用いて前記入力データ(20)を復号化することによって第1の出力(30)を計算するための第2のステップであって、前記第1の出力は、第1のセグメント(31)と第2のセグメント(32)とを備え、後者は認証ローカルタグとして定義される第2のステップと、
    ・前記第1のセグメント(31)、前記認証ローカルタグ、及び前記現在の暗号文ブロック(51)をオペランドとして使用して第1の演算(41)を実行することによって平文ブロック(11)を計算するための第3のステップと
    の各ステップを実行することによって前記巡回を実行する動作と、
    ・すべての前記暗号文ブロック(51)が巡回において処理されていない限り、前記現在の暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記第1のステップから再び開始することによって新たな巡回を実行する前に前記再現可能なデータ(22)に更新関数を適用する動作と、
    ・前記順序付けられた方式において、すべての前記巡回の前記平文ブロック(11)を連結することによって前記平文メッセージ(10)を決定する動作と、
    ・その後、前記現在の暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記巡回の最初の2ステップのみを実行する前に前記再現可能なデータ(22)に対して前記更新関数を適用する動作と、
    ・その後、オペランドとして前記計算された認証ローカルタグ(32)をすべて用いて第2の演算(42)によって前記グローバルタグ(52)を計算する動作と
    を備えることを特徴とする方法。
  9. 前記レジスタ(23)の前記第1のデータ(21)及び前記再現可能なデータ(22)が同じビット長を有していなくても、前記第1のデータ(21)と前記再現可能なデータ(22)との間の共通のビット長を回復するための予備的なステップであって、ブロック暗号アルゴリズム(35)内に前記入力データ(20)を入力する前に講じられる前記予備的なステップを更に備える請求項に記載のブロック復号方法。
  10. 前記第1のデータ(21)は、初期化ベクトルである請求項又はに記載のブロック復号方法。
  11. 前記第1のデータ(21)は、オペランドとして平文関連データ(24)を用いた初期演算(43)の結果である請求項又はに記載のブロック復号方法。
  12. 前記初期演算(43)と前記第1の演算(41)及び前記第2の演算(42)とは、排他的論理和演算である請求項11のいずれか1項に記載のブロック復号方法。
  13. 前記暗号文メッセージ(50)は、認証データを更に備え、前記方法は、前記認証データが前記グローバルタグ(52)と同一であるか否かをチェックするためのステップを更に備え、そうでなければ、暗号文メッセージ(50)は、信頼性がないものとして宣言される請求項12のいずれか1項に記載のブロック復号方法。
  14. 平文メッセージ(10)から、暗号文メッセージ(50)と、前記暗号文メッセージ(50)を認証するためのグローバルタグ(52)と、を提供するために巡回反復を用いるブロック暗号方法を実施するための暗号装置(60)であって、
    ・第1のデータを受信するためのレジスタ(23)と、
    ・更新関数に従って再現可能なデータ(22)を更新するためのアップデータ(25)と、
    ・少なくとも前記平文メッセージ(10)を受信するためのインタフェース(61)と、
    ・同じビット長を有する複数の順序付けられた平文ブロック(11)に、前記平文メッセージ(10)を変換し格納するための変換装置(62)と、
    ・巡回の間に現在の平文ブロックとして、順序付けられた方式で前記平文ブロック(11)の各々を連続的に処理するための処理装置(64)であって、ブロック暗号アルゴリズム(35)をホスティングする暗号装置(65)と単一の暗号鍵(34)を格納するメモリ(66)とを更に備える前記処理装置(64)と
    を備え、
    ・各巡回は、
    ・前記ブロック暗号アルゴリズム(35)内に入力データ(20)を入力するための第1のステップであって、前記入力データ(20)は、前記レジスタ(23)のデータ(21)と再現可能なデータ(22)とを備える第1のステップと、
    ・前記ブロック暗号アルゴリズム(35)内で、前記単一の暗号鍵(34)を用いて前記入力データ(20)を暗号化することによって暗号文(30)を計算するための第2のステップであって、前記暗号文(30)は、第1のセグメント(31)と第2のセグメント(32)とを備え、後者は、認証ローカルタグとして定義されており、前記メモリ(66)内に格納される第2のステップと、
    ・前記第1のセグメント(31)、前記認証ローカルタグ、及び前記現在の平文ブロック(11)をオペランドとして使用して第1の演算(41)を実行することによって暗号文ブロック(51)を計算して前記メモリ(66)に格納するための第3のステップと
    を備え、
    ・前記平文ブロック(11)のすべてが巡回において処理されていない限り、前記処理装置(64)は、前記暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記第1のステップから再び開始することによって新たな巡回を実行する前に前記再現可能なデータ(22)を更新するように更に構成され、
    − 前記変換装置(62)は、前記順序付けられた方式ですべての前記巡回の前記暗号文ブロック(51)を連結することによって、前記暗号文メッセージ(50)を決定するように更に構成され、
    ・前記処理装置(64)は、前記最後に計算された暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記巡回の最初の2ステップのみを実行する前にそれを更新するために前記再現可能なデータ(22)に前記更新関数を適用し、その後、すべての計算された認証ローカルタグ(32)をオペランドとして使用して、前記メモリ(66)から、第2の演算(42)によって前記グローバルタグ(52)を計算するように更に構成され、
    ・前記インタフェース(61)は、前記暗号文メッセージ(50)及び前記グローバルタグ(52)を出力するように更に構成されたことを特徴とする暗号装置。
  15. 暗号文メッセージ(50)から、平文メッセージ(10)と、前記平文メッセージを認証するためのグローバルタグ(52)とを提供するために巡回反復を用いるブロック復号方法を実施するための暗号装置(60’)であって、
    ・第1のデータ(21)を受信するためのレジスタ(23)と、
    ・更新関数に従って再現可能なデータ(22)を更新するためのアップデータ(25)と、
    ・少なくとも前記暗号文メッセージ(50)を受信するためのインタフェース(61)と、
    ・同じビット長を有する複数の順序付けられた暗号文ブロック(51)に、前記暗号文メッセージ(50)を変換し格納するための変換装置(62)と、
    ・巡回の間に現在の暗号文ブロックとして、順序付けられた方式で前記暗号文ブロック(51)の各々を連続的に処理するための処理装置(64)であって、
    ブロック復号アルゴリズム(35)をホスティングする復号装置(65)と単一の暗号鍵(34)を備えるメモリ(66)とを更に備える前記処理装置(64)と
    を備え、
    ・各巡回は、
    ・前記ブロック復号アルゴリズム(35)内に入力データ(20)を入力するための第1のステップであって、前記入力データ(20)は、前記レジスタ(23)のデータ(21)と再現可能なデータ(22)とを備える第1のステップと、
    ・前記ブロック暗号アルゴリズム(35)内で、前記単一の暗号鍵(34)を用いて前記入力データ(20)を処理することによって第1の出力(30)を計算するための第2のステップであって、前記第1の出力(30)は、第1のセグメント(31)と第2のセグメント(32)とを備え、後者は、認証ローカルタグとして定義されており、前記メモリ(66)内に格納される第2のステップと、
    ・前記第1のセグメント(31)、前記認証ローカルタグ、及び前記現在の暗号文ブロック(51)をオペランドとして使用して第1の演算(41)を実行することによって平文ブロック(11)を計算して前記メモリ(66)に格納するための第3のステップと
    を備え、
    ・前記暗号文ブロック(51)が巡回において処理されていない限り、前記処理装置(64)は、前記暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記第1のステップから再び開始することによって新たな巡回を実行する前に前記再現可能なデータ(22)を更新するように更に構成され、
    ・前記変換装置(62)は、前記順序付けられた方式ですべての前記巡回の前記平文ブロック(11)を連結することによって、前記平文メッセージ(10)を決定するように更に構成され、
    ・その後、前記処理装置(64)は、前記現在の暗号文ブロック(51)を前記レジスタ(23)に再ロードし、前記巡回の最初の2ステップのみを実行する前にそれを更新するために前記再現可能なデータ(22)に前記更新関数を適用し、その後、すべての計算された認証ローカルタグ(32)をオペランドとして使用して、前記メモリ(66)から、第2の演算(42)によって前記グローバルタグ(52)を計算するように更に構成され、
    ・前記インタフェース(61)は、前記平文メッセージ(10)を出力するように更に構成されたことを特徴とする暗号装置。
  16. 前記処理装置(64)は、前記グローバルタグ(52)が前記暗号文メッセージ(50)と共に提供された認証データと同一であるか否かをチェックし、そうでなければ、適切な動作を講じるように更に構成される請求項15に記載の暗号装置(60’)。
JP2017529366A 2014-12-03 2015-12-01 メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置 Active JP6557727B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP14196089 2014-12-03
EP14196089.8 2014-12-03
PCT/EP2015/078115 WO2016087395A1 (en) 2014-12-03 2015-12-01 Block cryptographic method for encrypting/decrypting messages and cryptographic devices for implementing this method

Publications (2)

Publication Number Publication Date
JP2017536581A JP2017536581A (ja) 2017-12-07
JP6557727B2 true JP6557727B2 (ja) 2019-08-07

Family

ID=52011041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017529366A Active JP6557727B2 (ja) 2014-12-03 2015-12-01 メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置

Country Status (11)

Country Link
US (2) US11418321B2 (ja)
EP (1) EP3228044B1 (ja)
JP (1) JP6557727B2 (ja)
KR (3) KR102539111B1 (ja)
CN (1) CN107005415B (ja)
AU (1) AU2015357253B2 (ja)
CA (1) CA2968038C (ja)
ES (1) ES2717999T3 (ja)
MX (1) MX366491B (ja)
SG (1) SG11201704361XA (ja)
WO (1) WO2016087395A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10200192B2 (en) * 2017-04-19 2019-02-05 Seagate Technology Llc Secure execution environment clock frequency hopping
JP6735926B2 (ja) * 2017-09-01 2020-08-05 三菱電機株式会社 暗号化装置、復号装置、暗号化方法、復号方法、暗号化プログラム及び復号プログラム
US10944568B2 (en) * 2017-10-06 2021-03-09 The Boeing Company Methods for constructing secure hash functions from bit-mixers
TW201919361A (zh) * 2017-11-09 2019-05-16 張英輝 以雜文加強保護之區塊加密及其解密之方法
KR102488636B1 (ko) * 2017-11-23 2023-01-17 삼성전자주식회사 데이터 및 타임스탬프를 암호화하는 암호화 장치, 이를 포함하는 시스템 온 칩, 및 전자 장치
US10862670B2 (en) * 2018-05-18 2020-12-08 Infineon Technologies Ag Automotive nonce-misuse-resistant authenticated encryption
WO2019225735A1 (ja) * 2018-05-25 2019-11-28 株式会社ZenmuTech データ処理装置、方法及びコンピュータプログラム
US10419408B1 (en) * 2018-09-24 2019-09-17 Karamba Security In-place authentication scheme for securing intra-vehicle communication
US11177933B2 (en) 2019-03-24 2021-11-16 Google Llc Side channel timing attack mitigation in securing data in transit
US20200396054A1 (en) * 2019-06-17 2020-12-17 Macronix International Co., Ltd. Secure Memory Read
CN112580064B (zh) * 2019-09-27 2023-01-13 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112583764B (zh) * 2019-09-27 2022-12-20 华控清交信息科技(北京)有限公司 一种数据处理方法、装置和用于数据处理的装置
US11347895B2 (en) * 2019-12-03 2022-05-31 Aptiv Technologies Limited Method and system of authenticated encryption and decryption
CN112187446A (zh) * 2020-09-25 2021-01-05 兴唐通信科技有限公司 一种认证加密方法、验证解密方法和通信方法
US11546146B2 (en) * 2020-10-05 2023-01-03 Huawei Technologies Co., Ltd. Methods, encoder and decoder using encryption and authentication functions for encrypting and decrypting a message
CN112787820B (zh) * 2021-01-02 2022-02-11 浙江大学 一种适用于硬件实现的轻量级认证加密解密实现方法
CN112765686A (zh) * 2021-01-06 2021-05-07 苏州裕太微电子有限公司 芯片内算法密钥的防功耗攻击架构及方法
US20230259638A1 (en) * 2021-03-29 2023-08-17 Nvidia Corporation Comprehensively obfuscated cryptographic accelerators and operations thereof
CN113660234A (zh) * 2021-08-10 2021-11-16 中和易茂科技服务(北京)有限公司 数据加密传输和解密方法、存储器和处理器
CN113645615B (zh) * 2021-08-12 2023-12-22 衡阳师范学院 轻量级分组密码加密及解密方法
CN114338021B (zh) * 2022-03-15 2022-07-19 阿里云计算有限公司 一种密文混合运算方法及装置
CN117034310B (zh) * 2023-08-08 2024-01-26 苏州申浪信息科技有限公司 基于容器云工厂物料数据可靠记录标签的配置方法

Family Cites Families (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748410B1 (en) * 1997-05-04 2004-06-08 M-Systems Flash Disk Pioneers, Ltd. Apparatus and method for modular multiplication and exponentiation based on montgomery multiplication
US6128737A (en) * 1998-04-20 2000-10-03 Microsoft Corporation Method and apparatus for producing a message authentication code in a cipher block chaining operation by using linear combinations of an encryption key
US7450717B1 (en) * 1999-06-08 2008-11-11 General Instruments Corporation Self authentication ciphertext chaining
DE60042062D1 (de) 2000-01-14 2009-06-04 Mitsubishi Electric Corp Verfahren und vorrichtung zur verschlüsselung oder entschlüsselung und rechnerlesbares medium zur aufzeichnung des programmes
US20020048364A1 (en) * 2000-08-24 2002-04-25 Vdg, Inc. Parallel block encryption method and modes for data confidentiality and integrity protection
US7046802B2 (en) * 2000-10-12 2006-05-16 Rogaway Phillip W Method and apparatus for facilitating efficient authenticated encryption
US7200227B2 (en) * 2001-07-30 2007-04-03 Phillip Rogaway Method and apparatus for facilitating efficient authenticated encryption
DE10201449C1 (de) * 2002-01-16 2003-08-14 Infineon Technologies Ag Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
US6948067B2 (en) * 2002-07-24 2005-09-20 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7254233B2 (en) * 2002-07-24 2007-08-07 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US6950517B2 (en) * 2002-07-24 2005-09-27 Qualcomm, Inc. Efficient encryption and authentication for data processing systems
US7305084B2 (en) * 2002-07-24 2007-12-04 Qualcomm Incorporated Fast encryption and authentication for data processing systems
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7373509B2 (en) * 2003-12-31 2008-05-13 Intel Corporation Multi-authentication for a computing device connecting to a network
US7623656B2 (en) * 2004-02-17 2009-11-24 Qualcomm Incorporated Stream cipher encryption and message authentication
KR100675837B1 (ko) * 2004-12-13 2007-01-29 한국전자통신연구원 고속 gcm-aes 블록 암호화 장치 및 방법
US7610628B2 (en) * 2005-03-01 2009-10-27 Infineon Technologies Ag Apparatus and method for calculating a representation of a result operand
US7715553B2 (en) * 2005-08-01 2010-05-11 Durward D. Dupre Encrypting a plaintext message with authentication
US8509427B2 (en) * 2005-08-01 2013-08-13 Eric Myron Smith Hybrid mode cryptographic method and system with message authentication
KR20080058462A (ko) * 2005-11-04 2008-06-25 닛본 덴끼 가부시끼가이샤 메시지 인증 장치, 메시지 인증 방법, 메시지 인증 프로그램을 기록한 매체
US7725719B2 (en) * 2005-11-08 2010-05-25 International Business Machines Corporation Method and system for generating ciphertext and message authentication codes utilizing shared hardware
KR20080080175A (ko) * 2005-12-14 2008-09-02 엔디에스 리미티드 블록 사이퍼 암호화의 사용을 위한 방법 및 시스템
US8379841B2 (en) * 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
GB2443244A (en) * 2006-10-05 2008-04-30 Hewlett Packard Development Co Authenticated Encryption Method and Apparatus
US8122247B2 (en) * 2006-10-23 2012-02-21 Alcatel Lucent Processing method for message integrity with tolerance for non-sequential arrival of message data
JP4712017B2 (ja) * 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
US20080172562A1 (en) * 2007-01-12 2008-07-17 Christian Cachin Encryption and authentication of data and for decryption and verification of authenticity of data
US9209967B2 (en) * 2007-03-12 2015-12-08 Exelis, Inc. Precalculated encryption key
US8107620B2 (en) * 2007-03-21 2012-01-31 International Business Machines Corporation Simple and efficient one-pass authenticated encryption scheme
TWI342703B (en) * 2007-05-10 2011-05-21 Ind Tech Res Inst Low-latency method and apparatus of ghash operation for authenticated encryption galois counter mode
US20090080646A1 (en) * 2007-09-21 2009-03-26 Chih-Hsu Yen Method And Architecture For Parallel Calculating Ghash Of Galois Counter Mode
US8335316B2 (en) * 2008-04-21 2012-12-18 Broadcom Corporation Method and apparatus for data privacy in passive optical networks
JP5338816B2 (ja) * 2008-09-04 2013-11-13 富士通株式会社 送信装置、受信装置、送信方法および受信方法
KR101076681B1 (ko) * 2008-11-14 2011-10-26 한국전자통신연구원 데이터의 암호화 방법 및 그 복호화 방법
CN102687457A (zh) * 2009-05-15 2012-09-19 里维尔技术有限责任公司 用于加密和解密纯文本消息的具有认证的系统
US20100303229A1 (en) * 2009-05-27 2010-12-02 Unruh Gregory Modified counter mode encryption
US8612352B2 (en) * 2010-10-13 2013-12-17 Square, Inc. Decoding systems with a decoding engine running on a mobile device and coupled to a payment system that includes identifying information of second parties qualified to conduct business with the payment system
EP2290872B1 (en) * 2009-08-27 2014-06-18 Nxp B.V. Device for generating a message authentication code for authenticating a message
EP2507708B1 (en) * 2009-12-04 2019-03-27 Cryptography Research, Inc. Verifiable, leak-resistant encryption and decryption
US9087200B2 (en) * 2009-12-22 2015-07-21 Intel Corporation Method and apparatus to provide secure application execution
EP2553862A1 (en) * 2010-03-31 2013-02-06 Robert Bosch GmbH Method and apparatus for authenticated encryption of audio
WO2011140368A1 (en) 2010-05-05 2011-11-10 Eric Myron Smith Hybrid mode cryptographic method and system with message authentication
US8887246B2 (en) * 2010-06-22 2014-11-11 Telefonaktiebolaget L M Ericsson (Publ) Privacy preserving authorisation in pervasive environments
CN101958790B (zh) 2010-10-09 2012-10-17 中国人民解放军信息工程大学 无线通信网络数字信息加密或解密方法
EP2442483A3 (en) * 2010-10-15 2012-08-15 Certicom Corp. Elliptic curve Pinstov Vanstone signature scheme with authenticated message recovery
CA2806357C (en) * 2010-10-15 2015-03-03 Certicom Corp. Authenticated encryption for digital signatures with message recovery
DE102011009008A1 (de) * 2011-01-20 2012-07-26 Rohde & Schwarz Gmbh & Co. Kg Authentifizierung von verschlüsselten Datenblöcken
JP5167374B2 (ja) * 2011-01-21 2013-03-21 シャープ株式会社 データ暗号化装置、及び、メモリカード
US9160539B1 (en) * 2011-09-30 2015-10-13 Emc Corporation Methods and apparatus for secure, stealthy and reliable transmission of alert messages from a security alerting system
US20140317407A1 (en) * 2011-10-31 2014-10-23 Nec Corporation Incremental mac tag generation device, method, and program, and message authentication device
JP2013098722A (ja) * 2011-10-31 2013-05-20 Kddi Corp ストリーム暗号の暗号化装置、ストリーム暗号の復号装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号方法、およびプログラム
US9166793B2 (en) * 2011-12-05 2015-10-20 University Of Washington Efficient authentication for mobile and pervasive computing
US20130238900A1 (en) * 2011-12-12 2013-09-12 Cleversafe, Inc. Dispersed storage network secure hierarchical file directory
US9425959B1 (en) * 2012-10-03 2016-08-23 Altera Corporation Security variable scrambling
WO2014058971A1 (en) * 2012-10-09 2014-04-17 Huawei Technologies Co., Ltd. Authenticated encryption support in iso/iec 23009-4
WO2014084886A1 (en) * 2012-11-29 2014-06-05 Blackberry Limited Authenticated encryption method using working blocks
US9787475B2 (en) * 2013-03-04 2017-10-10 Nec Corporation Device, method, and program for message authentication tag generation
US20140281587A1 (en) * 2013-03-14 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor
US10237066B1 (en) * 2013-06-27 2019-03-19 Altera Corporation Multi-channel encryption and authentication
AU2014297854B2 (en) * 2013-08-02 2016-12-22 Nec Corporation Authenticated encryption device, authenticated encryption method, and program for authenticated encryption
US9208335B2 (en) * 2013-09-17 2015-12-08 Auburn University Space-time separated and jointly evolving relationship-based network access and data protection system
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
WO2015175365A1 (en) * 2014-05-16 2015-11-19 Thomson Licensing Method and apparatus for generating shorter signatures almost tightly related to standard assumptions
US9537657B1 (en) * 2014-05-29 2017-01-03 Amazon Technologies, Inc. Multipart authenticated encryption
US10623176B2 (en) * 2014-08-20 2020-04-14 Nec Corporation Authentication encryption method, authentication decryption method, and information-processing device

Also Published As

Publication number Publication date
CA2968038C (en) 2024-01-09
KR20170091599A (ko) 2017-08-09
KR102539111B1 (ko) 2023-06-01
MX366491B (es) 2019-07-10
CN107005415B (zh) 2021-03-23
MX2017007015A (es) 2017-10-02
SG11201704361XA (en) 2017-06-29
JP2017536581A (ja) 2017-12-07
KR102628466B1 (ko) 2024-01-23
AU2015357253B2 (en) 2018-03-08
ES2717999T3 (es) 2019-06-26
WO2016087395A1 (en) 2016-06-09
BR112017010974A2 (pt) 2018-01-09
EP3228044B1 (en) 2019-02-20
KR20230079509A (ko) 2023-06-07
KR20240015147A (ko) 2024-02-02
AU2015357253A1 (en) 2017-06-15
EP3228044A1 (en) 2017-10-11
US20230041383A1 (en) 2023-02-09
US20170366340A1 (en) 2017-12-21
US11418321B2 (en) 2022-08-16
CN107005415A (zh) 2017-08-01
CA2968038A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
JP6557727B2 (ja) メッセージを暗号化/復号化するためのブロック暗号方法及びこの方法を実施するための暗号装置
US9497021B2 (en) Device for generating a message authentication code for authenticating a message
WO2010132895A1 (en) System for encrypting and decrypting a plaintext message with authentication
Dobraunig et al. Fault attacks on nonce-based authenticated encryption: Application to keyak and ketje
Lano et al. Power analysis of synchronous stream ciphers with resynchronization mechanism
You et al. Low trace-count template attacks on 32-bit implementations of ASCON AEAD
Li et al. Differential fault analysis on Camellia
Golić Cryptanalytic attacks on MIFARE classic protocol
Biryukov et al. Differential resynchronization attacks on reduced round SNOW 3G⊕
Liu et al. Linear fault analysis of block ciphers
Albiol et al. Low cost AES protection against DPA using rolling codes
Bogdanov et al. How secure is AES under leakage
Kim et al. New Type of Collision Attack on First‐Order Masked AESs
Blankson et al. A Symmetric Scheme for Securing Data in Cyber-Physical Systems/IoT Sensor-Based Systems based on AES and SHA256
Liu et al. Meet‐in‐the‐middle fault analysis on word‐oriented substitution‐permutation network block ciphers
Mentens et al. High-speed Side-channel-protected Encryption and Authentication in Hardware
Alexandrov Nikolov Analysis and Design of a Stream Cipher
Paje et al. 1024Bit Key Fortification of RC6 for Video Encryption
Kiyomoto et al. MASHA–Low Cost Authentication with a New Stream Cipher
Ma Practicality and Application of the Algebraic Side-Channel Attack
Volpe Evaluation of encryption algorithm security in heterogeneous platform against differential power analysis attack
Feix et al. Defeating embedded cryptographic protocols by combining second-order with brute force
Giordano Evaluation of encryption algorithm security in microcontroller-based platforms against differential power analysis attack
Oliynykov Next generation of block ciphers providing high-level security
BR112017010974B1 (pt) Método criptográfico de bloco para criptografia/descriptografia de mensagens e dispositivos criptográficos para implementação deste método

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181126

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20181206

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20190206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190712

R150 Certificate of patent or registration of utility model

Ref document number: 6557727

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