JP6901004B2 - 置換装置、置換方法、およびプログラム - Google Patents
置換装置、置換方法、およびプログラム Download PDFInfo
- Publication number
- JP6901004B2 JP6901004B2 JP2019548144A JP2019548144A JP6901004B2 JP 6901004 B2 JP6901004 B2 JP 6901004B2 JP 2019548144 A JP2019548144 A JP 2019548144A JP 2019548144 A JP2019548144 A JP 2019548144A JP 6901004 B2 JP6901004 B2 JP 6901004B2
- Authority
- JP
- Japan
- Prior art keywords
- integer
- replacement
- distribution destination
- elements
- vector
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/109—Address translation for multiple virtual address spaces, e.g. segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
- G06F7/766—Generation of all possible permutations
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09C—CIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
- G09C1/00—Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/462—Track or segment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
- H04L2209/122—Hardware reduction or efficient architectures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
入力:長さmのベクトルa→、再帰深さE(≧1)
パラメータ:分割数D(≧2)
出力:一様ランダムに置換されたπa→
1: ランダム置換生成
2: D未満のm個の乱数b0, b1, …, bm-1を生成しb→:=(b0, b1, …, bm-1)とする。
3: b→のうち、各i<Dについて、iが何個現れたか集計しNiとする。
4: 置換実施
5: 各i<Dで、Si=Pi:=Σj<iNjとする。ただしS0=P0:=0とする。
6: for j=0 to m-1
7: dP_b_j:=ajとする。
8: Pb_j:=Pb_j+1とする。
9: for i=0 to D-1
10: dS_i, …, dS_i+N_i-1を入力ベクトルとして、E≧2なら再帰深さをE-1としてScheme 1を再帰的に実行する。E=1なら任意のランダム置換アルゴリズムを実行し、結果として得られる置換後のベクトルcS_i, …, cS_i+N_i-1を出力する。
入力:通常の置換π→
出力:振り分け先を表すD未満の値の列b→、振り分け先の中での置換先を表す値の列x→
1: q:=m/D
2: r:=m mod D
3: 各i<Dで、Si=Pi:=iq+min(r, i)とおく。
4: for j=0 to m-1
5: πjのqによる商をk'とおき、余りをsとおく。
6: bj:=k'-(s<min(r, k')?1:0)とする。
7: xP_b_j:=πj-Sjとする。
8: Pb_j:=Pb_j+1と更新する。
ただし、「?1:0」は直前の命題が真の場合は1、偽の場合は0とする演算子である。
各i番目の部分の開始位置:Si=iq+min(r, i)
入力:長さmのベクトルa→、振り分け先を表すD未満の値の列b→、振り分け先の中での置換先を表す値の列x→、再帰深さE(≧1)
パラメータ:分割数D(≧2)
出力:a→をb→, x→で逆置換した列c→
1: 長さmのバッファd→を確保する。
2: 各i<Dで、Pi:=Siとする。
入力されたb→, x→がScheme 1を用いて生成したものである場合、Si:=Σj<iNjを計算すればよい。このとき、NiはScheme 1で生成したものを記憶しておけばよい。
入力されたb→, x→がScheme 2を用いて生成したものである場合、Si:= iq+min(r, i)を計算すればよい。このとき、q, rは、q:=m/D, r:=m mod Dにより計算すればよい。
3: for j=0 to m-1
4: dP_b_j:=ajとする。
5: Pb_j:=Pb_j+1とする。
6: for i=0 to D-1
7: dS_i, …, dS_i+N_i-1を入力ベクトルとして、E≧2なら再帰深さをE-1としてScheme 3を再帰的に実行する。E=1なら任意の逆置換アルゴリズムを実行し、結果として得られる置換後のベクトルcS_i, …, cS_i+N_i-1を出力する。
入力:長さmのベクトルa→、振り分け先を表すD未満の値の列b→、振り分け先の中での置換先を表す値の列x→、再帰深さE(≧1)
パラメータ:分割数D(≧2)
出力:a→をb→, x→ で置換した列c→
1: 長さmのバッファd→を確保する。
2: for i=0 to D-1
3: aS_i, …, aS_i+N_i-1とxS_i, …, xS_i+N_i-1とを入力ベクトルとして、E≧2なら再帰深さをE-1としてScheme 4を再帰的に実行する。E=1なら任意の置換アルゴリズムを実行し、結果として得られる置換後のベクトルdS_i, …, dS_i+N_i-1を出力する。
入力されたb→, x→がScheme 1を用いて生成したものである場合、NiはScheme 1で生成したものを記憶しておき、Si:=Σj<iNjを計算すればよい。
入力されたb→, x→がScheme 2を用いて生成したものである場合、Si:= iq+min(r, i), Ni=q+(i<r?1:0)を計算すればよい。このとき、q, rは、q:=m/D, r:=m mod Dにより計算すればよい。
4: 各i<Dで、Pi:=Siとする。
5: for j=0 to m-1
6: cj:=dP_b_jとする。
7: Pb_j:=Pb_j+1とする。
Scheme 2とScheme 3, 4とを組み合わせて実行する場合に、Ni, Siが上述した値となることの証明を以下に示す。
k'=kとk'=k+1が排反だから、∨で挟まれた左項と右項は排反であり、k番目のバッファに格納される要素数は左項を満たすjと右項を満たすjの数の和となる。
k'=k∧((k≧r∧s≧r)∨(k<r∧s≧k))
と同値となる。右項を考えると同様に、
k'=k+1∧((k≧r∧s<r)∨(k<r∧s<k+1))
と同値となる。合計して、k≧rのとき
(k'=k∧s≧r)∨(k'=k+1∧s<r)
k < r のとき
(k'=k∧s≧k)∨(k'=k+1∧s<k+1)
となる。ここで、m≧256のときq≧16である。
本発明の第一実施形態は、Scheme 1に示したランダム置換を実行する置換装置および方法である。
本発明の第二実施形態は、Scheme 2に示した形式変換により生成されたバッファ内の振り分け先を表す値の列と各振り分け先の中での置換先の列とを用いてScheme 3に示した逆置換を実行する置換装置および方法である。
本発明の第三実施形態は、Scheme 2に示した形式変換により生成されたバッファ内の振り分け先を表す値の列と各振り分け先の中での置換先を表す値の列とを用いてScheme 4に示した置換を実行する置換装置および方法である。
本発明の第四実施形態は、Scheme 1により生成される2個のランダム置換(b→, x→)をバッファ内の振り分け先を表す値の列と各振り分け先の中での置換先を表す値の列とし、Scheme 3に示した逆置換を実行する置換装置および方法である。
本発明の第五実施形態は、Scheme 1により生成される2個のランダム置換(b→, x→)をバッファ内の振り分け先を表す値の列と各振り分け先の中での置換先を表す値の列とし、Scheme 4に示した置換を実行する置換装置および方法である。
第一実施形態の置換装置によりランダム置換を実行し、何らかのデータ処理を行った後に、ランダム置換を元に戻すことが可能である。その場合、任意の置換アルゴリズムを実行する際に生成された置換πiを順に連結して各振り分け先の中での置換先を表す値の列x→とし、第一実施形態の置換装置を実行した際に生成されたバッファ内の振り分け先を表す値の列b→と共に用いて、第二実施形態および第四実施形態に示したステップS31〜S33の処理を実行すればよい。このとき、バッファ内の振り分け先を表す値の列b→と振り分け先の中での置換先を表す値の列x→とを置換装置内の図示していない記憶部等に保存しておき、適宜読み込んで利用するように構成することも可能である。
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
Claims (7)
- Dを所定の分割数とし、a→を長さmのベクトルとし、b→をバッファ内の振り分け先を表すD未満の値の列とし、x→を各振り分け先の中での置換先を表す値の列とし、d→を長さmのバッファを表すベクトルとし、iを0以上D未満の各整数とし、jを0以上m未満の各整数とし、Siをi番目の振り分け先に対応する開始位置とし、Niをi番目の振り分け先に含まれる要素の数とし、
各整数iについて、i番目の振り分け先に対応する処理中の位置を示す値Piに上記開始位置Siを設定する初期位置設定部と、
各整数jについて、上記バッファd→のPb_j番目の要素dP_b_jへ上記ベクトルa→のj番目の要素ajを設定する並べ替え部と、
各整数iについて、上記バッファd→のSi番目の要素からNi個の要素dS_i, …, dS_i+N_i-1に対して上記列x→のSi番目の要素からNi個の要素を用いて任意の逆置換アルゴリズムを実行することで、出力ベクトルc→のSi番目の要素からNi個の要素cS_i, …, cS_i+N_i-1を生成する置換実行部と、
を含む置換装置。 - Dを所定の分割数とし、a→を長さmのベクトルとし、b→をバッファ内の振り分け先を表すD未満の値の列とし、x→を各振り分け先の中での置換先を表す値の列とし、d→を長さmのバッファを表すベクトルとし、iを0以上D未満の各整数とし、jを0以上m未満の各整数とし、Siをi番目の振り分け先に対応する開始位置とし、Niをi番目の振り分け先に含まれる要素の数とし、
各整数iについて、上記ベクトルa→のSi番目の要素からNi個の要素に対して上記列x→のSi番目の要素からNi個の要素を用いて任意の置換アルゴリズムを実行することで、上記バッファd→のSi番目の要素からNi個の要素dS_i, …, dS_i+N_i-1を設定する置換実行部と、
各整数iについて、i番目の振り分け先に対応する処理中の位置を示す値Piに上記開始位置Siを設定する初期位置設定部と、
各整数jについて、出力ベクトルc→のj番目の要素cjへ上記バッファd→のPb_j番目の要素dP_b_jを設定する並べ替え部と、
を含む置換装置。 - 請求項1または2に記載の置換装置であって、
D未満のm個の乱数bjを生成して上記列b→とする振り分け先決定部と、
各整数iについて、上記列b→における整数iの出現数を集計することで上記要素数Niを決定する要素数決定部と、
各整数iについて、Si:=Σj<iNjを計算することで上記開始位置Siを決定する開始位置決定部と、
任意のランダム置換アルゴリズムにより上記列x→を生成する置換生成部と、
をさらに含む置換装置。 - 請求項1または2に記載の置換装置であって、
π→:=(π0, π1, …, πm-1)を長さmの置換とし、q:=m/Dとし、r:=m mod Dとし、
各整数iについて、Ni:=q+(i<r?1:0)を計算することで上記要素数Niを決定する要素数決定部と、
各整数iについて、Si:=iq+min(r, i)を計算することで上記開始位置Siを決定する開始位置決定部と、
各整数jについて、上記置換π→のj番目の要素πjのqによる商をk'とし、その余りをsとし、bj:=k'-(s<min(r, k')?1:0)を計算することで上記列b→を生成する振り分け先決定部と、
各整数jについて、xP_b_j:=πj-Sjを計算することで上記列x→を生成する置換生成部と、
をさらに含む置換装置。 - Dを所定の分割数とし、a→を長さmのベクトルとし、b→をバッファ内の振り分け先を表すD未満の値の列とし、x→を各振り分け先の中での置換先を表す値の列とし、d→を長さmのバッファを表すベクトルとし、iを0以上D未満の各整数とし、jを0以上m未満の各整数とし、Siをi番目の振り分け先に対応する開始位置とし、Niをi番目の振り分け先に含まれる要素の数とし、
初期位置設定部が、各整数iについて、i番目の振り分け先に対応する処理中の位置を示す値Piに上記開始位置Siを設定し、
並べ替え部が、各整数jについて、上記バッファd→のPb_j番目の要素dP_b_jへ上記ベクトルa→のj番目の要素ajを設定し、
置換実行部が、各整数iについて、上記バッファd→のSi番目の要素からNi個の要素dS_i, …, dS_i+N_i-1に対して上記列x→のSi番目の要素からNi個の要素を用いて任意の逆置換アルゴリズムを実行することで、出力ベクトルc→のSi番目の要素からNi個の要素cS_i,…, cS_i+N_i-1を生成する、
置換方法。 - Dを所定の分割数とし、a→を長さmのベクトルとし、b→をバッファ内の振り分け先を表すD未満の値の列とし、x→を各振り分け先の中での置換先を表す値の列とし、d→を長さmのバッファを表すベクトルとし、iを0以上D未満の各整数とし、jを0以上m未満の各整数とし、Siをi番目の振り分け先に対応する開始位置とし、Niをi番目の振り分け先に含まれる要素の数とし、
置換実行部が、各整数iについて、上記ベクトルa→のSi番目の要素からNi個の要素に対して上記列x→のSi番目の要素からNi個の要素を用いて任意の置換アルゴリズムを実行することで、上記バッファd→のSi番目の要素からNi個の要素dS_i, …, dS_i+N_i-1を設定し、
初期位置設定部が、各整数iについて、i番目の振り分け先に対応する処理中の位置を示す値Piに上記開始位置Siを設定し、
並べ替え部が、各整数jについて、出力ベクトルc→のj番目の要素cjへ上記バッファd→のPb_j番目の要素dP_b_jを設定する、
置換方法。 - 請求項1から4のいずれかに記載の置換装置としてコンピュータを機能させるためのプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017198385 | 2017-10-12 | ||
JP2017198385 | 2017-10-12 | ||
PCT/JP2018/036838 WO2019073858A1 (ja) | 2017-10-12 | 2018-10-02 | 置換装置、置換方法、およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019073858A1 JPWO2019073858A1 (ja) | 2020-11-05 |
JP6901004B2 true JP6901004B2 (ja) | 2021-07-14 |
Family
ID=66100848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019548144A Active JP6901004B2 (ja) | 2017-10-12 | 2018-10-02 | 置換装置、置換方法、およびプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US11099984B2 (ja) |
EP (1) | EP3696796B1 (ja) |
JP (1) | JP6901004B2 (ja) |
CN (1) | CN111201559B (ja) |
AU (1) | AU2018349732B2 (ja) |
WO (1) | WO2019073858A1 (ja) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0954676A (ja) * | 1995-08-11 | 1997-02-25 | Yamaha Corp | 整順列化方法および整順列化装置 |
JP3344383B2 (ja) * | 1999-10-04 | 2002-11-11 | 日本電気株式会社 | スケジューラ |
JP3938124B2 (ja) * | 2002-11-20 | 2007-06-27 | ソニー株式会社 | データ検索装置 |
AU2007254663A1 (en) * | 2007-12-24 | 2009-07-09 | Canon Kabushiki Kaisha | Efficient shuffling |
JP5156540B2 (ja) * | 2008-08-22 | 2013-03-06 | 株式会社日立製作所 | ハッシュ値生成装置 |
CN104011672A (zh) * | 2011-12-30 | 2014-08-27 | 英特尔公司 | 转置指令 |
US10002547B2 (en) * | 2014-01-17 | 2018-06-19 | Nippon Telegraph And Telephone Corporation | Secret calculation method, secret calculation system, random permutation device, and program |
JP5957126B1 (ja) * | 2015-06-24 | 2016-07-27 | 日本電信電話株式会社 | 秘密計算装置、秘密計算方法、およびプログラム |
-
2018
- 2018-10-02 US US16/652,113 patent/US11099984B2/en active Active
- 2018-10-02 JP JP2019548144A patent/JP6901004B2/ja active Active
- 2018-10-02 EP EP18865871.0A patent/EP3696796B1/en active Active
- 2018-10-02 AU AU2018349732A patent/AU2018349732B2/en active Active
- 2018-10-02 CN CN201880065232.1A patent/CN111201559B/zh active Active
- 2018-10-02 WO PCT/JP2018/036838 patent/WO2019073858A1/ja unknown
Also Published As
Publication number | Publication date |
---|---|
JPWO2019073858A1 (ja) | 2020-11-05 |
US11099984B2 (en) | 2021-08-24 |
AU2018349732B2 (en) | 2021-01-07 |
EP3696796B1 (en) | 2023-07-05 |
US20200310970A1 (en) | 2020-10-01 |
EP3696796A1 (en) | 2020-08-19 |
WO2019073858A1 (ja) | 2019-04-18 |
AU2018349732A1 (en) | 2020-04-16 |
CN111201559A (zh) | 2020-05-26 |
EP3696796A4 (en) | 2021-08-11 |
CN111201559B (zh) | 2023-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5957120B1 (ja) | 秘密分散方法、秘密分散システム、分散装置、およびプログラム | |
CN112162723B (zh) | 一种量子减法运算方法、装置、电子装置及存储介质 | |
US9240237B2 (en) | Semiconductor device and method of writing/reading entry address into/from semiconductor device | |
CN112199707A (zh) | 一种同态加密中的数据处理方法、装置以及设备 | |
JP6300796B2 (ja) | 算術及び論理ユニットを伴わないコンピュータプロセッサ及びシステム | |
CN101479698A (zh) | 将两数相乘 | |
US11763021B2 (en) | Efficient secure string search using homomorphic encryption | |
KR102594656B1 (ko) | 보안 프로세서, 이를 포함하는 어플리케이션 프로세서 및 보안 프로세서의 동작 방법 | |
CN113467750A (zh) | 用于基数为4的srt算法的大整数位宽除法电路及方法 | |
US7143272B2 (en) | Using computation histories to make predictions | |
JP6901004B2 (ja) | 置換装置、置換方法、およびプログラム | |
CN115567199B (zh) | 一种随机数种子生成方法、装置、电子设备及存储介质 | |
JP5927323B1 (ja) | 行列作用装置、行列作用方法、およびプログラム | |
US9304972B2 (en) | Lookup table sharing for memory-based computing | |
JP2007218997A (ja) | 素数生成装置、プログラム及び方法 | |
CN108075889B (zh) | 一种降低加解密运算时间复杂度的数据传输方法及系统 | |
AU2020423805B2 (en) | Secure selective product computation system, secure selective product computation method, secure computation apparatus, and program | |
CN117353923B (zh) | 轻量级哈希加密算法的演练方法及相关设备 | |
JP7173282B2 (ja) | データ置換装置、データ置換方法、プログラム | |
JP7359225B2 (ja) | 秘密最大値計算装置、方法及びプログラム | |
John | Privacy leakage via write-access patterns to the main memory | |
US20230102267A1 (en) | Secure computation apparatus, secure computation method, and program | |
US10740098B2 (en) | Aligning most significant bits of different sized elements in comparison result vectors | |
CN116301710A (zh) | 数据处理方法及装置 | |
JP6093718B2 (ja) | 拡大体乗算装置、拡大体乗算方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200324 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200324 |
|
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: 20210518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210531 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6901004 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |