JP6136325B2 - 暗号処理装置、暗号処理方法およびプログラム - Google Patents
暗号処理装置、暗号処理方法およびプログラム Download PDFInfo
- Publication number
- JP6136325B2 JP6136325B2 JP2013023498A JP2013023498A JP6136325B2 JP 6136325 B2 JP6136325 B2 JP 6136325B2 JP 2013023498 A JP2013023498 A JP 2013023498A JP 2013023498 A JP2013023498 A JP 2013023498A JP 6136325 B2 JP6136325 B2 JP 6136325B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- extension
- bit
- extension data
- encryption
- 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
Links
Images
Description
h(d)∈{0,1,2,…,n}
となる。例えば、以下の8ビットデータ(n=8)の場合、ハミングウェイトは、それぞれ、
h(00000000)=0,
h(00001000)=1,
h(00100011)=3,
h(11111111)=8
となる。
xi L=F(xi―1 L,Ki−1)^xi−1 R …(2)
xr R =F(xr−1 L,Kr−1)^xr−1 R …(4)
{−,−,−,−,−,01(2),10(2),−,−,10(2),01(2),−,−,−,−,−} …(5)
mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成するデータ拡張手段と、
前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う拡張データ演算手段と、を備える。
前記拡張データ演算手段は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算手段を備え、
前記XOR演算手段は、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する。
メモリとCPUを備えたコンピュータによる暗号処理方法であって、
前記CPUが前記メモリに蓄積されたプログラムを読み出して実行することにより、mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成する生成工程と、
前記CPUが前記メモリから読み出された前記プログラムを実行することにより、前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う暗号化工程と、を含む。
前暗号化工程は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算工程を含み、
前記XOR演算工程において、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する。
メモリとCPUを備えたコンピュータに実行させるプログラムであって、
前記メモリから前記CPUに読み出されることにより、前記CPUに対して、mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成する生成処理と、
前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う暗号化処理と、をコンピュータに実行させる。
前暗号化処理は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算処理を含み、
前記XOR演算処理において、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する。
なお、プログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。
第1の実施形態に係る暗号処理装置について、図面を参照して詳細に説明する。本実施形態に係る暗号処理装置は、以下に説明するように、データの通信や蓄積の際にデータを秘匿する共通鍵ブロック暗号へのサイドチャネル攻撃に対する耐タンパ性を有する。
xbar||x||xbar||x=x||x||x||x^1(m)||0(m)||1(m)||0(m)
S2:Z=X^Y
S3:Z^=0(m)||1(m)||1(m)||0(m)
T2:Y=Y|0(m)||1||0(m−1)||0(m)||1||0(m−1)
T3:Y=Y<<1
U2:Y=Y>>1
U3:Y=Y|1||0(m−1)||0(m)||1||0(m−1)||0(m)
yj =2・xj^3・xj+1^ xj+2^ xj+3
yj+1= xj^2・xj+1^3・xj+2^ xj+3
yj+2= xj^ xj+1^2・xj+2^3・xj+3
yj+3=3・xj^ xj+1^ xj+2^2・xj+3
ここで、"2・x"はガロア体上の2倍算であり、既約多項式は
m(x)=x8+x4+x3+x+1
で与えられる。
(1)8ビットデータの最上位ビットを符号ビットと見立てて、7ビット算術右シフトを行う。最上位ビットが0ならばシフト結果はオール0となり、最上位ビットが1ならばシフト結果はオール1となる。
(2)(1)の結果と0x1bとの論理積を求める。ここで、"0x"は16進数表記であることを表す。(1)の結果がオール0ならば論理積の結果は0となり、(1)の結果がオール1ならば論理積の結果は0x1bとなる。
(3)8ビットデータを左1ビットシフトし(最上位ビットは落ちるものとする)、(2)の結果との間で排他的論理和を求める。
[付記1]
上記第1の視点に係る暗号処理装置のとおりである。
[付記2]
前記拡張データ演算手段は、第1の拡張データと第2の拡張データとの排他的論理和を、該第1の拡張データおよび該第2の拡張データのハミングウェイトと該排他的論理和の演算結果のハミングウェイトとが同一となるように、算出するXOR演算手段を備える、付記1に記載の暗号処理装置。
[付記3]
前記XOR演算手段は、第1の拡張データがmビットの第1のデータと該第1のデータをビット反転した第2のデータをそれぞれ2個ずつ含み、第2の拡張データがmビットの第3のデータと該第3のデータをビット反転した第4のデータをそれぞれ2個ずつ含む場合、該第1のデータと該第3のデータ、該第1のデータと該第4のデータ、該第2のデータと該第3のデータ、該第2のデータと該第4のデータとの間でそれぞれ排他的論理和を求め、求めた排他的論理和を連結することで、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、付記2に記載の暗号処理装置。
[付記4]
前記拡張データ演算手段は、前記拡張データのハミングウェイトを一定に保ちつつ前記拡張データを1ビット左シフトする左シフト演算手段を備える、付記1ないし3のいずれか一に記載の暗号処理装置。
[付記5]
前記左シフト演算手段は、拡張データがmビットの第1のデータと該第1のデータをビット反転した第2のデータをそれぞれ2個ずつ含む場合、該拡張データに含まれる該2個の第1のデータおよび該2個の第2のデータの最上位ビットをそれぞれゼロとするとともに、該2個の第2のデータの最下位ビットの右側に位置するビットをそれぞれ1とした後、該拡張データを1ビット左シフトする、付記4に記載の暗号処理装置。
[付記6]
前記拡張データ演算手段は、前記拡張データのハミングウェイトを一定に保ちつつ前記拡張データを1ビット右シフトする右シフト演算手段を備える、付記1ないし5のいずれか一に記載の暗号処理装置。
[付記7]
前記右シフト演算手段は、拡張データがmビットの第1のデータと該第1のデータをビット反転した第2のデータをそれぞれ2個ずつ含む場合、該拡張データに含まれる該2個の第1のデータおよび該2個の第2のデータの最上位ビットをそれぞれゼロとした後、該拡張データを1ビット右シフトし、該右シフト前の該拡張データにおいて該2個の第2のデータの最上位ビットに位置するビットをそれぞれ1とする、付記6に記載の暗号処理装置。
[付記8]
前記暗号化処理は、AES(Advanced Encryption Standard)暗号化処理であり、
前記データ拡張手段は、平文の少なくとも一部を構成するmビットのデータに基づいて第1の拡張データを生成するとともに、ラウンド鍵の少なくとも一部を構成するmビットのデータに基づいて第2の拡張データを生成し、
前記拡張データ演算手段は、AddRoundKeyにおいて、前記XOR演算手段を用いて、前記第1の拡張データと前記第2の拡張データの排他的論理和を算出する、付記7に記載の暗号処理装置。
[付記9]
前記拡張データ演算手段は、MixColumnsにおいて、前記XOR演算手段および前記左シフト演算手段を用いる、付記8に記載の暗号処理装置。
[付記10]
上記第2の視点に係る暗号処理方法のとおりである。
[付記11]
前暗号化工程は、第1の拡張データと第2の拡張データとの排他的論理和を、該第1の拡張データおよび該第2の拡張データのハミングウェイトと該排他的論理和の演算結果のハミングウェイトとが同一となるように算出するXOR演算工程を含む、付記10に記載の暗号処理方法。
[付記12]
前記XOR演算工程において、第1の拡張データがmビットの第1のデータと該第1のデータをビット反転した第2のデータをそれぞれ2個ずつ含み、第2の拡張データがmビットの第3のデータと該第3のデータをビット反転した第4のデータをそれぞれ2個ずつ含む場合、該第1のデータと該第3のデータ、該第1のデータと該第4のデータ、該第2のデータと該第3のデータ、該第2のデータと該第4のデータとの間でそれぞれ排他的論理和を求め、求めた排他的論理和を連結することで、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、付記11に記載の暗号処理方法。
[付記13]
上記第3の視点に係るプログラムのとおりである。
[付記14]
前暗号化処理は、第1の拡張データと第2の拡張データとの排他的論理和を、該第1の拡張データおよび該第2の拡張データのハミングウェイトと該排他的論理和の演算結果のハミングウェイトとが同一となるように算出するXOR演算処理を含む、付記13に記載のプログラム。
[付記15]
前記XOR演算処理において、第1の拡張データがmビットの第1のデータと該第1のデータをビット反転した第2のデータをそれぞれ2個ずつ含み、第2の拡張データがmビットの第3のデータと該第3のデータをビット反転した第4のデータをそれぞれ2個ずつ含む場合、該第1のデータと該第3のデータ、該第1のデータと該第4のデータ、該第2のデータと該第3のデータ、該第2のデータと該第4のデータとの間でそれぞれ排他的論理和を求め、求めた排他的論理和を連結することで、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、付記14に記載のプログラム。
12 データ拡張手段
14 データ攪拌手段
16 拡張データ演算手段
22 XOR演算手段
24 左シフト演算手段
26 右シフト演算手段
32、52 AddRoundKey
33、74、82、102 排他的論理和(XOR)
34、54 SubBytes
35、55 S−box
36、56 ShiftRows
38、58 MixColumns
39 演算手段
60 暗号処理装置
62 入出力装置
64 CPU(Central Processing Unit)
66 RAM(Random Access Memory)
67 ROM(Read Only Memory)
68 プログラム
69 バス
72 F関数
84 S関数
104 S’関数
Claims (10)
- mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成するデータ拡張手段と、
前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う拡張データ演算手段と、を備え、
前記拡張データ演算手段は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算手段を備え、
前記XOR演算手段は、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、暗号処理装置。 - 前記拡張データ演算手段は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最上位ビットをそれぞれゼロとするとともに、該2個の第2のデータの最下位ビットの右側に位置するビットをそれぞれ1とした後、前記拡張データを1ビット左シフトする左シフト演算手段を備える、請求項1に記載の暗号処理装置。
- 前記拡張データ演算手段は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最下位ビットをそれぞれゼロとした後、前記拡張データを1ビット右シフトし、該右シフト前の前記拡張データにおいて該2個の第2のデータの最上位ビットに位置するビットをそれぞれ1とする右シフト演算手段を備える、請求項1または2に記載の暗号処理装置。
- 前記暗号化処理は、AES(Advanced Encryption Standard)暗号化処理であり、
前記データ拡張手段は、平文の少なくとも一部を構成するmビットのデータに基づいて第1の拡張データを生成するとともに、ラウンド鍵の少なくとも一部を構成するmビットのデータに基づいて第2の拡張データを生成し、
前記拡張データ演算手段は、AddRoundKeyにおいて、前記XOR演算手段を用いて、前記第1の拡張データと前記第2の拡張データの排他的論理和を算出する、請求項3に記載の暗号処理装置。 - メモリとCPUを備えたコンピュータによる暗号処理方法であって、
前記CPUが前記メモリに蓄積されたプログラムを読み出して実行することにより、mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成する生成工程と、
前記CPUが前記メモリから読み出された前記プログラムを実行することにより、前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う暗号化工程と、を含み、
前記暗号化工程は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算工程を含み、
前記XOR演算工程において、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、暗号処理方法。 - 前記暗号化工程は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最上位ビットをそれぞれゼロとするとともに、該2個の第2のデータの最下位ビットの右側に位置するビットをそれぞれ1とした後、前記拡張データを1ビット左シフトする工程を含む、請求項5に記載の暗号処理方法。
- 前記暗号化工程は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最下位ビットをそれぞれゼロとした後、前記拡張データを1ビット右シフトし、該右シフト前の前記拡張データにおいて該2個の第2のデータの最上位ビットに位置するビットをそれぞれ1とする工程を含む、請求項5または6に記載の暗号処理方法。
- メモリとCPUを備えたコンピュータに実行させるプログラムであって、
前記メモリから前記CPUに読み出されることにより、前記CPUに対して、mビット(mは自然数)の第1のデータに基づいて該第1のデータをビット反転した第2のデータを求め、2個の該第1のデータと2個の該第2のデータを連結してハミングウェイトが2mビットとなる4mビットの拡張データを生成する生成処理と、
前記第1のデータのハミングウェイトによらず前記拡張データのハミングウェイトを一定に保ちつつ暗号化処理を行う暗号化処理と、を実行させ、
前記暗号化処理は、第1の拡張データと第2の拡張データとの排他的論理和を、演算過程で生成される中間データのハミングウェイトが常に2mビットとなるように算出するXOR演算処理を含み、
前記XOR演算処理において、第1の拡張データの第1のデータと第2の拡張データの第1のデータ、第1の拡張データの第1のデータと第2の拡張データの第2のデータ、第1の拡張データの第2のデータと第2の拡張データの第1のデータ、第1の拡張データの第2のデータと第2の拡張データの第2のデータが対応するように第1の拡張データまたは第2の拡張データを並び替え、該第1の拡張データと該第2の拡張データとの排他的論理和を算出する、プログラム。 - 前記暗号化処理は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最上位ビットをそれぞれゼロとするとともに、該2個の第2のデータの最下位ビットの右側に位置するビットをそれぞれ1とした後、前記拡張データを1ビット左シフトする処理を含む、請求項8に記載のプログラム。
- 前記暗号化処理は、前記拡張データに含まれる2個の第1のデータおよび2個の第2のデータの最下位ビットをそれぞれゼロとした後、前記拡張データを1ビット右シフトし、該右シフト前の前記拡張データにおいて該2個の第2のデータの最上位ビットに位置するビットをそれぞれ1とする処理を含む、請求項8または9に記載のプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013023498A JP6136325B2 (ja) | 2013-02-08 | 2013-02-08 | 暗号処理装置、暗号処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013023498A JP6136325B2 (ja) | 2013-02-08 | 2013-02-08 | 暗号処理装置、暗号処理方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014153552A JP2014153552A (ja) | 2014-08-25 |
JP6136325B2 true JP6136325B2 (ja) | 2017-05-31 |
Family
ID=51575468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013023498A Active JP6136325B2 (ja) | 2013-02-08 | 2013-02-08 | 暗号処理装置、暗号処理方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6136325B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593527B2 (en) | 2020-02-26 | 2023-02-28 | Samsung Electronics Co., Ltd. | Security circuit including dual encoder and endecryptor including the security circuit |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10673616B2 (en) * | 2017-01-11 | 2020-06-02 | Qualcomm Incorporated | Lightweight mitigation against first-order probing side-channel attacks on block ciphers |
EP3745403A4 (en) | 2018-01-23 | 2021-01-13 | Panasonic Semiconductor Solutions Co., Ltd. | NON-VOLATILE MEMORY AND METHOD OF WRITING IT TO IT |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4565314B2 (ja) * | 2004-03-12 | 2010-10-20 | ソニー株式会社 | 信号処理回路および方法 |
JP4687775B2 (ja) * | 2008-11-20 | 2011-05-25 | ソニー株式会社 | 暗号処理装置 |
-
2013
- 2013-02-08 JP JP2013023498A patent/JP6136325B2/ja active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11593527B2 (en) | 2020-02-26 | 2023-02-28 | Samsung Electronics Co., Ltd. | Security circuit including dual encoder and endecryptor including the security circuit |
Also Published As
Publication number | Publication date |
---|---|
JP2014153552A (ja) | 2014-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106788974B (zh) | 掩码s盒、分组密钥计算单元、装置及对应的构造方法 | |
JP5711681B2 (ja) | 暗号処理装置 | |
US8369516B2 (en) | Encryption apparatus having common key encryption function and embedded apparatus | |
US8577023B2 (en) | Encryption processing method, apparatus, and computer program utilizing different types of S-boxes | |
EP2293487A1 (en) | A method of diversification of a round function of an encryption algorithm | |
KR101770874B1 (ko) | 암호 처리 장치, 암호 처리 방법, 컴퓨터로 판독가능한 기록 매체, 및 정보 처리 장치 | |
US10903978B2 (en) | Method of encryption with dynamic diffusion and confusion layers | |
JP5364840B2 (ja) | 暗号化装置 | |
TW201545524A (zh) | 用於以第二密文編密演算法之運算修改第一密文編密演算法的技術 | |
De Mulder et al. | Revisiting the BGE attack on a white-box AES implementation | |
Pimpale et al. | Modifications to aes algorithm for complex encryption | |
Dewangan et al. | Study of avalanche effect in AES using binary codes | |
Waqas et al. | Generation of AES-like S-boxes by replacing affine matrix | |
JP6136325B2 (ja) | 暗号処理装置、暗号処理方法およびプログラム | |
Kaur et al. | FPGA implementation of efficient hardware for the advanced encryption standard | |
Rawal | Advanced encryption standard (AES) and it’s working | |
JP2017167390A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP5680016B2 (ja) | 復号処理装置、情報処理装置、および復号処理方法、並びにコンピュータ・プログラム | |
US10678709B2 (en) | Apparatus and method for memory address encryption | |
Bajaj et al. | AES algorithm for encryption | |
RU2738321C1 (ru) | Способ криптографического преобразования и устройство для его осуществления | |
Nadaf et al. | Hardware implementation of modified AES with key dependent dynamic S-box | |
Wang et al. | A more practical CPA attack against present hardware implementation | |
Azzawi | Enhancing the encryption process of advanced encryption standard (AES) by using proposed algorithm to generate S-Box | |
JP2013205437A (ja) | 非線形関数S−boxの計算方法及び装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160108 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20161012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20161101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161228 |
|
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: 20170404 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170417 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6136325 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |