【手続補正書】
【提出日】平成30年8月14日(2018.8.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
反復暗号を用いて暗号信号を生成するための方法であって、
第1の信号を受信するステップと、
前記第1の信号から、前記反復暗号の状態値の現在のインスタンスを決定するステップと、
前記状態値の前記現在のインスタンスを用いて、回転距離を決定するステップと、
前記回転距離だけ、置換ボックス値を回転させるステップと、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとを結合するステップと、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合を用いて、前記反復暗号の前記状態値の後続のインスタンスを生成するステップと
を含む方法。
【請求項２】
前記結合するステップが、
前記回転された置換ボックス値をマスクするステップと、
前記回転されマスクされた置換ボックス値と前記状態値の前記現在のインスタンスとを結合するステップと
を含む、請求項1に記載の方法。
【請求項３】
前記結合するステップが、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとを結合することによって、前記状態値の中間インスタンスを生成するステップ
を含む、請求項1に記載の方法。
【請求項４】
前記状態値の前記後続のインスタンスを生成することが、前記状態値の前記中間インスタンスを回転させることを含み、
前記状態値の前記中間インスタンスが、前記置換ボックス値のビット量に基づくビット量だけ回転される、請求項3に記載の方法。
【請求項５】
前記状態値の前記中間インスタンスを生成することが、暗号鍵を、前記回転された置換ボックス値と前記状態値の現在のインスタンスとの前記結合の結果と結合することを含む、請求項4に記載の方法。
【請求項６】
前記状態値の前記現在のインスタンスを決定することが、
暗号鍵と前記状態値の以前のインスタンスとを結合すること、または
前記状態値の以前のインスタンスを回転すること
を含む、請求項1に記載の方法。
【請求項７】
前記回転距離の前記決定が、前記状態値の前記現在のインスタンスのビットのサブセットに基づき、
前記反復暗号の前記状態値の前記後続のインスタンスを生成することが、暗号鍵を、前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合と結合することを含む、請求項1に記載の方法。
【請求項８】
前記回転距離の前記決定が、
前記状態値の前記現在のインスタンスからビットのサブセットを選択することと、
前記選択されたビットのサブセットに対応する第1の数を決定することと、
前記置換ボックス値のビット量に対応する第2の数を決定することと、
前記第1の数に前記第2の数を乗算することと
を含むか、または
前記状態値の前記現在のインスタンスをマスクすることと、
前記マスクされた前記状態値の前記現在のインスタンスをシフトすることと
を含む、請求項1に記載の方法。
【請求項９】
前記置換ボックス値が全単射である、請求項1に記載の方法。
【請求項１０】
前記回転距離の前記決定、前記置換ボックス値の前記回転、および前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合が、演算
s ^= ROR(sbox, (s & M1) << S1) & MASK、および
s = ROR(s, R1)によって実行され、
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1は第1のマスク値であり、MASKは第2のマスク値であり、S1はシフト値であり、R1は回転値であり、sboxは前記置換ボックス値のインスタンスに対応する、請求項1に記載の方法。
【請求項１１】
前記回転距離の前記決定、前記置換ボックス値の前記回転、および前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合が、演算
s = ROL(s, R1)、および
s ^= ROR(sbox, (s & M1) << S1) & MASKによって実行され、
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1は第1のマスク値であり、MASKは第2のマスク値であり、R1は回転値であり、S1はシフト値であり、sboxは前記置換ボックス値のインスタンスに対応する、請求項1に記載の方法。
【請求項１２】
前記回転距離の前記決定、前記置換ボックス値の前記回転、および前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合が、演算
s ^= ROR(sbox, (s & M1) << S1)、および
s = ROR(s, R1)によって実行され、
ただし、^=はXOR演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、sは前記状態値のインスタンスに対応し、M1はマスク値であり、S1はシフト値であり、R1は回転値であり、sboxは前記置換ボックス値のインスタンスに対応する、請求項1に記載の方法。
【請求項１３】
前記回転距離の前記決定、前記置換ボックス値の前記回転、および前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合が、演算
s = ROL(s, R1)、
shift = (tinv >> ((state & M1) << S1)) << S2、および
s ^= ROR(sbox, shift)によって実行され、
ただし、^=はXOR演算であり、ROLは左回転演算であり、RORは右回転演算であり、&はAND演算であり、<<はビット左シフト演算であり、>>はビット右シフト演算であり、sは前記状態値のインスタンスに対応し、M1はマスク値であり、S1は第1のシフト値であり、S2は第2のシフト値であり、R1は第1の回転値であり、shiftは第2の回転値であり、tinvは逆置換ボックス値であり、sboxは前記置換ボックス値のインスタンスに対応する、請求項1に記載の方法。
【請求項１４】
反復暗号を用いて暗号信号を生成するための装置であって、
第1の信号を受信するための手段と、
前記第1の信号から、前記反復暗号の状態値の現在のインスタンスを決定するための手段と、
前記状態値の前記現在のインスタンスを用いて、回転距離を決定するための手段と、
前記回転距離だけ、置換ボックス値を回転させるための手段と、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとを結合するための手段と、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合を用いて、前記反復暗号の前記状態の後続のインスタンスを生成するための手段と
を備える装置。
【請求項１５】
コンピュータ実行可能コードを記録するコンピュータ可読記録媒体であって、
第1の信号を受信すること、
前記第1の信号から、反復暗号の状態値の現在のインスタンスを決定すること、
前記状態値の前記現在のインスタンスを用いて、回転距離を決定すること、
前記回転距離だけ、置換ボックス値を回転させること、
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとを結合すること、および
前記回転された置換ボックス値と前記状態値の前記現在のインスタンスとの前記結合を用いて、前記反復暗号の前記状態値の後続のインスタンスを生成すること
を行うためのコードを含む、コンピュータ可読記録媒体。