JP2015102639A - 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 - Google Patents
演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 Download PDFInfo
- Publication number
- JP2015102639A JP2015102639A JP2013242244A JP2013242244A JP2015102639A JP 2015102639 A JP2015102639 A JP 2015102639A JP 2013242244 A JP2013242244 A JP 2013242244A JP 2013242244 A JP2013242244 A JP 2013242244A JP 2015102639 A JP2015102639 A JP 2015102639A
- Authority
- JP
- Japan
- Prior art keywords
- mask
- input
- value
- arithmetic
- arithmetic expression
- 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.)
- Pending
Links
Images
Abstract
Description
また、本発明に係る演算装置を備えたストリーム暗号化装置を提供することを課題とする。
図1は、本発明の一実施形態に係る演算装置10の構成を示すブロック図である。図1において、演算装置10は、入力部11とマスク付き演算部12を備える。
ビット演算および四則演算では、最上位ビットの判定が必要となる。最上位ビットの値は、[数3]により算出できる。
乗算において、マスク値の引き算が必要となる。マスク値の引き算は[数4]で表される。
ビット演算に関して、入力演算式に対応するマスク付き演算式、解除マスク値は[表5]で定義される。
四則演算に関して、入力演算式に対応するマスク付き演算式、解除マスク値は[表6]で定義される。
入力演算式:z=x(mod y)
xのマスク入力値:x_mask
yのマスク入力値:y_mask
とする。
また、剰余演算(mod)に対応するマスク付き演算では、マスク付き演算部12から、入力演算式の演算結果値zが出力される。
符号有りの場合には、以下の手順で剰余演算(mod)に対応するマスク付き演算を行う。
手順1:x_maskが負の数である場合には、「x_mask_A=−1 × x_mask」とする。そうでない場合には、「x_mask_A=x_mask」とする。
手順2:y_maskが負の数である場合には、「y_mask_A=−1 × y_mask」とする。そうでない場合には、「y_mask_A=y_mask」とする。
手順3:「z_B=x_mask_A(mod y_mask_A)」を計算する。
手順4:x_maskが負の数である場合には、「z=−1 × z_B」とする。そうでない場合には、「z=z_B」とする。
手順5:手順4の結果であるzが入力演算式の演算結果値である。
符号無しの場合には、以下の手順で剰余演算(mod)に対応するマスク付き演算を行う。nは変数である。
手順1:n=1とする。
手順2:「n × y_mask」の最上位ビットが1である場合には、手順5へ進む。
手順3:「n=2 × n」とする。
手順4:手順2へ戻る。
手順5:「z=x_mask」とする。
手順6:zが「n × y_mask」以上である場合には、「z=z − (n × y_mask)」とする。
手順7:「n=n/2」とする。
手順8:nが1以上である場合には、手順6に戻る。
手順9:zが入力演算式の演算結果値である。
図2に、符号無し剰余演算(mod)に対応するマスク付き演算のプログラムの例を示す。
入力演算式:z=x/y
xのマスク入力値:x_mask
yのマスク入力値:y_mask
とする。
また、除算(/)に対応するマスク付き演算では、マスク付き演算部12から、入力演算式の演算結果値zが出力される。
符号有りの場合には、以下の手順で除算(/)に対応するマスク付き演算を行う。
手順1:x_maskが負の数である場合には、「x_mask_A=−1 × x_mask」とする。そうでない場合には、「x_mask_A=x_mask」とする。
手順2:y_maskが負の数である場合には、「y_mask_A=−1 × y_mask」とする。そうでない場合には、「y_mask_A=y_mask」とする。
手順3:「z_B=x_mask_A / y_mask_A」を計算する。
手順4:「x_mask × y_mask」が負の数である場合には、「z=−1 × z_B」とする。そうでない場合には、「z=z_B」とする。
手順5:手順4の結果であるzが入力演算式の演算結果値である。
なお、手順4、5に関し、zの符号は、x_mask、y_maskの符号から、[表7]で表される。
符号無しの場合には、以下の手順で除算(/)に対応するマスク付き演算を行う。nは変数である。
手順1:n=1とする。
手順2:「n × y_mask」の最上位ビットが1である場合には、手順5へ進む。
手順3:「n=2 × n」とする。
手順4:手順2へ戻る。
手順5:「t_x_mask=x_mask」、「z=0」とする。
手順6:t_x_maskが「n × y_mask」以上である場合には、「t_x_mask=t_x_mask − (n × y_mask)」、「z=z + n」とする。
手順7:「n=n/2」とする。
手順8:nが1以上である場合には、手順6に戻る。
手順9:zが入力演算式の演算結果値である。
図3に、符号無し除算(/)に対応するマスク付き演算のプログラムの例を示す。
比較演算に関して、入力演算式に対応するマスク付き演算式、解除マスク値は[表8]で定義される。比較演算に対応するマスク付き演算では、マスク付き演算部12から、入力演算式の演算結果値zが出力される。入力演算式である比較演算の演算結果値zは1(真)または0(偽)である。
入力演算式:x<y
xのマスク入力値:x_mask
yのマスク入力値:y_mask
入力演算式の演算結果値:z(1(真)または0(偽))
とする。
符号有りの場合には、以下の手順で小なり演算(<)に対応するマスク付き演算を行う。
手順1:「z_A=x_mask − y_mask」を計算する。
手順2:「x_mask >= 0」且つ「y_mask < 0」である場合には、「z=0(偽)」とする。
手順3:「x_mask < 0」且つ「y_mask >= 0」である場合には、「z=1(真)」とする。
手順4:「z_A >= 0」である場合には、「z=0(偽)」とする。
手順5:「z_A < 0」である場合には、「z=1(真)」とする。
[表9]に、符号有り小なり演算(<)のマスク付き演算式の定義を示す。
符号無しの場合には、以下の手順で小なり演算(<)に対応するマスク付き演算を行う。
手順1:x_maskを符号有り変数x_mask_Aに設定し、y_maskを符号有り変数y_mask_Aに設定する。
手順2::「z_A=x_mask_A − y_mask_A」を計算する。z_Aは符号有り変数である。
手順3:「x_mask_A >= 0」且つ「y_mask_A < 0」である場合には、「z=0(偽)」とする。
手順4:「x_mask_A < 0」且つ「y_mask_A >= 0」である場合には、「z=1(真)」とする。
手順5:「z_A >= 0」である場合には、「z=0(偽)」とする。
手順6:「z_A < 0」である場合には、「z=1(真)」とする。
[表10]に、符号無し小なり演算(<)のマスク付き演算式の定義を示す。
入力演算式:x<=y
xのマスク入力値:x_mask
yのマスク入力値:y_mask
入力演算式の演算結果値:z(1(真)または0(偽))
とする。
手順1:「y_mask < x_mask」が「1(真)」である場合には「z=0(偽)」とする。
手順2:「y_mask < x_mask」が「0(偽)」である場合には「z=1(真)」とする。
手順1:「x_mask = A」である場合には「z=1(真)」とする。
手順2:「x_mask != A」且つ「x_mask < A」が「1(真)」である場合には「z=1(真)」とする。
手順3:「x_mask != A」且つ「x_mask < A」が「0(偽)」である場合には「z=0(偽)」とする。
入力演算式:x>y
xのマスク入力値:x_mask
yのマスク入力値:y_mask
入力演算式の演算結果値:z(1(真)または0(偽))
とする。
手順1:「x_mask <= y_mask」が「1(真)」である場合には「z=0(偽)」とする。
手順2:「x_mask <= y_mask」が「0(偽)」である場合には「z=1(真)」とする。
手順1:「x_mask <= A」が「1(真)」である場合には「z=0(偽)」とする。
手順2:「x_mask <= A」が「0(偽)」である場合には「z=1(真)」とする。
入力演算式:x>=y
xのマスク入力値:x_mask
yのマスク入力値:y_mask
入力演算式の演算結果値:z(1(真)または0(偽))
とする。
手順1:「x_mask < y_mask」が「1(真)」である場合には「z=0(偽)」とする。
手順2:「x_mask < y_mask」が「0(偽)」である場合には「z=1(真)」とする。
手順1:「x_mask < A」が「1(真)」である場合には「z=0(偽)」とする。
手順2:「x_mask < A」が「0(偽)」である場合には「z=1(真)」とする。
上述した実施形態によれば、演算装置10のマスク付き演算部12は、演算前の秘密情報(元入力値)を使用することなく、マスク付き演算を行う。よって、演算装置10において、演算時に使用されるレジスタに演算前の秘密情報(元入力値)自身が保持されることを防ぐことができる。これにより、演算装置10を暗号化装置や認証装置などに使用することにより、セキュリティ上の重要な秘密情報である、暗号化に使用される鍵や認証に使用される個人情報などを保護することに寄与できる。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
Claims (4)
- 入力演算式を示す入力演算式情報、前記入力演算式に使用される元入力値がマスク値によりマスク処理されたマスク入力値、及び前記マスク値を入力する入力部と、
前記マスク入力値、又は、前記マスク入力値と前記マスク値の両方を使用して、前記入力演算式情報で示される入力演算式に対応するマスク付き演算式を計算し、マスク付き演算結果値と前記入力演算式情報で示される入力演算式の演算結果値を前記マスク付き演算結果値から得るマスク解除処理に使用される解除マスク値、又は、前記入力演算式情報で示される入力演算式の演算結果値、を出力するマスク付き演算部と、
を備えたことを特徴とする演算装置。 - ストリーム暗号化装置において、
入力演算式情報で示される入力演算式に使用される元入力値をマスク値によりマスク処理し、マスク入力値を出力するマスク処理部と、
前記入力演算式情報、前記マスク入力値および前記マスク値を使用する請求項1に記載の演算装置と、
前記演算装置から出力されたマスク付き演算結果値および解除マスク値を使用して、前記マスク付き演算結果値に対するマスク解除処理を行うマスク解除処理部と、を備え、
前記入力演算式であるストリーム暗号の内部状態更新演算式に対応するマスク付き演算式を前記演算装置により計算することを特徴とするストリーム暗号化装置。 - 演算装置が、入力演算式を示す入力演算式情報、前記入力演算式に使用される元入力値がマスク値によりマスク処理されたマスク入力値、及び前記マスク値を入力する入力ステップと、
前記演算装置が、前記マスク入力値、又は、前記マスク入力値と前記マスク値の両方を使用して、前記入力演算式情報で示される入力演算式に対応するマスク付き演算式を計算し、マスク付き演算結果値と前記入力演算式情報で示される入力演算式の演算結果値を前記マスク付き演算結果値から得るマスク解除処理に使用される解除マスク値、又は、前記入力演算式情報で示される入力演算式の演算結果値、を出力するマスク付き演算ステップと、
を含むことを特徴とする演算方法。 - コンピュータに、
入力演算式を示す入力演算式情報、前記入力演算式に使用される元入力値がマスク値によりマスク処理されたマスク入力値、及び前記マスク値を入力する入力ステップと、
前記マスク入力値、又は、前記マスク入力値と前記マスク値の両方を使用して、前記入力演算式情報で示される入力演算式に対応するマスク付き演算式を計算し、マスク付き演算結果値と前記入力演算式情報で示される入力演算式の演算結果値を前記マスク付き演算結果値から得るマスク解除処理に使用される解除マスク値、又は、前記入力演算式情報で示される入力演算式の演算結果値、を出力するマスク付き演算ステップと、
を実行させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013242244A JP2015102639A (ja) | 2013-11-22 | 2013-11-22 | 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013242244A JP2015102639A (ja) | 2013-11-22 | 2013-11-22 | 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015102639A true JP2015102639A (ja) | 2015-06-04 |
Family
ID=53378385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013242244A Pending JP2015102639A (ja) | 2013-11-22 | 2013-11-22 | 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015102639A (ja) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005318476A (ja) * | 2004-04-30 | 2005-11-10 | Toshiba Corp | マスク論理回路及び暗号装置 |
JP2009005164A (ja) * | 2007-06-22 | 2009-01-08 | Dainippon Printing Co Ltd | 暗号処理装置,暗号処理プログラム及び暗号処理方法 |
WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
-
2013
- 2013-11-22 JP JP2013242244A patent/JP2015102639A/ja active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005318476A (ja) * | 2004-04-30 | 2005-11-10 | Toshiba Corp | マスク論理回路及び暗号装置 |
JP2009005164A (ja) * | 2007-06-22 | 2009-01-08 | Dainippon Printing Co Ltd | 暗号処理装置,暗号処理プログラム及び暗号処理方法 |
WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
Non-Patent Citations (2)
Title |
---|
伊藤 竜馬 ほか: "非線形変換を含む単純化ストリーム暗号KCipher−2へのGD攻撃", 情報処理学会研究報告 2012(平成24)年度▲6▼ [DVD−ROM], vol. 2013, no. 7, JPN6017018029, 15 April 2013 (2013-04-15), JP, pages p.1−7 * |
響 崇史 ほか: "KCipher−2に対する相関電力解析とその対策", 2012 第29回 暗号と情報セキュリティシンポジウム [CD−ROM], vol. 3C1−2, JPN6017018031, 30 January 2012 (2012-01-30), JP, pages p.1−8 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8325928B2 (en) | Security countermeasure for power analysis attacks | |
TW202013928A (zh) | 多方安全計算方法及裝置、電子設備 | |
JP5599728B2 (ja) | ホワイトボックス実装 | |
US20210165633A1 (en) | Protection system and method | |
US20230379133A1 (en) | Multiplicative masking for cryptographic operations | |
US20130259226A1 (en) | Methods and apparatus for correlation protected processing of cryptographic operations | |
KR20110014630A (ko) | 지수 불명료화 | |
CN109495270A (zh) | 数字签名生成中的临时乱数到消息的结合 | |
US8707053B2 (en) | Performing boolean logic operations using arithmetic operations by code obfuscation | |
CN114239019A (zh) | 保护隐私数据的共有数据数目确定方法、装置和系统 | |
Rao et al. | A hybrid elliptic curve cryptography (HECC) technique for fast encryption of data for public cloud security | |
Brenna et al. | TFHE-rs: A library for safe and secure remote computing using fully homomorphic encryption and trusted execution environments | |
TWI517655B (zh) | 密碼裝置以及密鑰保護方法 | |
US10075290B2 (en) | Operator lifting in cryptographic algorithm | |
CN106788978A (zh) | 变元分解限门掩码新方法 | |
CN111602367B (zh) | 用于保护在使白盒密码算法安全的对策中使用的熵源的方法 | |
JP2015102639A (ja) | 演算装置、演算方法、コンピュータプログラムおよびストリーム暗号化装置 | |
JP6212377B2 (ja) | 演算装置、演算方法およびコンピュータプログラム | |
EP3931999A1 (en) | Method secured against side-channel attacks with a new masking scheme protecting linear operations of a cryptographic algorithm | |
JP6876423B2 (ja) | ストリーム暗号における内部状態の初期化装置、方法及びプログラム | |
CN111480140A (zh) | 计算设备和方法 | |
WO2023021931A1 (ja) | 情報処理プログラムおよび情報処理装置 | |
US20230085577A1 (en) | Secured performance of an elliptic curve cryptographic process | |
JP2006201641A (ja) | 非線形演算装置及び暗号処理装置及び非線形演算方法及び非線形演算プログラム | |
KR20230018688A (ko) | 경량 블록암호 pipo의 화이트박스 암호 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20160722 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170523 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171114 |