JP2014002351A - 低電力暗号化装置および方法 - Google Patents

低電力暗号化装置および方法 Download PDF

Info

Publication number
JP2014002351A
JP2014002351A JP2012243636A JP2012243636A JP2014002351A JP 2014002351 A JP2014002351 A JP 2014002351A JP 2012243636 A JP2012243636 A JP 2012243636A JP 2012243636 A JP2012243636 A JP 2012243636A JP 2014002351 A JP2014002351 A JP 2014002351A
Authority
JP
Japan
Prior art keywords
round
key
round function
bits
value
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
JP2012243636A
Other languages
English (en)
Other versions
JP5542896B2 (ja
Inventor
Deukjo Hong
得 朝 洪
Jung Keun Lee
定 根 李
Kim Dong Chan
東 燦 金
Daesung Kwon
大 成 權
Kwon Ho Ryu
權 浩 柳
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.)
Electronics and Telecommunications Research Institute ETRI
Original Assignee
Electronics and Telecommunications Research Institute ETRI
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 Electronics and Telecommunications Research Institute ETRI filed Critical Electronics and Telecommunications Research Institute ETRI
Publication of JP2014002351A publication Critical patent/JP2014002351A/ja
Application granted granted Critical
Publication of JP5542896B2 publication Critical patent/JP5542896B2/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】本発明は、低電力暗号化を支援するモバイル用高速ブロック暗号アルゴリズムを提供することができる暗号化装置および方法に関する。
【解決手段】このために、本発明にかかる暗号化装置は、ユーザから暗号化しようとする平文(Plaintext)とマスターキー(Master Key)の入力を受けるユーザインタフェース部と、マスターキーからラウンドキー(Round Key)を生成するキースケジューラ部と、平文から初期ラウンド関数値を生成する初期変換部と、ラウンドキーと初期ラウンド関数値を用いてラウンド関数を繰り返し処理するラウンド関数処理部と、ラウンド関数処理部によって処理された最後のラウンドでのラウンド関数の結果値から暗号文を生成する最終変換部とを含む。
【選択図】図1

Description

本発明は、低電力暗号化装置および方法に関し、より詳細には、低電力暗号化を支援するモバイル用高速ブロック暗号アルゴリズムを提供することができる暗号化装置および方法に関する。
ブロック暗号は、各種機器の通信および格納資料セキュリティのための暗号アプリケーションにおいて最も多く用いられる核心要素であり、特定の長さ単位(64ビット、128ビット)でデータを暗号化して機密性(confidentiality)を提供することが主な役割である。また、ハッシュ関数、メッセージ認証コード、乱数生成器などにも活用される。このような用途に合わせて、ブロック暗号は、機器および暗号アプリケーション特性に適した性質を有するように設計されなければならず、機器に特化したチップまたは機器のCPUで駆動されるソフトウェアで実現される。
ハードウェアで実現されるチップの場合、市場性、開発費用、機器との連動性などによって開発が制限されるのに対し、ソフトウェアの実現は、CPUの性能の進化などで適用が拡大している。しかし、ソフトウェアの実現においても、リソースの制限を受ける環境が多い。特に、最近、多くの人気を集めているスマートフォンのようにバッテリを有する移動機器は、ソフトウェアの駆動による電力消耗という問題を抱えている。現在、最も優れた性能の国際標準ブロック暗号の場合にも、持続的な暗号化時のバッテリの消耗が未暗号化時より70%以上増加することが知られている。
一方、超軽量および低電力環境におけるH/W暗号演算を目的として開発されたブロック暗号手法が、2006年のWorkshop on Cryptographic Hardware and Embedded Systemsでの「HIGHT:A New Block Cipher Suitable for Low−Resource Device」論文に公開されているが、前記論文に公開されたブロック暗号手法は、安全性に対する脆弱点が存在し、ソフトウェア環境では、データ暗号化のために、CPUに比較的多いサイクル(cycle)が要求される問題があった。
本発明は、低電力暗号化を支援するブロック暗号アルゴリズムを用いる暗号化装置および方法を提供することを目的とする。
上記の目的を達成するための、本発明にかかる暗号化装置は、ユーザから暗号化しようとする平文(Plaintext)とマスターキー(Master Key)の入力を受けるユーザインタフェース部と、前記マスターキーからラウンドキー(Round Key)を生成するキースケジューラ部と、前記平文から初期ラウンド関数値を生成する初期変換部と、前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するラウンド関数処理部と、前記ラウンド関数処理部によって処理された最後のラウンドでのラウンド関数の結果値から暗号文を生成する最終変換部とを含むことを特徴とする。
この時、前記キースケジューラ部は、前記ユーザインタフェース部から前記マスターキーを受信するマスターキー入力部と、前記マスターキーを構成するサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成するキースケジュールラウンド関数値生成部と、前記初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し、前記キースケジュールラウンド関数値を連接して前記ラウンドキーを生成するラウンドキー生成部とを含むことができる。
この時、前記ラウンドキーは、192ビットの長さを有し、それぞれ32ビットの長さを有するサブラウンドキーRK[0]、RK[1]、RK[2]、RK[3]、RK[4]、RK[5]が連接して構成できる。
この時、前記初期変換部は、128ビットの長さを有する前記平文からそれぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、前記サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成することができる。
この時、前記ラウンド関数処理部は、前記ラウンドキーと前記初期ラウンド関数値に基づいてラウンド関数を処理し、i番目ラウンドでのラウンド関数の結果値Xi+1[0]、Xi+1[1]、Xi+1[2]、Xi+1[3]を算出することができる。
この時、前記ラウンド関数処理部は、数式
Figure 2014002351
によってXi+1[0]を算出し、数式
Figure 2014002351
によってXi+1[1]を算出し、数式
Figure 2014002351
によってXi+1[2]を算出し、数式
Figure 2014002351
によってXi+1[3]を算出することができる。ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値、
Figure 2014002351
は、論理的排他和演算、+は、法232足し算演算、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフト(rotation)した後出力する関数、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。
この時、前記最終変換部は、前記最後のラウンドでのラウンド関数の結果値を連接して暗号文を生成することができる。
この時、本発明にかかる暗号化装置は、前記最終変換部によって生成された暗号文を出力する暗号文出力部をさらに含むことができる。
また、上記の目的を達成するための、本発明にかかる暗号化方法は、ユーザインタフェース部がユーザから暗号化しようとする平文とマスターキーの入力を受けるステップと、キースケジューラ部が前記マスターキーからラウンドキーを生成するステップと、初期変換部が前記平文から初期ラウンド関数値を生成するステップと、ラウンド関数処理部が前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップと、最終変換部が最後のラウンドでのラウンド関数の結果値から暗号文を生成するステップとを含むことを特徴とする。
この時、前記マスターキーからラウンドキーを生成するステップは、マスターキー入力部が前記ユーザインタフェース部から前記マスターキーを受信するステップと、キースケジュールラウンド関数値生成部が前記マスターキーを構成するサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成するステップと、ラウンドキー生成部が前記初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し、前記キースケジュールラウンド関数値を連接して前記ラウンドキーを生成するステップとを含むことができる。
この時、前記ラウンドキーは、192ビットの長さを有し、それぞれ32ビットの長さを有するサブラウンドキーRK[0]、RK[1]、RK[2]、RK[3]、RK[4]、RK[5]が連接して構成できる。
この時、前記平文から初期ラウンド関数値を生成するステップは、128ビットの長さを有する前記平文からそれぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、前記サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成することができる。
この時、前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップは、前記ラウンドキーと前記初期ラウンド関数値に基づいてラウンド関数を処理し、i番目ラウンドでのラウンド関数の結果値Xi+1[0]、Xi+1[1]、Xi+1[2]、Xi+1[3]を算出することができる。
この時、前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップは、数式
Figure 2014002351
によってXi+1[0]を算出し、数式
Figure 2014002351
によってXi+1[1]を算出し、数式
Figure 2014002351
によってXi+1[2]を算出し、数式
Figure 2014002351
によってXi+1[3]を算出することができる。ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値、
Figure 2014002351
は、論理的排他和演算、+は、法232足し算演算、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフトした後出力する関数、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。
この時、前記最後のラウンドでのラウンド関数の結果値から暗号文を生成するステップは、前記最後のラウンドでのラウンド関数の結果値を連接して暗号文を生成することができる。
この時、本発明にかかる暗号化方法は、暗号文出力部が前記最終変換部によって生成された暗号文を出力するステップをさらに含むことができる。
本発明によれば、既存のCPUで普遍的に用いられ、採用が容易なARX(Addition、Rotation、XOR)演算のみで構成される暗号化手法を提供できる効果がある。
また、本発明によれば、臨時変数を活用して並列演算を可能にする演算の組合せで暗号化過程を行うため、CPU内でより少ないサイクル(cycle)で暗号化を行うことができる効果がある。
さらに、本発明によれば、従来のすべてのブロック暗号攻撃に対する安全性を保障できる効果がある。
本発明にかかる暗号化装置の構成を示すブロック図である。 図1に示されたキースケジューラ部の構成を示すブロック図である。 図1に示されたラウンド関数処理部のi番目ラウンドでのラウンド関数の処理過程を説明するための図である。 本発明にかかる暗号化方法を説明するためのフローチャートである。 本発明にかかる暗号化方法を説明するためのフローチャートである。
以下、本発明を添付した図面を参照して詳細に説明する。ここで、繰り返される説明、本発明の要旨をあいまいにする可能性がある公知の機能、および構成に関する詳細な説明は省略する。本発明の実施形態は、当業界において平均的な知識を有する者に本発明をより完全に説明するために提供されるものである。したがって、図面における要素の形状および大きさなどは、より明確な説明のために誇張され得る。
以下では、図1ないし図3を参照して、本発明にかかる暗号化装置の構成およびその動作について説明する。
図1は、本発明にかかる暗号化装置の構成を示すブロック図である。
図1を参照すれば、本発明にかかる暗号化装置10は、ユーザインタフェース部100と、キースケジューラ部200と、初期変換部300と、ラウンド関数処理部400と、最終変換部500と、暗号文出力部600とから構成される。
ユーザインタフェース部100は、ユーザから平文(Plaintext、以下、「P」と表示する。)という暗号化しようとする対象、例えば、特定のテキスト(text)または音声(voice)の入力を受ける。また、ユーザインタフェース部100は、平文の入力を受ける時点で、同時にユーザからマスターキー(Master Key、以下、「MK」と表示する。)の入力を受ける。この時、ユーザインタフェース部100に入力されるマスターキーは、128ビット、192ビットまたは256ビットの長さで構成され、それぞれ32ビットの長さを有するサブマスターキーで構成される。つまり、マスターキーMKは、複数のサブマスターキーの連接によって構成され、128ビット、192ビットおよび256ビットの長さを有するマスターキーは、それぞれ下記の数式1ないし数式3のように表現できる。
Figure 2014002351
Figure 2014002351
Figure 2014002351
この時、K[0]ないしK[7]は、マスターキーMKを構成する、それぞれ32ビットの長さを有するサブマスターキーを意味する。
一方、ユーザインタフェース部100に入力される平文は、128ビットの長さで構成され、それぞれ32ビットの長さを有するサブ平文で構成される。つまり、平文Pは、複数のサブ平文の連接によって構成され、128ビットの長さを有する平文は、下記の数式4のように表現できる。
Figure 2014002351
この時、P[0]ないしP[3]は、平文Pを構成する、それぞれ32ビットの長さを有するサブ平文を意味する。
ユーザインタフェース部100は、ユーザから入力されたマスターキーMKと平文Pをそれぞれキースケジューラ部200と初期変換部300に伝送する。
キースケジューラ部200は、ユーザインタフェース部100からマスターキーを受信し、前記マスターキーからラウンドキー(Round Key、以下、「RK」と表示する。)を生成する。より具体的には、キースケジューラ部200は、図2に示されているように、マスターキー入力部220と、キースケジュールラウンド関数値生成部240と、ラウンドキー生成部260とから構成される。
マスターキー入力部220は、ユーザインタフェース部100からマスターキーを受信し、これをキースケジュールラウンド関数値生成部240に伝送する。
キースケジュールラウンド関数値生成部240は、マスターキー入力部220から伝送されたマスターキーからサブマスターキー値を抽出し、前記抽出されたサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成する。
この時、キースケジュールラウンド関数値生成部240は、伝送されたマスターキーが128ビットの長さを有する場合、下記の数式5によって初期キースケジュールラウンド関数値T[1]ないしT[3]を決定し、
Figure 2014002351
伝送されたマスターキーが192ビットの長さを有する場合、下記の数式6によって初期キースケジュールラウンド関数値T[1]ないしT[5]を決定し、
Figure 2014002351
伝送されたマスターキーが256ビットの長さを有する場合、下記の数式7によって初期キースケジュールラウンド関数値T[1]ないしT[7]を決定する。
Figure 2014002351
ラウンドキー生成部260は、キースケジュールラウンド関数値生成部240によって生成された初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し、キースケジュールラウンド関数値を連接してラウンドキーを生成する。この時、ラウンドキー生成部260は、キースケジュールラウンド関数値を生成するために、例えば、下記の数式8のように16進数で表現される、固定された定数値δ[0]ないしδ[7]を用いることができる。
Figure 2014002351
ラウンドキー生成部260は、ユーザインタフェース部100から伝送されたマスターキーが128ビットの長さを有する場合、下記の数式9によってそれぞれ32ビットの長さを有するキースケジュールラウンド関数値を決定し、下記の数式10によってキースケジュールラウンド関数値を連接してラウンドキーを生成する。
Figure 2014002351
Figure 2014002351
また、ラウンドキー生成部260は、ユーザインタフェース部100から伝送されたマスターキーが192ビットの長さを有する場合、下記の数式11によってそれぞれ32ビットの長さを有するキースケジュールラウンド関数値を決定し、下記の数式12によってキースケジュールラウンド関数値を連接してラウンドキーを生成する。
Figure 2014002351
Figure 2014002351
また、ラウンドキー生成部260は、ユーザインタフェース部100から伝送されたマスターキーが256ビットの長さを有する場合、下記の数式13によってそれぞれ32ビットの長さを有するキースケジュールラウンド関数値を決定し、下記の数式14によってキースケジュールラウンド関数値を連接してラウンドキーを生成する。
Figure 2014002351
Figure 2014002351
この時、x mod 4演算は、x値を4で割った余りを算出する演算を意味し、x mod 6演算は、x値を6で割った余りを算出する演算を意味し、x mod 8演算は、x値を8で割った余りを算出する演算を意味する。
一方、ラウンドキー生成部260によって生成されるラウンドキーRKは、マスターキーMKが128ビット、192ビットまたは256ビットのうちいずれか1つの長さを有しても、前記数式10、数式12または数式14によって常に同一に128ビットの長さを有するようになる。この時、128ビットの長さを有するラウンドキーRKは、下記の数式15のように、それぞれ32ビットの長さを有するサブラウンドキーRK[0]ないしRK[5]の連接によって構成できる。
Figure 2014002351
初期変換部300は、ユーザインタフェース部100から平文を受信し、前記平文から初期ラウンド関数値を生成する。つまり、初期変換部300は、数式4で表現される128ビットの長さを有する平文Pに対し、それぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、下記の数式16に基づいて、前記サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成する。
Figure 2014002351
ラウンド関数処理部400は、キースケジューラ部200によって生成されたラウンドキーと初期変換部300によって生成された初期ラウンド関数値を用いてラウンド関数を繰り返し処理する。この時、ラウンド関数処理部400がラウンド関数を繰り返し処理する回数は、マスターキーが128ビットの長さを有する場合には24回、マスターキーが192ビットの長さを有する場合には28回、マスターキーが256ビットの長さを有する場合には32回である。ラウンド関数処理部400は、i番目ラウンドで下記の数式17のようなラウンド関数を処理する。
Figure 2014002351
ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値を意味し、
Figure 2014002351
は、論理的排他和(XOR、eXclusive OR)演算を意味し、+は、法232足し算演算を意味し、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフトした後出力する関数を意味し、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。
このような、ラウンド関数処理部400のi番目ラウンドでのラウンド関数の処理過程を図式化すると、図3のように示すことができる。この時、32ビットのワードにおいて最も右側のビットが最下位ビット(LSB)に該当する。
最終変換部500は、ラウンド関数処理部400によって処理された最後のラウンドでのラウンド関数の結果値を連接して暗号文(Ciphertext、以下、「C」と表示する。)を生成する。最終変換部500は、最後のラウンドであるr番目ラウンド(マスターキーが128ビットの長さを有する場合にr=24、マスターキーが192ビットの長さを有する場合にr=28、マスターキーが256ビットの長さを有する場合にr=32)での結果値X[0]ないしX[3]を連接して暗号文Cを生成する。つまり、r番目ラウンドでの出力結果X(=X[0]||X[1]||X[2]||X[3])から、下記の数式18を用いて暗号文C(=C[0]||C[1]||C[2]||C[3])に変換する。
Figure 2014002351
最後に、暗号文出力部600は、最終変換部500によって生成された暗号文をユーザに出力する。
本発明によって出力される暗号文を平文に復号化する方法は、本発明にかかる暗号化装置10においてキースケジューラ部200の動作を除いた暗号化過程を逆に行うことによって達成できる。この時、復号化過程では、法232足し算演算の代わりに法232引き算演算が行われなければならない。
以下では、本発明にかかる暗号化方法について説明する。上述した図1ないし図3を参照した、本発明にかかる暗号化装置の動作に関する説明と一部重複する部分は省略して説明する。
図4は、本発明にかかる暗号化方法を説明するためのフローチャートである。
図4を参照すれば、本発明にかかる暗号化方法は、まず、ユーザインタフェース部がユーザから暗号化しようとする平文とマスターキーの入力を受ける(S100)。この時、前記平文とマスターキーは、ユーザによって同時にユーザインタフェース部に入力できる。
次に、キースケジューラ部は、ユーザインタフェース部から伝送されたマスターキーを用いてラウンドキーを生成する(S200)。この時、前記ステップS200で生成されるラウンドキーは、192ビットの長さを有し、それぞれ32ビットの長さを有するサブラウンドキーRK[0]、RK[1]、RK[2]、RK[3]、RK[4]、RK[5]が連接して構成できる。
そして、初期変換部は、ユーザインタフェース部から伝送された平文から初期ラウンド関数値を生成する(S300)。この時、前記ステップS300では、128ビットの長さを有する平文からそれぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成することができる。
次に、ラウンド関数処理部は、前記ステップS200で生成されたラウンドキーと前記ステップS300で生成された初期ラウンド関数値を用いてラウンド関数を繰り返し処理する(S400)。この時、前記ステップS400では、ラウンドキーと初期ラウンド関数値に基づいてラウンド関数を処理し、i番目ラウンドでのラウンド関数の結果値Xi+1[0]、Xi+1[1]、Xi+1[2]、Xi+1[3]を算出することができる。また、前記ステップS400では、数式
Figure 2014002351
によってXi+1[0]を算出し、数式
Figure 2014002351
によってXi+1[1]を算出し、数式
Figure 2014002351
によってXi+1[2]を算出し、数式
Figure 2014002351
によってXi+1[3]を算出することができる。ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値、
Figure 2014002351
は、論理的排他和演算、+は、法232足し算演算、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフトした後出力する関数、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。
そして、最終変換部は、前記ステップS400で処理される最後のラウンドでのラウンド関数の結果値から暗号文を生成する(S500)。この時、前記ステップS500では、最後のラウンドでのラウンド関数の結果値を連接して暗号文を生成する。
最後に、暗号文出力部が前記ステップS500で生成された暗号文をユーザに出力する(S600)。
図5は、図4に示されたラウンドキー生成ステップであるステップS200をより具体的に説明するためのフローチャートである。
図5を参照すれば、ステップS200は、まず、マスターキー入力部がユーザインタフェース部からマスターキーを受信し(S220)、キースケジュールラウンド関数値生成部がマスターキーを構成するサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成する(S240)。
そして、ラウンドキー生成部が前記ステップS240で生成された初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し(S260)、キースケジュールラウンド関数値を連接してラウンドキーを生成する(S280)。
上述したような、本発明にかかる暗号化方法は、プログラムで実現され、コンピュータで読み取り可能な形態で記録媒体(例えば、CD−ROM、RAM、フロッピー(登録商標)ディスク、ハードディスク、光磁気ディスク、フラッシュメモリなど)に格納できる。
以上、図面と明細書で最適な実施形態が開示された。ここで特定の用語が使われたが、これは単に本発明を説明するための目的で使われたものであって、意味の限定や特許請求の範囲に記載された本発明の範囲を制限するために使われたものではない。そのため、本技術分野における通常の知識を有する者であれば、これより多様な変形および均等の他の実施形態が可能であることを理解するはずである。したがって、本発明の真の技術的保護範囲は、添付した特許請求の範囲の技術的思想によって定められなければならない。
10;暗号化装置
100;ユーザインタフェース部
200;キースケジューラ部
220;マスターキー入力部
240;キースケジュールラウンド関数値生成部
260;ラウンドキー生成部
300;初期変換部
400;ラウンド関数処理部
500;最終変換部
600;暗号文出力部

Claims (16)

  1. ユーザから暗号化しようとする平文(Plaintext)とマスターキー(Master Key)の入力を受けるユーザインタフェース部と、
    前記マスターキーからラウンドキー(Round Key)を生成するキースケジューラ部と、
    前記平文から初期ラウンド関数値を生成する初期変換部と、
    前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するラウンド関数処理部と、
    前記ラウンド関数処理部によって処理された最後のラウンドでのラウンド関数の結果値から暗号文を生成する最終変換部とを含むことを特徴とする、暗号化装置。
  2. 前記キースケジューラ部は、
    前記ユーザインタフェース部から前記マスターキーを受信するマスターキー入力部と、
    前記マスターキーを構成するサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成するキースケジュールラウンド関数値生成部と、
    前記初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し、前記キースケジュールラウンド関数値を連接して前記ラウンドキーを生成するラウンドキー生成部とを含むことを特徴とする、請求項1に記載の暗号化装置。
  3. 前記ラウンドキーは、192ビットの長さを有し、それぞれ32ビットの長さを有するサブラウンドキーRK[0]、RK[1]、RK[2]、RK[3]、RK[4]、RK[5]が連接して構成されることを特徴とする、請求項2に記載の暗号化装置。
  4. 前記初期変換部は、128ビットの長さを有する前記平文からそれぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、前記サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成することを特徴とする、請求項3に記載の暗号化装置。
  5. 前記ラウンド関数処理部は、前記ラウンドキーと前記初期ラウンド関数値に基づいてラウンド関数を処理し、i番目ラウンドでのラウンド関数の結果値Xi+1[0]、Xi+1[1]、Xi+1[2]、Xi+1[3]を算出することを特徴とする、請求項4に記載の暗号化装置。
  6. 前記ラウンド関数処理部は、数式
    Figure 2014002351
    によってXi+1[0]を算出し、数式
    Figure 2014002351
    によってXi+1[1]を算出し、数式
    Figure 2014002351
    によってXi+1[2]を算出し、数式
    Figure 2014002351
    によってXi+1[3]を算出することを特徴とする、請求項5に記載の暗号化装置。
    (ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値、
    Figure 2014002351
    は、論理的排他和演算、+は、法232足し算演算、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフトした後出力する関数、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。)
  7. 前記最終変換部は、前記最後のラウンドでのラウンド関数の結果値を連接して暗号文を生成することを特徴とする、請求項1乃至6のいずれか一項に記載の暗号化装置。
  8. 前記最終変換部によって生成された暗号文を出力する暗号文出力部をさらに含むことを特徴とする、請求項1乃至7のいずれか一項に記載の暗号化装置。
  9. ユーザインタフェース部がユーザから暗号化しようとする平文とマスターキーの入力を受けるステップと、
    キースケジューラ部が前記マスターキーからラウンドキーを生成するステップと、
    初期変換部が前記平文から初期ラウンド関数値を生成するステップと、
    ラウンド関数処理部が前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップと、
    最終変換部が最後のラウンドでのラウンド関数の結果値から暗号文を生成するステップとを含むことを特徴とする、暗号化方法。
  10. 前記マスターキーからラウンドキーを生成するステップは、
    マスターキー入力部が前記ユーザインタフェース部から前記マスターキーを受信するステップと、
    キースケジュールラウンド関数値生成部が前記マスターキーを構成するサブマスターキー値それぞれから初期キースケジュールラウンド関数値を生成するステップと、
    ラウンドキー生成部が前記初期キースケジュールラウンド関数値と固定された定数値を用いてキースケジュールラウンド関数値を生成し、前記キースケジュールラウンド関数値を連接して前記ラウンドキーを生成するステップとを含むことを特徴とする、請求項9に記載の暗号化方法。
  11. 前記ラウンドキーは、192ビットの長さを有し、それぞれ32ビットの長さを有するサブラウンドキーRK[0]、RK[1]、RK[2]、RK[3]、RK[4]、RK[5]が連接して構成されることを特徴とする、請求項10に記載の暗号化方法。
  12. 前記平文から初期ラウンド関数値を生成するステップは、
    128ビットの長さを有する前記平文からそれぞれ32ビットの長さを有するサブ平文P[0]、P[1]、P[2]、P[3]を抽出し、前記サブ平文P[0]、P[1]、P[2]、P[3]それぞれから初期ラウンド関数値X[0]、X[1]、X[2]、X[3]を生成することを特徴とする、請求項11に記載の暗号化方法。
  13. 前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップは、
    前記ラウンドキーと前記初期ラウンド関数値に基づいてラウンド関数を処理し、i番目ラウンドでのラウンド関数の結果値Xi+1[0]、Xi+1[1]、Xi+1[2]、Xi+1[3]を算出することを特徴とする、請求項12に記載の暗号化方法。
  14. 前記ラウンドキーと前記初期ラウンド関数値を用いてラウンド関数を繰り返し処理するステップは、
    数式
    Figure 2014002351
    によってXi+1[0]を算出し、数式
    Figure 2014002351
    によってXi+1[1]を算出し、数式
    Figure 2014002351
    によってXi+1[2]を算出し、数式
    Figure 2014002351
    によってXi+1[3]を算出することを特徴とする、請求項13に記載の暗号化方法。
    (ここで、X[0]、X[1]、X[2]、X[3]は、i−1番目ラウンドでのラウンド関数の結果値、
    Figure 2014002351
    は、論理的排他和演算、+は、法232足し算演算、ROL(x)は、32ビットの長さを有するx値を左にaビットだけ循環シフトした後出力する関数、ROR(x)は、32ビットの長さを有するx値を右にaビットだけ循環シフトした後出力する関数を意味する。)
  15. 前記最後のラウンドでのラウンド関数の結果値から暗号文を生成するステップは、
    前記最後のラウンドでのラウンド関数の結果値を連接して暗号文を生成することを特徴とする、請求項9乃至14のいずれか一項に記載の暗号化方法。
  16. 暗号文出力部が前記最終変換部によって生成された暗号文を出力するステップをさらに含むことを特徴とする、請求項9乃至15のいずれか一項に記載の暗号化方法。
JP2012243636A 2012-06-15 2012-11-05 低電力暗号化装置および方法 Active JP5542896B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120064278A KR101330664B1 (ko) 2012-06-15 2012-06-15 저전력 암호화 장치 및 방법
KR10-2012-0064278 2012-06-15

Publications (2)

Publication Number Publication Date
JP2014002351A true JP2014002351A (ja) 2014-01-09
JP5542896B2 JP5542896B2 (ja) 2014-07-09

Family

ID=49755933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012243636A Active JP5542896B2 (ja) 2012-06-15 2012-11-05 低電力暗号化装置および方法

Country Status (3)

Country Link
US (1) US9049007B2 (ja)
JP (1) JP5542896B2 (ja)
KR (1) KR101330664B1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9651878B2 (en) 2014-12-26 2017-05-16 Samsung Electronics Co., Ltd. Organic photoconductor and electrophotographic apparatus and process cartridge including the organic photo conductor
KR20230016408A (ko) 2021-07-26 2023-02-02 인소팩주식회사 검증필 암호모듈을 실장한 무선 휴대장치 및 암호화 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101516573B1 (ko) * 2013-07-26 2015-05-04 한국전자통신연구원 해시 알고리즘에서의 압축 연산을 수행하기 위한 장치 및 방법
US10313128B2 (en) * 2014-08-29 2019-06-04 The Boeing Company Address-dependent key generator by XOR tree
KR101867663B1 (ko) * 2016-04-25 2018-07-17 국방과학연구소 사슬구조의 otp 생성방법 및 이를 이용한 고정형 자료의 인코딩, 디코딩 방법
KR102070821B1 (ko) * 2018-03-28 2020-01-29 주식회사 다날 결제 처리 대행 서비스 장치 및 그 동작 방법
KR102282363B1 (ko) 2019-09-26 2021-07-27 국방과학연구소 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
CN112202547B (zh) * 2020-11-11 2022-04-12 衡阳师范学院 一种轻量级分组密码gfcs实现方法、装置及可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008051829A (ja) * 2006-07-28 2008-03-06 Sony Corp 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7508937B2 (en) 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7421076B2 (en) 2003-09-17 2008-09-02 Analog Devices, Inc. Advanced encryption standard (AES) engine with real time S-box generation
US7970381B2 (en) 2007-08-13 2011-06-28 General Motors Llc Method of authenticating a short message service (sms) message
US8416947B2 (en) * 2008-02-21 2013-04-09 Red Hat, Inc. Block cipher using multiplication over a finite field of even characteristic
US8233620B2 (en) * 2009-02-27 2012-07-31 Inside Secure Key recovery mechanism for cryptographic systems
KR101078705B1 (ko) 2009-11-19 2011-11-02 한국인터넷진흥원 문자보안 서비스 시스템 및 그 이용방법
JP5652363B2 (ja) * 2011-03-28 2015-01-14 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008051829A (ja) * 2006-07-28 2008-03-06 Sony Corp 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
CSNG200700618001; 白井太三,他: '128ビットブロック暗号CLEFIA' 電子情報通信学会技術研究報告 vol. 107,no. 44, 20070511, pp. 1-9, 社団法人電子情報通信学会 *
JPN6012066177; 白井太三,他: '128ビットブロック暗号CLEFIA' 電子情報通信学会技術研究報告 vol. 107,no. 44, 20070511, pp. 1-9, 社団法人電子情報通信学会 *
JPN6013063139; W. Diffie et al.: 'SMS4 Encryption Algorithm for Wireless Networks' Cryptology ePrint Archive Report 2008/329, 20080803, International Association for Cryptologic Research *
JPN6013063141; D. Hong et al.: 'HIGHT: A New Block Cipher Suitable for Low-Resource Device' Lecture Notes in Computer Science Volume 4249, 2006, pp. 46-59, Springer *
JPN6013063142; Y. Ko et al.: 'Linear Cryptanalysis on SPECTR-H64 with Higher Order Differential Property' Lecture Notes in Computer Science Volume 2776, 2003, pp. 298-307, Springer *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9651878B2 (en) 2014-12-26 2017-05-16 Samsung Electronics Co., Ltd. Organic photoconductor and electrophotographic apparatus and process cartridge including the organic photo conductor
KR20230016408A (ko) 2021-07-26 2023-02-02 인소팩주식회사 검증필 암호모듈을 실장한 무선 휴대장치 및 암호화 방법

Also Published As

Publication number Publication date
JP5542896B2 (ja) 2014-07-09
US20130336480A1 (en) 2013-12-19
KR101330664B1 (ko) 2013-11-15
US9049007B2 (en) 2015-06-02

Similar Documents

Publication Publication Date Title
JP5542896B2 (ja) 低電力暗号化装置および方法
JP2020530577A (ja) 暗号文に対する近似演算を行う装置及び方法
US20090323927A1 (en) Mechanism for chained output feedback encryption
KR101600016B1 (ko) 동형 암호화 알고리즘을 이용한 암호화 방법 및 이를 수행하는 컴퓨팅 장치
JP2014160256A (ja) 短い待ち時間のブロック暗号
Rathod et al. Design and implementation of image encryption algorithm by using block based symmetric transformation algorithm (hyper image encryption algorithm)
JPWO2006100801A1 (ja) キーストリーム暗号化装置および方法ならびにプログラム
TW201721407A (zh) 硬體輔助快速僞隨機數値產生
US20100246828A1 (en) Method and system of parallelized data decryption and key generation
US10404468B2 (en) Technologies for CCM encryption with 64-bit block ciphers
US10044499B2 (en) Information processing apparatus, program, and storage medium
JP5652363B2 (ja) 暗号処理装置、および暗号処理方法、並びにプログラム
JP5646008B2 (ja) 低電力暗号化装置及び方法
JP2022513185A (ja) 暗号文に対する非多項式演算を行う装置及び方法
CN114124359A (zh) 保留格式加密数据的方法、装置、电子设备及存储介质
JP6187624B1 (ja) 情報処理装置、情報処理方法及びプログラム
JP6292195B2 (ja) 情報処理装置及び情報処理方法
US10965454B2 (en) Apparatus and method for public key encryption
Rouaf et al. Performance Evaluation of Encryption Algorithms in Mobile Devices
JP7383985B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP4857230B2 (ja) 疑似乱数生成装置及びそれを用いた暗号化処理装置
Kotel et al. Lightweight encryption algorithm based on modified XTEA for low-resource embedded devices
JP2015082077A (ja) 暗号化装置、制御方法、及びプログラム
TW201929477A (zh) 加密方法與解密方法
Usman et al. A data specific comparative study for choosing best cryptographic technique

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140107

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140318

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140507

R150 Certificate of patent or registration of utility model

Ref document number: 5542896

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

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250