JP6222285B1 - データ処理装置、データ処理方法及びプログラム - Google Patents

データ処理装置、データ処理方法及びプログラム Download PDF

Info

Publication number
JP6222285B1
JP6222285B1 JP2016110105A JP2016110105A JP6222285B1 JP 6222285 B1 JP6222285 B1 JP 6222285B1 JP 2016110105 A JP2016110105 A JP 2016110105A JP 2016110105 A JP2016110105 A JP 2016110105A JP 6222285 B1 JP6222285 B1 JP 6222285B1
Authority
JP
Japan
Prior art keywords
data
rearrangement
destination
embedded system
input
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
JP2016110105A
Other languages
English (en)
Other versions
JP2017215518A (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.)
Fuji Electric Co Ltd
Original Assignee
Fuji Electric Co Ltd
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 Fuji Electric Co Ltd filed Critical Fuji Electric Co Ltd
Priority to JP2016110105A priority Critical patent/JP6222285B1/ja
Priority to US15/494,688 priority patent/US10411881B2/en
Application granted granted Critical
Publication of JP6222285B1 publication Critical patent/JP6222285B1/ja
Publication of JP2017215518A publication Critical patent/JP2017215518A/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/16Obfuscation or hiding, e.g. involving white box

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】データの並べ替えに必要なデータ容量を小さくすることを目的とする。【解決手段】入力される複数のデータを並べ替えるデータ処理装置が、前記データの並べ替えパターンを特定できる並替番号を入力し、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算し、前記並べ替え先に基づいて前記データを並べ替えることで上記課題を解決する。【選択図】図14

Description

本発明は、データ処理装置、データ処理方法及びプログラムに関する。
従来、データを変換するのに、入力、すなわち、変換前と、出力、すなわち、変換後との関係を示すLUT(Look Up Table)等のテーブルを用いる方法が知られている。
例えば、カラーインクジェットプリンタ等の画像処理装置は、まず、画像データを変換するのに用いる、画像データを構成する色成分ごとに配列される変換テーブルを圧縮して、圧縮変換テーブルにして格納する。そして、データを復元する場合には、画像処理装置は、圧縮変換テーブルを伸張し、伸長された圧縮変換テーブルに基づいて補間演算処理して入力される画像データを変換する。このようにして、格納されるテーブルのデータ容量を小さくする方法が知られている(例えば、特許文献1等)。
また、色補正において、色補正テーブルを用いて入力画像データを出力画像データに変換するため、画像処理装置は、色補正テーブルを圧縮して固定的に格納し、変換の際には、色補正テーブルを展開して色補正を行う。このようにして、格納されるテーブルのデータ容量を小さくする方法が知られている(例えば、特許文献2等)。
他にも、画像処理において、画像処理装置は、まず、所定の圧縮方式に従って画像データ及びLUTデータを圧縮し、メモリに記憶する。そして、画像処理装置は、メモリから読み出す圧縮されたLUTデータを伸張する伸張部へ転送するDMA(Direct Memory Access)コントローラと、伸長されたLUTデータを記憶するメモリとを有する。このような構成にして、LUTデータの伸張を専用で行う伸張手段を省略した構成とする方法が知られている(例えば、特許文献3等)。
特開2000−22974号公報 特開2003−110869号公報 特開2008−48099号公報
しかしながら、従来の方法では、データの並べ替えに必要なデータ容量が大きい場合がある。
本発明の1つの側面は、データの並べ替えに必要なデータ容量を小さくすることを目的とする。
一態様における、入力される複数のデータを並べ替えるデータ処理装置は、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含み、
計算部は、前記並べ替え先を下記(8)式で計算する。
Figure 0006222285
データの並べ替えに必要なデータ容量を小さくすることができる。
本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。 本発明の一実施形態に係る組み込みシステムによる全体処理の一例を説明するフローチャートである。 本発明の一実施形態に係る対象データの一例を説明する模式図である。 本発明の一実施形態に係る並べ替え先の一例を説明する模式図である。 本発明の一実施形態に係る並替番号のデータ構成の一例を説明する模式図である。 本発明の一実施形態に係るデータ処理装置による全体処理の処理結果の一例を説明する図である。 本発明の一実施形態に係る「N=4」の場合の並替番号、各並べ替え先及び並べ替えパターンの一例を説明する図である。 本発明の一実施形態に係るデータの並べ替えに必要なデータ容量の一例を説明する図である。 本発明の一実施形態に係る並べ替えパターンから並替番号を算出する例を説明する図である。 本発明の一実施形態に係る組み込みシステムによる別の全体処理の一例を説明するフローチャートである。 本発明の一実施形態に係る組み込みシステムによる別の全体処理の処理結果例を説明する模式図である。 本発明の一実施形態に係る並べ替えを暗号化の1ラウンド当たりの処理に適用する例を説明する模式図である。 本発明の一実施形態に係る並べ替えを暗号化の1ラウンド当たりの処理に適用する別の例を説明する模式図である。 本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。
以下、本発明の実施形態を図面に基づいて、データ処理装置及びデータ処理方法の例を説明する。
1.データ処理装置のハードウェア構成例
2.データ処理装置による全体処理例
3.暗号化等への適用例
4.データ処理装置の機能構成例

データ処理装置は、例えば、組み込みシステム(Embedded system)である。組み込みシステムは、産業機器又は家電製品等に内蔵され、特定の機能を実現するためのシステムである。なお、データ処理装置は、PC(Personal Computer)等の情報処理装置でもよい。以下、本発明の実施形態を図面に基づいて、データ処理装置が組み込みシステムである例で説明する。
<<1.データ処理装置のハードウェア構成例>>
図1は、本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。図示するように、組み込みシステム1は、演算装置HW1と、記憶装置HW2と、I/F(interface)HW3とを有する。
演算装置HW1は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等である。また、演算装置HW1は、組み込みシステム1が行う処理の全部又は一部を実現するための演算と、データの加工とを行う演算装置並びに組み込みシステム1が有するハードウェアを制御する制御装置である。さらに、演算装置HW1は、例えば、図示するように、RAM(Random Access Memory)HW10及びROM(Read−Only Memory)HW11等の記憶装置を内蔵し、これらの記憶装置によって記憶領域を実現する。
RAMHW10は、演算装置HW1等が用いるプログラム、設定値又はデータ等を展開及び記憶するために用いられる記憶装置である。
ROMHW11は、演算装置HW1等が用いるプログラム、設定値又はデータ等を記憶する記憶装置である。
記憶装置HW2は、いわゆるメモリ(memory)等である。また、記憶装置HW2は、組み込みシステム1が用いるプログラム、設定値又はデータ等を記憶する主記憶装置である。なお、記憶装置HW2は、補助記憶装置等を有してもよい。
I/FHW3は、組み込みシステム1にデータ等を入出力するインタフェースである。I/FHW3は、バス、コネクタ、ケーブル及びドライバ等で実現される。
なお、組み込みシステム1のハードウェア構成は、図示する構成に限られない。例えば組み込みシステム1は、記憶装置HW2を有さなくともよい。また、組み込みシステム1は、更に演算装置等の補助装置を外部又は内部に有してもよい。
<<2.データ処理装置による全体処理例>>
図2は、本発明の一実施形態に係る組み込みシステムによる全体処理の一例を説明するフローチャートである。例えば、組み込みシステムは、以下のような処理を行い、データ処理方法を実現する。
<<対象データの入力例(ステップS101)>>
ステップS101では、組み込みシステムは、並べ替えの対象となるデータ(以下「対象データ」という。)を入力する。例えば、対象データは、以下のように、複数のデータから構成されるデータである。
図3は、本発明の一実施形態に係る対象データの一例を説明する模式図である。例えば、図示するような対象データDTが並べ替え処理の対象であるとする。この例では、対象データDTは、「0」を示す0番目のデータ(以下「第0データDN0」という。)、「1」を示す1番目のデータ(以下「第1データDN1」という。)、「2」を示す2番目のデータ(以下「第2データDN2」という。)及び「3」を示す3番目のデータ(以下「第3データDN3」という。)の4つのデータで構成されるとする。また、図示するように、この例では、第0データDN0乃至第3データDN3は、昇順に並ぶデータ構成であるとする。以下、図において、順番は、左から右にカウントする。
さらに、以下の説明では、対象データDTを構成する複数のデータの数を「N」で示す。例えば、図示する例では、「N=4」である。なお、データ数は、4つ(N=4)に限られず、他の数でもよい。なお、データの数は、あらかじめ設定される値である。
例えば、図示する対象データDT、すなわち、「N=4」の対象データは、各データを並べ替えて、「N!(階乗)=4!=4×3×2×1=24通り」のいずれかのパターンに変換できる。以下の説明では、各データを並べ替える位置(以下「並べ替え先」という。)を「n」で示す。なお、「n」の添字である「c」は、各データの順番を示す値である。つまり、「c=0」は、0番目を示す。
また、以下の説明では、各データは、0番目の並べ替え先「n」から順に並べ替え先が決定される。具体的には、まず、0番目の並べ替え先「n」が決定される。続いて、0番目の並べ替え先「n」の次に1番目の並べ替え先「n」が決定される。さらに、1番目の並べ替え先「n」の次に2番目の並べ替え先「n」が決定される。そして、3番目のデータは、0乃至2番目のそれぞれのデータの位置が決まると、残りの位置に決まるデータである。例えば、図3に示す対象データDTにおいて、各データの並べ替え先「n」は、以下のように示せる。
図4は、本発明の一実施形態に係る並べ替え先の一例を説明する模式図である。例えば、「n」のパターンは、図4(A)で示すように、第0データDN0を移動させない場合(図では、「n=0」である。)を含めて、「n=0」乃至「n=3」の4通りとなる。具体的には、「n=0」は、移動しない、すなわち、第0データDN0から数えて0番目のデータ(図では、第0データDN0である。)と並べ替えるパターンを示す。また、「n=1」は、第0データDN0から数えて1番目のデータ(図では、第1データDN1である。)と並べ替えることを示す。同様に、「n=2」は、第0データDN0から数えて2番目のデータ(図では、第2データDN2である。)と並べ替えるパターンを示す。さらに、「n=3」は、第0データDN0から数えて3番目のデータ(図では、第3データDN3である。)と並べ替えるパターンを示す。
そして、図4(A)で示す「n=0」乃至「n=3」のうち、0番目の並べ替え先「n」がいずれかのパターンに決定すると、次に、組み込みシステムは、図4(B)で示す「n=0」乃至「n=2」のうちから、1番目の並べ替え先「n」を決定する。なお、図4(B)は、「n=0」のパターンの後に、1番目の並べ替え先「n」が決定される例である。
「n=0」のパターンでは、第0データDN0は、0番目の位置と決定している。そのため、1番目より右側となる残りの3つの位置が、第1データDN1のパターンとなる。具体的には、図4(B)で示すように、「n」のパターンは、第1データDN1を移動させない場合(図では、「n=0」である。)を含めて、「n=0」乃至「n=2」の3通りとなる。具体的には、「n=0」は、移動しない、すなわち、第1データDN1から数えて0番目のデータ(図では、第1データDN1である。)と並べ替えるパターンを示す。また、「n=1」は、第1データDN1から数えて1番目のデータ(図では、第2データDN2である。)と並べ替えるパターンを示す。同様に、「n=2」は、第1データDN1から数えて2番目のデータ(図では、第3データDN3である。)と並べ替えるパターンを示す。
0番目の並べ替え先「n」及び1番目の並べ替え先「n」がそれぞれ決まると、続いて、組み込みシステムは、0番目の並べ替え先「n」及び1番目の並べ替え先「n」と同様に、2番目の並べ替え先「n」を決定する。具体的には、2番目の並べ替え先「n」は、第0データDN0及び第1データDN1の位置が決まっているため、残りの2つから決めることになる。したがって、2番目の並べ替え先「n」のパターンは、2通りとなる。例えば、「n=0」かつ「n=0」である場合には、2番目の並べ替え先「n」は、「n=0」又は「n=1」のどちらかとなる。
同様に、0番目の並べ替え先「n」乃至2番目の並べ替え先「n」がそれぞれ決まると、続いて、組み込みシステムは、0番目の並べ替え先「n」乃至2番目の並べ替え先「n」と同様に、3番目の並べ替え先「n」を決定する。具体的には、3番目の並べ替え先「n」は、第0データDN0乃至第2データDN2の位置が決まっているため、残りの1つになる。したがって、3番目の並べ替え先「n」のパターンは、1通りとなる。例えば、「n=0」、「n=0」及び「n=0」である場合には、3番目の並べ替え先「n」は、「n=0」となる。このように、3番目の並べ替え先「n」は、「n」、「n」及び「n」が決まると、パターンが1通りであるため、残りの1つの位置に決まる。そのため、以下の説明では、0番目の並べ替え先「n」乃至2番目の並べ替え先「n」を決定する方法を記載し、3番目の並べ替え先「n」の決定は、省略する。
このように、各並べ替え先が決まると、各データの位置が決まるため、並べ替えパターンが決定する。つまり、「N=4」の場合には、並べ替えパターンは、24通りのうちから1つに決定される。この並べ替えパターンを特定できる番号を以下の説明では「並替番号n」という。すなわち、並替番号nは、「N=4」の場合には、「0」乃至「23」のいずれかの番号となる。例えば、「N=4」の場合には、並替番号nは、下記(1)式で示す番号である。
Figure 0006222285
上記(1)式に示すように、並替番号nは、以下のような構成のデータである。
図5は、本発明の一実施形態に係る並替番号のデータ構成の一例を説明する模式図である。図示するように、「N=4」の場合には、並替番号nは、「n」、「n」及び「n」の3つの並べ替え先で構成される。
上述の通り、「n」のパターンは、「n=0」乃至「n=3」の4通りとなる。ゆえに、4通りのパターンを表現するため、「n」は、「log4=2ビット」のビット数である。同様に、「n」のパターンは、「n=0」乃至「n=2」の3通りとなる。ゆえに、3通りのパターンを表現するため、「n」は、「log3=1.58496・・・≒1.585ビット」のビット数である。さらに、「n」のパターンは、「n=0」又は「n=1」の2通りとなる。ゆえに、2通りのパターンを表現するため、「n」は、「log2=1ビット」のビット数である。したがって、「N=4」の場合には、並替番号nは、「2+1.585+1=4.585ビット」のビット数となる。なお、この値は、「log4!=log24=4.585ビット」である。すなわち、並替番号nは、「N=4」の場合には、並べ替えパターンを「4.585ビット」で表現することができるデータである。
このように、並替番号nは、各データのそれぞれの並べ替え先で構成される。つまり、図示する例では、並替番号nは、「n」、「n」及び「n」を構成要素とし、構成要素の数は、「N−1」個である。図示するように、各並べ替え先のデータ容量は、各並べ替え先が各データのそれぞれの並べ替え先を示すため、各並べ替え先のパターン数を表現できるビット数となる。
上記(1)式に示す並替番号nが入力されると、組み込みシステムは、例えば、以下のような処理によって、組み込みシステムは、並替番号nから各並べ替え先「n」乃至「n」をそれぞれ計算することができる。
<<並替番号の入力例(ステップS102)>>
図2に戻り、ステップS102では、組み込みシステムは、並替番号nを入力する。例えば、並べ替えパターンをユーザが決定し、ユーザの操作等によって、並替番号nが組み込みシステムに入力される。
<<並替番号に基づく並べ替え先の計算例(ステップS103)>>
ステップS103では、組み込みシステムは、並替番号nに基づいて並べ替え先を計算する。例えば、「N=4」の場合には、組み込みシステムは、下記(2)式乃至下記(4)式に基づいて、並替番号nから0番目の並べ替え先「n」乃至2番目の並べ替え先「n」をそれぞれ計算する。
Figure 0006222285
上記(2)式で示すように、0番目の並べ替え先「n」は、並替番号nを「4」で除算した場合の余りである。図5で示すように、0番目の並べ替え先「n」は、並替番号nのうち、「4通り」分の構成要素である。したがって、並替番号nのうち、「4通り」分となる構成要素を抽出、すなわち、並替番号nを「4」で除算した余りを求めると、0番目の並べ替え先「n」が計算される。次に、1番目の並べ替え先「n」は、下記(3)式によって計算される。
Figure 0006222285
上記(3)式で示すように、まず、組み込みシステムは、並替番号nを「4」で除算する。図5に示すように、並替番号nのうち、「4通り」分は、0番目の並べ替え先「n」を示すデータである。したがって、組み込みシステムは、除算によって、並替番号nから「4通り」分を消す。そして、1番目の並べ替え先「n」は、「3通り」であるため、除算結果を更に「3」で除算し、余りを求めると計算することができる。次に、2番目の並べ替え先「n」は、下記(4)式によって計算される。
Figure 0006222285
上記(4)式で示すように、まず、組み込みシステムは、並替番号nを「4×3」で除算する。並替番号nのうち、0番目の並べ替え先「n」を示す「4通り」と、1番目の並べ替え先「n」を示す「3通り」とを乗算した「4×3=12」は、0番目の並べ替え先「n」及び1番目の並べ替え先「n」を示す構成要素である。したがって、組み込みシステムは、除算によって、並替番号nから「4×3=12通り」分の構成要素を消す。そして、2番目の並べ替え先「n」は、「2通り」であるため、除算結果を更に「2」で除算し、余りを求めると計算することができる。
上記(2)式乃至上記(4)式に基づいて、組み込みシステムは、各並べ替え先、すなわち、「n」乃至「n」をそれぞれ繰り返し計算する。
<<対象データの並べ替え例(ステップS104)>>
図2に戻り、ステップS104では、組み込みシステムは、対象データを並べ替える。すなわち、ステップS103を繰り返し計算すると求まる「n」乃至「n」に基づいて、組み込みシステムは、対象データを並べ替える。
以上のような図2に示す処理が行われると、例えば、対象データは、以下のように並べ替えられる。
まず、図2に示すステップS102において、並替番号nとして「18」が組み込みシステムに入力される。次に、図2に示すステップS103によって、「n」乃至「n」がそれぞれ計算される。具体的には、「n」は、上記(2)式に基づいて、下記(5)式のように計算される。
Figure 0006222285
上記(5)式に示すように、組み込みシステムによって、並替番号nの「18」を「4」で除算して「n=2」が計算される。
次に、「n」は、上記(3)式に基づいて、下記(6)式のように計算される。
Figure 0006222285
上記(6)式に示すように、組み込みシステムによって、まず、並替番号nの「18」を「4」で除算する計算が行われる。なお、除算結果は、「18÷4=4.5」の整数部分である「4」となる。そして、組み込みシステムが、除算結果「4」を更に「3」で除算すると、「n=1」が計算される。
次に、「n」は、上記(4)式に基づいて、下記(7)式のように計算される。
Figure 0006222285
上記(7)式に示すように、組み込みシステムによって、まず、並替番号nの「18」を「4×3」で除算する計算が行われる。なお、除算結果は、「18÷12=1.5」の整数部分である「1」となる。そして、組み込みシステムが、除算結果「1」を更に「2」で除算すると、「n=1」が計算される。
このように、並替番号nが「18」である場合には、図2に示すステップS103によって、「n=2」、「n=1」及び「n=1」がそれぞれ計算される。このような計算に基づいて計算された各並べ替え先に基づいて、図2に示すステップS104では、以下のような並べ替えが行われる。
図6は、本発明の一実施形態に係るデータ処理装置による全体処理の処理結果の一例を説明する図である。以下、図3に示す対象データDTが入力され、かつ、並替番号nが「18」である例で説明する。
まず、図6(A)に示すような対象データDTに対して、「n=2」に基づいて、第0データDN0と、0番目のデータである第0データDN0から右に数えて「2番目」となる第2データDN2とが組み込みシステムによって並べ替えられる。つまり、図6(A)に示す対象データDTは、まず、上記(5)式で計算された、0番目の並べ替え先「n=2」によって第0データDN0と、第2データDN2とが組み込みシステムによって並べ替えられて、図6(B)に示す第2対象データDT2となる。
図6(B)に示すように、第2対象データDT2は、図6(A)に示す対象データDTと比較すると、第0データDN0及び第2データDN2のそれぞれの位置が異なる。
次に、図6(B)に示すような第2対象データDT2に対して、「n=1」に基づいて、第1データDN1と、1番目のデータである第1データDN1から右に数えて「1番目」となる第0データDN0とが組み込みシステムによって並べ替えられる。つまり、図6(B)に示す第2対象データDT2は、上記(6)式で計算された、1番目の並べ替え先「n=1」によって第1データDN1と、第0データDN0とが組み込みシステムによって並べ替えられて、図6(C)に示す第3対象データDT3となる。
図6(C)に示すように、第3対象データDT3は、図6(B)に示す第2対象データDT2と比較すると、第0データDN0及び第1データDN1のそれぞれの位置が異なる。
次に、図6(C)に示すような第3対象データDT3に対して、「n=1」に基づいて、第1データDN1と、2番目のデータである第1データDN1から右に数えて「1番目」となる第3データDN3とが組み込みシステムによって並べ替えられる。つまり、図6(C)に示す第3対象データDT3は、上記(7)式で計算された、2番目の並べ替え先「n=1」によって第1データDN1と、第3データDN3とが組み込みシステムによって並べ替えられて、図6(D)に示す第4対象データDT4となる。
図6(D)に示すように、第4対象データDT4は、図6(C)に示す第3対象データDT3と比較すると、第1データDN1及び第3データDN3のそれぞれの位置が異なる。
このようにして、並替番号nが入力されると、組み込みシステムは、並替番号nに基づいて、図6に示すように、並替番号nから計算されるそれぞれの並べ替え先nに基づいてデータを並べ替えることができる。具体的には、「N=4」、かつ、図3に示す対象データDTが入力される場合には、並替番号、各並べ替え先及び並べ替えパターンは、以下のような関係になる。
図7は、本発明の一実施形態に係る「N=4」の場合の並替番号、各並べ替え先及び並べ替えパターンの一例を説明する図である。図示するように、並替番号nが入力されると、組み込みシステムは、各並べ替え先nを上記(2)式乃至上記(4)式によって計算できる。そして、各並べ替え先nが決まると、図6のように、組み込みシステムは、データを並べ替えることができる。
また、図7に示すように、並替番号nが定まると、図示するように、並べ替えパターンは、「24通り」のいずれかのパターンに決定する。すなわち、並替番号nが定まると、どのような並べ替えパターンにデータを変換するかを決定することができる。したがって、組み込みシステムは、並替番号nから対応する並べ替えパターンとなるようにデータを変換できるLUT等のテーブルを特定してもよい。この場合には、組み込みシステムは、並べ替え先nを計算する負荷を軽減できる。
さらに、並べ替えの対象となるデータは、4つ、すなわち、「N=4」に限られない。「N=4」以外の場合を考慮する、すなわち、上記(2)式乃至上記(4)式を一般化すると、並替番号nから各並べ替え先「n」を計算する計算式は、下記(8)式のようになる。
Figure 0006222285
つまり、上記(8)式において、「N=4」と設定されると、計算式は、上記(2)式乃至上記(4)式のような計算式となる。さらに、並替番号nに「18」が入力されると、上記(5)式乃至上記(7)式のように、計算ができる。このように、並替番号nが入力されると、組み込みシステムは、所定の並べ替えパターンとなるように、データを並べ替えることができる。そして、並替番号nを用いると、組み込みシステムは、LUT等のテーブルデータを用いる場合よりも並べ替えに必要なデータ容量を小さくすることができる。具体的には、データ容量は、以下のようになる。
図8は、本発明の一実施形態に係るデータの並べ替えに必要なデータ容量の一例を説明する図である。図は、データ数「N」ごとの並替番号nを用いる場合のデータ容量を示す。
例えば、「N=256」の場合には、並替番号nは、データ容量は、「211」である。一方で、テーブルを用いる場合には、テーブルは、256個のそれぞれのデータに対応して、1つデータを持つため、テーブルを用いると、データ容量は、「256」である。ゆえに、並替番号nを用いると、「N=256」、すなわち、8ビット入力かつ8ビット出力の場合には、組み込みシステムは、テーブルを用いる場合と比較すると、「256−211=45バイト」のデータ容量を削減することができる。
<<並べ替えパターンから並替番号nを算出する処理例>>
また、組み込みシステムは、並べ替えパターンから並替番号nを例えば以下のような処理によって算出することができる。以下、図3に示す対象データDTを例に説明する。すなわち、対象データDTのように昇順に並ぶ複数のデータを所定の並べ替えパターンに変換する場合の並替番号nを算出する例を以下に説明する。
図9は、本発明の一実施形態に係る並べ替えパターンから並替番号を算出する例を説明する図である。以下、図3に示す対象データDTが、図9(A)に示す第4対象データDT4に変換される並べ替えパターンの並替番号nを計算する例で説明する。すなわち、図6で説明したように、この例の並べ替えパターンは、並替番号nが「18」となる例である。計算では、組み込みシステムは、並べ替えパターンが有する各パターンに基づいて、各並べ替え先「n」をそれぞれ計算する。なお、計算順序は、図において左から順とする。
まず、図9(A)に示す第4対象データDT4の並べ替えパターンにおいて、最も左のパターンに位置する第2データDN2について計算する。この計算は、例えば、図9(B)に示すように行われる。具体的には、第2データDN2は、対象データDTを検索すると、第2番目の位置で検出されるデータである。第2データDN2が検索される位置は、第0番目の位置、すなわち、第0データDN0が位置する最も左側の位置から数えると、2つ分右側の位置である。このように、第2データDN2が検索される位置と、第0番目の位置との距離が0番目の並べ替え先「n」と計算される。すなわち、この例では、図9(B)に示すように、組み込みシステムは、「n=2」と計算する。
次に、図9(C)に示すように、組み込みシステムは、第0データDN0と、第2データDN2とを並べ替える。図9(C)に示す並べ替えが行われると、データは、図9(D)に示すように、第2対象データDT2となる。
続いて、図9(A)に示す第4対象データDT4の並べ替えパターンにおいて、左から2つ目のパターンに位置する第0データDN0について計算する。この計算は、例えば、図9(E)に示すように行われる。具体的には、第0データDN0は、第2対象データDT2を検索すると、第3番目の位置で検出されるデータである。第0データDN0が検索される位置は、第1番目の位置、すなわち、第2対象データDT2において左側から2つ目の位置から数えると、1つ分右側の位置である。このように、第0データDN0が検索される位置と、第1番目の位置との距離が1番目の並べ替え先「n」と計算される。すなわち、この例では、図9(E)に示すように、組み込みシステムは、「n=1」と計算する。
次に、図9(F)に示すように、組み込みシステムは、第1データDN1と、第0データDN0とを並べ替える。図9(F)に示す並べ替えが行われると、データは、図9(G)に示すように、第3対象データDT3となる。
そして、図9(A)に示す第4対象データDT4の並べ替えパターンにおいて、左から3つ目のパターンに位置する第3データDN3について計算する。この計算は、例えば、図9(H)に示すように行われる。具体的には、第3データDN3は、第3対象データDT3を検索すると、第4番目の位置で検出されるデータである。第3データDN3が検索される位置は、第2番目の位置、すなわち、第3対象データDT3において左側から3つ目の位置から数えると、1つ分右側の位置である。このように、第3データDN3が検索される位置と、第2番目の位置との距離が2番目の並べ替え先「n」と計算される。すなわち、この例では、図9(H)に示すように、組み込みシステムは、「n=1」と計算する。
次に、図9(I)に示すように、組み込みシステムは、第1データDN1と、第3データDN3とを並べ替える。図9(I)に示す並べ替えが行われると、データは、図9(A)に示すように、第4対象データDT4となる。
図9(B)、図9(E)及び図9(H)に示すように計算すると、組み込みシステムは、各並べ替え先「n」を計算することができる。この例では、組み込みシステムは、「n=2」、「n=1」及び「n=1」と計算することができる。次に、計算された並べ替え先「n」を上記(1)式に代入すると、組み込みシステムは、並替番号nをすることができる。具体的には、「n=2」、「n=1」及び「n=1」を上記(1)式に代入して計算すると、計算は、下記(9)式のようになる。
Figure 0006222285
上記(9)式のように、組み込みシステムは、並替番号nを「18」と計算することができる。上記(9)式等の並べ替えパターンから並替番号nを計算する計算式を一般化すると、計算式は、下記(10)式のようになる。
Figure 0006222285
上記(10)式を用いると、「N=4」以外の場合でも、組み込みシステムは、並べ替えパターンから並替番号nを計算することができる。
<<別の全体処理例>>
例えば、図3に示すデータが入力されるとする。なお、以下の説明では、各データが入力される順番を「0」からカウントして「c」で示す。例えば、以下のようにして、並替番号nに基づいてデータが選択される。
図10は、本発明の一実施形態に係る組み込みシステムによる別の全体処理の一例を説明するフローチャートである。
<<並替番号nの入力例(ステップS201)>>
ステップS201では、組み込みシステムは、並替番号nを入力する。例えば、図2に示すステップS102と同様の方法等で、組み込みシステムは、並替番号nを入力する。
<<並べ替え先の計算例(ステップS202)>>
ステップS202では、組み込みシステムは、各並べ替え先「n」を計算する。具体的には、ステップS201で入力される並替番号nに基づいて、組み込みシステムは、各並べ替え先「n」をそれぞれ計算する。すなわち、各並べ替え先「n」は、「n」乃至「nデータ数−1」がそれぞれ計算される。例えば、上記(8)式に基づいて、組み込みシステムは、並替番号nから各並べ替え先「n」をそれぞれ計算する。以下、並替番号nに基づいて、「n=2」、「n=1」、「n=3」及び「n=2」である例で説明する。
<<第0番目のデータ(c=0)の処理例>>
<<各データの入力例(ステップS203)>>
ステップS203では、組み込みシステムは、各データを入力する。この例では、最初(c=0である。)、組み込みシステムは、第0番目のデータを入力する。なお、この例では、第0番目のデータは、入力値が「0」であるとする。
<<入力値の代入及び候補値の計算例(ステップS204)>>
ステップS204では、組み込みシステムは、入力値を代入及び候補値を計算する。まず、ステップS204では、組み込みシステムは、入力値を第1変数「data」に代入する。第0番目のデータである場合(c=0である。)には、入力値が「0」であるため、「data=0」となる。
次に、ステップS204では、組み込みシステムは、候補値を計算する。候補値は、「can=data+ndata」と計算される。具体的には、第0番目のデータである場合には、「data=0」であって、「ndata=n」である。また、「n」は、ステップS202より、「n=2」である。したがって、第0番目のデータである場合には、組み込みシステムは、「can=0+2=2」と計算する。
<<探索例(ステップS205)>>
ステップS205では、組み込みシステムは、第2変数「temp」を探索する。具体的には、ステップS205では、組み込みシステムは、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索する。もし、上記条件を満たす第2変数「temp」が存在する場合には、該当する値を第3変数「ser」とする。なお、該当する値が複数存在する場合には、最大値が第3変数「ser」となる。
<<第3変数が存在するか否かの判断例(ステップS206)>>
ステップS206では、組み込みシステムは、第3変数が存在するか否かを判断する。すなわち、ステップS205において、上記条件を満たす第2変数「temp」が存在し、第3変数「ser」が存在する場合(ステップS206でYES)には、組み込みシステムは、ステップS207に進む。一方で、ステップS205において、上記条件を満たす第2変数「temp」が存在せず、第3変数「ser」が存在しない場合(ステップS206でNO)には、組み込みシステムは、ステップS203(ループによる繰り返しの場合)又はステップS208(ループが終了の場合)に進む。
第0番目のデータである場合(c=0である。)には、候補値「can=2」(ステップS204)、第1変数「data=0」(ステップS204)及び「ndata=n=2」(ステップS202)である。そのため、「temp+ntemp=can」、かつ、「temp<data」の条件を満たす第2変数「temp」は、存在しない場合となる(ステップS206でNO)。この場合には、次に、組み込みシステムは、ループに基づいて、第1番目のデータ(c=1)の処理(ステップS203)に進む。
したがって、第0番目のデータ(c=0)において、候補値「can=2」が解となる。
<<第1番目のデータ(c=1)の処理例>>
第1番目のデータ(c=1)である場合には、組み込みシステムは、ステップS203乃至ステップS207によって以下のような処理を行う。この例では、第1番目のデータは、入力値が「1」であるとする。
したがって、組み込みシステムは、「data=1」とする(ステップS204)。さらに、組み込みシステムは、「can=data+ndata=1+n=1+1=2」と計算する(ステップS204)。
次に、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、組み込みシステムは、「temp=0」と検索する(ステップS206でYES)。
そこで、ステップS207では、組み込みシステムは、「data=ser=0」とし、さらに、「can=ser=0」とする。そして、「data=0」、かつ、「can=0」の条件下で、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、条件を満たす第2変数「temp」は、存在しない場合となる(ステップS206でNO)。この場合には、組み込みシステムは、ループに基づいて、次に、第2番目のデータ(c=2)の処理(ステップS203)に進む。
したがって、第1番目のデータ(c=1)において、候補値「can=0」が解となる。
<<第2番目のデータ(c=2)の処理例>>
第2番目のデータ(c=2)である場合には、組み込みシステムは、ステップS203乃至ステップS207によって以下のような処理を行う。この例では、第2番目のデータは、入力値が「2」であるとする。
したがって、組み込みシステムは、「data=2」とする(ステップS204)。さらに、組み込みシステムは、「can=data+ndata=2+n=2+3=5」と計算する(ステップS204)。
次に、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、条件を満たす第2変数「temp」は、存在しない場合となる(ステップS206でNO)。この場合には、組み込みシステムは、ループに基づいて、次に、第3番目のデータ(c=3)の処理(ステップS203)に進む。
したがって、第2番目のデータ(c=2)において、候補値「can=5」が解となる。
<<第3番目のデータ(c=3)の処理例>>
第3番目のデータ(c=3)である場合には、組み込みシステムは、ステップS203乃至ステップS207によって以下のような処理を行う。この例では、第2番目のデータは、入力値が「3」であるとする。
したがって、組み込みシステムは、「data=3」とする(ステップS204)。さらに、組み込みシステムは、「can=data+ndata=3+n=3+2=5」と計算する(ステップS204)。
次に、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、組み込みシステムは、「temp=2」と検索する(ステップS206でYES)。
そこで、ステップS207では、組み込みシステムは、「data=ser=2」とし、さらに、「can=ser=2」とする。そして、「data=2」、かつ、「can=2」の条件下で、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、組み込みシステムは、「temp=1」と検索する(ステップS206でYES)。
そして、ステップS207では、組み込みシステムは、「data=ser=1」とし、さらに、「can=ser=1」とする。そして、「data=1」、かつ、「can=1」の条件下で、「temp+ntemp=can」、かつ、「temp<data」となる第2変数「temp」が存在するか否かを探索すると(ステップS205)、条件を満たす第2変数「temp」は、存在しない場合となる(ステップS206でNO)。この場合には、組み込みシステムは、ステップS208に進む。
したがって、第3番目のデータ(c=3)において、候補値「can=1」が解となる。
<<データの選択例(ステップS208)>>
ステップS208では、組み込みシステムは、候補値「can」に基づいてデータを選択する。処理結果は、例えば、以下のようになる。
図11は、本発明の一実施形態に係る組み込みシステムによる別の全体処理の処理結果例を説明する模式図である。図示するように、組み込みシステムは、入力されるデータをな並替番号nに基づいてルックアップすることができる。すなわち、並替番号nに基づいて各データを選択することによって、ルックアップテーブルを生成せず、組み込みシステムは、図示するようなテーブルを生成することができる。
<<3.暗号化等への適用例>>
図2等に示す処理は、例えば、AES(Advanced Encryption Standard)方式の暗号化等に適用可能である。具体的には、図2等に示す処理は、例えば、以下のようなAESにおけるホワイトボックスクリプトグラフィ(White−Box Cryptography)の処理等に適用できる。
図12は、本発明の一実施形態に係る並べ替えを暗号化の1ラウンド当たりの処理に適用する例を説明する模式図である。図示する処理は、入力データD_INのうち、4つの1バイトのデータに対して処理が行われ、出力データD_OUTのうち、4つの1バイトのデータが生成される1サブラウンド当たりの処理の一例を示す。また、図示する処理、すなわち、1ラウンド当たりの処理では、4サブラウンドの処理が繰り返し行われる。以下、1サブラウンド当たりの処理を中心に説明する。
ステップS301では、4つの1バイトのデータが選ばれる。また、FIPS197で定められている「ShiftRows」関数を実行した処理結果と、ステップS301を行った処理結果とは、同様の結果となる。
ステップS302では、ステップS301で選ばれる1バイトのデータが、いわゆるT−Box等によって変換され、変換されたデータが出力される。
ステップS303では、ステップS302で出力されるデータに対して、いわゆるXOR−Tables等のテーブルによって変換が行われ、図示するように、排他的論理和の計算が行われた場合と同様の処理結果が出力される。
図示するように、FIPS197で定められている「AddRoundKey」関数、「SubBytes」関数及び「MixColumns」関数をそれぞれ実行した処理結果と、ステップS302及びステップS303をそれぞれ行った処理結果とは、同様の結果となる。
図示する処理のうち、組み込みシステムは、「T」の一部の処理等に、図2等に示す処理を適用することができる。具体的には、「T」の一部の処理では、並べ替え処理が行われる。そこで、まず、組み込みシステムは、並替番号nをあらかじめRAMHW10(図1参照)等に記憶する。そして、並べ替えでは、組み込みシステムは、図2等に示すように、並替番号nに基づいて全体処理を行うと並べ替えを実現することができる。また、組み込みシステムは、暗号化においても、並替番号nからテーブルを特定して並べ替えを行ってもよい。なお、逆関数を用いる復号化においても、組み込みシステムは、同様に並べ替えを行ってもよい。他にも、暗号化は、以下のような処理でもよい。
図13は、本発明の一実施形態に係る並べ替えを暗号化の1ラウンド当たりの処理に適用する別の例を説明する模式図である。具体的には、1ラウンド当たりの処理は、特願2015−165174に開示される暗号化に適用されてもよい。より具体的には、図13に示す「0」乃至「15」の1バイトのデータが16個入力された入力データD_INに対する処理である。さらに、1ラウンド当たりの処理は、16バイトのうち、選択される4バイトのデータを処理単位、すなわち、1サブラウンド単位で処理が繰り返し行われる。つまり、1ラウンド当たりの処理では、4サブラウンドの処理が繰り返し行われる。以下、1サブラウンド当たりの処理を中心に説明する。
<<サブラウンドデータの選択例(ステップS401)>>
ステップS401では、組み込みシステムは、サブラウンドデータを選択する。すなわち、組み込みシステムは、入力データD_INのうち、1サブラウンド当たりの処理対象となる1サブラウンドデータを選択する。また、FIPS197で定められている「ShiftRows」関数を実行した処理結果と、ステップS401を行った処理結果とは、同様の結果となる。
以下、図13に示すように、ステップS401で、入力データD_INのうち、「0」、「5」、「10」及び「15」の1バイトのそれぞれのデータがサブラウンドデータとして選択される例で説明する。そのうち、選択されるサブラウンドデータのうち、「0」の1バイトのデータに対する処理を例に説明する。
<<テーブルに基づく置換例(ステップS402)>>
ステップS402では、組み込みシステムは、テーブルに基づいて置換を行う。すなわち、図示するように、組み込みシステムは、入力される「0」の1バイトのデータをテーブルに基づいて置換する。そして、テーブルに基づいて置換が行われると、置換データが生成される。また、テーブルに基づく置換には、第1変換「g」と、第2逆変換「f−1」とが含まれる。
<<テーブルに基づくビットの並べ替え例(ステップS403)>>
ステップS403では、組み込みシステムは、テーブルに基づいてビットを並べ替える。図では、並べ替えは、「h」で示す。なお、「i」は、乱数の排他的論理和による加算等を示す。
<<排他的論理和(XOR、exclusive or)の計算例(ステップS404)>>
ステップS404では、組み込みシステムは、排他的論理和を計算する。
また、テーブルに基づく置換及び排他的論理和が計算には、第2変換「f」が含まれる。
「0」の1バイトのデータと同様に、入力データD_INのうち、「5」、「10」及び「15」の1バイトのデータに対してステップS401乃至ステップS404がそれぞれ行われると、出力データD_OUTのうち、「0」乃至「3」のデータがそれぞれ生成され、1サブラウンドの処理が完了する。
例えば、図2等に示す処理は、図示する暗号化では、「T2」の処理に適用することができる。なお、「T2」による1バイト入力に対する4バイト出力のうち、1バイト当たりの処理では、1バイトの変換には、256バイトのテーブルを要する場合が多い。そこで、図2等に示す処理を適用し、テーブルに代えて、211バイトの並替番号とする。このような構成とすると、1テーブル当たり、256バイトから211バイトにデータ容量を減らすことができる。したがって、1サブラウンド当たりでは、組み込みシステムは、「256バイト×4個のテーブル=1キロバイト」となるデータ容量を「211バイト×4つの並替番号=844バイト」にすることができる。
<<4.データ処理装置の機能構成例>>
図14は、本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。例えば、組み込みシステム1は、入力部FN1と、計算部FN2と、並べ替え部FN3とを含む構成である。
入力部FN1は、入力データD_INの並べ替えパターンを特定できる並替番号nを入力する。例えば、入力部FN1は、I/FHW3(図1参照)等によって実現される。
計算部FN2は、並替番号nに基づいて、入力データD_INに含まれるそれぞれのデータの並べ替え先nを計算する。例えば、計算部FN2は、演算装置HW1(図1参照)等によって実現される。
並べ替え部FN3は、並べ替え先nに基づいて入力データD_INを並べ替える。例えば、並べ替え部FN3は、演算装置HW1(図1参照)等によって実現される。
なお、計算部FN2は、図7等に示すように、並替番号nに対応する並べ替えパターンとなるように入力データD_INを変換できるテーブルを特定する特定部でもよい。例えば、特定部は、演算装置HW1(図1参照)等によって実現される。
また、並べ替え部FN3は、図10及び図11に示すように、並替番号nに基づいて計算される各並べ替え先nから入力データD_INに含まれるデータからデータを選択していく選択する選択部でもよい。例えば、選択部は、演算装置HW1(図1参照)等によって実現される。
他にも、組み込みシステム1は、図9に示すように、並べ替えパターンが入力され、並べ替えパターンとなる並替番号nを算出する算出部が含まれる構成でもよい。例えば、算出部は、演算装置HW1(図1参照)等によって実現される。
このように、組み込みシステム1は、並替番号nを利用すると、所定の並べ替えパターンとなるような各並べ替え先nを計算したり、テーブルを特定したりすることができる。そして、並替番号nは、テーブルより容量の小さいデータである。そのため、組み込みシステム1は、並べ替えに必要なデータ容量を小さくすることができる。
なお、組み込みシステムは、1つの情報処理装置によって実現される構成に限られない。すなわち、本発明に係る実施形態は、1つ以上の情報処理装置を有する組み込みシステムによって実現されてもよい。なお、組み込みシステムでは、各処理の一部又は全部が分散、冗長、並列又はこれらを組み合わせるように、処理が行われてもよい。
さらに、本発明に係る実施形態は、組み込みシステム等のコンピュータにデータ処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、本発明に係るデータ処理方法をコンピュータに実行させるためのプログラムであって、プログラミング言語等によって記述されるコンピュータプログラムである。
また、プログラムは、ブルーレイ(登録商標)等の光ディスク、フラッシュメモリ、磁気ディスク又は光磁気ディスク等の記録媒体に記憶され、頒布されてもよい。さらに、プログラムは、電気通信回線等を介して、頒布されてもよい。
以上、本発明の好ましい実施例について詳述したが、本発明は、係る特定の実施形態に限定されるものではない。すなわち、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
1 組み込みシステム
FN1 入力部
FN2 計算部
FN3 並べ替え部
n 並替番号
並べ替え先

Claims (7)

  1. 入力される複数のデータを並べ替えるデータ処理装置であって、
    前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
    前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
    前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
    を含み、
    前記計算部は、前記並べ替え先を下記(8)式で計算する
    データ処理装置。
    Figure 0006222285
  2. 前記並替番号に基づく並べ替えによって、前記データを暗号化又は復号する請求項1に記載のデータ処理装置。
  3. 前記データ処理装置は、組み込みシステムである請求項1に記載のデータ処理装置。
  4. 入力される複数のデータを並べ替えるデータ処理装置であって、
    前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
    下記(8)式で計算される前記データのそれぞれの並べ替え先及び前記データの入力値に基づいて、それぞれの候補値を計算する計算部と、
    前記候補値に基づいて前記データを選択する選択部と
    を含むデータ処理装置。
    Figure 0006222285
  5. 入力される複数のデータを並べ替えるデータ処理装置であって、
    前記データの並べ替えパターンを入力する入力部と、
    前記並べ替えパターンに基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
    前記並べ替え先に基づいて前記並べ替えパターンを特定できる並替番号を下記(10)式で算出する算出部と
    を含むデータ処理装置。
    Figure 0006222285
  6. 入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するデータ処理装置が行うデータ処理方法であって、
    前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
    前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
    前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
    を含み、
    前記計算手順では、前記演算装置が、前記並べ替え先を下記(8)式で計算する
    データ処理方法。
    Figure 0006222285
  7. 入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するコンピュータにデータ処理方法を実行させるためのプログラムであって、
    前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
    前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
    前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
    を実行させ、
    前記計算手順では、前記演算装置が、前記並べ替え先を下記(8)式で計算する
    プログラム。
    Figure 0006222285
JP2016110105A 2016-06-01 2016-06-01 データ処理装置、データ処理方法及びプログラム Active JP6222285B1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016110105A JP6222285B1 (ja) 2016-06-01 2016-06-01 データ処理装置、データ処理方法及びプログラム
US15/494,688 US10411881B2 (en) 2016-06-01 2017-04-24 Data processing apparatus, method for processing data, and medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016110105A JP6222285B1 (ja) 2016-06-01 2016-06-01 データ処理装置、データ処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP6222285B1 true JP6222285B1 (ja) 2017-11-01
JP2017215518A JP2017215518A (ja) 2017-12-07

Family

ID=60205933

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016110105A Active JP6222285B1 (ja) 2016-06-01 2016-06-01 データ処理装置、データ処理方法及びプログラム

Country Status (2)

Country Link
US (1) US10411881B2 (ja)
JP (1) JP6222285B1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021071570A (ja) * 2019-10-30 2021-05-06 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6888377B2 (ja) 2017-04-05 2021-06-16 富士電機株式会社 情報処理装置、情報処理システム及びプログラム
CN111775698B (zh) * 2019-04-04 2021-11-16 北京新能源汽车股份有限公司 一种车辆里程信息的处理方法、装置及汽车
CN111553372B (zh) * 2020-04-24 2023-08-08 北京搜狗科技发展有限公司 一种训练图像识别网络、图像识别搜索的方法及相关装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4046857B2 (ja) 1998-07-02 2008-02-13 キヤノン株式会社 画像処理装置およびその方法、並びに、記録媒体
JP2003110869A (ja) 2001-03-12 2003-04-11 Sharp Corp 画像処理装置、画像形成装置、画像処理方法、プログラム、および記録媒体
US7725678B2 (en) * 2005-02-17 2010-05-25 Texas Instruments Incorporated Method and apparatus for producing an index vector for use in performing a vector permute operation
JP2008048099A (ja) 2006-08-14 2008-02-28 Fuji Xerox Co Ltd 画像処理方法、画像処理装置、およびルックアップテーブルの設定方法
KR101253176B1 (ko) * 2006-11-02 2013-04-10 엘지전자 주식회사 디지털 방송 시스템 및 데이터 처리 방법
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
CN104126168B (zh) * 2011-12-22 2019-01-08 英特尔公司 打包数据重新安排控制索引前体生成处理器、方法、系统及指令
WO2014003117A1 (ja) * 2012-06-28 2014-01-03 日本電気株式会社 暗号化装置、暗号化方法およびプログラム
JP2014016584A (ja) * 2012-07-11 2014-01-30 Canon Inc データ分割装置、データ復元装置、データ分割方法、データ復元方法、及びプログラム
JP2015165174A (ja) 2014-03-03 2015-09-17 シャープ株式会社 ヒートポンプ装置
US10503502B2 (en) * 2015-09-25 2019-12-10 Intel Corporation Data element rearrangement, processors, methods, systems, and instructions
US20170185413A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Processing devices to perform a conjugate permute instruction

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021071570A (ja) * 2019-10-30 2021-05-06 富士電機株式会社 情報処理装置、情報処理方法及びプログラム
JP7383985B2 (ja) 2019-10-30 2023-11-21 富士電機株式会社 情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
US10411881B2 (en) 2019-09-10
JP2017215518A (ja) 2017-12-07
US20170353300A1 (en) 2017-12-07

Similar Documents

Publication Publication Date Title
JP6222285B1 (ja) データ処理装置、データ処理方法及びプログラム
US8533456B2 (en) Accelerating stream cipher operations using single and grid systems
US10148427B2 (en) Information processing apparatus, method for processing information, and medium
JP5533083B2 (ja) データ処理装置およびデータ処理方法
KR101305627B1 (ko) 암호 연산 장치 및 메모리 시스템
JP6044738B2 (ja) 情報処理装置、プログラム及び記憶媒体
US10097343B2 (en) Data processing apparatus and data processing method
JP3694999B2 (ja) 画像符号化装置および画像復号装置ならびにそれらの方法
JP6292195B2 (ja) 情報処理装置及び情報処理方法
JP5614122B2 (ja) 画像データ復号装置
JP4667800B2 (ja) 符号化方法およびそのプログラム
KR20180067956A (ko) 데이터 압축 장치 및 방법
JP6490064B2 (ja) 情報処理装置、プログラム、及び記録媒体
JP2008067351A (ja) 符号化装置、復号化装置、符号化方法及びプログラム
JP5884412B2 (ja) 変換プログラム、変換装置、変換方法、および変換システム
JP5755970B2 (ja) 演算装置
KR102225820B1 (ko) 악성코드 분석용 머신러닝을 위한 하이브리드 피처 벡터 생성 장치 및 방법
JP2007183514A (ja) 情報処理装置及びプログラム
JP6589642B2 (ja) データ処理装置およびプログラム
KR102282363B1 (ko) 비트 시리얼 hight 연산 장치 및 그 방법, 그 방법을 프로세서가 수행하도록 하기 위한 명령어를 포함하는 컴퓨터 판독 가능한 기록매체 및 컴퓨터 프로그램
JP6011465B2 (ja) 暗号モジュール生成装置
JP5713828B2 (ja) 情報処理装置、情報処理方法、及びプログラム
JP5732765B2 (ja) 画像データ復号装置
JP4901564B2 (ja) 分割テーブル作成装置及び分割テーブル作成プログラム
JP6711003B2 (ja) データ処理装置およびプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170825

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170918

R150 Certificate of patent or registration of utility model

Ref document number: 6222285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250