JP6251151B2 - ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム - Google Patents

ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム Download PDF

Info

Publication number
JP6251151B2
JP6251151B2 JP2014217956A JP2014217956A JP6251151B2 JP 6251151 B2 JP6251151 B2 JP 6251151B2 JP 2014217956 A JP2014217956 A JP 2014217956A JP 2014217956 A JP2014217956 A JP 2014217956A JP 6251151 B2 JP6251151 B2 JP 6251151B2
Authority
JP
Japan
Prior art keywords
calculation
function
matrix
calculation unit
swaprows
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
JP2014217956A
Other languages
English (en)
Other versions
JP2016085341A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014217956A priority Critical patent/JP6251151B2/ja
Publication of JP2016085341A publication Critical patent/JP2016085341A/ja
Application granted granted Critical
Publication of JP6251151B2 publication Critical patent/JP6251151B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティ分野で用いられる暗号に関する。
データを秘匿するためには暗号化技術が有効である。暗号化の方法は共通鍵暗号と公開鍵暗号がある。共通鍵暗号では、暗号作成側と暗号復号側で同一の鍵を用い、この鍵は秘密に管理されている。一方、公開鍵暗号では暗号文作成の鍵と暗号文復号の鍵は異なっており、一方の鍵は公開しても、他の鍵は現実的な時間内に求まらないと広く信じられている。一般的に、暗号化の処理速度の観点からは、共通鍵暗号方式が有利であり、インターネット上の多くの環境で共通鍵暗号が利用されている。
高速かつ安全な共通鍵暗号を構成するために、暗号化対象のデータを適当な長さのブロックに分割し、そのブロック毎に暗号化する方法をブロック暗号と呼ぶ。ブロック暗号では、初めに、ラウンド関数と呼ばれる暗号装置としては不十分だが、非常に高速に処理できる暗号装置を用意する。次に、ラウンド関数を複数回繰り返し実行することで、ブロック暗号の暗号装置とする。このような暗号の代表例として、AES 暗号がある。AES は各要素が8 ビット構成された4×4 行列を1 ブロックとした暗号装置である。そのラウンド関数は、下記の4 つの関数で構成される。
SubBytes: 各セルの値をS-box と呼ばれる置換表を用いて別の値に置換する。
ShiftRows: 4×4 行列の各行を行番号分ローテーションする。
MixColumns: 4×4 行列の各列を撹拌装置により撹拌する。
AddRoundKey: 4×4 行列で表現された副鍵を排他的論理和する。
AES は高い安全性を保有する暗号としてアメリカ国立標準技術研究所(NIST) により米国標準として定められている(例えば、非特許文献1参照。)。
AES は高い安全性を有することが知られている。一方で、米国旧標準暗号であるDES と比較するとき、暗号化装置と復号装置の両方を構成しなければならない点が不利な点として挙げられる。
暗号化装置と復号装置の両方を暗号化装置のみで実現する際に、最も頻繁に利用される方法はFeistel 構造を利用した暗号装置を構成することである。米国旧標準暗号であるDES はFeistel 構造を持つことから、自明に暗号化装置と復号装置の共有化が可能である。一方でAES 型の暗号装置が暗号化装置と復号装置の共有化を実現することは非自明である。ここでは、暗号化装置と復号装置の共有化が可能な暗号装置を、回路共有機能を持つ暗号装置と明記する。
AES 型の暗号装置でありながら回路共有機能を持つ暗号装置としてANUBISが知られている(例えば、非特許文献2参照。)。ANUBIS のラウンド関数は、AES のラウンド関数と同様に4 つの関数で構成されるが、それぞれの関数がAES のそれとは異なる性質を持つ。
SubBytes: 各セルの値をInvolution 性を持つS-box を用いて別の値に置換する。
Transpose: 4行4列の行列の転置行列を計算する。
MixColumns: 4行4列の行列の各列をinvolution 性を持つ撹拌装置により撹拌する。
AddRoundKey: 4行4列の行列で表現された副鍵を排他的論理和する。
ここで、Involution 性とは関数を2 回実行した結果、元の値に戻る性質のことを意味する。ANUBIS がInvolution 性を持つ根拠は、SubBytes、Transpose、MixColumns の全てがInvolution 性を持つためである。また、ANUBISは差分解読法や線形解読法といった著名な攻撃に対してAESと同等の安全性を持つことが知られている。
以下に、AESのShiftRows 及びANUBISのTranspose の詳細な変換を示す。
Figure 0006251151
Figure 0006251151
Transpose はInvolution 性を持つのに対し、ShiftRows はInvolution 性を持たない。一方、ShiftRows は実装性能の面でTranspose より優れている。多くの実装環境では各列32 ビットを1 レジスタに保存し、4 レジスタを用いて128 ビットを保存する。このとき、ShiftRows の変換が各行の中で閉じているため、シフト命令を用いることなくShiftRows の実装が可能になる。一方でTranspose を実装するためにはシフト命令を用いる必要がある。このため、ANUBISは、AESと比較すると処理負担が大きい。
"Announcing the ADVANCED ENCRYPTION STANDARD (AES)", Federal Information Processing Standards Publication 197, November 26, 2001 Paulo S. L. M. Barreto and Vincent Rijmen, "The ANUBIS Block Cipher", submitted to NESSIE Projecct
上記のように、AESは、回路共有機能を有していない。また、ANUBISは、AESと比較すると処理負担が大きい
この発明は、回路共有機能を有し、かつ、処理負担がANUBISよりも小さいラウンド関数計算装置及び暗号装置、これらの方法並びにプログラムを提供することを目的とする。
本発明の一態様によるラウンド関数計算装置は、involution性を持つ所定の置換表と、次式で定義されるSwapRowsについての情報と、involution性を持つ4行4列の所定の撹拌行列と、4行4列の所定の副鍵行列とが記憶されている記憶部と、
Figure 0006251151
入力された4行4列の行列に対して、上記記憶部から読み込んだ置換表を用いて置換することによりSubBytes関数の計算を行う第一計算部と、第一計算部の計算結果に対して、上記記憶部から読み込んだSwapRowsについての情報に基づいてSwapRowsの変換をすることによりSwapRows関数の計算を行う第二計算部と、
第二計算部の計算結果に対して、上記記憶部から読み込んだ撹拌行列を乗算することによりMixColumns関数の計算を行う第三計算部と、第三計算部の計算結果に対して、上記記憶部から読み込んだ副鍵行列との排他的論理を計算することによりAddRoundKey関数の計算を行う第四計算部と、を備えている。
本発明の一態様による暗号装置は、上記ラウンド関数計算装置を備えている。
回路共有機能を有し、かつ、処理負担がANUBISよりも小さい。
ラウンド関数計算装置の例の機能ブロック図。 ラウンド関数計算方法の処理の例を示すフローチャート。 暗号装置の例を示す機能ブロック図。
以下、本発明の実施形態について説明する。
本実施形態はANUBIS を基本にするが、Transpose の代わりに次式で定義するSwapRows を利用する。
Figure 0006251151
SwapRows はTranspose と同様にInvolution 性を持つ。したがって、Transpose の代わりにSwapRows を用いたとしても回路共有機能は維持される。さらに、ShiftRowsと同様に各変換は各行の中に閉じているため、シフト命令を用いることなくSwapRows を実装することができる。このため、ANUBISよりも処理負担は小さくなる。
AES やANUBIS が差分解読法や線形解読法に対する高い安全性を保持するためには、ShiftRowsやTranspose により各列の4 つの値が全て異なる列に移動する必要がある。この特徴はSwapRows でも同様に満足することが出来るため、ShiftRows やTranspose の代わりにSwapRowsを用いたとしても高い安全性を維持できる。
[ラウンド関数計算装置及び方法]
ラウンド関数計算装置は、図1に示すように、第一計算部1、第二計算部2、第三計算部3及び第四計算部4を例えば備えている。このラウンド関数計算装置の各部が、図2に例示するステップS1からステップS4の処理を行うことによりラウンド関数計算方法が実現される。
<第一計算部1>
第一計算部1は、入力された4行4列の行列に対して、行列の各要素をinvolution性を持つ所定の置換表を用いて置換するSubBytes関数の計算を行う(ステップS1)。計算結果は、第二計算部2に出力される。
入力される4行4列の行列は、ラウンド関数計算装置が用いられるブロック暗号方式及び暗号方式に依存する。
所定の置換表は、involution性を持つ所定の置換表であればどのようなものでもよい。例えば、ANUBISで用いられるinvolution性を持つS-boxの置換表を用いることができる。
involution性とは、関数を2 回実行した結果、元の値に戻る性質のことを意味する。
SubBytes関数の一例は、ANUBISで用いられるSubBytes関数である。
<第二計算部2>
第二計算部2は、第一計算部1の計算結果に対して、次式で定義されるSwapRowsの変換をするSwapRows関数の計算を行う(ステップS2)。計算結果は、第三計算部3に出力される。
Figure 0006251151
<第三計算部3>
第三計算部3は、第二計算部2の計算結果に対して、involution性を持つ4行4列の所定の撹拌行列を乗算するMixColumns関数の計算を行う(ステップS3)。計算結果は、第四計算部4に出力される。
所定の撹拌行列は、involution性を持つ撹拌行列であればどのようなものでもよい。
MixColumns関数の一例は、ANUBISで用いられるMixColumns関数である。
<第四計算部4>
第四計算部4は、第三計算部3の計算結果に対して、4行4列の所定の副鍵行列との排他的論理を計算するAddRoundKey関数の計算を行う(ステップS4)。
4行4列の所定の副鍵行列は、ラウンド関数計算装置が用いられるブロック暗号方式及び暗号方式に依存する。
AddRoundKey関数の一例は、ANUBISで用いられるAddRoundKey関数である。
[暗号装置及び方法]
暗号装置及び方法は、例えば図3に示すように、それぞれラウンド関数計算装置及び方法を含む。暗号装置及び方法は、ラウンド関数計算装置及び方法によるラウンド関数の計算を複数回繰り返し実行することでデータの暗号化又は復号を実行する。
暗号装置及び方法の詳細は、実装しようとする暗号方式に依存する。例えば、ANUBISと同様の、ラウンド関数を用いたブロック暗号方式を用いることができる。
上記ラウンド関数を構成する各関数がInvolution 性を持つため、上記ラウンド関数もInvolution 性を持つ。このため、上記ラウンド関数を用いた暗号装置及び方法は、回路共有機能を有し、暗号化と復号との両方の用途に用いることができる。
[変形例等]
上記装置及び方法において説明した処理は、記載の順にしたがって時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
また、上記各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (5)

  1. involution性を持つ所定の置換表と、次式で定義されるSwapRowsについての情報と、involution性を持つ4行4列の所定の撹拌行列と、4行4列の所定の副鍵行列とが記憶されている記憶部と、
    Figure 0006251151
    入力された4行4列の行列に対して、上記記憶部から読み込んだ置換表を用いて置換することによりSubBytes関数の計算を行う第一計算部と、
    上記第一計算部の計算結果に対して、上記記憶部から読み込んだSwapRowsについての情報に基づいてSwapRowsの変換をすることによりSwapRows関数の計算を行う第二計算部と、
    上記第二計算部の計算結果に対して、上記記憶部から読み込んだ撹拌行列を乗算することによりMixColumns関数の計算を行う第三計算部と、
    上記第三計算部の計算結果に対して、上記記憶部から読み込んだ4行4列の所定の副鍵行列との排他的論理を計算することによりAddRoundKey関数の計算を行う第四計算部と、
    を含むラウンド関数計算装置。
  2. 請求項1のラウンド関数計算装置を含む暗号装置。
  3. 記憶部には、involution性を持つ所定の置換表と、次式で定義されるSwapRowsについての情報と、involution性を持つ4行4列の所定の撹拌行列と、4行4列の所定の副鍵行列とが記憶されているとして、
    Figure 0006251151
    第一計算部が、入力された4行4列の行列に対して、上記記憶部から読み込んだ置換表を用いて置換することによりSubBytes関数の計算を行う第一計算ステップと、
    第二計算部が、上記第一計算部の計算結果に対して、上記記憶部から読み込んだSwapRowsについての情報に基づいてSwapRowsの変換をすることによりSwapRows関数の計算を行う第二計算ステップと、
    第三計算部が、上記第二計算部の計算結果に対して、上記記憶部から読み込んだ撹拌行列を乗算することによりMixColumns関数の計算を行う第三計算ステップと、
    第四計算部が、上記第三計算部の計算結果に対して、上記記憶部から読み込んだ副鍵行列との排他的論理を計算することによりAddRoundKey関数の計算を行う第四計算ステップと、
    を含むラウンド関数計算方法。
  4. 請求項3のラウンド関数計算方法を含む暗号方法。
  5. 請求項1のラウンド関数計算装置又は請求項2の暗号装置の各部としてコンピュータを機能させるためのプログラム。
JP2014217956A 2014-10-27 2014-10-27 ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム Active JP6251151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014217956A JP6251151B2 (ja) 2014-10-27 2014-10-27 ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014217956A JP6251151B2 (ja) 2014-10-27 2014-10-27 ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム

Publications (2)

Publication Number Publication Date
JP2016085341A JP2016085341A (ja) 2016-05-19
JP6251151B2 true JP6251151B2 (ja) 2017-12-20

Family

ID=55972895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014217956A Active JP6251151B2 (ja) 2014-10-27 2014-10-27 ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム

Country Status (1)

Country Link
JP (1) JP6251151B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004184566A (ja) * 2002-12-02 2004-07-02 Sony Corp Aesブロック暗号方法およびその暗号回路
US8879725B2 (en) * 2008-02-29 2014-11-04 Intel Corporation Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
JP5449063B2 (ja) * 2010-07-06 2014-03-19 日本電信電話株式会社 Rijndael型192bitブロック暗号化装置、方法、及びそのプログラム

Also Published As

Publication number Publication date
JP2016085341A (ja) 2016-05-19

Similar Documents

Publication Publication Date Title
Derbez et al. Exhausting Demirci-Selçuk meet-in-the-middle attacks against reduced-round AES
Zhou et al. Parallel image encryption algorithm based on discretized chaotic map
JP4967544B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5023624B2 (ja) 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
JP5835458B2 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US8966279B2 (en) Securing the implementation of a cryptographic process using key expansion
US9515818B2 (en) Multi-block cryptographic operation
EP2096786A2 (en) Combining instructions including an instruction that performs a sequence of transformations to isolate one transformation
US9692592B2 (en) Using state reordering to protect against white box attacks
WO2009087972A1 (ja) データ送信装置、データ受信装置、これらの方法、記録媒体、そのデータ通信システム
EP2693682B1 (en) Data processing device, data processing method, and programme
WO2013129054A1 (ja) 情報処理装置、および情報処理方法、並びにプログラム
US9565018B2 (en) Protecting cryptographic operations using conjugacy class functions
TW200830232A (en) Encryption processing apparatus, encryption processing method, and computer program
TW201545524A (zh) 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術
Bao et al. Bitsliced implementations of the PRINCE, LED and RECTANGLE block ciphers on AVR 8-bit microcontrollers
KR101914453B1 (ko) 암호화 장치 및 방법
Rawal Advanced encryption standard (AES) and it’s working
Yap et al. Cryptanalysis of a high-definition image encryption based on AES modification
JP2013182148A (ja) 情報処理装置、および情報処理方法、並びにプログラム
JP6251151B2 (ja) ラウンド関数計算装置及び暗号装置、これらの方法並びにプログラム
Sachdeva et al. Implementation of AES-128 using multiple cipher keys
Shanthini et al. Design of low power S-box in Architecture Level using GF
Pramod et al. An advanced AES algorithm using swap and 400 bit data block with flexible S-Box in Cloud Computing
Tezcan Differential factors revisited: corrected attacks on PRESENT and SERPENT

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170926

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171102

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171124

R150 Certificate of patent or registration of utility model

Ref document number: 6251151

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150