(57)【要約】【課題】データの並べ替えに必要なデータ容量を小さくすることを目的とする。【解決手段】入力される複数のデータを並べ替えるデータ処理装置が、前記データの並べ替えパターンを特定できる並替番号を入力し、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算し、前記並べ替え先に基づいて前記データを並べ替えることで上記課題を解決する。【選択図】図１４
2017215518.tif 000002
【特許請求の範囲】
【請求項１】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含むデータ処理装置。
【請求項２】
前記並替番号に基づく並べ替えによって、前記データを暗号化又は復号化する請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、組み込みシステムである請求項１に記載のデータ処理装置。
【請求項４】
前記並替番号は、前記データのそれぞれの並べ替え先で構成される請求項１に記載のデータ処理装置。
【請求項５】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記並べ替えパターンに変換するテーブルを特定する特定部と、
前記テーブルに基づいて前記データを並べ替える並べ替え部と
を含むデータ処理装置。
【請求項６】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの候補値を計算する計算部と、
前記候補値に基づいて前記データを選択する選択部と
を含むデータ処理装置。
【請求項７】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを入力する入力部と、
前記並べ替えパターンに基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記並べ替えパターンとなる並替番号を算出する算出部と
を含むデータ処理装置。
【請求項８】
入力される複数のデータを並べ替えるデータ処理装置が行うデータ処理方法であって、
前記データ処理装置が、前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記データ処理装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記データ処理装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を含むデータ処理装置。
【請求項９】
入力される複数のデータを並べ替えるコンピュータにデータ処理方法を実行させるためのプログラムであって、
前記コンピュータが、前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記コンピュータが、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記コンピュータが、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理装置、データ処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、データを変換するのに、入力、すなわち、変換前と、出力、すなわち、変換後との関係を示すＬＵＴ（Ｌｏｏｋ  Ｕｐ  Ｔａｂｌｅ）等のテーブルを用いる方法が知られている。
【０００３】
例えば、カラーインクジェットプリンタ等の画像処理装置は、まず、画像データを変換するのに用いる、画像データを構成する色成分ごとに配列される変換テーブルを圧縮して、圧縮変換テーブルにして格納する。そして、データを復元する場合には、画像処理装置は、圧縮変換テーブルを伸張し、伸長された圧縮変換テーブルに基づいて補間演算処理して入力される画像データを変換する。このようにして、格納されるテーブルのデータ容量を小さくする方法が知られている（例えば、特許文献１等）。
【０００４】
また、色補正において、色補正テーブルを用いて入力画像データを出力画像データに変換するため、画像処理装置は、色補正テーブルを圧縮して固定的に格納し、変換の際には、色補正テーブルを展開して色補正を行う。このようにして、格納されるテーブルのデータ容量を小さくする方法が知られている（例えば、特許文献２等）。
【０００５】
他にも、画像処理において、画像処理装置は、まず、所定の圧縮方式に従って画像データ及びＬＵＴデータを圧縮し、メモリに記憶する。そして、画像処理装置は、メモリから読み出す圧縮されたＬＵＴデータを伸張する伸張部へ転送するＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラと、伸長されたＬＵＴデータを記憶するメモリとを有する。このような構成にして、ＬＵＴデータの伸張を専用で行う伸張手段を省略した構成とする方法が知られている（例えば、特許文献３等）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２２９７４号公報
【特許文献２】特開２００３−１１０８６９号公報
【特許文献３】特開２００８−４８０９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来の方法では、データの並べ替えに必要なデータ容量が大きい場合がある。
【０００８】
本発明の１つの側面は、データの並べ替えに必要なデータ容量を小さくすることを目的とする。
【課題を解決するための手段】
【０００９】
一態様における、入力される複数のデータを並べ替えるデータ処理装置は、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含む。
【発明の効果】
【００１０】
データの並べ替えに必要なデータ容量を小さくすることができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。
【図２】本発明の一実施形態に係る組み込みシステムによる全体処理の一例を説明するフローチャートである。
【図３】本発明の一実施形態に係る対象データの一例を説明する模式図である。
【図４】本発明の一実施形態に係る並べ替え先の一例を説明する模式図である。
【図５】本発明の一実施形態に係る並替番号のデータ構成の一例を説明する模式図である。
【図６】本発明の一実施形態に係るデータ処理装置による全体処理の処理結果の一例を説明する図である。
【図７】本発明の一実施形態に係る「Ｎ＝４」の場合の並替番号、各並べ替え先及び並べ替えパターンの一例を説明する図である。
【図８】本発明の一実施形態に係るデータの並べ替えに必要なデータ容量の一例を説明する図である。
【図９】本発明の一実施形態に係る並べ替えパターンから並替番号を算出する例を説明する図である。
【図１０】本発明の一実施形態に係る組み込みシステムによる別の全体処理の一例を説明するフローチャートである。
【図１１】本発明の一実施形態に係る組み込みシステムによる別の全体処理の処理結果例を説明する模式図である。
【図１２】本発明の一実施形態に係る並べ替えを暗号化の１ラウンド当たりの処理に適用する例を説明する模式図である。
【図１３】本発明の一実施形態に係る並べ替えを暗号化の１ラウンド当たりの処理に適用する別の例を説明する模式図である。
【図１４】本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて、データ処理装置及びデータ処理方法の例を説明する。
【００１３】
１．データ処理装置のハードウェア構成例
２．データ処理装置による全体処理例
３．暗号化等への適用例
４．データ処理装置の機能構成例
データ処理装置は、例えば、組み込みシステム（Ｅｍｂｅｄｄｅｄ  ｓｙｓｔｅｍ）である。組み込みシステムは、産業機器又は家電製品等に内蔵され、特定の機能を実現するためのシステムである。なお、データ処理装置は、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等の情報処理装置でもよい。以下、本発明の実施形態を図面に基づいて、データ処理装置が組み込みシステムである例で説明する。
【００１４】
＜＜１．データ処理装置のハードウェア構成例＞＞
図１は、本発明の一実施形態に係る組み込みシステムのハードウェア構成の一例を説明するブロック図である。図示するように、組み込みシステム１は、演算装置ＨＷ１と、記憶装置ＨＷ２と、Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）ＨＷ３とを有する。
【００１５】
演算装置ＨＷ１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）又はＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等である。また、演算装置ＨＷ１は、組み込みシステム１が行う処理の全部又は一部を実現するための演算と、データの加工とを行う演算装置並びに組み込みシステム１が有するハードウェアを制御する制御装置である。さらに、演算装置ＨＷ１は、例えば、図示するように、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）ＨＷ１０及びＲＯＭ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＨＷ１１等の記憶装置を内蔵し、これらの記憶装置によって記憶領域を実現する。
【００１６】
ＲＡＭＨＷ１０は、演算装置ＨＷ１等が用いるプログラム、設定値又はデータ等を展開及び記憶するために用いられる記憶装置である。
【００１７】
ＲＯＭＨＷ１１は、演算装置ＨＷ１等が用いるプログラム、設定値又はデータ等を記憶する記憶装置である。
【００１８】
記憶装置ＨＷ２は、いわゆるメモリ（ｍｅｍｏｒｙ）等である。また、記憶装置ＨＷ２は、組み込みシステム１が用いるプログラム、設定値又はデータ等を記憶する主記憶装置である。なお、記憶装置ＨＷ２は、補助記憶装置等を有してもよい。
【００１９】
Ｉ／ＦＨＷ３は、組み込みシステム１にデータ等を入出力するインタフェースである。Ｉ／ＦＨＷ３は、バス、コネクタ、ケーブル及びドライバ等で実現される。
【００２０】
なお、組み込みシステム１のハードウェア構成は、図示する構成に限られない。例えば組み込みシステム１は、記憶装置ＨＷ２を有さなくともよい。また、組み込みシステム１は、更に演算装置等の補助装置を外部又は内部に有してもよい。
【００２１】
＜＜２．データ処理装置による全体処理例＞＞
図２は、本発明の一実施形態に係る組み込みシステムによる全体処理の一例を説明するフローチャートである。例えば、組み込みシステムは、以下のような処理を行い、データ処理方法を実現する。
【００２２】
＜＜対象データの入力例（ステップＳ１０１）＞＞
ステップＳ１０１では、組み込みシステムは、並べ替えの対象となるデータ（以下「対象データ」という。）を入力する。例えば、対象データは、以下のように、複数のデータから構成されるデータである。
【００２３】
図３は、本発明の一実施形態に係る対象データの一例を説明する模式図である。例えば、図示するような対象データＤＴが並べ替え処理の対象であるとする。この例では、対象データＤＴは、「０」を示す０番目のデータ（以下「第０データＤＮ０」という。）、「１」を示す１番目のデータ（以下「第１データＤＮ１」という。）、「２」を示す２番目のデータ（以下「第２データＤＮ２」という。）及び「３」を示す３番目のデータ（以下「第３データＤＮ３」という。）の４つのデータで構成されるとする。また、図示するように、この例では、第０データＤＮ０乃至第３データＤＮ３は、昇順に並ぶデータ構成であるとする。以下、図において、順番は、左から右にカウントする。
【００２４】
さらに、以下の説明では、対象データＤＴを構成する複数のデータの数を「Ｎ」で示す。例えば、図示する例では、「Ｎ＝４」である。なお、データ数は、４つ（Ｎ＝４）に限られず、他の数でもよい。なお、データの数は、あらかじめ設定される値である。
【００２５】
例えば、図示する対象データＤＴ、すなわち、「Ｎ＝４」の対象データは、各データを並べ替えて、「Ｎ！（階乗）＝４！＝４×３×２×１＝２４通り」のいずれかのパターンに変換できる。以下の説明では、各データを並べ替える位置（以下「並べ替え先」という。）を「ｎｃ」で示す。なお、「ｎｃ」の添字である「ｃ」は、各データの順番を示す値である。つまり、「ｃ＝０」は、０番目を示す。
【００２６】
また、以下の説明では、各データは、０番目の並べ替え先「ｎ０」から順に並べ替え先が決定される。具体的には、まず、０番目の並べ替え先「ｎ０」が決定される。続いて、０番目の並べ替え先「ｎ０」の次に１番目の並べ替え先「ｎ１」が決定される。さらに、１番目の並べ替え先「ｎ１」の次に２番目の並べ替え先「ｎ２」が決定される。そして、３番目のデータは、０乃至２番目のそれぞれのデータの位置が決まると、残りの位置に決まるデータである。例えば、図３に示す対象データＤＴにおいて、各データの並べ替え先「ｎｃ」は、以下のように示せる。
【００２７】
図４は、本発明の一実施形態に係る並べ替え先の一例を説明する模式図である。例えば、「ｎ０」のパターンは、図４（Ａ）で示すように、第０データＤＮ０を移動させない場合（図では、「ｎ０＝０」である。）を含めて、「ｎ０＝０」乃至「ｎ０＝３」の４通りとなる。具体的には、「ｎ０＝０」は、移動しない、すなわち、第０データＤＮ０から数えて０番目のデータ（図では、第０データＤＮ０である。）と並べ替えるパターンを示す。また、「ｎ０＝１」は、第０データＤＮ０から数えて１番目のデータ（図では、第１データＤＮ１である。）と並べ替えることを示す。同様に、「ｎ０＝２」は、第０データＤＮ０から数えて２番目のデータ（図では、第２データＤＮ２である。）と並べ替えるパターンを示す。さらに、「ｎ０＝３」は、第０データＤＮ０から数えて３番目のデータ（図では、第３データＤＮ３である。）と並べ替えるパターンを示す。
【００２８】
そして、図４（Ａ）で示す「ｎ０＝０」乃至「ｎ０＝３」のうち、０番目の並べ替え先「ｎ０」がいずれかのパターンに決定すると、次に、組み込みシステムは、図４（Ｂ）で示す「ｎ１＝０」乃至「ｎ１＝２」のうちから、１番目の並べ替え先「ｎ１」を決定する。なお、図４（Ｂ）は、「ｎ０＝０」のパターンの後に、１番目の並べ替え先「ｎ１」が決定される例である。
【００２９】
「ｎ０＝０」のパターンでは、第０データＤＮ０は、０番目の位置と決定している。そのため、１番目より右側となる残りの３つの位置が、第１データＤＮ１のパターンとなる。具体的には、図４（Ｂ）で示すように、「ｎ１」のパターンは、第１データＤＮ１を移動させない場合（図では、「ｎ１＝０」である。）を含めて、「ｎ１＝０」乃至「ｎ１＝２」の３通りとなる。具体的には、「ｎ１＝０」は、移動しない、すなわち、第１データＤＮ１から数えて０番目のデータ（図では、第１データＤＮ１である。）と並べ替えるパターンを示す。また、「ｎ１＝１」は、第１データＤＮ１から数えて１番目のデータ（図では、第２データＤＮ２である。）と並べ替えるパターンを示す。同様に、「ｎ１＝２」は、第１データＤＮ１から数えて２番目のデータ（図では、第３データＤＮ３である。）と並べ替えるパターンを示す。
【００３０】
０番目の並べ替え先「ｎ０」及び１番目の並べ替え先「ｎ１」がそれぞれ決まると、続いて、組み込みシステムは、０番目の並べ替え先「ｎ０」及び１番目の並べ替え先「ｎ１」と同様に、２番目の並べ替え先「ｎ２」を決定する。具体的には、２番目の並べ替え先「ｎ２」は、第０データＤＮ０及び第１データＤＮ１の位置が決まっているため、残りの２つから決めることになる。したがって、２番目の並べ替え先「ｎ２」のパターンは、２通りとなる。例えば、「ｎ０＝０」かつ「ｎ１＝０」である場合には、２番目の並べ替え先「ｎ２」は、「ｎ２＝０」又は「ｎ２＝１」のどちらかとなる。
【００３１】
同様に、０番目の並べ替え先「ｎ０」乃至２番目の並べ替え先「ｎ２」がそれぞれ決まると、続いて、組み込みシステムは、０番目の並べ替え先「ｎ０」乃至２番目の並べ替え先「ｎ２」と同様に、３番目の並べ替え先「ｎ３」を決定する。具体的には、３番目の並べ替え先「ｎ３」は、第０データＤＮ０乃至第２データＤＮ２の位置が決まっているため、残りの１つになる。したがって、３番目の並べ替え先「ｎ３」のパターンは、１通りとなる。例えば、「ｎ０＝０」、「ｎ１＝０」及び「ｎ２＝０」である場合には、３番目の並べ替え先「ｎ３」は、「ｎ３＝０」となる。このように、３番目の並べ替え先「ｎ３」は、「ｎ０」、「ｎ１」及び「ｎ２」が決まると、パターンが１通りであるため、残りの１つの位置に決まる。そのため、以下の説明では、０番目の並べ替え先「ｎ０」乃至２番目の並べ替え先「ｎ２」を決定する方法を記載し、３番目の並べ替え先「ｎ３」の決定は、省略する。
【００３２】
このように、各並べ替え先が決まると、各データの位置が決まるため、並べ替えパターンが決定する。つまり、「Ｎ＝４」の場合には、並べ替えパターンは、２４通りのうちから１つに決定される。この並べ替えパターンを特定できる番号を以下の説明では「並替番号ｎ」という。すなわち、並替番号ｎは、「Ｎ＝４」の場合には、「０」乃至「２３」のいずれかの番号となる。例えば、「Ｎ＝４」の場合には、並替番号ｎは、下記（１）式で示す番号である。
【００３３】
【数１】
2017215518.tif 000003
上記（１）式に示すように、並替番号ｎは、以下のような構成のデータである。
【００３４】
図５は、本発明の一実施形態に係る並替番号のデータ構成の一例を説明する模式図である。図示するように、「Ｎ＝４」の場合には、並替番号ｎは、「ｎ０」、「ｎ１」及び「ｎ２」の３つの並べ替え先で構成される。
【００３５】
上述の通り、「ｎ０」のパターンは、「ｎ０＝０」乃至「ｎ０＝３」の４通りとなる。ゆえに、４通りのパターンを表現するため、「ｎ０」は、「ｌｏｇ２４＝２ビット」のビット数である。同様に、「ｎ１」のパターンは、「ｎ１＝０」乃至「ｎ１＝２」の３通りとなる。ゆえに、３通りのパターンを表現するため、「ｎ１」は、「ｌｏｇ２３＝１．５８４９６・・・≒１．５８５ビット」のビット数である。さらに、「ｎ２」のパターンは、「ｎ２＝０」又は「ｎ２＝１」の２通りとなる。ゆえに、２通りのパターンを表現するため、「ｎ２」は、「ｌｏｇ２２＝１ビット」のビット数である。したがって、「Ｎ＝４」の場合には、並替番号ｎは、「２＋１．５８５＋１＝４．５８５ビット」のビット数となる。なお、この値は、「ｌｏｇ２４！＝ｌｏｇ２２４＝４．５８５ビット」である。すなわち、並替番号ｎは、「Ｎ＝４」の場合には、並べ替えパターンを「４．５８５ビット」で表現することができるデータである。
【００３６】
このように、並替番号ｎは、各データのそれぞれの並べ替え先で構成される。つまり、図示する例では、並替番号ｎは、「ｎ０」、「ｎ１」及び「ｎ２」を構成要素とし、構成要素の数は、「Ｎ−１」個である。図示するように、各並べ替え先のデータ容量は、各並べ替え先が各データのそれぞれの並べ替え先を示すため、各並べ替え先のパターン数を表現できるビット数となる。
【００３７】
上記（１）式に示す並替番号ｎが入力されると、組み込みシステムは、例えば、以下のような処理によって、組み込みシステムは、並替番号ｎから各並べ替え先「ｎ０」乃至「ｎ３」をそれぞれ計算することができる。
【００３８】
＜＜並替番号の入力例（ステップＳ１０２）＞＞
図２に戻り、ステップＳ１０２では、組み込みシステムは、並替番号ｎを入力する。例えば、並べ替えパターンをユーザが決定し、ユーザの操作等によって、並替番号ｎが組み込みシステムに入力される。
【００３９】
＜＜並替番号に基づく並べ替え先の計算例（ステップＳ１０３）＞＞
ステップＳ１０３では、組み込みシステムは、並替番号ｎに基づいて並べ替え先を計算する。例えば、「Ｎ＝４」の場合には、組み込みシステムは、下記（２）式乃至下記（４）式に基づいて、並替番号ｎから０番目の並べ替え先「ｎ０」乃至２番目の並べ替え先「ｎ２」をそれぞれ計算する。
【００４０】
【数２】
2017215518.tif 000004
上記（２）式で示すように、０番目の並べ替え先「ｎ０」は、並替番号ｎを「４」で除算した場合の余りである。図５で示すように、０番目の並べ替え先「ｎ０」は、並替番号ｎのうち、「４通り」分の構成要素である。したがって、並替番号ｎのうち、「４通り」分となる構成要素を抽出、すなわち、並替番号ｎを「４」で除算した余りを求めると、０番目の並べ替え先「ｎ０」が計算される。次に、１番目の並べ替え先「ｎ１」は、下記（３）式によって計算される。
【００４１】
【数３】
2017215518.tif 000005
上記（３）式で示すように、まず、組み込みシステムは、並替番号ｎを「４」で除算する。図５に示すように、並替番号ｎのうち、「４通り」分は、０番目の並べ替え先「ｎ０」を示すデータである。したがって、組み込みシステムは、除算によって、並替番号ｎから「４通り」分を消す。そして、１番目の並べ替え先「ｎ１」は、「３通り」であるため、除算結果を更に「３」で除算し、余りを求めると計算することができる。次に、２番目の並べ替え先「ｎ２」は、下記（４）式によって計算される。
【００４２】
【数４】
2017215518.tif 000006
上記（４）式で示すように、まず、組み込みシステムは、並替番号ｎを「４×３」で除算する。並替番号ｎのうち、０番目の並べ替え先「ｎ０」を示す「４通り」と、１番目の並べ替え先「ｎ１」を示す「３通り」とを乗算した「４×３＝１２」は、０番目の並べ替え先「ｎ０」及び１番目の並べ替え先「ｎ１」を示す構成要素である。したがって、組み込みシステムは、除算によって、並替番号ｎから「４×３＝１２通り」分の構成要素を消す。そして、２番目の並べ替え先「ｎ２」は、「２通り」であるため、除算結果を更に「２」で除算し、余りを求めると計算することができる。
【００４３】
上記（２）式乃至上記（４）式に基づいて、組み込みシステムは、各並べ替え先、すなわち、「ｎ０」乃至「ｎ２」をそれぞれ繰り返し計算する。
【００４４】
＜＜対象データの並べ替え例（ステップＳ１０４）＞＞
図２に戻り、ステップＳ１０４では、組み込みシステムは、対象データを並べ替える。すなわち、ステップＳ１０３を繰り返し計算すると求まる「ｎ０」乃至「ｎ２」に基づいて、組み込みシステムは、対象データを並べ替える。
【００４５】
以上のような図２に示す処理が行われると、例えば、対象データは、以下のように並べ替えられる。
【００４６】
まず、図２に示すステップＳ１０２において、並替番号ｎとして「１８」が組み込みシステムに入力される。次に、図２に示すステップＳ１０３によって、「ｎ０」乃至「ｎ２」がそれぞれ計算される。具体的には、「ｎ０」は、上記（２）式に基づいて、下記（５）式のように計算される。
【００４７】
【数５】
2017215518.tif 000007
上記（５）式に示すように、組み込みシステムによって、並替番号ｎの「１８」を「４」で除算して「ｎ０＝２」が計算される。
【００４８】
次に、「ｎ１」は、上記（３）式に基づいて、下記（６）式のように計算される。
【００４９】
【数６】
2017215518.tif 000008
上記（６）式に示すように、組み込みシステムによって、まず、並替番号ｎの「１８」を「４」で除算する計算が行われる。なお、除算結果は、「１８÷４＝４．５」の整数部分である「４」となる。そして、組み込みシステムが、除算結果「４」を更に「３」で除算すると、「ｎ１＝１」が計算される。
【００５０】
次に、「ｎ２」は、上記（４）式に基づいて、下記（７）式のように計算される。
【００５１】
【数７】
2017215518.tif 000009
上記（７）式に示すように、組み込みシステムによって、まず、並替番号ｎの「１８」を「４×３」で除算する計算が行われる。なお、除算結果は、「１８÷１２＝１．５」の整数部分である「１」となる。そして、組み込みシステムが、除算結果「１」を更に「２」で除算すると、「ｎ２＝１」が計算される。
【００５２】
このように、並替番号ｎが「１８」である場合には、図２に示すステップＳ１０３によって、「ｎ０＝２」、「ｎ１＝１」及び「ｎ２＝１」がそれぞれ計算される。このような計算に基づいて計算された各並べ替え先に基づいて、図２に示すステップＳ１０４では、以下のような並べ替えが行われる。
【００５３】
図６は、本発明の一実施形態に係るデータ処理装置による全体処理の処理結果の一例を説明する図である。以下、図３に示す対象データＤＴが入力され、かつ、並替番号ｎが「１８」である例で説明する。
【００５４】
まず、図６（Ａ）に示すような対象データＤＴに対して、「ｎ０＝２」に基づいて、第０データＤＮ０と、０番目のデータである第０データＤＮ０から右に数えて「２番目」となる第２データＤＮ２とが組み込みシステムによって並べ替えられる。つまり、図６（Ａ）に示す対象データＤＴは、まず、上記（５）式で計算された、０番目の並べ替え先「ｎ０＝２」によって第０データＤＮ０と、第２データＤＮ２とが組み込みシステムによって並べ替えられて、図６（Ｂ）に示す第２対象データＤＴ２となる。
【００５５】
図６（Ｂ）に示すように、第２対象データＤＴ２は、図６（Ａ）に示す対象データＤＴと比較すると、第０データＤＮ０及び第２データＤＮ２のそれぞれの位置が異なる。
【００５６】
次に、図６（Ｂ）に示すような第２対象データＤＴ２に対して、「ｎ１＝１」に基づいて、第１データＤＮ１と、１番目のデータである第１データＤＮ１から右に数えて「１番目」となる第０データＤＮ０とが組み込みシステムによって並べ替えられる。つまり、図６（Ｂ）に示す第２対象データＤＴ２は、上記（６）式で計算された、１番目の並べ替え先「ｎ１＝１」によって第１データＤＮ１と、第０データＤＮ０とが組み込みシステムによって並べ替えられて、図６（Ｃ）に示す第３対象データＤＴ３となる。
【００５７】
図６（Ｃ）に示すように、第３対象データＤＴ３は、図６（Ｂ）に示す第２対象データＤＴ２と比較すると、第０データＤＮ０及び第１データＤＮ１のそれぞれの位置が異なる。
【００５８】
次に、図６（Ｃ）に示すような第３対象データＤＴ３に対して、「ｎ２＝１」に基づいて、第１データＤＮ１と、２番目のデータである第１データＤＮ１から右に数えて「１番目」となる第３データＤＮ３とが組み込みシステムによって並べ替えられる。つまり、図６（Ｃ）に示す第３対象データＤＴ３は、上記（７）式で計算された、２番目の並べ替え先「ｎ２＝１」によって第１データＤＮ１と、第３データＤＮ３とが組み込みシステムによって並べ替えられて、図６（Ｄ）に示す第４対象データＤＴ４となる。
【００５９】
図６（Ｄ）に示すように、第４対象データＤＴ４は、図６（Ｃ）に示す第３対象データＤＴ３と比較すると、第１データＤＮ１及び第３データＤＮ３のそれぞれの位置が異なる。
【００６０】
このようにして、並替番号ｎが入力されると、組み込みシステムは、並替番号ｎに基づいて、図６に示すように、並替番号ｎから計算されるそれぞれの並べ替え先ｎｃに基づいてデータを並べ替えることができる。具体的には、「Ｎ＝４」、かつ、図３に示す対象データＤＴが入力される場合には、並替番号、各並べ替え先及び並べ替えパターンは、以下のような関係になる。
【００６１】
図７は、本発明の一実施形態に係る「Ｎ＝４」の場合の並替番号、各並べ替え先及び並べ替えパターンの一例を説明する図である。図示するように、並替番号ｎが入力されると、組み込みシステムは、各並べ替え先ｎｃを上記（２）式乃至上記（４）式によって計算できる。そして、各並べ替え先ｎｃが決まると、図６のように、組み込みシステムは、データを並べ替えることができる。
【００６２】
また、図７に示すように、並替番号ｎが定まると、図示するように、並べ替えパターンは、「２４通り」のいずれかのパターンに決定する。すなわち、並替番号ｎが定まると、どのような並べ替えパターンにデータを変換するかを決定することができる。したがって、組み込みシステムは、並替番号ｎから対応する並べ替えパターンとなるようにデータを変換できるＬＵＴ等のテーブルを特定してもよい。この場合には、組み込みシステムは、並べ替え先ｎｃを計算する負荷を軽減できる。
【００６３】
さらに、並べ替えの対象となるデータは、４つ、すなわち、「Ｎ＝４」に限られない。「Ｎ＝４」以外の場合を考慮する、すなわち、上記（２）式乃至上記（４）式を一般化すると、並替番号ｎから各並べ替え先「ｎｃ」を計算する計算式は、下記（８）式のようになる。
【００６４】
【数８】
2017215518.tif 000010
つまり、上記（８）式において、「Ｎ＝４」と設定されると、計算式は、上記（２）式乃至上記（４）式のような計算式となる。さらに、並替番号ｎに「１８」が入力されると、上記（５）式乃至上記（７）式のように、計算ができる。このように、並替番号ｎが入力されると、組み込みシステムは、所定の並べ替えパターンとなるように、データを並べ替えることができる。そして、並替番号ｎを用いると、組み込みシステムは、ＬＵＴ等のテーブルデータを用いる場合よりも並べ替えに必要なデータ容量を小さくすることができる。具体的には、データ容量は、以下のようになる。
【００６５】
図８は、本発明の一実施形態に係るデータの並べ替えに必要なデータ容量の一例を説明する図である。図は、データ数「Ｎ」ごとの並替番号ｎを用いる場合のデータ容量を示す。
【００６６】
例えば、「Ｎ＝２５６」の場合には、並替番号ｎは、データ容量は、「２１１」である。一方で、テーブルを用いる場合には、テーブルは、２５６個のそれぞれのデータに対応して、１つデータを持つため、テーブルを用いると、データ容量は、「２５６」である。ゆえに、並替番号ｎを用いると、「Ｎ＝２５６」、すなわち、８ビット入力かつ８ビット出力の場合には、組み込みシステムは、テーブルを用いる場合と比較すると、「２５６−２１１＝４５バイト」のデータ容量を削減することができる。
【００６７】
＜＜並べ替えパターンから並替番号ｎを算出する処理例＞＞
また、組み込みシステムは、並べ替えパターンから並替番号ｎを例えば以下のような処理によって算出することができる。以下、図３に示す対象データＤＴを例に説明する。すなわち、対象データＤＴのように昇順に並ぶ複数のデータを所定の並べ替えパターンに変換する場合の並替番号ｎを算出する例を以下に説明する。
【００６８】
図９は、本発明の一実施形態に係る並べ替えパターンから並替番号を算出する例を説明する図である。以下、図３に示す対象データＤＴが、図９（Ａ）に示す第４対象データＤＴ４に変換される並べ替えパターンの並替番号ｎを計算する例で説明する。すなわち、図６で説明したように、この例の並べ替えパターンは、並替番号ｎが「１８」となる例である。計算では、組み込みシステムは、並べ替えパターンが有する各パターンに基づいて、各並べ替え先「ｎｃ」をそれぞれ計算する。なお、計算順序は、図において左から順とする。
【００６９】
まず、図９（Ａ）に示す第４対象データＤＴ４の並べ替えパターンにおいて、最も左のパターンに位置する第２データＤＮ２について計算する。この計算は、例えば、図９（Ｂ）に示すように行われる。具体的には、第２データＤＮ２は、対象データＤＴを検索すると、第２番目の位置で検出されるデータである。第２データＤＮ２が検索される位置は、第０番目の位置、すなわち、第０データＤＮ０が位置する最も左側の位置から数えると、２つ分右側の位置である。このように、第２データＤＮ２が検索される位置と、第０番目の位置との距離が０番目の並べ替え先「ｎ０」と計算される。すなわち、この例では、図９（Ｂ）に示すように、組み込みシステムは、「ｎ０＝２」と計算する。
【００７０】
次に、図９（Ｃ）に示すように、組み込みシステムは、第０データＤＮ０と、第２データＤＮ２とを並べ替える。図９（Ｃ）に示す並べ替えが行われると、データは、図９（Ｄ）に示すように、第２対象データＤＴ２となる。
【００７１】
続いて、図９（Ａ）に示す第４対象データＤＴ４の並べ替えパターンにおいて、左から２つ目のパターンに位置する第０データＤＮ０について計算する。この計算は、例えば、図９（Ｅ）に示すように行われる。具体的には、第０データＤＮ０は、第２対象データＤＴ２を検索すると、第３番目の位置で検出されるデータである。第０データＤＮ０が検索される位置は、第１番目の位置、すなわち、第２対象データＤＴ２において左側から２つ目の位置から数えると、１つ分右側の位置である。このように、第０データＤＮ０が検索される位置と、第１番目の位置との距離が１番目の並べ替え先「ｎ１」と計算される。すなわち、この例では、図９（Ｅ）に示すように、組み込みシステムは、「ｎ１＝１」と計算する。
【００７２】
次に、図９（Ｆ）に示すように、組み込みシステムは、第１データＤＮ１と、第０データＤＮ０とを並べ替える。図９（Ｆ）に示す並べ替えが行われると、データは、図９（Ｇ）に示すように、第３対象データＤＴ３となる。
【００７３】
そして、図９（Ａ）に示す第４対象データＤＴ４の並べ替えパターンにおいて、左から３つ目のパターンに位置する第３データＤＮ３について計算する。この計算は、例えば、図９（Ｈ）に示すように行われる。具体的には、第３データＤＮ３は、第３対象データＤＴ３を検索すると、第４番目の位置で検出されるデータである。第３データＤＮ３が検索される位置は、第２番目の位置、すなわち、第３対象データＤＴ３において左側から３つ目の位置から数えると、１つ分右側の位置である。このように、第３データＤＮ３が検索される位置と、第２番目の位置との距離が２番目の並べ替え先「ｎ２」と計算される。すなわち、この例では、図９（Ｈ）に示すように、組み込みシステムは、「ｎ２＝１」と計算する。
【００７４】
次に、図９（Ｉ）に示すように、組み込みシステムは、第１データＤＮ１と、第３データＤＮ３とを並べ替える。図９（Ｉ）に示す並べ替えが行われると、データは、図９（Ａ）に示すように、第４対象データＤＴ４となる。
【００７５】
図９（Ｂ）、図９（Ｅ）及び図９（Ｈ）に示すように計算すると、組み込みシステムは、各並べ替え先「ｎｃ」を計算することができる。この例では、組み込みシステムは、「ｎ０＝２」、「ｎ１＝１」及び「ｎ２＝１」と計算することができる。次に、計算された並べ替え先「ｎｃ」を上記（１）式に代入すると、組み込みシステムは、並替番号ｎをすることができる。具体的には、「ｎ０＝２」、「ｎ１＝１」及び「ｎ２＝１」を上記（１）式に代入して計算すると、計算は、下記（９）式のようになる。
【数９】
2017215518.tif 000011
上記（９）式のように、組み込みシステムは、並替番号ｎを「１８」と計算することができる。上記（９）式等の並べ替えパターンから並替番号ｎを計算する計算式を一般化すると、計算式は、下記（１０）式のようになる。
【００７６】
【数１０】
2017215518.tif 000012
上記（１０）式を用いると、「Ｎ＝４」以外の場合でも、組み込みシステムは、並べ替えパターンから並替番号ｎを計算することができる。
【００７７】
＜＜別の全体処理例＞＞
例えば、図３に示すデータが入力されるとする。なお、以下の説明では、各データが入力される順番を「０」からカウントして「ｃ」で示す。例えば、以下のようにして、並替番号ｎに基づいてデータが選択される。
【００７８】
図１０は、本発明の一実施形態に係る組み込みシステムによる別の全体処理の一例を説明するフローチャートである。
【００７９】
＜＜並替番号ｎの入力例（ステップＳ２０１）＞＞
ステップＳ２０１では、組み込みシステムは、並替番号ｎを入力する。例えば、図２に示すステップＳ１０２と同様の方法等で、組み込みシステムは、並替番号ｎを入力する。
【００８０】
＜＜並べ替え先の計算例（ステップＳ２０２）＞＞
ステップＳ２０２では、組み込みシステムは、各並べ替え先「ｎｃ」を計算する。具体的には、ステップＳ２０１で入力される並替番号ｎに基づいて、組み込みシステムは、各並べ替え先「ｎｃ」をそれぞれ計算する。すなわち、各並べ替え先「ｎｃ」は、「ｎ０」乃至「ｎデータ数−１」がそれぞれ計算される。例えば、上記（８）式に基づいて、組み込みシステムは、並替番号ｎから各並べ替え先「ｎｃ」をそれぞれ計算する。以下、並替番号ｎに基づいて、「ｎ０＝２」、「ｎ１＝１」、「ｎ２＝３」及び「ｎ３＝２」である例で説明する。
【００８１】
＜＜第０番目のデータ（ｃ＝０）の処理例＞＞
＜＜各データの入力例（ステップＳ２０３）＞＞
ステップＳ２０３では、組み込みシステムは、各データを入力する。この例では、最初（ｃ＝０である。）、組み込みシステムは、第０番目のデータを入力する。なお、この例では、第０番目のデータは、入力値が「０」であるとする。
【００８２】
＜＜入力値の代入及び候補値の計算例（ステップＳ２０４）＞＞
ステップＳ２０４では、組み込みシステムは、入力値を代入及び候補値を計算する。まず、ステップＳ２０４では、組み込みシステムは、入力値を第１変数「ｄａｔａ」に代入する。第０番目のデータである場合（ｃ＝０である。）には、入力値が「０」であるため、「ｄａｔａ＝０」となる。
【００８３】
次に、ステップＳ２０４では、組み込みシステムは、候補値を計算する。候補値は、「ｃａｎ［ｃ］＝ｄａｔａ＋ｎｄａｔａ」と計算される。具体的には、第０番目のデータである場合には、「ｄａｔａ＝０」であって、「ｎｄａｔａ＝ｎ０」である。また、「ｎ０」は、ステップＳ２０２より、「ｎ０＝２」である。したがって、第０番目のデータである場合には、組み込みシステムは、「ｃａｎ［０］＝０＋２＝２」と計算する。
【００８４】
＜＜探索例（ステップＳ２０５）＞＞
ステップＳ２０５では、組み込みシステムは、第２変数「ｔｅｍｐ」を探索する。具体的には、ステップＳ２０５では、組み込みシステムは、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索する。もし、上記条件を満たす第２変数「ｔｅｍｐ」が存在する場合には、該当する値を第３変数「ｓｅｒ」とする。なお、該当する値が複数存在する場合には、最大値が第３変数「ｓｅｒ」となる。
【００８５】
＜＜第３変数が存在するか否かの判断例（ステップＳ２０６）＞＞
ステップＳ２０６では、組み込みシステムは、第３変数が存在するか否かを判断する。すなわち、ステップＳ２０５において、上記条件を満たす第２変数「ｔｅｍｐ」が存在し、第３変数「ｓｅｒ」が存在する場合（ステップＳ２０６でＹＥＳ）には、組み込みシステムは、ステップＳ２０７に進む。一方で、ステップＳ２０５において、上記条件を満たす第２変数「ｔｅｍｐ」が存在せず、第３変数「ｓｅｒ」が存在しない場合（ステップＳ２０６でＮＯ）には、組み込みシステムは、ステップＳ２０３（ループによる繰り返しの場合）又はステップＳ２０８（ループが終了の場合）に進む。
【００８６】
第０番目のデータである場合（ｃ＝０である。）には、候補値「ｃａｎ［０］＝２」（ステップＳ２０４）、第１変数「ｄａｔａ＝０」（ステップＳ２０４）及び「ｎｄａｔａ＝ｎ０＝２」（ステップＳ２０２）である。そのため、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」の条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、次に、組み込みシステムは、ループに基づいて、第１番目のデータ（ｃ＝１）の処理（ステップＳ２０３）に進む。
【００８７】
したがって、第０番目のデータ（ｃ＝０）において、候補値「ｃａｎ［０］＝２」が解となる。
【００８８】
＜＜第１番目のデータ（ｃ＝１）の処理例＞＞
第１番目のデータ（ｃ＝１）である場合には、組み込みシステムは、ステップＳ２０３乃至ステップＳ２０７によって以下のような処理を行う。この例では、第１番目のデータは、入力値が「１」であるとする。
【００８９】
したがって、組み込みシステムは、「ｄａｔａ＝１」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ［１］＝ｄａｔａ＋ｎｄａｔａ＝１＋ｎ１＝１＋１＝２」と計算する（ステップＳ２０４）。
【００９０】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝０」と検索する（ステップＳ２０６でＹＥＳ）。
【００９１】
そこで、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝０」とし、さらに、「ｃａｎ［１］＝ｓｅｒ＝０」とする。そして、「ｄａｔａ＝０」、かつ、「ｃａｎ［１］＝０」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ループに基づいて、次に、第２番目のデータ（ｃ＝２）の処理（ステップＳ２０３）に進む。
【００９２】
したがって、第１番目のデータ（ｃ＝１）において、候補値「ｃａｎ［１］＝０」が解となる。
【００９３】
＜＜第２番目のデータ（ｃ＝２）の処理例＞＞
第２番目のデータ（ｃ＝２）である場合には、組み込みシステムは、ステップＳ２０３乃至ステップＳ２０７によって以下のような処理を行う。この例では、第２番目のデータは、入力値が「２」であるとする。
【００９４】
したがって、組み込みシステムは、「ｄａｔａ＝２」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ［２］＝ｄａｔａ＋ｎｄａｔａ＝２＋ｎ２＝２＋３＝５」と計算する（ステップＳ２０４）。
【００９５】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ループに基づいて、次に、第３番目のデータ（ｃ＝３）の処理（ステップＳ２０３）に進む。
【００９６】
したがって、第２番目のデータ（ｃ＝２）において、候補値「ｃａｎ［２］＝５」が解となる。
【００９７】
＜＜第３番目のデータ（ｃ＝３）の処理例＞＞
第３番目のデータ（ｃ＝３）である場合には、組み込みシステムは、ステップＳ２０３乃至ステップＳ２０７によって以下のような処理を行う。この例では、第２番目のデータは、入力値が「３」であるとする。
【００９８】
したがって、組み込みシステムは、「ｄａｔａ＝３」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ［３］＝ｄａｔａ＋ｎｄａｔａ＝３＋ｎ３＝３＋２＝５」と計算する（ステップＳ２０４）。
【００９９】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝２」と検索する（ステップＳ２０６でＹＥＳ）。
【０１００】
そこで、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝２」とし、さらに、「ｃａｎ［３］＝ｓｅｒ＝２」とする。そして、「ｄａｔａ＝２」、かつ、「ｃａｎ［３］＝２」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝１」と検索する（ステップＳ２０６でＹＥＳ）。
【０１０１】
そして、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝１」とし、さらに、「ｃａｎ［３］＝ｓｅｒ＝１」とする。そして、「ｄａｔａ＝１」、かつ、「ｃａｎ［３］＝１」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ［ｃ］」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ステップＳ２０８に進む。
【０１０２】
したがって、第３番目のデータ（ｃ＝３）において、候補値「ｃａｎ［３］＝１」が解となる。
【０１０３】
＜＜データの選択例（ステップＳ２０８）＞＞
ステップＳ２０８では、組み込みシステムは、候補値「ｃａｎ［０］」乃至「ｃａｎ［３］」に基づいてデータを選択する。処理結果は、例えば、以下のようになる。
【０１０４】
図１１は、本発明の一実施形態に係る組み込みシステムによる別の全体処理の処理結果例を説明する模式図である。図示するように、組み込みシステムは、入力されるデータをな並替番号ｎに基づいてルックアップすることができる。すなわち、並替番号ｎに基づいて各データを選択することによって、ルックアップテーブルを生成せず、組み込みシステムは、図示するようなテーブルを生成することができる。
【０１０５】
＜＜３．暗号化等への適用例＞＞
図２等に示す処理は、例えば、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）方式の暗号化等に適用可能である。具体的には、図２等に示す処理は、例えば、以下のようなＡＥＳにおけるホワイトボックスクリプトグラフィ（Ｗｈｉｔｅ−Ｂｏｘ  Ｃｒｙｐｔｏｇｒａｐｈｙ）の処理等に適用できる。
【０１０６】
図１２は、本発明の一実施形態に係る並べ替えを暗号化の１ラウンド当たりの処理に適用する例を説明する模式図である。図示する処理は、入力データＤ＿ＩＮのうち、４つの１バイトのデータに対して処理が行われ、出力データＤ＿ＯＵＴのうち、４つの１バイトのデータが生成される１サブラウンド当たりの処理の一例を示す。また、図示する処理、すなわち、１ラウンド当たりの処理では、４サブラウンドの処理が繰り返し行われる。以下、１サブラウンド当たりの処理を中心に説明する。
【０１０７】
ステップＳ３０１では、４つの１バイトのデータが選ばれる。また、ＦＩＰＳ１９７で定められている「ＳｈｉｆｔＲｏｗｓ」関数を実行した処理結果と、ステップＳ３０１を行った処理結果とは、同様の結果となる。
【０１０８】
ステップＳ３０２では、ステップＳ３０１で選ばれる１バイトのデータが、いわゆるＴ−Ｂｏｘ等によって変換され、変換されたデータが出力される。
【０１０９】
ステップＳ３０３では、ステップＳ３０２で出力されるデータに対して、いわゆるＸＯＲ−Ｔａｂｌｅｓ等のテーブルによって変換が行われ、図示するように、排他的論理和の計算が行われた場合と同様の処理結果が出力される。
【０１１０】
図示するように、ＦＩＰＳ１９７で定められている「ＡｄｄＲｏｕｎｄＫｅｙ」関数、「ＳｕｂＢｙｔｅｓ」関数及び「ＭｉｘＣｏｌｕｍｎｓ」関数をそれぞれ実行した処理結果と、ステップＳ３０２及びステップＳ３０３をそれぞれ行った処理結果とは、同様の結果となる。
【０１１１】
図示する処理のうち、組み込みシステムは、「Ｔ１」の一部の処理等に、図２等に示す処理を適用することができる。具体的には、「Ｔ１」の一部の処理では、並べ替え処理が行われる。そこで、まず、組み込みシステムは、並替番号ｎをあらかじめＲＡＭＨＷ１０（図１参照）等に記憶する。そして、並べ替えでは、組み込みシステムは、図２等に示すように、並替番号ｎに基づいて全体処理を行うと並べ替えを実現することができる。また、組み込みシステムは、暗号化においても、並替番号ｎからテーブルを特定して並べ替えを行ってもよい。なお、逆関数を用いる復号化においても、組み込みシステムは、同様に並べ替えを行ってもよい。他にも、暗号化は、以下のような処理でもよい。
【０１１２】
図１３は、本発明の一実施形態に係る並べ替えを暗号化の１ラウンド当たりの処理に適用する別の例を説明する模式図である。具体的には、１ラウンド当たりの処理は、特願２０１５−１６５１７４に開示される暗号化に適用されてもよい。より具体的には、図１３に示す「０」乃至「１５」の１バイトのデータが１６個入力された入力データＤ＿ＩＮに対する処理である。さらに、１ラウンド当たりの処理は、１６バイトのうち、選択される４バイトのデータを処理単位、すなわち、１サブラウンド単位で処理が繰り返し行われる。つまり、１ラウンド当たりの処理では、４サブラウンドの処理が繰り返し行われる。以下、１サブラウンド当たりの処理を中心に説明する。
【０１１３】
＜＜サブラウンドデータの選択例（ステップＳ４０１）＞＞
ステップＳ４０１では、組み込みシステムは、サブラウンドデータを選択する。すなわち、組み込みシステムは、入力データＤ＿ＩＮのうち、１サブラウンド当たりの処理対象となる１サブラウンドデータを選択する。また、ＦＩＰＳ１９７で定められている「ＳｈｉｆｔＲｏｗｓ」関数を実行した処理結果と、ステップＳ４０１を行った処理結果とは、同様の結果となる。
【０１１４】
以下、図１３に示すように、ステップＳ４０１で、入力データＤ＿ＩＮのうち、「０」、「５」、「１０」及び「１５」の１バイトのそれぞれのデータがサブラウンドデータとして選択される例で説明する。そのうち、選択されるサブラウンドデータのうち、「０」の１バイトのデータに対する処理を例に説明する。
【０１１５】
＜＜テーブルに基づく置換例（ステップＳ４０２）＞＞
ステップＳ４０２では、組み込みシステムは、テーブルに基づいて置換を行う。すなわち、図示するように、組み込みシステムは、入力される「０」の１バイトのデータをテーブルに基づいて置換する。そして、テーブルに基づいて置換が行われると、置換データが生成される。また、テーブルに基づく置換には、第１変換「ｇ」と、第２逆変換「ｆ−１」とが含まれる。
【０１１６】
＜＜テーブルに基づくビットの並べ替え例（ステップＳ４０３）＞＞
ステップＳ４０３では、組み込みシステムは、テーブルに基づいてビットを並べ替える。図では、並べ替えは、「ｈ」で示す。なお、「ｉ」は、乱数の排他的論理和による加算等を示す。
【０１１７】
＜＜排他的論理和（ＸＯＲ、ｅｘｃｌｕｓｉｖｅ  ｏｒ）の計算例（ステップＳ４０４）＞＞
ステップＳ４０４では、組み込みシステムは、排他的論理和を計算する。
【０１１８】
また、テーブルに基づく置換及び排他的論理和が計算には、第２変換「ｆ」が含まれる。
【０１１９】
「０」の１バイトのデータと同様に、入力データＤ＿ＩＮのうち、「５」、「１０」及び「１５」の１バイトのデータに対してステップＳ４０１乃至ステップＳ４０４がそれぞれ行われると、出力データＤ＿ＯＵＴのうち、「０」乃至「３」のデータがそれぞれ生成され、１サブラウンドの処理が完了する。
【０１２０】
例えば、図２等に示す処理は、図示する暗号化では、「Ｔ２」の処理に適用することができる。なお、「Ｔ２」による１バイト入力に対する４バイト出力のうち、１バイト当たりの処理では、１バイトの変換には、２５６バイトのテーブルを要する場合が多い。そこで、図２等に示す処理を適用し、テーブルに代えて、２１１バイトの並替番号とする。このような構成とすると、１テーブル当たり、２５６バイトから２１１バイトにデータ容量を減らすことができる。したがって、１サブラウンド当たりでは、組み込みシステムは、「２５６バイト×４個のテーブル＝１キロバイト」となるデータ容量を「２１１バイト×４つの並替番号＝８４４バイト」にすることができる。
【０１２１】
＜＜４．データ処理装置の機能構成例＞＞
図１４は、本発明の一実施形態に係る組み込みシステムの機能構成の一例を示す機能ブロック図である。例えば、組み込みシステム１は、入力部ＦＮ１と、計算部ＦＮ２と、並べ替え部ＦＮ３とを含む構成である。
【０１２２】
入力部ＦＮ１は、入力データＤ＿ＩＮの並べ替えパターンを特定できる並替番号ｎを入力する。例えば、入力部ＦＮ１は、Ｉ／ＦＨＷ３（図１参照）等によって実現される。
【０１２３】
計算部ＦＮ２は、並替番号ｎに基づいて、入力データＤ＿ＩＮに含まれるそれぞれのデータの並べ替え先ｎｃを計算する。例えば、計算部ＦＮ２は、演算装置ＨＷ１（図１参照）等によって実現される。
【０１２４】
並べ替え部ＦＮ３は、並べ替え先ｎｃに基づいて入力データＤ＿ＩＮを並べ替える。例えば、並べ替え部ＦＮ３は、演算装置ＨＷ１（図１参照）等によって実現される。
【０１２５】
なお、計算部ＦＮ２は、図７等に示すように、並替番号ｎに対応する並べ替えパターンとなるように入力データＤ＿ＩＮを変換できるテーブルを特定する特定部でもよい。例えば、特定部は、演算装置ＨＷ１（図１参照）等によって実現される。
【０１２６】
また、並べ替え部ＦＮ３は、図１０及び図１１に示すように、並替番号ｎに基づいて計算される各並べ替え先ｎｃから入力データＤ＿ＩＮに含まれるデータからデータを選択していく選択する選択部でもよい。例えば、選択部は、演算装置ＨＷ１（図１参照）等によって実現される。
【０１２７】
他にも、組み込みシステム１は、図９に示すように、並べ替えパターンが入力され、並べ替えパターンとなる並替番号ｎを算出する算出部が含まれる構成でもよい。例えば、算出部は、演算装置ＨＷ１（図１参照）等によって実現される。
【０１２８】
このように、組み込みシステム１は、並替番号ｎを利用すると、所定の並べ替えパターンとなるような各並べ替え先ｎｃを計算したり、テーブルを特定したりすることができる。そして、並替番号ｎは、テーブルより容量の小さいデータである。そのため、組み込みシステム１は、並べ替えに必要なデータ容量を小さくすることができる。
【０１２９】
なお、組み込みシステムは、１つの情報処理装置によって実現される構成に限られない。すなわち、本発明に係る実施形態は、１つ以上の情報処理装置を有する組み込みシステムによって実現されてもよい。なお、組み込みシステムでは、各処理の一部又は全部が分散、冗長、並列又はこれらを組み合わせるように、処理が行われてもよい。
【０１３０】
さらに、本発明に係る実施形態は、組み込みシステム等のコンピュータにデータ処理方法を実行させるためのプログラムによって実現されてもよい。すなわち、プログラムは、本発明に係るデータ処理方法をコンピュータに実行させるためのプログラムであって、プログラミング言語等によって記述されるコンピュータプログラムである。
【０１３１】
また、プログラムは、ブルーレイ（登録商標）等の光ディスク、フラッシュメモリ、磁気ディスク又は光磁気ディスク等の記録媒体に記憶され、頒布されてもよい。さらに、プログラムは、電気通信回線等を介して、頒布されてもよい。
【０１３２】
以上、本発明の好ましい実施例について詳述したが、本発明は、係る特定の実施形態に限定されるものではない。すなわち、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形又は変更が可能である。
【符号の説明】
【０１３３】
１  組み込みシステム
ＦＮ１  入力部
ＦＮ２  計算部
ＦＮ３  並べ替え部
ｎ  並替番号
ｎｃ  並べ替え先
【図１】
2017215518.tif 000013
【図２】
2017215518.tif 000014
【図３】
2017215518.tif 000015
【図４】
2017215518.tif 000016
【図５】
2017215518.tif 000017
【図６】
2017215518.tif 000018
【図７】
2017215518.tif 000019
【図８】
2017215518.tif 000020
【図９】
2017215518.tif 000021
【図１０】
2017215518.tif 000022
【図１１】
2017215518.tif 000023
【図１２】
2017215518.tif 000024
【図１３】
2017215518.tif 000025
【図１４】
2017215518.tif 000026
【手続補正書】
【提出日】平成29年4月6日(2017.4.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含み、
前記計算部は、前記並替番号を前記並べ替え先のパターン数で除算した余りに基づいて、前記それぞれの並べ替え先をそれぞれ計算する
データ処理装置。
【請求項２】
前記並替番号に基づく並べ替えによって、前記データを暗号化又は復号する請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、組み込みシステムである請求項１に記載のデータ処理装置。
【請求項４】
前記計算部は、前記並べ替え先を下記（８）式で計算する請求項１乃至３のいずれか１項に記載のデータ処理装置。
【数８】
2017215518.tif 000027
【請求項５】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号を並べ替え先のパターン数で除算した余りに基づいて、前記データのそれぞれの並べ替え先及び前記データの入力値に基づいて、それぞれの候補値を計算する計算部と、
前記候補値に基づいて前記データを選択する選択部と
を含むデータ処理装置。
【請求項６】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを入力する入力部と、
前記並べ替えパターンに基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記並べ替えパターンとなる並替番号を下記（１０）式で算出する算出部と
を含むデータ処理装置。
【数１０】
2017215518.tif 000028
【請求項７】
入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するデータ処理装置が行うデータ処理方法であって、
前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を含み、
前記計算手順では、前記演算装置が、前記並替番号を前記並べ替え先のパターン数で除算した余りに基づいて、前記それぞれの並べ替え先をそれぞれ計算する
データ処理方法。
【請求項８】
入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するコンピュータにデータ処理方法を実行させるためのプログラムであって、
前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を実行させ、
前記計算手順では、前記演算装置が、前記並替番号を前記並べ替え先のパターン数で除算した余りに基づいて、前記それぞれの並べ替え先をそれぞれ計算する
プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
一態様における、入力される複数のデータを並べ替えるデータ処理装置は、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含み、
計算部は、前記並替番号を前記並べ替え先のパターン数で除算した余りに基づいて、前記それぞれの並べ替え先をそれぞれ計算する。
【手続補正書】
【提出日】平成29年8月25日(2017.8.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含み、
前記計算部は、前記並べ替え先を下記（８）式で計算する
データ処理装置。
【数８】
2017215518.tif 000029
【請求項２】
前記並替番号に基づく並べ替えによって、前記データを暗号化又は復号する請求項１に記載のデータ処理装置。
【請求項３】
前記データ処理装置は、組み込みシステムである請求項１に記載のデータ処理装置。
【請求項４】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
下記（８）式で計算される前記データのそれぞれの並べ替え先及び前記データの入力値に基づいて、それぞれの候補値を計算する計算部と、
前記候補値に基づいて前記データを選択する選択部と
を含むデータ処理装置。
【数８】
2017215518.tif 000030
【請求項５】
入力される複数のデータを並べ替えるデータ処理装置であって、
前記データの並べ替えパターンを入力する入力部と、
前記並べ替えパターンに基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記並べ替えパターンを特定できる並替番号を下記（１０）式で算出する算出部と
を含むデータ処理装置。
【数１０】
2017215518.tif 000031
【請求項６】
入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するデータ処理装置が行うデータ処理方法であって、
前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を含み、
前記計算手順では、前記演算装置が、前記並べ替え先を下記（８）式で計算する
データ処理方法。
【数８】
2017215518.tif 000032
【請求項７】
入力される複数のデータを並べ替え、かつ、演算装置及び記憶装置を有するコンピュータにデータ処理方法を実行させるためのプログラムであって、
前記演算装置が、前記記憶装置が記憶する前記データの並べ替えパターンを特定できる並替番号を入力する入力手順と、
前記演算装置が、前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算手順と、
前記演算装置が、前記並べ替え先に基づいて前記データを並べ替える並べ替え手順と
を実行させ、
前記計算手順では、前記演算装置が、前記並べ替え先を下記（８）式で計算する
プログラム。
【数８】
2017215518.tif 000033
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
一態様における、入力される複数のデータを並べ替えるデータ処理装置は、
前記データの並べ替えパターンを特定できる並替番号を入力する入力部と、
前記並替番号に基づいて、前記データのそれぞれの並べ替え先を計算する計算部と、
前記並べ替え先に基づいて前記データを並べ替える並べ替え部と
を含み、
計算部は、前記並べ替え先を下記（８）式で計算する。
【数８】
2017215518.tif 000034
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００７５
【補正方法】変更
【補正の内容】
【００７５】
図９（Ｂ）、図９（Ｅ）及び図９（Ｈ）に示すように計算すると、組み込みシステムは、各並べ替え先「ｎｃ」を計算することができる。この例では、組み込みシステムは、「ｎ０＝２」、「ｎ１＝１」及び「ｎ２＝１」と計算することができる。次に、計算された並べ替え先「ｎｃ」を上記（１）式に代入すると、組み込みシステムは、並替番号ｎをすることができる。具体的には、「ｎ０＝２」、「ｎ１＝１」及び「ｎ２＝１」を上記（１）式に代入して計算すると、計算は、下記（９）式のようになる。
【数９】
2017215518.tif 000035
上記（９）式のように、組み込みシステムは、並替番号ｎを「１８」と計算することができる。上記（９）式等の並べ替えパターンから並替番号ｎを計算する計算式を一般化すると、計算式は、下記（１０）式のようになる。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００８３
【補正方法】変更
【補正の内容】
【００８３】
次に、ステップＳ２０４では、組み込みシステムは、候補値を計算する。候補値は、「ｃａｎ＝ｄａｔａ＋ｎｄａｔａ」と計算される。具体的には、第０番目のデータである場合には、「ｄａｔａ＝０」であって、「ｎｄａｔａ＝ｎ０」である。また、「ｎ０」は、ステップＳ２０２より、「ｎ０＝２」である。したがって、第０番目のデータである場合には、組み込みシステムは、「ｃａｎ＝０＋２＝２」と計算する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
＜＜探索例（ステップＳ２０５）＞＞
ステップＳ２０５では、組み込みシステムは、第２変数「ｔｅｍｐ」を探索する。具体的には、ステップＳ２０５では、組み込みシステムは、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索する。もし、上記条件を満たす第２変数「ｔｅｍｐ」が存在する場合には、該当する値を第３変数「ｓｅｒ」とする。なお、該当する値が複数存在する場合には、最大値が第３変数「ｓｅｒ」となる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
第０番目のデータである場合（ｃ＝０である。）には、候補値「ｃａｎ＝２」（ステップＳ２０４）、第１変数「ｄａｔａ＝０」（ステップＳ２０４）及び「ｎｄａｔａ＝ｎ０＝２」（ステップＳ２０２）である。そのため、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」の条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、次に、組み込みシステムは、ループに基づいて、第１番目のデータ（ｃ＝１）の処理（ステップＳ２０３）に進む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
したがって、第０番目のデータ（ｃ＝０）において、候補値「ｃａｎ＝２」が解となる。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００８９
【補正方法】変更
【補正の内容】
【００８９】
したがって、組み込みシステムは、「ｄａｔａ＝１」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ＝ｄａｔａ＋ｎｄａｔａ＝１＋ｎ１＝１＋１＝２」と計算する（ステップＳ２０４）。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００９０
【補正方法】変更
【補正の内容】
【００９０】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝０」と検索する（ステップＳ２０６でＹＥＳ）。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
そこで、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝０」とし、さらに、「ｃａｎ＝ｓｅｒ＝０」とする。そして、「ｄａｔａ＝０」、かつ、「ｃａｎ＝０」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ループに基づいて、次に、第２番目のデータ（ｃ＝２）の処理（ステップＳ２０３）に進む。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００９２
【補正方法】変更
【補正の内容】
【００９２】
したがって、第１番目のデータ（ｃ＝１）において、候補値「ｃａｎ＝０」が解となる。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００９４
【補正方法】変更
【補正の内容】
【００９４】
したがって、組み込みシステムは、「ｄａｔａ＝２」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ＝ｄａｔａ＋ｎｄａｔａ＝２＋ｎ２＝２＋３＝５」と計算する（ステップＳ２０４）。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００９５
【補正方法】変更
【補正の内容】
【００９５】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ループに基づいて、次に、第３番目のデータ（ｃ＝３）の処理（ステップＳ２０３）に進む。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００９６
【補正方法】変更
【補正の内容】
【００９６】
したがって、第２番目のデータ（ｃ＝２）において、候補値「ｃａｎ＝５」が解となる。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００９８
【補正方法】変更
【補正の内容】
【００９８】
したがって、組み込みシステムは、「ｄａｔａ＝３」とする（ステップＳ２０４）。さらに、組み込みシステムは、「ｃａｎ＝ｄａｔａ＋ｎｄａｔａ＝３＋ｎ３＝３＋２＝５」と計算する（ステップＳ２０４）。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００９９
【補正方法】変更
【補正の内容】
【００９９】
次に、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝２」と検索する（ステップＳ２０６でＹＥＳ）。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】０１００
【補正方法】変更
【補正の内容】
【０１００】
そこで、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝２」とし、さらに、「ｃａｎ＝ｓｅｒ＝２」とする。そして、「ｄａｔａ＝２」、かつ、「ｃａｎ＝２」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、組み込みシステムは、「ｔｅｍｐ＝１」と検索する（ステップＳ２０６でＹＥＳ）。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】０１０１
【補正方法】変更
【補正の内容】
【０１０１】
そして、ステップＳ２０７では、組み込みシステムは、「ｄａｔａ＝ｓｅｒ＝１」とし、さらに、「ｃａｎ＝ｓｅｒ＝１」とする。そして、「ｄａｔａ＝１」、かつ、「ｃａｎ＝１」の条件下で、「ｔｅｍｐ＋ｎｔｅｍｐ＝ｃａｎ」、かつ、「ｔｅｍｐ＜ｄａｔａ」となる第２変数「ｔｅｍｐ」が存在するか否かを探索すると（ステップＳ２０５）、条件を満たす第２変数「ｔｅｍｐ」は、存在しない場合となる（ステップＳ２０６でＮＯ）。この場合には、組み込みシステムは、ステップＳ２０８に進む。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】０１０２
【補正方法】変更
【補正の内容】
【０１０２】
したがって、第３番目のデータ（ｃ＝３）において、候補値「ｃａｎ＝１」が解となる。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】０１０３
【補正方法】変更
【補正の内容】
【０１０３】
＜＜データの選択例（ステップＳ２０８）＞＞
ステップＳ２０８では、組み込みシステムは、候補値「ｃａｎ」に基づいてデータを選択する。処理結果は、例えば、以下のようになる。
【手続補正２１】
【補正対象書類名】図面
【補正対象項目名】図１０
【補正方法】変更
【補正の内容】
【図１０】
2017215518.tif 000036