JP3427993B2 - Cryptographic algorithm development support device and cryptographic program development support device - Google Patents

Cryptographic algorithm development support device and cryptographic program development support device

Info

Publication number
JP3427993B2
JP3427993B2 JP04121797A JP4121797A JP3427993B2 JP 3427993 B2 JP3427993 B2 JP 3427993B2 JP 04121797 A JP04121797 A JP 04121797A JP 4121797 A JP4121797 A JP 4121797A JP 3427993 B2 JP3427993 B2 JP 3427993B2
Authority
JP
Japan
Prior art keywords
program
diagram
block cipher
design specification
algorithm
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.)
Expired - Fee Related
Application number
JP04121797A
Other languages
Japanese (ja)
Other versions
JPH10240511A (en
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.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering 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 Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP04121797A priority Critical patent/JP3427993B2/en
Publication of JPH10240511A publication Critical patent/JPH10240511A/en
Application granted granted Critical
Publication of JP3427993B2 publication Critical patent/JP3427993B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【発明の属する技術分野】本発明は、予め定義しておい
たブロック暗号アルゴリズム仕様記述記法に基づいてブ
ロック暗号アルゴリズムの開発を支援する装置および該
アルゴリズムを実現するプログラムの開発を支援する装
置に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a device for supporting the development of a block cipher algorithm based on a block cipher algorithm specification description notation previously defined and a device for supporting the development of a program for realizing the algorithm. Is.

【0002】[0002]

【従来の技術】コンピュータネットワーク技術の発達等
によって情報の共有化が進むに従い、情報の漏洩を防ぐ
ための暗号技術に対する必要性が高まっている。暗号に
は大きく分けて、暗号化と復号化の時に同じ鍵を使用す
る秘密鍵暗号と、個人鍵と公開鍵という異なる鍵の組を
使用する公開鍵暗号がある。秘密鍵暗号は、暗号通信を
行なう際に鍵を送信者と受信者で共有する方法が問題と
なる。公開鍵暗号にはこの問題がない。
2. Description of the Related Art As the sharing of information progresses due to the development of computer network technology and the like, the need for encryption technology for preventing information leakage is increasing. Cryptography can be roughly classified into secret key cryptography that uses the same key for encryption and decryption, and public key cryptography that uses different key pairs of a private key and a public key. Secret key cryptography has a problem in that a key is shared between a sender and a recipient when performing cryptographic communication. Public key cryptography does not have this problem.

【0003】しかし、公開鍵暗号は秘密鍵暗号に比べ
て、暗号化と復号化に要する計算量が大きい。このた
め、両者は用途によって使い分けられる。
However, public key cryptography requires a larger amount of calculation for encryption and decryption than private key cryptography. Therefore, both are properly used depending on the purpose.

【0004】秘密鍵暗号としてよく用いられているもの
に、固定長のデータ(ブロック)を単位として暗号化と
復号化を行なうブロック暗号がある。ブロック暗号のア
ルゴリズムはこれまで種々のものが考案されている。文
献「Federal Information Processing Standards Publi
cation 46-2 1993 December 30;Announcing the DATAEN
CRYPTION STANDARD (DES)」に紹介されているDESは
その代表例である。
Block ciphers that perform encryption and decryption in units of fixed-length data (blocks) are often used as secret key ciphers. Various block cipher algorithms have been devised so far. Reference `` Federal Information Processing Standards Publi
cation 46-2 1993 December 30; Announcing the DATAEN
The DES introduced in "CRYPTION STANDARD (DES)" is a typical example.

【0005】ところで、このようなブロック暗号アルゴ
リズムやそれを実現する手段に関する研究開発が進むに
つれて、解読技術も高度化している。つまり、現在十分
な強度をもっている暗号アルゴリズムが、今後もそうで
あるとは限らないのである。そこで、新しい解読技術に
耐えられる新しいブロック暗号アルゴリズムを効率的に
開発できるようにする必要がある。
By the way, as the research and development on such a block cipher algorithm and means for realizing the block cipher algorithm progresses, the decryption technology also becomes more sophisticated. In other words, cryptographic algorithms that are currently strong are not always the case. Therefore, it is necessary to efficiently develop a new block cipher algorithm that can withstand the new decryption technology.

【0006】そこで、従来において、ブロック暗号の開
発支援手段の一例として、特開平5−14340号公報
に見られるように、ブロック暗号の中間一致閉性試験
(強度試験)を少ない記憶領域で実行可能とするもの
や、特開平8−190344号公報に見られるように、
DESよりも探索計算量が多いFEAL等のinvol
ution型暗号へ実用的な時間で適用可能な暗号アル
ゴリズムの強度評価装置が知られている。
Therefore, as an example of conventional block cipher development support means, an intermediate coincidence closedness test (strength test) of a block cipher can be executed in a small storage area as disclosed in Japanese Patent Laid-Open No. 5-14340. As described in Japanese Patent Application Laid-Open No. 8-190344,
Invol such as FEAL which has more search calculation amount than DES
There is known a cryptographic algorithm strength evaluation device that can be applied to a motion type encryption in a practical time.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、上記の
強度試験あるいは強度評価は、暗号アルゴリズムの作成
後に実施するものであり、基本的には、新しい解読技術
に耐えられる新しいブロック暗号アルゴリズムを如何に
効率良く開発するのを支援できるかが問題になる。
However, the above-mentioned strength test or strength evaluation is carried out after the creation of the encryption algorithm, and basically, the efficiency of the new block cipher algorithm that can withstand the new decryption technique is improved. The issue is how we can support good development.

【0008】そのためには、ブロック暗号アルゴリズム
の開発を効率化する手段が必要である。具体的には、
(1)ブロック暗号アルゴリズムを記述するための記
法、(2)該記法によるブロック暗号アルゴリズムの記
述と編集を支援する手段、(3)該記法によって記述さ
れたブロック暗号アルゴリズムを試験的に実行する手
段、(4)ブロック暗号アルゴリズムの強度を評価する
手段等が必要である。
For that purpose, a means for streamlining the development of the block cipher algorithm is required. In particular,
(1) Notation for describing a block cipher algorithm, (2) means for supporting description and editing of a block cipher algorithm by the notation, (3) means for experimentally executing the block cipher algorithm described by the notation (4) A means for evaluating the strength of the block cipher algorithm is required.

【0009】現在のところ、ブロック暗号アルゴリズム
を記述するための記法としては、非形式的なデータフロ
ーダイアグラムが通常用いられているが、ブロック暗号
アルゴリズムを細部まで正確に記述可能なものとはなっ
ていない。これが第1の問題点である。
At present, an informal data flow diagram is usually used as a notation for describing a block cipher algorithm, but it has not been possible to describe the block cipher algorithm accurately in detail. Absent. This is the first problem.

【0010】一方、暗号アルゴリズムは正確に実現され
なければ、期待した効果を得ることができない。通常の
ブロック暗号アルゴリズムは、固定長のビット列に対し
て比較的単純な演算を繰り返し行なうだけであるので、
アルゴリズムをそのまま反映したプログラムを作成する
のは困難ではない。しかし、実際には高速化などの要求
から何等かの最適化がなされることが多い。その場合、
プログラムが元のアルゴリズムを正確に実現しているこ
とを十分に確認する必要がある。したがって、ブロック
暗号のプログラムをテストするために多くのテストケー
スが必要となる。
On the other hand, if the cryptographic algorithm is not realized accurately, the expected effect cannot be obtained. A normal block cipher algorithm only repeats a relatively simple operation on a fixed-length bit string, so
It is not difficult to create a program that reflects the algorithm as it is. However, in reality, some optimization is often performed due to the demand for higher speed. In that case,
It is necessary to make sure that the program correctly implements the original algorithm. Therefore, many test cases are required to test a block cipher program.

【0011】テストケースを作成するには、暗号アルゴ
リズムを実際に動作させて、平文とそれに対応する暗号
文の組を作成する必要がある。しかし、従来は手計算で
テストケースを作成しているため、多数の信頼できるテ
ストケースを効率良く生成することが不可能であった。
これが第2の問題点である。
In order to create a test case, it is necessary to actually operate the cryptographic algorithm to create a set of plaintext and its corresponding ciphertext. However, conventionally, it was impossible to efficiently generate a large number of reliable test cases because the test cases were created by hand.
This is the second problem.

【0012】一方また、前記の暗号アルゴリズム記法
は、どちらかと言えばハードウェアによる実現に適した
記法であり、ブロック暗号アルゴリズムを実現するプロ
グラムの設計仕様としては不適当である。これが第3の
問題点である。
On the other hand, the above-mentioned cryptographic algorithm notation is rather a notation suitable for realization by hardware, and is unsuitable as a design specification of a program for realizing a block cipher algorithm. This is the third problem.

【0013】さらに、前記のように、実用的なブロック
暗号プログラムを作成するためには、最適化を行なう必
要があるために、工数が掛かる。また、該ブロック暗号
プログラムを組み込む応用プログラムを開発する場合、
該ブロック暗号プログラムの開発が終了するまでは、ス
タブ(テスト用のダミーのサブルーチン)を使用するこ
とになる。したがって、その間は、応用プログラムをテ
ストする際に、該ブロック暗号を使用することができな
い。これが第4の問題点である。
Further, as described above, in order to create a practical block cipher program, it is necessary to perform optimization, which requires man-hours. When developing an application program that incorporates the block cipher program,
Until the development of the block cipher program is completed, stubs (test dummy subroutines) will be used. Therefore, during that time, the block cipher cannot be used when testing the application program. This is the fourth problem.

【0014】本発明の第1の目的は、予め定義したブロ
ック暗号アルゴリズム記法に基づいてブロック暗号アル
ゴリズムの記述と編集を効率良く支援することができる
暗号アルゴリズム開発支援装置を提供することにある。
A first object of the present invention is to provide a cryptographic algorithm development support device capable of efficiently supporting description and editing of a block cryptographic algorithm based on a pre-defined block cryptographic algorithm notation.

【0015】本発明の第2の目的は、前記ブロック暗号
アルゴリズム記法によって記述されたブロック暗号アル
ゴリズムを直接解釈実行することによって、該ブロック
暗号アルゴリズムを実現するプログラムをテストする際
に使用できるテストケースを自動的に生成し、暗号プロ
グラムのテストを効率良く支援することができる暗号プ
ログラム開発支援装置を提供することにある。
A second object of the present invention is to provide a test case that can be used when testing a program that realizes the block cipher algorithm by directly interpreting and executing the block cipher algorithm described by the block cipher algorithm notation. An object is to provide a cryptographic program development support device that can automatically generate and efficiently support a test of a cryptographic program.

【0016】本発明の第3の目的は、前記ブロック暗号
アルゴリズム記法によって記述されたブロック暗号アル
ゴリズムから、プログラム開発の目的に適したプログラ
ムの設計仕様を自動生成し、暗号プログラムの生成を効
率良く支援することができる暗号プログラム開発支援装
置を提供することにある。
A third object of the present invention is to automatically generate design specifications of a program suitable for the purpose of program development from the block cipher algorithm described by the block cipher algorithm notation, and efficiently support the generation of the cipher program. It is to provide a cryptographic program development support device capable of performing the above.

【0017】本発明の第4の目的は、前記ブロック暗号
アルゴリズムから自動生成された前記プログラム設計仕
様から、該ブロック暗号アルゴリズムを実現するプログ
ラムを自動生成し、暗号プログラムの生成を効率良く支
援することができる暗号プログラム開発支援装置を提供
することにある。
A fourth object of the present invention is to automatically generate a program for realizing the block cipher algorithm from the program design specifications automatically generated from the block cipher algorithm, and to efficiently support the generation of the cipher program. It is to provide a cryptographic program development support device capable of performing the above.

【0018】本発明の第5の目的は、暗号プログラム開
発のテスト工程において、ユーザによって指定されたス
ケジュールに従って、自動生成されたテストケースを用
いて、暗号プログラムを効率良くテストすることができ
る暗号プログラム開発支援装置を提供することにある。
A fifth object of the present invention is to enable a cryptographic program to be efficiently tested by using automatically generated test cases in accordance with a schedule designated by a user in the test step of cryptographic program development. To provide a development support device.

【0019】[0019]

【課題を解決するための手段】上記の第1の目的を達成
するため、本発明は、予め定義したブロック暗号アルゴ
リズム仕様記述記法によるブロック暗号アルゴリズムの
ダイアグラム表現をユーザが記述及び編集するのを支援
する暗号ダイアグラム編集手段と、この暗号ダイアグラ
ム編集手段によって編集されたブロック暗号アルゴリズ
ムのダイアグラム表現を格納する暗号ダイアグラム格納
手段と、格納されたブロック暗号アルゴリズムのダイア
グラム表現を解釈実行する暗号ダイアグラム解釈実行手
段と、解釈実行中の該ブロック暗号アルゴリズムのダイ
アグラム表現に現れる変数の状態を格納する暗号ダイア
グラム実行環境格納手段と、このブロック暗号ダイアグ
ラム実行環境格納手段の内容を検査するための暗号ダイ
アグラム実行環境検査手段とを備えることを特徴とす
る。
In order to achieve the above first object, the present invention assists a user in describing and editing a diagram representation of a block cipher algorithm in a predefined block cipher algorithm specification description notation. Cipher diagram editing means, cipher diagram storing means for storing the diagram representation of the block cipher algorithm edited by the cipher diagram editing means, and cipher diagram interpretation executing means for interpreting and executing the stored diagram representation of the block cipher algorithm. , A cipher diagram execution environment storage means for storing the state of a variable appearing in the diagram representation of the block cipher algorithm during interpretation execution, and a cipher diagram execution environment for checking the contents of the block cipher diagram execution environment storage means Characterized in that it comprises a 査 means.

【0020】ここで、本発明の前提となるブロック暗号
アルゴリズム仕様記述記法は、ビット列データを値とす
る変数のダイアグラム表現と、該ビット列データ上の演
算のダイアグラム表現とを構成要素として有し、前記変
数と前記演算を組み合わせるためのダイアグラム表現と
して、前記変数からの参照操作のダイアグラム表現と、
前記変数への代入操作のダイアグラム表現と、前記ビッ
ト列データへの前記演算の適用操作のダイアグラム表現
と、前記ビット列データの分割操作のダイアグラム表現
と、前記ビット列データの連結操作のダイアグラム表現
と、前記ビット列データの複製操作のダイアグラム表現
と、前記ビット列データへの繰り返し処理のダイアグラ
ム表現と、前記ビット列データ上の演算を定義するため
のダイアグラム表現を備えることを特徴とする。
Here, the block cipher algorithm specification description notation, which is the premise of the present invention, has a diagram representation of a variable whose value is bit string data and a diagram representation of an operation on the bit string data as constituent elements. As a diagram representation for combining the variable and the operation, a diagram representation of the reference operation from the variable,
Diagram representation of the assignment operation to the variable, diagram representation of the operation of applying the operation to the bit string data, diagram representation of the dividing operation of the bit string data, diagram representation of the concatenation operation of the bit string data, and the bit string It is characterized by including a diagrammatic representation of a data duplication operation, a diagrammatic representation of repetitive processing on the bit string data, and a diagrammatic representation for defining an operation on the bit string data.

【0021】第2の目的を達成するために、本発明は、
テストケースを区別するためのIDと暗号化鍵と平文と
該平文を前記暗号化鍵によって暗号化した暗号文からな
るブロック暗号プログラムテストケースを格納するため
の暗号プログラムテストケース格納手段と、前記IDを
生成するためのID計数手段と、前記暗号化鍵を生成す
るための鍵生成手段と、前記平文を生成するための平文
生成手段とを備え、前記暗号文を生成するブロック暗号
アルゴリズム開発支援手段とを備えることを特徴とす
る。
In order to achieve the second object, the present invention provides
A cipher program test case storage unit for storing a block cipher program test case consisting of an ID for distinguishing test cases, an encryption key, a plaintext, and a ciphertext obtained by encrypting the plaintext with the encryption key, and the ID A block cipher algorithm development support means for generating the ciphertext, comprising: an ID counting means for generating the encryption key; a key generation means for generating the encryption key; and a plaintext generation means for generating the plaintext. And is provided.

【0022】第3の目的を達成するために、本発明は、
ブロック暗号アルゴリズムのダイアグラム表現の構文を
解析するダイアグラム構文解析手段と、その解析結果で
あるダイアグラム構文木を格納するダイアグラム構文木
格納手段と、格納されたダイアグラム構文木からプログ
ラム設計仕様を生成する設計仕様生成手段と、ダイアグ
ラムとプログラム設計仕様の間の対応関係を定義した対
応テーブルと、生成された設計仕様を格納するための暗
号プログラム設計仕様格納手段とを備えることを特徴と
する。
In order to achieve the third object, the present invention provides
Diagram parsing means for parsing the syntax of the diagram representation of the block cipher algorithm, diagram syntax tree storing means for storing the diagram syntax tree as the analysis result, and design specifications for generating program design specifications from the stored diagram syntax tree. The present invention is characterized by including a generation unit, a correspondence table defining a correspondence relation between a diagram and a program design specification, and a cryptographic program design specification storage unit for storing the generated design specification.

【0023】第4の目的を達成するために、本発明は、
ブロック暗号プログラムの設計仕様の構文を解析する設
計仕様構文解析手段と、その解析結果である設計仕様構
文木を格納する設計仕様構文木格納手段と、格納された
設計仕様構文木からプログラムを生成するプログラム生
成手段と、設計仕様とプログラムの間の対応関係を定義
した対応テーブルと、生成されたプログラムを格納する
ための暗号プログラム格納手段とを備えることを特徴と
する。
In order to achieve the fourth object, the present invention provides
A design specification syntax analysis means for analyzing the syntax of the design specifications of the block cipher program, a design specification syntax tree storage means for storing the design specification syntax tree as the analysis result, and a program generated from the stored design specification syntax tree. It is characterized by comprising a program generation means, a correspondence table defining a correspondence relationship between design specifications and programs, and an encryption program storage means for storing the generated programs.

【0024】第5の目的を達成するために、本発明は、
ブロック暗号プログラムのテストスケジュールを格納す
るテストスケジュール格納手段と、このテストスケジュ
ール格納手段に格納されたテストスケジュールに従って
テストケースを選択するテストケース選択手段と、ブロ
ック暗号プログラムを格納する暗号プログラム格納手段
と、格納されたブロック暗号プログラムに前記選択され
たテストケースの構成要素である鍵と平文を与えて実行
させるプログラム実行手段と、その実行結果である暗号
文と前記選択されたテストケースの構成要素である暗号
文とを比較するための比較手段と、前記選択されたテス
トケースのIDと比較結果とからなるテスト結果を格納
するための暗号プログラムテスト結果格納手段とを備え
ることを特徴とする。
In order to achieve the fifth object, the present invention provides
Test schedule storing means for storing a test schedule of the block cipher program, test case selecting means for selecting a test case according to the test schedule stored in the test schedule storing means, and cipher program storing means for storing the block cipher program, A program executing means for executing a stored block cipher program by giving a key and plaintext which are the constituents of the selected test case and executing the ciphertext, which is the execution result, and the constituents of the selected test case. It is characterized by further comprising a comparing means for comparing with a ciphertext, and an encryption program test result storing means for storing a test result including the ID of the selected test case and a comparison result.

【0025】[0025]

【発明の実施の形態】以下、本発明の実施形態を図面に
より詳細に説明する。
BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described in detail below with reference to the drawings.

【0026】まず、実施形態の説明に先立ち、本発明の
各実施形態で使用するブロック暗号アルゴリズム仕様記
述記法について説明する。
Prior to the description of the embodiments, the block cipher algorithm specification description notation used in each embodiment of the present invention will be described.

【0027】[ブロック暗号アルゴリズム仕様記述記
法]図1および図2は、本発明の各実施形態で使用する
ブロック暗号アルゴリズム仕様記述法の文法の一覧を示
す図であり、ここで例示するブロック暗号アルゴリズム
仕様記述法は、図1(a)〜(c)に示すようにビット
列データを値とする変数のダイアグラム表現11〜13
と、図1(d)〜(h)に示すようにビット列データ上
の演算のダイアグラム表現14〜18とを構成要素とし
て有している。
[Block Cipher Algorithm Specification Description Method] FIGS. 1 and 2 are diagrams showing a list of grammars of the block cipher algorithm specification description method used in each embodiment of the present invention. The specification description method is, as shown in FIGS. 1A to 1C, a diagram representation 11 to 13 of a variable whose value is bit string data.
And the diagram representations 14 to 18 of the operation on the bit string data, as shown in FIGS. 1D to 1H.

【0028】さらに、前記変数と前記演算を組み合わせ
るためのダイアグラム表現として、図1(i)に示すよ
うに前記変数からの参照操作のダイアグラム表現19
と、図1(j)に示すように前記変数への代入操作のダ
イアグラム表現20と、図1(k)に示すように前記ビ
ット列データへの前記演算の適用操作のダイアグラム表
現21と、図1(m)に示すように前記ビット列データ
の分割操作のダイアグラム表現22と、図1(n)に示
すように前記ビット列データの連結操作のダイアグラム
表現23と、図1(p)に示すように前記ビット列デー
タの複製操作のダイアグラム表現24と、図2(a)に
示すように前記ビット列データへの繰り返し処理のダイ
アグラム表現25と、図2(b)に示すように前記ビッ
ト列データ上の演算を定義するためのダイアグラム表現
26を有する。
Further, as a diagrammatic representation for combining the variable and the operation, as shown in FIG. 1I, a diagrammatic representation 19 of a reference operation from the variable is given.
1 (j), a diagrammatic representation 20 of the assignment operation to the variable, and a diagrammatic representation 21 of the operation applying operation to the bit string data as shown in FIG. 1 (k), As shown in FIG. 1M, a diagrammatic representation 22 of the bit string data division operation, as shown in FIG. 1N, a diagrammatic representation 23 of the bit string data concatenation operation, and as shown in FIG. A diagrammatic representation 24 of the bit string data duplication operation, a diagrammatic representation 25 of the iterative process on the bit string data as shown in FIG. 2A, and an operation on the bit string data as shown in FIG. 2B. Has a diagrammatic representation 26 for

【0029】本例のブロック暗号アルゴリズム仕様記述
法ではビット列データのみを扱う。変数は全てビット列
データを格納するためにのみ使用され、演算はビット列
データに対するもののみが使用可能である。
In the block cipher algorithm specification description method of this example, only bit string data is handled. All variables are used only to store bit string data, and operations can only be used on bit string data.

【0030】例えば、図1(a)のダイヤグラム表現1
1は「64ビットデータ」を格納するための「B」とい
う名前の変数を表している。図1(b)のダイヤグラム
表現12は「32ビットデータ」を格納するための「L
_0」という名前の添字付変数を表しており、変数名中
の「0」が添字である。図1(c)のダイヤグラム表現
13は「32ビットデータ」を格納するための16個
(i=1〜16)の添字付変数「L_1」〜「L_1
6」を表している。図1(d)のダイヤグラム表現14
は「f」という名前の演算を表している。
For example, the diagram representation 1 of FIG.
1 represents a variable named "B" for storing "64-bit data". The diagrammatic representation 12 of FIG. 1B is "L" for storing "32-bit data".
It represents a variable with a subscript named "_0", and "0" in the variable name is a subscript. The diagram representation 13 of FIG. 1C shows 16 (i = 1 to 16) subscripted variables “L_1” to “L_1” for storing “32-bit data”.
6 ”. Diagram representation 14 of FIG. 1 (d)
Represents an operation named "f".

【0031】図1(e)〜(h)は、よく使われる演算
の例であり、このような特殊な演算は必要に応じて導入
される。図1(e)のダイヤグラム表現15は、2つの
ビット列データの排他的論理和を表している。図1
(f)のダイヤグラム表現16は、「64ビットデー
タ」を「56ビットデータ」に縮小転字する演算を表し
ている。図1(g)のダイヤグラム表現17は、ビット
列データを「KSビット」だけシフトする演算を表して
いる。図1(h)のダイヤグラム表現18は、「2ビッ
トデータ」と「4ビットデータ」に対して「4ビットデ
ータ」を代入する演算を表している。
FIGS. 1E to 1H are examples of frequently used operations, and such special operations are introduced as needed. The diagram representation 15 of FIG. 1E represents an exclusive OR of two bit string data. Figure 1
The diagram representation 16 of (f) represents an operation for reducing and transposing "64-bit data" to "56-bit data". The diagrammatic representation 17 of FIG. 1 (g) represents an operation for shifting the bit string data by "KS bits". The diagrammatic representation 18 of FIG. 1 (h) represents an operation for substituting "4 bit data" for "2 bit data" and "4 bit data".

【0032】図1(i)のダイヤグラム表現19は、変
数中に格納されているビット列データを参照するための
表現であり、特に記述の対象となっているアルゴリズム
の入出力データを格納する変数には「input」また
は「output」というラベルを付ける。
The diagrammatic representation 19 of FIG. 1 (i) is a representation for referring to the bit string data stored in the variable, and in particular, it is a variable for storing the input / output data of the algorithm to be described. Is labeled "input" or "output".

【0033】図1(j)のダイヤグラム表現20は、変
数「CB」に「64ビット列データ」を代入するための
表現である。図1(k)のダイヤグラム表現21は、ビ
ット列データに対して「f」という名前の演算を適用す
るための表現である。
The diagrammatic representation 20 of FIG. 1 (j) is a representation for substituting "64-bit string data" for the variable "CB". The diagrammatic representation 21 of FIG. 1 (k) is a representation for applying an operation named "f" to bit string data.

【0034】図1(m)のダイヤグラム表現22は、ビ
ット列データを分割し、複数ビット列データとして変数
X,Yに格納するための表現である。図1(n)のダイ
ヤグラム表現23は、複数個のビット列データを連結
し、1個のビット列データとするための表現である。図
1(p)のダイヤグラム表現24は、ビット列データを
複製し、複数の同じビット列データとするための表現で
ある。
The diagrammatic representation 22 of FIG. 1 (m) is an expression for dividing the bit string data and storing it in the variables X and Y as a plurality of bit string data. The diagram expression 23 of FIG. 1 (n) is an expression for connecting a plurality of bit string data into one bit string data. The diagrammatic representation 24 of FIG. 1 (p) is a representation for duplicating bit string data into a plurality of same bit string data.

【0035】図2(a)のダイヤグラム表現25は、i
個(i=1〜16)の添字付きの変数Xに格納されてい
るビット列データに対して、同じ処理を繰り返し適用
し、その結果を別の添字付きのi個(i=1〜16)の
変数Yに格納するための表現である。点線内は繰り返し
の内容であり、前記の表現と、場合によってはさらに繰
り返しの表現を用いて記述される。繰り返し回数は左上
に「16 times」というように記述する。
The diagrammatic representation 25 of FIG. 2A is i
The same processing is repeatedly applied to the bit string data stored in the variable X with a number of subscripts (i = 1 to 16), and the result is applied to the number of i (i = 1 to 16) with another subscript. It is an expression for storing in the variable Y. The contents within the dotted line are repetitive contents, and are described using the above expression and, if necessary, the repetitive expression. The number of repetitions is described in the upper left as "16 times".

【0036】点線内の左側にある「i」は、現在何度目
の繰り返しであるかを表す繰り返し変数である。この繰
り返し変数「i」は「1」から始まって、順に「1」づ
つ加算され、繰り返し回数に達したところで繰り返し処
理は全て終了する。
The "i" on the left side of the dotted line is a repetition variable indicating the current repetition number. This iteration variable "i" starts from "1" and is incremented by "1" in order, and when the number of iterations is reached, the entire iterative process ends.

【0037】図2(b)のダイヤグラム表現26は、演
算を定義するための表現である。この表現によって定義
された演算は、ダイヤグラム表現14の表現によって他
の場所で使用することができる。点線内は演算の内容で
あり、前記の表現を用いて記述される。
The diagrammatic representation 26 of FIG. 2B is a representation for defining an operation. The operations defined by this representation can be used elsewhere by the representation of diagram representation 14. The contents within the dotted line are the contents of the calculation and are described using the above-mentioned expressions.

【0038】同名の変数の異なる出現は同一の変数を表
す。変数へのデータの格納は1回のみ許される。変数の
参照は、何回行なっても構わないが、データの格納され
ていない変数の参照は許されない。
Different occurrences of a variable of the same name represent the same variable. Data can be stored in variables only once. You can refer to a variable any number of times, but you cannot refer to a variable that does not contain data.

【0039】[記述例]図3〜図5は、ブロック暗号ア
ルゴリズムである「DES」を本発明のブロック暗号ア
ルゴリズム仕様記述法によって記述したアルゴリズム構
成図であり、図3はブロック暗号アルゴリズムDESの
全体を表し、図4は図3で使われている演算「f」11
2の処理の詳細を表し、図5は図3で使われている変数
「K_i(i=1..16)109に格納される16個
の鍵Kの生成処理を詳細に表したものである。
[Description Example] FIGS. 3 to 5 are algorithm configuration diagrams in which the block encryption algorithm "DES" is described by the block cipher algorithm specification description method of the present invention. FIG. 3 shows the entire block cipher algorithm DES. 4 and FIG. 4 shows the operation “f” 11 used in FIG.
2 shows the details of the processing of No. 2, and FIG. 5 shows the generation processing of the 16 keys K stored in the variable “K_i (i = 1..16) 109 used in FIG. 3 in detail. .

【0040】これらの図3〜図5で使用されている転
字、シフト、代入の演算の詳細は、例えば図6に示すよ
うに別途与えられる。図6(a)は図3で使われている
転字演算「IP」の詳細であり、例えば、出力ビット列
の第1ビットが入力ビット列の第58ビットである。図
6(b)は図4で使われている拡大転字演算「EP」の
詳細であり、例えば、出力ビット列の第1ビットが入力
ビット列の第32ビットである。図6(c)は図4で使
われている代入演算「S_1」の詳細であり、2ビット
入力で表される4通りの場合と4ビット入力の16通り
の場合の組合せをマトリクスで表現しており、出力の4
ビット列の値は該マトリクスの各桝目の値となる。図6
(d)は図5で使われているシフト演算の詳細であり、
例えば、「K_1」は入力ビット列を1ビット左シフト
することを表している。
Details of the transliteration, shift, and substitution operations used in FIGS. 3 to 5 are given separately as shown in FIG. 6, for example. FIG. 6A shows the details of the transliteration operation “IP” used in FIG. 3. For example, the first bit of the output bit string is the 58th bit of the input bit string. FIG. 6B is a detail of the expanded transliteration operation “EP” used in FIG. 4. For example, the first bit of the output bit string is the 32nd bit of the input bit string. FIG. 6C shows the details of the substitution operation “S_1” used in FIG. 4, and expresses a matrix of combinations of 4 cases represented by 2-bit input and 16 cases of 4-bit input. And output 4
The value of the bit string becomes the value of each cell in the matrix. Figure 6
(D) is a detail of the shift operation used in FIG.
For example, "K_1" represents shifting the input bit string by 1 bit to the left.

【0041】図3のアルゴリズムの詳細は次のようにな
る。
The details of the algorithm of FIG. 3 are as follows.

【0042】まず、暗号化の対象となる平文データは、
「B」という名前の64ビット変数101に格納され
る。この変数「B」には「input」というラベルが
付けられており、該アルゴリズムに対する入力であるこ
とが示されている。平文データは変数「B」の参照を表
す矢印102を経て、「IP」という名前の64ビット
データに対する転字103に送られる。
First, the plaintext data to be encrypted is
It is stored in the 64-bit variable 101 named “B”. This variable "B" is labeled "input", indicating that it is an input to the algorithm. The plaintext data is sent to the transliteration 103 for the 64-bit data named "IP" via the arrow 102 representing the reference to the variable "B".

【0043】この転字処理結果である64ビットデータ
は、データの分割を表す矢印104を経て、上位の32
ビットデータは「L_0」という名前の32ビット変数
105に、下位の32ビットデータは「R_0」という
名前の32ビット変数107に格納される。
The 64-bit data which is the result of this transfer processing passes through the arrow 104 indicating the division of the data and passes through the upper 32 bits.
The bit data is stored in the 32-bit variable 105 named "L_0", and the lower 32-bit data is stored in the 32-bit variable 107 named "R_0".

【0044】次に、繰り返し処理110に入り、この処
理内部において同様の処理が16回(「16 time
s」)行なわれる。
Next, the iterative process 110 is entered, and the same process is repeated 16 times ("16 time" in this process).
s ").

【0045】第i(i=1..16)回目の処理では、
「L_(i−1)」という名前の32ビット変数105
または106と、「R_(i−1)」という名前の32
ビット変数107または108と、「K_i」という名
前の48ビット変数109のデータが参照され、処理結
果は「L_i」という名前の32ビット変数114また
は115と、「R_i」という名前の32ビット変数1
16または117に格納される。
In the i-th (i = 1..16) th processing,
A 32-bit variable 105 named "L_ (i-1)"
Or 106 and 32 named "R_ (i-1)"
The data of the bit variable 107 or 108 and the 48-bit variable 109 named “K_i” is referenced, and the processing result is the 32-bit variable 114 or 115 named “L_i” and the 32-bit variable 1 named “R_i”.
16 or 117.

【0046】この繰り返し処理110の内容の詳細は次
のようなる。変数「R_(i−1)」はデータの複製を
表す矢印111を経て、一方は変数「L_i」114ま
たは115に格納され、他方は演算「f」112の二つ
の入力のうちの1つになる。
Details of the contents of the repetitive processing 110 are as follows. The variable “R_ (i−1)” is stored in the variable “L_i” 114 or 115 via the arrow 111 representing the duplication of data, and the other is input to one of the two inputs of the operation “f” 112. Become.

【0047】演算「f」112のもう1つの入力変数は
「K_i」である。この演算「f」112の結果は、入
力変数「L_(i−1)」と共に排他的論理和113の
入力となる。この排他的論理和113の結果は出力変数
「R_i」116または117に格納される。
Another input variable of operation "f" 112 is "K_i". The result of this operation “f” 112 becomes the input of the exclusive OR 113 together with the input variable “L_ (i−1)”. The result of the exclusive OR 113 is stored in the output variable “R_i” 116 or 117.

【0048】このような繰り返し処理が全て終了する
と、「L_16」という名前の32ビット変数115と
「R_16」という名前の32ビット変数117のデー
タが、データの連結を表す矢印118を経て連結されて
64ビットデータとなり、「IP^−1」(転字IPの
逆)という転字119に入力される。
When all such repeating processes are completed, the data of the 32-bit variable 115 named "L_16" and the data of the 32-bit variable 117 named "R_16" are concatenated via the arrow 118 representing the concatenation of the data. It becomes 64-bit data and is input to the transliteration 119 called "IP ^ -1" (reverse of transliteration IP).

【0049】この転字119の処理結果が暗号文であ
り、データの格納を表す矢印120を経て、「CB」と
いう名前の64ビット変数121に格納される。この変
数121には「output」というラベルが付けられ
ており、DESアルゴリズムからの出力であることが示
されている。
The processing result of this transliteration 119 is a ciphertext, and is stored in the 64-bit variable 121 named "CB" via the arrow 120 representing the storage of data. This variable 121 is labeled "output", which indicates that it is an output from the DES algorithm.

【0050】なお、図3には、変数「L_i(i=
1..15)」の2つの出現106と115があるが、
同一の変数を表している。変数「R_i(i=1..1
5)」についても同様である。
In FIG. 3, the variable "L_i (i =
1. . 15) ”has two occurrences 106 and 115,
Represents the same variable. The variable “R_i (i = 1.
The same applies to "5)".

【0051】図4の演算「f」の定義112の詳細は次
の通りである。演算「f」では32ビットデータ「R」
132と48ビットデータ「K」133の2つの入力か
ら、32ビットデータ「f(R,K)」149を計算す
る。
Details of the definition 112 of the operation "f" in FIG. 4 are as follows. 32-bit data "R" in operation "f"
32-bit data “f (R, K)” 149 is calculated from two inputs of 132 and 48-bit data “K” 133.

【0052】入力データ「R」132は、32ビットデ
ータの48ビットデータへの拡大転字「EP」134に
よって、48ビットデータ135に変換され、もう1つ
の48ビットデータ「K」133と共に排他的論理和1
36の入力となる。この排他的論理和136の演算結果
137は、8個(j=1..8)の6ビットデータに分
割され、8個の6ビットデータ変数「X_j(j=
1..8)」138に格納される。データの格納を表す
矢印137は、ここでは添字付変数の並びに接続されて
いるため、データの分割を表している。
The input data "R" 132 is converted to 48-bit data 135 by the expanded transcribing "EP" 134 of 32-bit data to 48-bit data, and is exclusive with another 48-bit data "K" 133. OR 1
36 inputs. The operation result 137 of the exclusive OR 136 is divided into 8 (j = 1..8) 6-bit data, and eight 6-bit data variables “X_j (j =
1. . 8) ”138. The arrow 137 indicating the storage of the data represents the division of the data because it is connected to the variable with the subscript here.

【0053】次に、繰り返し処理139に入り、8個の
6ビットデータ変数X_j(j=1..8)のそれぞれ
に対して次の処理が行なわれる。
Next, the iterative process 139 is entered, and the following process is performed for each of the eight 6-bit data variables X_j (j = 1..8).

【0054】まず、6ビットデータ変数「X_j」13
8は1ビット、4ビット、1ビットのデータに分割さ
れ、それぞれ、1ビットデータ変数「r1」140、4
ビットデータ変数「c」141、1ビットデータ変数
「r2」142に格納される。ここで、変数「r1」1
40、変数「c」141、変数「r2」142は、繰り
返し変数jが加算される毎に新しく用意される。
First, the 6-bit data variable "X_j" 13
8 is divided into 1-bit, 4-bit, and 1-bit data, and 1-bit data variable “r1” 140 and 4 respectively.
The bit data variable “c” 141 is stored in the 1-bit data variable “r2” 142. Here, the variable "r1" 1
40, the variable “c” 141, and the variable “r2” 142 are newly prepared each time the repeated variable j is added.

【0055】変数「r1」140と「r2」141のデ
ータを連結した2ビットデータ143と、変数「c」1
42の4ビットデータ144が代入演算「S_j」14
5に入力される。この演算結果は4ビット変数「Y_
j」146に格納される。
2-bit data 143 obtained by concatenating the data of the variables "r1" 140 and "r2" 141 and the variable "c" 1
The 4-bit data 144 of 42 is the substitution operation “S_j” 14
Input to 5. The result of this operation is the 4-bit variable "Y_
j ”146.

【0056】このような繰り返し処理が全て終了する
と、8個の4ビットデータ「Y_j(j=1..8)」
146が連結されて32ビットデータ147となり、3
2ビットデータに対する転字「P」148に入力され
る。データ147の参照を表す矢印は、ここでは添字付
変数の並びからの参照になっているため、データの連結
を表してる。この演算結果が「f(R,K)」149と
なる。
When all such repeating processes are completed, eight 4-bit data "Y_j (j = 1..8)"
146 are concatenated to form 32-bit data 147, 3
It is input to the transcribed "P" 148 for 2-bit data. The arrow indicating the reference of the data 147 indicates the connection of the data, since the reference is made from the array of subscripted variables here. The result of this calculation is “f (R, K)” 149.

【0057】図5に示す変数「K_i(i=1..1
6)」167の生成処理の詳細は次の通りである。ま
ず、DESアルゴリズムに対して入力される鍵(K)が
64ビットデータ変数「K」151に格納される。この
64ビットデータ変数「K」151は、矢印152を経
て、64ビットから56ビットへの縮小転字「KP」1
53に入力され、56ビットデータ154に変換され
る。
The variable "K_i (i = 1 ... 1) shown in FIG.
6) ”167 generation processing is as follows. First, the key (K) input to the DES algorithm is stored in the 64-bit data variable “K” 151. This 64-bit data variable “K” 151 passes through the arrow 152, and the reduced transliteration “KP” 1 from 64-bit to 56-bit.
It is input to 53 and converted into 56-bit data 154.

【0058】この56ビットデータ154は、2つの2
8ビットデータに分割され、それぞれ28ビット変数
「KL_0」155と「KR_0」157に格納され
る。
This 56-bit data 154 has two 2
It is divided into 8-bit data and stored in 28-bit variables "KL_0" 155 and "KR_0" 157, respectively.

【0059】次に、繰り返し処理(1)159に入り、
各「KL_(i−1)」(i=1..16)155ある
いは156と、「KR_(i−1)(i=1..1
6)」157あるいは158に対して、次の処理が行な
われ、「KL_i(i=1..16)」162と「KR
_i(i=1..16)」163が順次生成される。
Next, the iterative process (1) 159 is entered,
Each “KL_ (i−1)” (i = 1..16) 155 or 156 and “KR_ (i−1) (i = 1.
6) ”157 or 158 is subjected to the following processing, and“ KL_i (i = 1..16) ”162 and“ KR
_I (i = 1..16) ”163 is sequentially generated.

【0060】各「KL_(i−1)」155あるいは1
56はシフト演算「KS_i」160の入力となる。こ
の演算結果は変数「KL_i」162に格納される。
Each "KL_ (i-1)" 155 or 1
56 is an input of the shift operation “KS_i” 160. The calculation result is stored in the variable “KL_i” 162.

【0061】また、各変数「KR_(i−1)」157
あるいは158はシフト演算「KS_i」161の入力
となる。この演算結果は変数「KR_i」163に格納
される。
In addition, each variable “KR_ (i−1)” 157
Alternatively, 158 becomes an input of the shift operation “KS_i” 161. The calculation result is stored in the variable “KR_i” 163.

【0062】上記の繰り返し処理の後であるいは並行し
て、各「KL_i(i=1..16)」162と「KR
_i(i=1..16)」163に対して、次の繰り返
し処理(2)164が行なわれる。
After the above iterative processing or in parallel, each "KL_i (i = 1..16)" 162 and "KR_i"
_I (i = 1..16) ”163, the following iterative process (2) 164 is performed.

【0063】各「KL_i」162と「KR_i」16
3を連結した56ビットデータ165に対して、56ビ
ットから48ビットへの縮小転字「PC」166が適用
され、その結果が48ビット変数「K_i」167に格
納される。
Each "KL_i" 162 and "KR_i" 16
The reduced transliteration “PC” 166 from 56 bits to 48 bits is applied to the 56-bit data 165 obtained by concatenating 3 and the result is stored in the 48-bit variable “K_i” 167.

【0064】この記述例が示すように、本例のブロック
暗号アルゴリズム記述記法によれば、ブロック暗号アル
ゴリズムの詳細を厳密にかつ簡潔に記述することができ
る。
As shown in this description example, according to the block cipher algorithm description notation of this example, the details of the block cipher algorithm can be described exactly and concisely.

【0065】[第1の実施形態]次に、上述したブロッ
ク暗号アルゴリズム仕様記述記法を使用して実現される
暗号アルゴリズム開発支援装置の実施形態について、図
面に従って具体的に説明する。
[First Embodiment] Next, an embodiment of a cryptographic algorithm development supporting apparatus realized by using the above-mentioned block cipher algorithm specification description notation will be concretely described with reference to the drawings.

【0066】図7は、ブロック暗号のアルゴリズム開発
支援装置の実施形態を示す機能構成図である。この第1
の実施形態のブロック暗号のアルゴリズム開発支援装置
は、前述した暗号アルゴリズムのダイアグラム表現をユ
ーザが記述及び編集するのを支援する暗号ダイアグラム
編集装置201と、記述および編集されたブロック暗号
アルゴリズムのダイアグラム表現を格納する暗号ダイア
グラム格納装置204と、ブロック暗号アルゴリズムの
ダイアグラム表現を解釈実行する暗号ダイアグラム解釈
実行装置202と、解釈実行中のブロック暗号アルゴリ
ズムのダイアグラム表現に現れる変数の状態を格納する
暗号ダイアグラム実行環境格納装置205と、暗号ダイ
アグラム実行環境格納装置205の内容を検査するため
の暗号ダイアグラム実行環境検査装置203とから構成
される。
FIG. 7 is a functional block diagram showing an embodiment of a block cipher algorithm development support device. This first
The block cipher algorithm development support apparatus according to the embodiment of the present invention provides a cipher diagram editing apparatus 201 that assists the user to describe and edit the above-described diagram representation of the cryptographic algorithm, and a diagram representation of the described and edited block cipher algorithm. A cryptographic diagram storage device 204 for storing, a cryptographic diagram interpretation / execution device 202 for interpreting and executing a diagram representation of a block cipher algorithm, and a cryptographic diagram execution environment storage for storing states of variables appearing in the diagram representation of a block cipher algorithm during interpretation and execution It comprises a device 205 and a cryptographic diagram execution environment inspection device 203 for inspecting the contents of the cryptographic diagram execution environment storage device 205.

【0067】暗号ダイアグラム編集装置201は、図3
で示したようなブロック暗号アルゴリズムのダイアグラ
ム表現をユーザが記述及び編集するのを支援するための
ものであり、従来のダイアグラム編集技術によって実現
可能である。この暗号ダイアグラム編集装置201は、
図6のような演算の詳細を定義するための機能も持って
おり、この定義は暗号ダイアグラム格納装置204に格
納される。
The cipher diagram editing apparatus 201 is shown in FIG.
It is intended to help the user to describe and edit the diagram representation of the block cipher algorithm as shown in (4) and can be realized by the conventional diagram editing technique. This cipher diagram editing device 201
It also has a function for defining the details of the operation as shown in FIG. 6, and this definition is stored in the cryptographic diagram storage device 204.

【0068】暗号ダイアグラム解釈実行装置202は、
ブロック暗号アルゴリズムのダイアグラム表現を解釈実
行するためのものであり、暗号ダイアグラム格納装置2
04に格納されている暗号ダイアグラムの構成要素を計
算可能なものから順に計算して、その計算結果である値
を暗号ダイアグラム実行環境格納装置205に格納して
いく。ただし、ダイアグラムの構成要素が「計算可能で
ある」ことは次のように定義される。
The cipher diagram interpretation and execution device 202
A cryptographic diagram storage device 2 for interpreting and executing a diagram representation of a block cipher algorithm.
The constituent elements of the cipher diagram stored in 04 are calculated in order from the computable one, and the value as the calculation result is stored in the cipher diagram execution environment storage device 205. However, the fact that the components of the diagram are "computable" is defined as follows.

【0069】[構成要素の計算可能性の定義] (a)アルゴリズムの入力変数は計算可能である。[Definition of Computability of Components] (A) The input variables of the algorithm can be calculated.

【0070】(b)組み込み演算はその入力が全て値が
決まっていれば、出力は計算可能である。
(B) In the built-in operation, the output can be calculated if the values of all the inputs are determined.

【0071】(c)変数は代入される値が決まっていれ
ば、計算可能である。
(C) The variable can be calculated if the value to be substituted is determined.

【0072】(d)n回の繰り返し部の第1回目は、繰
り返しの添字を「1」としたときに、入力変数全ての値
が決まっていれば、計算可能である。
(D) The first iteration of the n-th iterative portion can be calculated if the values of all the input variables are determined when the subscript of the iteration is "1".

【0073】(e)n回の繰り返し部の第i(i=
2..n)回目は、第1回目から第i−1回目の出力変
数が決まっていて、繰り返しの添字をiとしたときに入
力変数全ての値が決まっていれば、計算可能である。
(E) The i-th (i =
2. . The n) th time can be calculated if the output variables of the 1st to (i−1) th times are determined and all the input variable values are determined when the subscript of the repetition is i.

【0074】(f)ユーザ定義演算は、入力変数全ての
値が決まっていれば、計算可能である。
(F) The user-defined operation can be calculated if the values of all input variables are determined.

【0075】暗号ダイアグラム解釈実行装置202は、
図8の詳細構成図に示すように、暗号ダイアグラム格納
装置204に格納されている暗号ダイアグラムを読み取
るためのダイアグラム走査装置206と、暗号ダイアグ
ラムの走査結果に基づき当該暗号ダイアグラムの構成要
素の計算可能性を検査するための計算可能性検査装置2
07と、暗号アルゴリズムの入力変数を設定するための
初期値設定装置208と、暗号ダイアグラムの構成要素
の値を計算するための値計算装置209から構成され
る。
The cipher diagram interpretation / execution device 202
As shown in the detailed configuration diagram of FIG. 8, a diagram scanning device 206 for reading the cryptographic diagram stored in the cryptographic diagram storage device 204, and the computability of the components of the cryptographic diagram based on the scan result of the cryptographic diagram. Computability test device 2 for testing
07, an initial value setting device 208 for setting the input variable of the cryptographic algorithm, and a value calculation device 209 for calculating the values of the constituent elements of the cryptographic diagram.

【0076】暗号ダイアグラム実行環境検査装置203
は、ユーザが暗号ダイアグラム実行環境格納装置205
の内容を検査するためのものであり、図9の詳細構成図
に示すように、暗号ダイアグラムの構成要素のうち、ユ
ーザから指定された要素の値を読み取るための検査対象
指定装置210と、読み取った値を表示するための検査
結果表示装置211から成る。
Cipher Diagram Execution Environment Inspection Device 203
Is a cryptographic diagram execution environment storage device 205
Of the cryptographic diagram, as shown in the detailed configuration diagram of FIG. 9, an inspection target designating device 210 for reading the value of the element designated by the user, and the reading target designating device 210. The inspection result display device 211 for displaying the measured values.

【0077】この第1の実施形態の暗号アルゴリズム開
発支援装置の基本的な使用方法は、次のようになる。
The basic method of using the cryptographic algorithm development support device of the first embodiment is as follows.

【0078】まず、ユーザは、暗号ダイアグラム編集装
置201を使用し、図3に示したような記法によるブロ
ック暗号アルゴリズムのダイアグラム表現を記述及び編
集し、暗号ダイアグラム格納装置204に格納する。
First, the user uses the cipher diagram editing device 201 to describe and edit the diagram representation of the block cipher algorithm according to the notation shown in FIG. 3, and stores it in the cipher diagram storage device 204.

【0079】次に、暗号ダイアグラム格納装置204に
格納したブロック暗号アルゴリズムがユーザの意図した
通りに動作することを確認するために、暗号ダイアグラ
ム解釈実行装置202を使用し、実際に前記ブロック暗
号アルゴリズムを実行させる。この実行結果は、暗号ダ
イアグラム実行環境格納装置205に、図11〜図13
に示すような表として格納される。
Next, in order to confirm that the block cipher algorithm stored in the cipher diagram storage device 204 operates as intended by the user, the cipher diagram interpretation execution device 202 is used to actually execute the block cipher algorithm. Let it run. This execution result is stored in the cryptographic diagram execution environment storage device 205 as shown in FIGS.
It is stored as a table as shown in.

【0080】最後に、ユーザは暗号ダイアグラム実行環
境検査装置203を使用して前記実行結果を詳細に調べ
る。
Finally, the user uses the cryptographic diagram execution environment checking device 203 to examine the execution result in detail.

【0081】以下、暗号ダイアグラム解釈実行装置20
2の動作を図10に示すフローチャートに基づき1ステ
ップずつを詳細に説明する。
Hereinafter, the cryptographic diagram interpretation execution device 20
The operation No. 2 will be described in detail step by step based on the flowchart shown in FIG.

【0082】ステップ212 暗号ダイアグラム格納装置204に格納されているダイ
アグラムの構成要素を、ダイアグラム走査装置206に
よって調べ、暗号ダイアグラム実行環境格納装置205
を初期化する。暗号ダイアグラム実行環境は、アルゴリ
ズム全体に対する表の他、各繰り返し部の各回に対応し
た表や、ユーザ定義演算に対応する表が作られて初期化
される。
Step 212 : The diagram scanning device 206 examines the components of the diagram stored in the cryptographic diagram storage device 204, and the cryptographic diagram execution environment storage device 205.
To initialize. The cryptographic diagram execution environment is initialized by creating a table for the entire algorithm, a table corresponding to each time of each repeating unit, and a table corresponding to a user-defined operation.

【0083】例えば、図3〜図5に示したDES暗号ア
ルゴリズムの生成処理の場合、図11(a)に示す暗号
アルゴリズムDESの生成処理全体の表1100、図1
1(b)に示すDES全体の繰り返し部139に関する
表1110、図12に示す鍵生成処理全体の表112
0、図13(a)に示す鍵生成処理中の第1の繰り返し
部の各回の表1130、鍵生成処理中の第2の繰り返し
部の各回の表1140が作られて初期化される。
For example, in the case of the generation processing of the DES encryption algorithm shown in FIGS. 3 to 5, a table 1100 of the entire generation processing of the encryption algorithm DES shown in FIG.
1 (b) shows a table 1110 relating to the repeating unit 139 of the entire DES, and a table 112 showing the entire key generation process shown in FIG.
0, a table 1130 for each time of the first iterative unit during the key generation process shown in FIG. 13A, and a table 1140 for each time of the second iterative unit during the key generation process are created and initialized.

【0084】ここで、これらの各表は、「構成要素」1
101、「計算可能か?」1102、「値」1103の
各欄から構成され、「構成要素」1101の欄にはブロ
ック暗号アルゴリズム中に記述した変数等のダイヤグラ
ム表現の名称が設定される。また、「計算可能か?」1
102の欄には初期段階では「NO」が設定され、計算
可能になった段階で「YES」が設定されるようになっ
ている。さらに、「値」1103の欄には、変数等のダ
イヤグラム表現の計算結果が設定されるようになってい
る。
Here, each of these tables is a "component" 1
Each of the columns 101, "Is it calculable?" 1102, and "Value" 1103 is set. In the column "Component" 1101, the names of the diagram expressions such as variables described in the block cipher algorithm are set. Also, "Is it possible to calculate?" 1
In the column of 102, "NO" is set at the initial stage, and "YES" is set at the stage when calculation becomes possible. Further, in the column of “value” 1103, a calculation result of a diagram expression such as a variable is set.

【0085】ステップ213 計算可能性検査装置207によって、前記の計算可能性
の定義に従って、ダイアグラム表現の中で値1103が
計算可能なものを全て列挙する。このとき、構成要素間
の関係はダイアグラム走査装置206によって調べる。
Step 213 The computability checking device 207 lists all the computable values 1103 in the diagram representation according to the above definition of computability. At this time, the relationship between the components is examined by the diagram scanning device 206.

【0086】ステップ214 ステップ213で列挙された計算可能な構成要素の値1
103を値計算装置209によって計算する。このと
き、ダイアグラム走査装置206によって、計算に必要
な値を持つ他の構成要素を調べ、その値は暗号ダイアグ
ラム実行環境格納装置205から参照する。また、その
構成要素がアルゴリズムへの入力変数である場合は、初
期値設定装置208によって、ユーザによって指定され
た値を計算値とする。
Step 214 The value 1 of the computable component listed in Step 213
103 is calculated by the value calculation device 209. At this time, the diagram scanning device 206 examines other components having a value necessary for calculation, and the value is referred from the cryptographic diagram execution environment storage device 205. When the constituent element is an input variable to the algorithm, the value designated by the user by the initial value setting device 208 is used as the calculated value.

【0087】ステップ215 暗号アルゴリズムの全ての出力変数に値が格納されたか
を調べる。そうであれば、実行を終了する。さもなけれ
ば、ステップ213に戻る。
Step 215 It is checked whether values have been stored in all output variables of the cryptographic algorithm. If so, the execution ends. Otherwise, return to step 213.

【0088】例えば、図5に示す暗号アルゴリズムDE
Sの鍵生成処理においてi=1の鍵である出力変数「K
_1」167が生成されるまでの表1120,113
0,1140の内容は図14〜図16に示すようなもの
となる。
For example, the encryption algorithm DE shown in FIG.
In the key generation process of S, the output variable “K
Tables 1120 and 113 until “_1” 167 is generated
The contents of 0, 1140 are as shown in FIGS.

【0089】すなわち、実行の開始直後のステップ21
2で暗号ダイアグラム実行環境格納装置205が初期化
された時点では、条件が揃っていないために構成要素は
全て計算可能ではない。図14〜図16では、初期化さ
れた時点で計算可能か否かということを「開始」の欄1
401に「NO」で示している。
That is, step 21 immediately after the start of execution
When the cryptographic diagram execution environment storage device 205 is initialized in step 2, all the constituent elements cannot be calculated because the conditions are not met. In FIG. 14 to FIG. 16, the “start” column 1 indicates whether calculation is possible at the time of initialization.
Reference numeral 401 indicates “NO”.

【0090】次に、ステップ213で、計算可能性検査
装置207によって前記の計算可能性の定義に従って、
アルゴリズムの入力変数Kのみが計算可能な構成要素と
して列挙され、ステップ214で、値計算装置209と
初期値設定装置208によって、ユーザによって指定さ
れた値XがKの計算値となる。図14では、計算段階の
欄1402の(1)に入力変数K=Xになったことを示
している。また、この時点で入力変数Kの「計算可能か
?」が「YES」に更新されたことを示している。
Next, in step 213, according to the above-mentioned definition of computability by the computability checking device 207,
Only the input variable K of the algorithm is enumerated as a calculable component, and in step 214, the value X specified by the user by the value calculation device 209 and the initial value setting device 208 becomes the calculated value of K. In FIG. 14, the input variable K = X is shown in (1) of the calculation stage column 1402. In addition, at this time point, it is indicated that the “calculation possible?” Of the input variable K is updated to “YES”.

【0091】ステップ215で、暗号アルゴリズムの全
ての出力変数に値が格納されたかを調べるが、そうでは
ないのでステップ213に戻る。2度目のステップ21
3では、入力変数Kの値が決まっているので、計算可能
性検査装置207によって、前記の計算可能性の定義に
従って転字演算KPが計算可能な構成要素として列挙さ
れる。そして、転字演算KPの「計算可能か?」が「Y
ES」に更新される。
At step 215, it is checked whether or not values have been stored in all the output variables of the cryptographic algorithm, but since this is not the case, the process returns to step 213. Second step 21
In 3, the value of the input variable K is determined, and therefore the computability checking device 207 enumerates the transliteration operation KP as a computable element according to the above definition of computability. Then, in the transliteration operation KP, "is it possible to calculate?"
ES ”is updated.

【0092】ステップ214で、値計算装置209によ
ってKP(X)が計算され、KPの値となる。図14で
は、計算段階の欄1402の(2)にKPの値が求めら
れたことをKP(X)で示している。続く、3度目のス
テップ213とステップ214では「KL_0」と「K
R_0」の値が計算される。図14では、計算段階の欄
1402の(3)に「KL_0」と「KR_0」の値が
求められたことを示している。
In step 214, KP (X) is calculated by the value calculation device 209 and becomes the value of KP. In FIG. 14, KP (X) indicates that the value of KP has been obtained in (2) of the calculation stage column 1402. In the subsequent third step 213 and step 214, “KL_0” and “K
The value of "R_0" is calculated. FIG. 14 shows that the values of “KL_0” and “KR_0” have been obtained in (3) of the calculation stage column 1402.

【0093】4度目のステップ213とステップ214
では、繰り返し部(1)のi=1の場合が計算可能にな
り、その入力変数「KL_0」と「KR_0」の値が決
まる。図15では、計算段階の欄1402の(4)に
「KL_0」と「KR_0」の値が求められたことを示
している。
Fourth step 213 and step 214
Then, the case of i = 1 in the repeating unit (1) can be calculated, and the values of the input variables “KL_0” and “KR_0” are determined. FIG. 15 shows that the values of “KL_0” and “KR_0” have been obtained in (4) of the calculation stage column 1402.

【0094】5度目のステップ213とステップ214
では、2つの「KS_1」の値が計算され、6度目のス
テップ213とステップ214では、繰り返し部(1)
のi=1の場合の出力変数である「KL_1」と「KR
_1」の値が決まる。図15では、計算段階の欄140
2の(5)に「KS_1」の値が求められたことを示
し、また計算段階の欄1402の(6)に「KL_1」
と「KR_1」の値が求められたことを示している。
Fifth step 213 and step 214
Then, two values of "KS_1" are calculated, and in Steps 213 and 214 for the sixth time, the repeating unit (1)
"KL_1" and "KR" which are output variables when i = 1
The value of "_1" is determined. In FIG. 15, the calculation stage column 140
2 (5) indicates that the value of "KS_1" has been obtained, and (6) of the calculation stage column 1402 indicates "KL_1".
And that the values of “KR — 1” have been obtained.

【0095】以下同様にして、図5のダイヤグラム表現
で記述された暗号アルゴリズムの実行が続けられる。こ
れによって、12度目のステップ213とステップ21
4で第1番目(i=1)の出力変数「K_1」の値が決
まる。図16では、計算段階の欄1402の(12)に
「K_1」の値が求められたことを示している。
In the same manner, the execution of the cryptographic algorithm described by the diagram representation of FIG. 5 is continued. As a result, the twelfth step 213 and step 21
At 4, the value of the first (i = 1) output variable “K_1” is determined. FIG. 16 shows that the value of “K_1” is obtained in (12) of the calculation stage column 1402.

【0096】このような処理がi=16になるまで繰り
返し実行される。これによって、16個の鍵に相当する
変数「K_1」が生成される。なお、暗号アルゴリズム
DES全体の処理としては、変数「CB」の値が求まっ
た段階で終了する。変数「CB」の値が求まったなら
ば、図11の表1100の「計算可能か?」1102の
欄は、全て「YES」になる。
Such processing is repeatedly executed until i = 16. As a result, the variable “K_1” corresponding to 16 keys is generated. The processing of the entire encryption algorithm DES ends when the value of the variable “CB” is obtained. When the value of the variable “CB” is obtained, all the columns of “Is it possible to calculate?” 1102 in the table 1100 of FIG. 11 are “YES”.

【0097】このように、第1の実施形態によれば、前
述した記法によるブロック暗号アルゴリズムのダイアグ
ラム表現をユーザが記述及び編集するのを支援できる上
に、そのブロック暗号アルゴリズムのダイアグラム表現
を解釈実行し、当該ブロック暗号ダイアグラム実行環境
を詳細に調べることができ、ブロック暗号アルゴリズム
開発を効率的に行なうことができる。
As described above, according to the first embodiment, it is possible to assist the user in describing and editing the diagram expression of the block cipher algorithm according to the above-mentioned notation, and at the same time, interpret and execute the diagram expression of the block cipher algorithm. However, the block cipher diagram execution environment can be examined in detail, and the block cipher algorithm can be efficiently developed.

【0098】[第2の実施形態]次に、本発明を適用し
た暗号プログラムテストケース生成装置の実施形態につ
いて、図面に従って具体的に説明する。
[Second Embodiment] Next, an embodiment of a cryptographic program test case generation device to which the present invention is applied will be specifically described with reference to the drawings.

【0099】図17は、暗号プログラムテストケース生
成装置の実施形態を示す機能構成図である。この実施形
態の暗号プログラムテストケース生成装置300は、テ
ストケースを区別するためのID(識別情報)3041
と、暗号化鍵3042および平文3043並びに該平文
3043を暗号化鍵3042によって暗号化した暗号文
3044とからなるブロック暗号プログラムテストケー
ス304を格納するための暗号プログラムテストケース
格納装置305と、前記ID3041を生成するための
ID計数装置301と、前記暗号化鍵3042を生成す
るための鍵生成装置302と、前記平文3043を生成
するための平文生成装置303とから構成され、前記暗
号文3044を生成するために、前述の第1の実施形態
の暗号アルゴリズム開発支援装置200を利用する。
FIG. 17 is a functional block diagram showing an embodiment of the cryptographic program test case generation device. The cryptographic program test case generation device 300 of this embodiment has an ID (identification information) 3041 for distinguishing test cases.
And a cipher program test case storage device 305 for storing a block cipher program test case 304 consisting of an encryption key 3042, a plaintext 3043, and a ciphertext 3044 obtained by encrypting the plaintext 3043 with the encryption key 3042, and the ID 3041. And a plaintext generator 303 for generating the plaintext 3043, and an ID counting device 301 for generating the ciphertext 3044, and an ID counting device 301 for generating the ciphertext 3044. In order to do so, the cryptographic algorithm development support device 200 of the first embodiment described above is used.

【0100】この実施形態の暗号プログラムテストケー
ス生成装置300の基本的な使用方法は次のようにな
る。
The basic usage of the cryptographic program test case generation device 300 of this embodiment is as follows.

【0101】ユーザは、前述した暗号アルゴリズム開発
支援装置200を利用し、予めブロック暗号アルゴリズ
ムを開発しておく。すると、ユーザは、該ブロック暗号
アルゴリズムを実現するプログラムを検査する際に使用
するテストケースを、本実施形態の暗号プログラムテス
トケース生成装置300使用して作成することができ
る。
The user uses the above-mentioned encryption algorithm development support device 200 to develop a block cipher algorithm in advance. Then, the user can create a test case used when inspecting the program that realizes the block cipher algorithm, by using the cryptographic program test case generation device 300 of the present embodiment.

【0102】まず、ID計数装置301によって新しい
テストケースのID3041を生成する。次に、鍵生成
装置302によって暗号化鍵3042を生成し、さらに
平文生成装置303によって暗号化の対象となる平文3
043を生成する。
First, the ID counter 301 generates a new test case ID 3041. Next, the key generation device 302 generates the encryption key 3042, and the plaintext generation device 303 further encrypts the plaintext 3
043 is generated.

【0103】鍵生成装置302と平文生成装置303は
乱数等の手段によって、暗号化鍵3042や平文304
3を生成する。この場合、ユーザが暗号化鍵3042や
平文3043を直接入力することもある。
The key generation device 302 and the plaintext generation device 303 use an encryption key 3042 and a plaintext 304 by means of random numbers or the like.
3 is generated. In this case, the user may directly input the encryption key 3042 or the plaintext 3043.

【0104】暗号化鍵3042と平文3043を生成し
たならば、暗号アルゴリズム開発支援装置200のブロ
ック暗号ダイアグラム解釈実行装置203に暗号化鍵3
042と平文3043とを入力し、前記第1の実施形態
で説明した手順によって、前記暗号アルゴリズムを解釈
実行することにより、前記平文3043を前記暗号アル
ゴリズムにより暗号化した暗号文3044が得られる。
After the encryption key 3042 and the plaintext 3043 are generated, the encryption key 3 is transferred to the block cipher diagram interpretation execution device 203 of the encryption algorithm development support device 200.
By inputting 042 and plaintext 3043 and interpreting and executing the encryption algorithm according to the procedure described in the first embodiment, a ciphertext 3044 obtained by encrypting the plaintext 3043 with the encryption algorithm is obtained.

【0105】そこで、前記ID3041と暗号化鍵30
42および平文3043と暗号文3044を一組にし、
テストケース304として暗号プログラムテストケース
格納装置305に格納蓄積する。
Therefore, the ID 3041 and the encryption key 30
42 and plaintext 3043 and ciphertext 3044 are paired,
The test cases 304 are stored and stored in the cryptographic program test case storage device 305.

【0106】このように、第2の実施例によれば、新し
く開発されたブロック暗号アルゴリズムを実現するプロ
グラムをテストするためのテストケースを効率良く機械
的に生成することができる。
As described above, according to the second embodiment, it is possible to efficiently and mechanically generate a test case for testing a program that realizes a newly developed block cipher algorithm.

【0107】[第3の実施形態]次に、本発明の第3の
実施形態であるブロック暗号プログラム設計仕様生成装
置について、図面に従って具体的に説明する。
[Third Embodiment] Next, a block cipher program design specification generating apparatus according to a third embodiment of the present invention will be specifically described with reference to the drawings.

【0108】図18は、ブロック暗号プログラム設計仕
様生成装置の機能構成図であり、この実施形態のブロッ
ク暗号プログラム設計仕様生成装置400は、前記の暗
号アルゴリズム開発支援装置200で作成したブロック
暗号アルゴリズムのダイアグラム表現の構文を解析する
ダイアグラム構文解析装置401と、その解析結果であ
るダイアグラム構文木を格納するダイアグラム構文木格
納装置403と、この格納装置403に格納されたダイ
アグラム構文木からプログラム設計仕様を生成する設計
仕様生成装置402と、ダイアグラムとプログラム設計
仕様の間の対応関係を定義したダイアグラム設計仕様対
応テーブル405と、生成された設計仕様を格納するた
めの暗号プログラム設計仕様格納装置404とから構成
される。
FIG. 18 is a functional block diagram of the block cipher program design specification generation device. The block cipher program design specification generation device 400 of this embodiment is a block cipher algorithm generated by the cipher algorithm development support device 200. A diagram parsing device 401 that analyzes the syntax of a diagram expression, a diagram syntax tree storage device 403 that stores the diagram syntax tree that is the analysis result, and a program design specification is generated from the diagram syntax tree stored in this storage device 403. A design specification generation device 402, a diagram design specification correspondence table 405 that defines the correspondence between diagrams and program design specifications, and an encryption program design specification storage device 404 for storing the generated design specifications. It

【0109】この第3の実施形態のブロック暗号プログ
ラム設計仕様生成装置の動作の詳細は次のようになる。
Details of the operation of the block cipher program design specification generation device of the third embodiment are as follows.

【0110】まず、前記ブロック暗号アルゴリズム開発
支援装置200の暗号ダイアグラム格納装置204に格
納されている暗号ダイアグラムを、ダイアグラム構文解
析装置401によって構文解析する。
First, the cipher diagram stored in the cipher diagram storage device 204 of the block cipher algorithm development support device 200 is parsed by the diagram parsing device 401.

【0111】その解析結果は、ダイアグラム構文木格納
装置403に格納される。続いて、ダイアグラム設計仕
様対応テーブル405に従って、設計仕様生成装置40
2によって、ダイアグラム構文木からプログラム設計仕
様を生成する。その生成された設計仕様は暗号プログラ
ム設計仕様格納装置404に格納される。
The analysis result is stored in the diagram syntax tree storage device 403. Then, according to the diagram design specification correspondence table 405, the design specification generation device 40
2, the program design specification is generated from the diagram syntax tree. The generated design specifications are stored in the cryptographic program design specification storage device 404.

【0112】プログラム設計仕様の記述記法としてPA
D(Problem Analysis Diagram)を使う場合、ダイアグ
ラム設計仕様対応テーブル405の詳細は例えば図19
および図20のように定義されている。
PA is used as the description notation of the program design specification.
When using D (Problem Analysis Diagram), details of the diagram design specification correspondence table 405 are shown in FIG.
And as defined in FIG.

【0113】図19および図20において、項番(1)
は、ダイアグラム記述中にダイアグラム表現の欄405
2に示される変数があった場合、生成されるプログラム
設計仕様では、設計仕様(PAD)表現の欄4053に
示されるような変数の宣言が生成されることを表してい
る。
In FIG. 19 and FIG. 20, item number (1)
Is a diagram representation field 405 during the diagram description.
2 indicates that the generated program design specification generates a variable declaration as shown in the design specification (PAD) expression column 4053.

【0114】項番(2)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される添字付き変数の並
びがあった場合、生成されるプログラム設計仕様では、
設計仕様(PAD)表現の欄4053に示されるような
添字付き変数の並びの宣言が生成されることを表してい
る。
Item number (2) is the program design specification generated when there is a sequence of subscripted variables shown in the diagram representation column 4052 in the diagram description.
This indicates that the declaration of the array of subscripted variables as shown in the design specification (PAD) expression column 4053 is generated.

【0115】項番(3)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される転字演算があった
場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるような転字演算
の定義が生成されることを表している。この定義内容は
暗号ダイアグラム格納装置204内にある図6(a),
(b)のような転字演算の詳細である。
Item number (3) is shown in the design specification (PAD) expression column 4053 in the generated program design specification when the transliteration operation shown in the diagram expression column 4052 is present in the diagram description. This means that a transliteration definition like this is generated. The contents of this definition are shown in FIG.
Details of the transliteration operation as shown in (b).

【0116】項番(4)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示されるシフト演算があっ
た場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるようなシフト演
算の定義が生成されることを表している。この定義内容
は暗号ダイアグラム格納装置204内にある図6(c)
のようなシフト演算の詳細である。
Item number (4) is as shown in the design specification (PAD) representation column 4053 in the generated program design specification when the shift operation shown in the diagram representation column 4052 is present in the diagram description. It means that a definition of a simple shift operation is generated. The definition contents are stored in the cryptographic diagram storage device 204 as shown in FIG.
The details of the shift operation are as follows.

【0117】項番(5)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される代入演算があった
場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるような代入演算
の定義が生成されることを表している。この定義内容は
暗号ダイアグラム格納装置204内にある図6(c)の
ような代入演算の詳細である。
Item number (5) is as shown in the design specification (PAD) expression column 4053 in the generated program design specification when the substitution operation shown in the diagram expression column 4052 is included in the diagram description. It means that the definition of the assignment operation is generated. The definition contents are the details of the substitution operation in the encryption diagram storage device 204 as shown in FIG.

【0118】項番(6)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される変数の参照を表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うな実行文中の式の部分的な式として、該変数の参照が
生成されることを表している。
Item number (6) is a design specification (PAD) expression field 4053 in the generated program design specification when there is an expression representing a reference to a variable shown in the diagram expression field 4052 in the diagram description. It means that the reference of the variable is generated as a partial expression of the expression in the executable statement as shown in FIG.

【0119】項番(7)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される変数への代入を表
す表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、それまでの計算結果を該変数へ代入する実行文が
生成されることを表している。
Item number (7) is a column of design specification (PAD) expression in the generated program design specification when there is an expression representing substitution to the variable shown in the diagram expression field 4052 in the diagram description. As indicated by reference numeral 4053, an execution statement that substitutes the calculation result up to that point into the variable is generated.

【0120】項番(8)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される演算の適用を表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、実行文中の式の部分的な式として、それまでの計
算結果に該演算を適用する式が生成されることを表して
いる。
Item number (8) is a design specification (PAD) expression column 4053 in the generated program design specification when there is an expression representing application of the operation shown in the diagram expression column 4052 in the diagram description. As shown in, the expression that applies the operation to the calculation result up to that time is generated as a partial expression of the expression in the executable statement.

【0121】項番(9)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示されるデータの分割を表
す表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、それまでの計算結果を複数の変数へ代入する実行
文が生成されることを表している。
Item number (9) is a design specification (PAD) expression column 4053 in the generated program design specification when there is an expression representing division of data shown in the diagram expression column 4052 in the diagram description. As shown in, it indicates that an executable statement that assigns the calculation results up to that point to multiple variables is generated.

【0122】項番(10)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示されるデータの連結を
表す表現があった場合、生成されるプログラム設計仕様
では、設計仕様(PAD)表現の欄4053に示される
ように、実行文中の式の部分的な式として、それまでの
計算結果を表す複数の式を連結する表現が生成されるこ
とを表している。
Item number (10) is a design specification (PAD) expression field 4053 in the generated program design specification when there is an expression representing the data connection shown in the diagram expression field 4052 in the diagram description. As shown in, the expression that connects a plurality of expressions representing the calculation results up to that time is generated as a partial expression of the expression in the executable statement.

【0123】項番(11)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示されるデータの複製を
表す表現があった場合、生成されるプログラム設計仕様
では、設計仕様(PAD)表現の欄4053に示される
ように、実行文中の式の部分的な式として、それまでの
計算結果を表す式が複数個生成されることを表してい
る。
The item number (11) is a design specification (PAD) expression column 4053 in the generated program design specification when there is an expression representing the duplication of the data shown in the diagram expression column 4052 in the diagram description. As shown in (3), as a partial expression of the expression in the executable statement, a plurality of expressions representing the calculation results up to that point are generated.

【0124】項番(12)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される繰り返しを表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、実行文中の式の部分的な式として、PADの繰り
返し構造の実行文が生成されることを表している。
Item number (12) is indicated in the design specification (PAD) expression column 4053 in the generated program design specification when there is an expression representing the repetition shown in the diagram expression column 4052 in the diagram description. As described above, the execution statement having the PAD repeating structure is generated as a partial expression of the expression in the execution statement.

【0125】項番(13)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される入力変数と出力
変数の表現があった場合、生成されるプログラム設計仕
様では、設計仕様(PAD)表現の欄4053に示され
るように、該入力変数を引数とし、該出力変数の値を返
値とするPADの演算定義の表現が生成されることを表
している。
Item number (13) is a column for design specification (PAD) expression in the generated program design specification when the input variable and output variable shown in the diagram expression field 4052 are included in the diagram description. As indicated by reference numeral 4053, the expression of the operation definition of PAD in which the input variable is an argument and the value of the output variable is a return value is generated.

【0126】項番(14)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される演算定義の表現
があった場合、生成されるプログラム設計仕様では、設
計仕様(PAD)表現の欄4053に示されるように、
PADの演算定義の表現が生成されることを表してい
る。
Item number (14) is shown in the design specification (PAD) expression column 4053 in the generated program design specification when there is an expression of the operation definition shown in the diagram expression column 4052 in the diagram description. So that
It represents that the expression of the operation definition of PAD is generated.

【0127】この図19および図20で例示した対応テ
ーブル405は再帰的に適用される。例えば図3、図
4、図5のDESアルゴリズムの設計仕様を生成したな
らば、この対応テーブル405に従って、図21および
図22に示すようなプログラム設計仕様が得られる。
The correspondence table 405 illustrated in FIGS. 19 and 20 is recursively applied. For example, if the design specifications of the DES algorithm of FIGS. 3, 4 and 5 are generated, the program design specifications as shown in FIGS. 21 and 22 are obtained according to the correspondence table 405.

【0128】ここで、図21のPAD表現によるプログ
ラム仕様は、図3と図5のダイアグラム記述を合わせた
ものに対応している。例えば、図21の演算「des_
main」の定義411、出力変数CBの宣言412、
出力変数CBを演算結果として返す表現426は、図3
の「入力変数B」101、図5の「入力変数K」151
と図3の「出力変数CB」121に図20の項番(1
5)の定義を適用した結果である。
Here, the program specification by the PAD expression of FIG. 21 corresponds to the combination of the diagram descriptions of FIG. 3 and FIG. For example, the calculation “des_
definition 411 of “main”, declaration 412 of output variable CB,
The expression 426 that returns the output variable CB as the operation result is shown in FIG.
“Input variable B” 101 of FIG. 5, “Input variable K” 151 of FIG.
And “output variable CB” 121 in FIG. 3 contains the item number (1
This is the result of applying the definition of 5).

【0129】同様に、図21の変数及び種々の演算の宣
言413は、図3の「転字IP」103、変数の並び
「L_i(i=0..16)」105と106と11
5、変数の並び「R_i(i=0..16)」107と
108と117、変数の並び「K_i(i=1..1
6)」109、図5の「転字KP」153、変数の並び
「KL_i(i=0..16)」155と162、変数
の並び「KL_i(i=0..16)」157と16
3、シフト演算の並び「KS_i(i=1..16)」
160、「転字PC」166に、図19の項番(1),
(2),(3),(4)を適用した結果である。
Similarly, the variables and various operation declarations 413 in FIG. 21 are the “transliteration IP” 103 and the variable sequence “L_i (i = 0..16)” 105, 106 and 11 in FIG.
5. Variable sequence “R_i (i = 0..16)” 107, 108 and 117, Variable sequence “K_i (i = 1.
6) ”109,“ transliteration KP ”153 in FIG. 5, variable sequences“ KL_i (i = 0..16) ”155 and 162, and variable sequences“ KL_i (i = 0..16) ”157 and 16
3. Sequence of shift operations “KS_i (i = 1..16)”
160, “Transcribing PC” 166, and the item number (1) in FIG.
It is the result of applying (2), (3), and (4).

【0130】図21の414〜419は、図5の鍵生成
部から生成されたステップである。図21の鍵生成の第
1ステップ414は、図5のデータの「参照」152に
図19の項番(6)を適用し、データの「分割」154
に図19の項番(9)を適用して生成されたステップで
ある。
Reference numerals 414 to 419 in FIG. 21 are steps generated by the key generation unit in FIG. The first step 414 of the key generation of FIG. 21 is to apply the item number (6) of FIG. 19 to the “reference” 152 of the data of FIG.
Is a step generated by applying the item number (9) of FIG.

【0131】図21の鍵生成の第2ステップ(繰り返し
(1))415は、図5の「繰り返し処理(1)」15
9に図20の項番(12)を適用して生成されたステッ
プである。また、繰り返し(1)の第1サブステップ4
16は、変数「KL_(i−1)」の参照に図19の項
番(6)を、シフト演算「KS_i」160の適用に図
19の項番(8)を、変数「KL_i」への代入に図1
9の項番(7)を適用して生成されたステップである。
繰り返し(1)の第2サブステップ417も同様であ
る。鍵生成の第3ステップ(繰り返し(2))418
と、そのサブステップ419についても同様である。
The second step (iteration (1)) 415 of the key generation of FIG. 21 is the “iteration process (1)” 15 of FIG.
This is a step generated by applying the item number (12) in FIG. Also, the first sub-step 4 of repetition (1)
16 refers to the item number (6) of FIG. 19 for the reference of the variable “KL_ (i−1)” and the item number (8) of FIG. 19 for the application of the shift operation “KS_i” 160 to the variable “KL_i”. Figure 1 for substitution
This is a step generated by applying the item number (7) of item 9.
The same applies to the second sub-step 417 of repetition (1). Third step of key generation (iteration (2)) 418
The same applies to sub-step 419.

【0132】図21の420〜425は、図3のDES
の全体の記述から生成されたステップであり、その生成
過程は前記の鍵生成部の場合と同様である。
Reference numerals 420 to 425 in FIG. 21 denote DES in FIG.
Is a step generated from the entire description of the above, and the generation process is the same as that of the key generation unit.

【0133】図22の演算「f」の定義427と演算
「f」の計算値を返すステップ433は、図4の演算
「f」の定義139に図20の項番(14)を適用して
生成されたものである。ただし、演算「f」の計算値を
返すステップ433では、図4のデータの連結147に
図19の項番(10)を、「転字演算P」148の適用
に図19の項番(8)を適用して得られた表現が演算
「f」の計算値となっている。
The step 433 of returning the definition 427 of the operation "f" and the calculated value of the operation "f" in FIG. 22 applies the item number (14) of FIG. 20 to the definition 139 of the operation "f" in FIG. It was generated. However, in step 433 which returns the calculated value of the operation “f”, the item number (10) of FIG. 19 is added to the data concatenation 147 of FIG. 4 and the item number (8) of FIG. The expression obtained by applying () is the calculated value of the operation “f”.

【0134】図22の他のステップ428〜432は、
前記の例と同様にして生成される。
The other steps 428 to 432 in FIG.
It is generated in the same manner as the above example.

【0135】このように、ユーザは、本実施形態の暗号
プログラム設計仕様生成装置400を使用し、ブロック
暗号アルゴリズム開発支援装置200を利用して開発さ
れたブロック暗号アルゴリズムを実現するプログラムの
設計仕様を自動的に生成することができる。
As described above, the user uses the cipher program design specification generation device 400 of the present embodiment and sets the design specifications of the program that realizes the block cipher algorithm developed by using the block cipher algorithm development support device 200. Can be generated automatically.

【0136】なお、本実施形態では、プログラム設計仕
様表現としてPADを用いたが、フローチャート等の他
のプログラム設計仕様表現を使用した場合でも、同様に
して容易に実現可能である。
Although PAD is used as the program design specification expression in this embodiment, it can be easily realized in the same manner even when other program design specification expression such as a flowchart is used.

【0137】[第4の実施形態]次に、本発明の第4の
実施形態であるブロック暗号プログラム生成装置につい
て、図面に従って具体的に説明する。
[Fourth Embodiment] Next, a block cipher program generation apparatus according to a fourth embodiment of the present invention will be specifically described with reference to the drawings.

【0138】図23は、暗号プログラム生成装置500
の機能構成図であり、この実施形態の暗号プログラム生
成装置500は、暗号プログラム設計仕様生成装置40
0の暗号プログラム設計仕様格納装置404に格納され
たブロック暗号プログラム設計仕様の構文を解析する設
計仕様構文解析装置501と、その解析結果である設計
仕様構文木を格納する設計仕様構文木格納装置503
と、この格納装置503に格納された設計仕様構文木か
らプログラムを生成するプログラム生成装置502と、
設計仕様とプログラムの間の対応会計を定義した設計仕
様プログラム対応テーブル505と、生成されたプログ
ラムを格納するための暗号プログラム格納装置504か
ら構成される。
FIG. 23 shows a cryptographic program generation device 500.
FIG. 3 is a functional configuration diagram of a cryptographic program generation device 500 according to this embodiment.
No. 0 cryptographic program design specification storage device 404, a design specification syntax analysis device 501 that analyzes the syntax of the block cipher program design specification, and a design specification syntax tree storage device 503 that stores the design specification syntax tree that is the analysis result.
And a program generation device 502 for generating a program from the design specification syntax tree stored in the storage device 503,
It is composed of a design specification program correspondence table 505 which defines correspondence accounting between design specifications and programs, and an encryption program storage device 504 for storing the generated programs.

【0139】この第4の実施形態のブロック暗号プログ
ラム生成装置の動作の詳細は次のようになる。
Details of the operation of the block cipher program generation apparatus according to the fourth embodiment are as follows.

【0140】まず、前記暗号プログラム設計仕様生成装
置400の暗号プログラム設計仕様格納装置404に格
納されている暗号プログラム設計仕様を、設計仕様構文
解析装置501によって、構文解析する。
First, the cipher program design specifications stored in the cipher program design specification storage device 404 of the cipher program design specification generation device 400 are syntactically analyzed by the design specification syntactic analysis device 501.

【0141】その解析結果は、設計仕様構文木格納装置
503に格納される。続いて、設計仕様プログラム対応
テーブル505に従って、プログラム生成装置502に
よって、前記設計仕様構文木からプログラムを生成す
る。生成されたプログラムは暗号プログラム格納装置5
04に格納される。
The analysis result is stored in the design specification syntax tree storage device 503. Then, according to the design specification program correspondence table 505, the program generation device 502 generates a program from the design specification syntax tree. The generated program is the encryption program storage device 5
It is stored in 04.

【0142】生成された暗号プログラムをコンパイラ/
リンカ506によってコンパイルし、ライブラリ507
とリンクすることにより、実行可能形式暗号プログラム
508が得られる。ライブラリ507には、生成された
暗号プログラムで使用されるビットデータの型や手続き
が含まれる。
The generated cryptographic program is compiled /
Compiled by linker 506, library 507
Executable cryptographic program 508 is obtained by linking with. The library 507 includes types and procedures of bit data used in the generated cryptographic program.

【0143】プログラム設計仕様の記述記法としてPA
D(Problem Analysis Diagram)を使い、プログラミン
グ言語としてC言語を使う場合、設計仕様プログラム対
応テーブル505の詳細は例えば図24および図25の
ように定義されている。
PA is used as the description notation of the program design specification.
When D (Problem Analysis Diagram) is used and C language is used as a programming language, details of the design specification program correspondence table 505 are defined as shown in FIGS. 24 and 25, for example.

【0144】項番(1)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数宣言
があった場合、生成されるプログラムでは、C言語表現
の欄5053に示すように、対応するビット数の型の変
数宣言が生成されることを表している。
Item number (1) is as shown in the C language expression column 5053 in the generated program when there is a variable declaration shown in the design specification (PAD) expression column 5052 in the program design specification. , A variable declaration of the corresponding bit type is generated.

【0145】項番(2)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数並び
の宣言があった場合、生成されるプログラムでは、C言
語表現の欄5053に示すように、対応するビット数の
型の配列変数の宣言が生成されることを表している。
Item number (2) is shown in the C language expression column 5053 in the generated program when there is a declaration of the variable arrangement shown in the design specification (PAD) expression column 5052 in the program design specification. Thus, the declaration of an array variable of the corresponding bit type is generated.

【0146】項番(3)は、プログラム設計仕様中に転
字定義があった場合、生成されるプログラムでは、C言
語表現の欄5053に示すように、int型配列変数の
定義が生成されることを表している。
In the item number (3), when there is a transliteration definition in the program design specification, in the generated program, the definition of the int type array variable is generated as shown in the column 5053 of the C language expression. It means that.

【0147】項番(4)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示されるシフト定
義があった場合、生成されるプログラムでは、int型
変数の定義が生成されることを表している。
Item number (4) is that if a shift definition shown in the design specification (PAD) expression column 5052 is included in the program design specification, an int type variable definition is generated in the generated program. Is represented.

【0148】項番(5)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される代入定義
があった場合、生成されるプログラムでは、C言語表現
の欄5053に示すように、int型2次元配列変数の
定義が生成されることを表している。ただし、例えば入
力が2ビットと4ビットであれば、該配列の大きさは4
(=2の2乗)×16(=2の4乗)となる。
The item number (5) is as shown in the column 5053 of the C language expression in the generated program when the assignment definition shown in the column 5052 of the design specification (PAD) expression is included in the program design specification. , Int type two-dimensional array variable definitions are generated. However, for example, if the input is 2 bits and 4 bits, the size of the array is 4
(= 2 squared) × 16 (= 2 squared).

【0149】項番(6)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数の参
照を表す表現があった場合、生成されるプログラムで
は、文中の式の部分的な式として、該変数の参照が生成
されることを表している。
Item number (6) is a partial expression of the expression in the sentence in the generated program when the program design specification has an expression indicating the reference of the variable shown in the column 5052 of the design specification (PAD) expression. , It means that a reference to the variable is generated.

【0150】項番(7)は、項番(6)と同様であるが
添字付変数に対応するのは、配列要素の参照であること
を表している。
The item number (7) is similar to the item number (6), but it indicates that the reference to the array element corresponds to the variable with the subscript.

【0151】項番(8)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数への
代入を表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、代入文が生
成されることを表している。
Item number (8) is a column of C language expression in the generated program when there is an expression representing substitution to a variable shown in the field 5052 of design specification (PAD) expression in the program design specification. As indicated by 5053, it indicates that an assignment statement is generated.

【0152】項番(9)は、項番(8)と同様である
が、添字付変数に対応するのは、配列要素への代入であ
ることを表している。
Item number (9) is the same as item number (8), but it is indicated that the subscript variable corresponds to the assignment to the array element.

【0153】項番(10)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される演算の
適用を表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、実行文中の
式の部分的な式として、該演算を適用する式が生成され
ることを表している。
Item number (10) is a column 5053 of C language expression in the generated program when there is an expression in the program design specification showing application of the operation shown in the column 5052 of design specification (PAD) expression. As shown in, the expression that applies the operation is generated as a partial expression of the expression in the executable statement.

【0154】項番(11)〜(15)は、項番(10)
と同様であるが、排他的論理和、転字、逆転字、シフ
ト、代入の各演算では、該演算に対応するC関数を用い
た特殊な式が対応することを表している。
Item numbers (11) to (15) are item numbers (10).
However, each operation of exclusive OR, transliteration, reverse character, shift, and substitution represents that a special expression using a C function corresponding to the operation corresponds.

【0155】項番(16)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示されるデータ
の分割を表す表現があった場合、生成されるプログラム
では、C言語表現の欄5053に示すように、「div
ide」というC関数を用いたデータ分割を表す実行文
が生成されることを表している。
Item number (16) is a column 5053 of C language expression in the generated program when there is an expression representing division of data shown in the field 5052 of design specification (PAD) expression in the program design specification. , "Div
This means that an executable statement representing data division using the C function "ide" is generated.

【0156】項番(17)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示されるデータ
の連結を表す表現があった場合、生成されるプログラム
では、C言語表現の欄5053に示すように、実行文中
の式の部分的な式として、「concat」というC関
数を用いたデータ連結を表す式が生成されることを表し
ている。
Item No. (17) is a C language expression field 5053 in the generated program when the program design specification includes an expression representing the data connection shown in the design specification (PAD) expression field 5052. As shown in, the expression "represents data concatenation" using the C function "concat" is generated as a partial expression of the expression in the executable statement.

【0157】項番(18)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される繰り返
しを表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、「for
文」が生成されることを表している。
Item number (18) is indicated in the C language expression column 5053 in the generated program when the program design specification includes the expression indicating the repetition shown in the design specification (PAD) expression column 5052. So, "for
It means that a "sentence" is generated.

【0158】項番(19)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される値を返
す(返値)表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、「retu
rn文」が生成されることを表している。
Item number (19) is a C language expression in the generated program when the program design specification has a (return value) expression that returns the value shown in the design specification (PAD) expression column 5052. As shown in column 5053, "retu
"rn sentence" is generated.

【0159】項番(20)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される演算定
義の表現があった場合、生成されるプログラムでは、C
言語表現の欄5053に示すように、関数の宣言と定義
が生成されることを表している。この図24および図2
5に示す内容の対応テーブル405は再帰的に適用され
る。
Item number (20) is C in the generated program when the operation definition expression shown in the design specification (PAD) expression column 5052 is included in the program design specification.
As shown in the language expression column 5053, the function declaration and definition are generated. This FIG. 24 and FIG.
The correspondence table 405 having the contents shown in FIG. 5 is applied recursively.

【0160】プログラミング言語としてC言語を使う場
合、前記ライブラリ507のヘッダーファイルは例えば
図27に示すようになる。この中では、図24および図
25に示した内容の対応テーブル405のC言語表現で
使用されているデータ型や関数のプロトタイプが宣言さ
れている。
When the C language is used as the programming language, the header file of the library 507 is as shown in FIG. 27, for example. In this, the prototypes of the data types and functions used in the C language representation of the correspondence table 405 having the contents shown in FIGS. 24 and 25 are declared.

【0161】図24および図25に示した内容の対応テ
ーブル405に従って、例えば、図21のDESアルゴ
リズムのプログラムを生成すると、図26(a),
(b)に示すようなプログラム4041,4042が得
られる。
According to the correspondence table 405 having the contents shown in FIGS. 24 and 25, for example, when the program of the DES algorithm shown in FIG. 21 is generated, FIG.
Programs 4041 and 4042 as shown in (b) are obtained.

【0162】図26(a)は、図21で示した設計仕様
から生成されたプログラムであり、同図(b)は図22
で示した設計仕様から生成されたプログラムである。
FIG. 26A shows a program generated from the design specifications shown in FIG. 21, and FIG. 26B shows the program shown in FIG.
It is a program generated from the design specifications shown in.

【0163】このように、本実施形態においては、前述
したブロック暗号アルゴリズム開発支援装置200とブ
ロック暗号プログラム設計仕様生成装置400を利用し
て開発されたブロック暗号アルゴリズムを実現するプロ
グラムを自動的に生成することができる。この生成され
たブロック暗号プログラムは、該ブロック暗号を使用す
る応用プログラムの開発時にスタブとして使用すること
ができる。
As described above, in this embodiment, the program for realizing the block cipher algorithm developed by using the block cipher algorithm development support apparatus 200 and the block cipher program design specification generation apparatus 400 described above is automatically generated. can do. The generated block cipher program can be used as a stub when developing an application program that uses the block cipher.

【0164】なお、本実施形態では、プログラム設計仕
様表現としてPADを用い、プログラミング言語として
C言語を用いたが、フローチャート等の他のプログラム
設計仕様表現と、C++やPascal等の他のプログ
ラミング言語を使用した場合でも、同様にして実現可能
である。
Although PAD is used as the program design specification expression and C language is used as the programming language in this embodiment, other program design specification expressions such as a flowchart and other programming languages such as C ++ and Pascal are used. Even when used, it can be similarly realized.

【0165】[第5の実施形態]次に、本発明の第5の
実施形態であるブロック暗号プログラムテスト支援装置
について、図面に従って具体的に説明する。
[Fifth Embodiment] Next, a block cipher program test support device according to a fifth embodiment of the present invention will be specifically described with reference to the drawings.

【0166】図28は、ブロック暗号プログラムテスト
支援装置の機能構成図であり、この実施形態のブロック
暗号プログラムテスト支援装置600は、ブロック暗号
プログラムのテストスケジュールを格納するテストスケ
ジュール格納装置601と、格納されたテストスケジュ
ールに従ってテストケース304を選択するテストケー
ス選択装置602と、ブロック暗号プログラムを格納す
る暗号プログラム格納装置605と、格納されたブロッ
ク暗号プログラムに対し前記選択されたテストケース3
04の構成要素である暗号鍵3042と平文3043を
与えて実行させるプログラム実行装置603と、その実
行結果である暗号文と前記選択されたテストケース30
4の構成要素である暗号文3044とを比較するための
比較装置604と、前記選択されたテストケース304
の構成要素であるID3041と比較装置604の比較
結果とからなるテスト結果607を格納するための暗号
プログラムテスト結果格納装置606とから構成され
る。
FIG. 28 is a functional block diagram of the block cipher program test support apparatus. The block cipher program test support apparatus 600 of this embodiment includes a test schedule storage device 601 for storing the test schedule of the block cipher program, and a storage. The test case selection device 602 for selecting the test case 304 according to the stored test schedule, the cipher program storage device 605 for storing the block cipher program, and the test case 3 selected for the stored block cipher program.
04, a program execution device 603 that gives and executes the encryption key 3042 and the plaintext 3043, the ciphertext as the execution result, and the selected test case 30.
Comparison device 604 for comparing the ciphertext 3044 which is a component of No. 4, and the selected test case 304.
And an encryption program test result storage device 606 for storing a test result 607 including an ID 3041 which is a component of the above and a comparison result of the comparison device 604.

【0167】この第5の実施形態のブロック暗号プログ
ラムテスト支援装置600の動作の詳細は次のようにな
る。
Details of the operation of the block cipher program test support apparatus 600 according to the fifth embodiment are as follows.

【0168】まず、ユーザはあらかじめ、前述したブロ
ック暗号プログラムテストケース生成装置300によっ
て、暗号プログラムのテストケース304を生成してお
く。
First, the user previously generates the test case 304 of the cipher program by the block cipher program test case generation device 300 described above.

【0169】また、テスト対象となる暗号プログラムを
暗号プログラム格納装置605に格納しておき、図29
に示すようなテストスケジュール6010をテストスケ
ジュール格納装置601に格納しておく。すると、本実
施形態のブロック暗号プログラムテスト支援装置600
は、図30に示すフローチャートに従って、暗号プログ
ラムのテストを順次実施し、その結果を蓄積していく。
Further, the cryptographic program to be tested is stored in the cryptographic program storage device 605, as shown in FIG.
The test schedule 6010 as shown in is stored in the test schedule storage device 601. Then, the block cipher program test support device 600 according to the present embodiment.
30 sequentially executes the tests of the cryptographic program according to the flowchart shown in FIG. 30 and accumulates the results.

【0170】まず、開始直後にステップ608でテスト
スケジュール6010で示される全ての項番のテストが
終了したかを調べる。そうであれば、処理を終了する。
さもなければステップ609に移る。
First, immediately after the start, it is checked in step 608 whether the tests of all item numbers shown in the test schedule 6010 have been completed. If so, the process ends.
Otherwise, go to step 609.

【0171】ステップ609では、テストケース選択装
置602によって、テストスケジュール格納装置601
に格納されている図29に示すようなテストスケジュー
ル6010に従って、暗号プログラムテストケース格納
装置305から、次のテストケース304を選択する。
At step 609, the test case selection device 602 causes the test schedule storage device 601.
29, the next test case 304 is selected from the cryptographic program test case storage device 305 according to the test schedule 6010 as shown in FIG.

【0172】ステップ610では、プログラム実行装置
603によって、前記選択されたテストケース304の
構成要素である暗号鍵3042と平文3043とを、暗
号プログラム格納装置605に格納されているテスト対
象の暗号プログラムに与えて実行させ、暗号文を生成す
る。
In step 610, the program execution unit 603 sets the encryption key 3042 and plaintext 3043, which are the constituents of the selected test case 304, to the encryption program to be tested stored in the encryption program storage unit 605. It is given and executed to generate a ciphertext.

【0173】ステップ611では、比較装置604によ
って、テスト対象の暗号プログラムの実行結果である暗
号文と前記選択されたテストケース304の構成要素で
ある暗号文3044とを比較する。
In step 611, the comparison device 604 compares the ciphertext which is the execution result of the cryptographic program to be tested with the ciphertext 3044 which is a constituent element of the selected test case 304.

【0174】ステップ612では、前記選択されたテス
トケース304の構成要素であるID3041と比較装
置604の比較結果とからなるテスト結果607を暗号
プログラムテスト結果格納装置606に格納し、ステッ
プ608に戻る。
In step 612, the test result 607 including the ID 3041 which is a component of the selected test case 304 and the comparison result of the comparison device 604 is stored in the cryptographic program test result storage device 606, and the process returns to step 608.

【0175】このように、第5の実施形態によれば、前
述のテストケース生成装置300によって生成された暗
号プログラムテストケース304をテストスケジュール
601に従ってテスト対象の暗号プログラムに与え、そ
のテスト対象の暗号プログラムの信頼性をテストするこ
とができる。
As described above, according to the fifth embodiment, the cryptographic program test case 304 generated by the test case generating apparatus 300 is given to the cryptographic program to be tested according to the test schedule 601, and the cryptographic code to be tested is given. The reliability of the program can be tested.

【0176】なお、上記の各実施形態で説明した開発支
援装置における各機能ブロックは、コンピュータが実行
可能なプログラムによって実現することができ、そのプ
ログラムはCDROM等の記憶媒体に格納されてユーザ
に提供される。
Each functional block in the development support device described in each of the above embodiments can be realized by a computer-executable program, and the program is stored in a storage medium such as a CDROM and provided to the user. To be done.

【0177】[0177]

【発明の効果】以上説明したように本発明によれば、予
め定義したブロック暗号アルゴリズム記法に基づいてブ
ロック暗号アルゴリズムの記述と編集を効率良く支援
し、新しい解読技術に耐えられる新しい暗号アルゴリズ
ムの開発を効率良く支援することができる。
As described above, according to the present invention, a new cryptographic algorithm that efficiently supports the description and editing of the block cryptographic algorithm based on a pre-defined block cryptographic algorithm notation and can endure a new decryption technique is developed. Can be efficiently supported.

【0178】また、ブロック暗号アルゴリズム記法によ
って記述されたブロック暗号アルゴリズムを直接解釈実
行することによって、該ブロック暗号アルゴリズムを実
現するプログラムをテストする際に使用できるテストケ
ースを自動的に生成し、暗号プログラムのテストを効率
良く支援することができる。
Further, by directly interpreting and executing the block cipher algorithm described by the block cipher algorithm notation, a test case that can be used when testing a program realizing the block cipher algorithm is automatically generated, and the cipher program Can efficiently support the test.

【0179】さらに、ブロック暗号アルゴリズム記法に
よって記述されたブロック暗号アルゴリズムから、プロ
グラム開発の目的に適したプログラムの設計仕様を自動
生成し、暗号プログラムの生成を効率良く支援すること
ができる。
Further, it is possible to automatically generate design specifications of a program suitable for the purpose of program development from the block cipher algorithm described by the block cipher algorithm notation, and efficiently support the generation of the cipher program.

【0180】また、ブロック暗号アルゴリズムから自動
生成された前記プログラム設計仕様から、該ブロック暗
号アルゴリズムを実現するプログラムを自動生成し、暗
号プログラムの生成を効率良く支援することができる。
Further, it is possible to automatically generate a program that realizes the block cipher algorithm from the program design specifications automatically generated from the block cipher algorithm, and efficiently support the generation of the cipher program.

【0181】さらに、暗号プログラム開発のテスト工程
において、ユーザによって指定されたスケジュールに従
って、自動生成されたテストケースを用いて、暗号プロ
グラムを効率良くテストすることができるなど、新しい
解読技術に耐えられる高信頼性の暗号プログラムを開発
するうえでの効率を向上させるのに極めて有効である。
Further, in the test process of developing the cryptographic program, the cryptographic program can be efficiently tested by using the automatically generated test cases in accordance with the schedule specified by the user. It is extremely effective in improving efficiency in developing a reliable encryption program.

【図面の簡単な説明】[Brief description of drawings]

【図1】本発明で用いる暗号アルゴリズム仕様記述記法
で使用するダイアグラム表現を示す図である。
FIG. 1 is a diagram showing a diagram representation used in a cryptographic algorithm specification description notation used in the present invention.

【図2】図1と共に暗号アルゴリズム仕様記述記法で使
用するダイアグラム表現を示す図である。
FIG. 2 is a diagram showing a diagram representation used in the cryptographic algorithm specification description notation with FIG. 1.

【図3】ブロック暗号アルゴリズムDESの全体の機能
を記述した例を示すダイアグラム表現図である。
FIG. 3 is a diagrammatic representation showing an example in which the overall function of a block cipher algorithm DES is described.

【図4】図3における演算定義の機能を記述した例を示
すダイアグラム表現図である。
FIG. 4 is a diagrammatic representation showing an example in which the function of operation definition in FIG. 3 is described.

【図5】図3におけるブロック暗号アルゴリズムDES
の鍵生成部の機能を記述した例を示すダイアグラム表現
図である。
5 is a block cipher algorithm DES in FIG.
5 is a diagrammatic representation showing an example in which the function of the key generation unit of FIG.

【図6】図3,図4,図5で使用されている転字,シフ
ト,代入の演算に用いるテーブルの詳細を示す図であ
る。
FIG. 6 is a diagram showing details of a table used for a transliteration, a shift, and a substitution operation used in FIGS. 3, 4, and 5;

【図7】本発明の第1の実施形態であるブロック暗号ア
ルゴリズム開発支援装置の機能構成図である。
FIG. 7 is a functional configuration diagram of the block cipher algorithm development support device according to the first embodiment of the present invention.

【図8】図7における暗号ダイアグラム解釈実行装置の
機能構成図である。
8 is a functional configuration diagram of the cipher diagram interpretation / execution device in FIG. 7. FIG.

【図9】図7における暗号ダイアグラム実行環境検査装
置の機能構成図である。
9 is a functional block diagram of the cryptographic diagram execution environment inspection device in FIG. 7. FIG.

【図10】暗号ダイアグラム解釈実行装置2の動作を示
すフローチャートである。
FIG. 10 is a flowchart showing an operation of the cipher diagram interpretation execution device 2.

【図11】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
FIG. 11 is a diagram showing an example of contents of a cryptographic diagram execution environment storage device.

【図12】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
FIG. 12 is a diagram showing an example of the contents of a cryptographic diagram execution environment storage device.

【図13】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
FIG. 13 is a diagram showing an example of contents of a cryptographic diagram execution environment storage device.

【図14】暗号ダイアグラム解釈実行装置の動作例を示
す説明図である。
FIG. 14 is an explanatory diagram showing an operation example of a cipher diagram interpretation execution device.

【図15】図14の続きを示すフローチャートである。FIG. 15 is a flowchart showing a sequel to FIG. 14;

【図16】図15の続きを示すフローチャートである。16 is a flowchart showing a continuation of FIG.

【図17】本発明の第2の実施形態であるブロック暗号
プログラムテストケース生成装置の機能構成図である。
FIG. 17 is a functional configuration diagram of a block cipher program test case generation device according to a second embodiment of the present invention.

【図18】本発明の第3の実施形態であるブロック暗号
プログラム設計仕様生成装置の機能構成図である。
FIG. 18 is a functional configuration diagram of a block cipher program design specification generation device according to a third embodiment of the present invention.

【図19】ダイアグラム設計仕様対応テーブル405の
内容の定義例を示す説明図である。
FIG. 19 is an explanatory diagram showing a definition example of the contents of the diagram design specification correspondence table 405.

【図20】図19の続きを示す説明図である。FIG. 20 is an explanatory diagram showing a sequel to FIG. 19;

【図21】図3,図4,図5のDESアルゴリズムに対
応するプログラム設計仕様の例を示す説明図である。
FIG. 21 is an explanatory diagram showing an example of program design specifications corresponding to the DES algorithm of FIGS. 3, 4 and 5;

【図22】図21の続きを示す説明図である。FIG. 22 is an explanatory diagram showing a sequel to FIG. 21;

【図23】本発明の第4の実施形態であるブロック暗号
プログラム生成装置の機能構成図である。
FIG. 23 is a functional configuration diagram of a block cipher program generation device according to a fourth embodiment of the present invention.

【図24】設計仕様プログラム対応テーブル505の内
容の定義例を示す説明図である。
FIG. 24 is an explanatory diagram showing a definition example of the contents of the design specification program correspondence table 505.

【図25】図24の続きを示す説明図である。FIG. 25 is an explanatory diagram showing a sequel to FIG. 24;

【図26】図21,図2ののプログラム設計仕様に対応
して生成されたプログラムの例を示すプログラムリスト
図である。
FIG. 26 is a program list diagram showing an example of a program generated corresponding to the program design specifications of FIGS. 21 and 2.

【図27】ビット演算用のC言語ライブラリのヘッダフ
ァイルの例を示す図である。
FIG. 27 is a diagram showing an example of a header file of a C language library for bit operation.

【図28】本発明の第5の実施形態であるブロック暗号
プログラムテスト支援装置の機能構成図である。
FIG. 28 is a functional configuration diagram of a block cipher program test support device according to a fifth embodiment of the present invention.

【図29】テストスケジュールの一例を示す図である。FIG. 29 is a diagram showing an example of a test schedule.

【図30】ブロック暗号プログラムテスト支援装置の動
作を示すフローチャートである。
FIG. 30 is a flowchart showing the operation of the block cipher program test support device.

【符号の説明】[Explanation of symbols]

200…暗号アルゴリズム開発支援装置、201…暗号
ダイアグラム編集装置、202…暗号ダイアグラム解釈
実行装置、203…暗号ダイアグラム実行環境検査装
置、204…暗号ダイアグラム格納装置、205…暗号
ダイアグラム実行環境格納装置、206…ダイアグラム
走査装置、207…計算可能性検査装置、208…初期
値設定装置、209…値計算装置、210…検査対象指
定装置、211…検査結果表示装置、300…暗号プロ
グラムテストケース生成装置、301…ID計数装置、
302…鍵生成装置、303…平文生成装置、304…
ブロック暗号プログラムのテストケース、305…暗号
プログラムテストケース格納装置、400…暗号プログ
ラム設計仕様生成装置、401…ダイアグラム構文解析
装置、402…設計仕様生成装置、403…ダイアグラ
ム構文木格納装置、404…暗号プログラム設計仕様書
格納装置、405…ダイアグラム設計仕様対応テーブ
ル、500…暗号プログラム生成装置、501…設計仕
様構文解析装置、502…プログラム生成装置、503
…設計仕様構文木格納装置、504…暗号プログラム格
納装置、505…設計仕様プログラム対応テーブル、5
06…コンパイラ/リンカ、507…ライブラリ、50
8…実行可能形式暗号プログラム、600…暗号プログ
ラムテスト支援装置、601…テストスケジュール格納
装置、602…テストケース選択装置、603…プログ
ラム実行装置、604…比較装置、605…暗号プログ
ラム格納装置、606…暗号プログラムテスト結果格納
装置、607…テスト結果。
Reference numeral 200 ... Cryptographic algorithm development support device, 201 ... Cryptographic diagram editing device, 202 ... Cryptographic diagram interpretation execution device, 203 ... Cryptographic diagram execution environment inspection device, 204 ... Cryptographic diagram storage device, 205 ... Cryptographic diagram execution environment storage device, 206 ... Diagram scanning device, 207 ... Computability checking device, 208 ... Initial value setting device, 209 ... Value calculation device, 210 ... Inspection target designation device, 211 ... Inspection result display device, 300 ... Cryptographic program test case generation device, 301 ... ID counting device,
302 ... Key generation device, 303 ... Plaintext generation device, 304 ...
Block cipher program test case, 305 ... Cipher program test case storage device, 400 ... Cipher program design specification generation device, 401 ... Diagram syntax analysis device, 402 ... Design specification generation device, 403 ... Diagram syntax tree storage device, 404 ... Cipher Program design specification storage device, 405 ... Diagram design specification correspondence table, 500 ... Cryptographic program generation device, 501 ... Design specification syntax analysis device, 502 ... Program generation device, 503
... design specification syntax tree storage device, 504 ... encryption program storage device, 505 ... design specification program correspondence table, 5
06 ... Compiler / Linker, 507 ... Library, 50
8 ... Executable format cryptographic program, 600 ... Cryptographic program test support device, 601 ... Test schedule storage device, 602 ... Test case selection device, 603 ... Program execution device, 604 ... Comparison device, 605 ... Cryptographic program storage device, 606 ... Cryptographic program test result storage device, 607 ... Test result.

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.7 識別記号 FI H04L 9/10 H04L 9/00 611Z 621Z (72)発明者 堤 俊之 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウェアエンジニアリング株 式会社内 (56)参考文献 特開 平5−108322(JP,A) 特開 平6−342258(JP,A) 特開 平8−190344(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 9/44 G06F 9/06 G09C 1/00 ─────────────────────────────────────────────────── ─── Continuation of front page (51) Int.Cl. 7 Identification code FI H04L 9/10 H04L 9/00 611Z 621Z (72) Inventor Toshiyuki Tsutsumi 6-81 Onoue-cho, Naka-ku, Yokohama-shi, Kanagawa Hitachi Software Engineering In-house company (56) Reference JP-A-5-108322 (JP, A) JP-A-6-342258 (JP, A) JP-A-8-190344 (JP, A) (58) Fields investigated (Int .Cl. 7 , DB name) G06F 9/44 G06F 9/06 G09C 1/00

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】予め定義したブロック暗号アルゴリズム仕
様記述記法によるブロック暗号アルゴリズムのダイアグ
ラム表現をユーザが記述及び編集するのを支援する暗号
ダイアグラム編集手段と、該暗号ダイアグラム編集手段
によって編集されたブロック暗号アルゴリズムのダイア
グラム表現を格納する暗号ダイアグラム格納手段と、格
納されたブロック暗号アルゴリズムのダイアグラム表現
を解釈実行する暗号ダイアグラム解釈実行手段と、解釈
実行中のブロック暗号アルゴリズムのダイアグラム表現
に現れる変数の状態を格納する暗号ダイアグラム実行環
境格納手段と、このブロック暗号ダイアグラム実行環境
格納手段の内容を検査するための暗号ダイアグラム実行
環境検査手段と、を備えることを特徴とするブロック暗
号アルゴリズム開発支援装置。
1. A cipher diagram editing means for assisting a user to describe and edit a diagram representation of a block cipher algorithm according to a predefined block cipher algorithm specification description notation, and a block cipher algorithm edited by the cipher diagram editing means. Cipher diagram storing means for storing the diagram representation of the block cipher algorithm, cipher diagram interpretation executing means for interpreting and executing the stored diagram representation of the block cipher algorithm, and storing the state of variables appearing in the diagram representation of the block cipher algorithm under interpretation and execution. A block cipher algorithm opening means for storing a cipher diagram execution environment and a cipher diagram execution environment checking means for checking the contents of the block cipher diagram execution environment storing means. Support device.
【請求項2】ブロック暗号アルゴリズム仕様記述記法
は、ビット列データを値とする変数のダイアグラム表現
と、ビット列データ上の演算のダイアグラム表現とを構
成要素として有し、前記変数と前記演算を組み合わせる
ためのダイアグラム表現として、前記変数からの参照操
作のダイアグラム表現と、前記変数への代入操作のダイ
アグラム表現と、前記ビット列データへの前記演算の適
用操作のダイアグラム表現と、前記ビット列データの分
割操作のダイアグラム表現と、前記ビット列データの連
結操作のダイアグラム表現と、前記ビット列データの複
製操作のダイアグラム表現と、前記ビット列データへの
繰り返し処理のダイアグラム表現と、前記ビット列デー
タ上の演算を定義するためのダイアグラム表現とを備え
ることを特徴とする請求項1記載のブロック暗号アルゴ
リズム開発支援装置
2. A block cipher algorithm specification description notation has, as constituent elements, a diagram representation of a variable whose value is bit string data and a diagram representation of an operation on the bit string data, for combining the variable and the operation. As a diagram representation, a diagram representation of a reference operation from the variable, a diagram representation of an assignment operation to the variable, a diagram representation of an operation of applying the operation to the bit string data, and a diagram representation of a split operation of the bit string data. A diagrammatic representation of a concatenation operation of the bit string data, a diagrammatic representation of a duplication operation of the bit string data, a diagrammatic representation of repetitive processing on the bit string data, and a diagrammatic representation for defining an operation on the bit string data. It is characterized by including Motomeko 1 block cipher algorithm development support apparatus according.
【請求項3】テストケースを区別するためのIDと暗号
化鍵と平文と該平文を前記暗号化鍵によって暗号化した
暗号文からなるブロック暗号プログラムテストケースを
格納するための暗号プログラムテストケース格納手段
と、前記IDを生成するためのID計数手段と、前記暗
号化鍵を生成するための鍵生成手段と、前記平文を生成
するための平文生成手段とを備え、前記暗号文を生成す
るブロック暗号アルゴリズム開発支援手段と、を備える
ことを特徴とするブロック暗号プログラム開発支援装
置。
3. A cryptographic program test case storage for storing a block cipher program test case consisting of an ID for distinguishing test cases, an encryption key, a plaintext, and a ciphertext obtained by encrypting the plaintext with the encryption key. A block for generating the ciphertext, comprising: means, an ID counting means for generating the ID, a key generating means for generating the encryption key, and a plaintext generating means for generating the plaintext. A block cipher program development support device comprising: a cryptographic algorithm development support means.
【請求項4】ブロック暗号アルゴリズムのダイアグラム
表現の構文を解析するダイアグラム構文解析手段と、そ
の解析結果であるダイアグラム構文木を格納するダイア
グラム構文木格納手段と、格納されたダイアグラム構文
木からプログラム設計仕様を生成する設計仕様生成手段
と、ダイアグラムとプログラム設計仕様の間の対応関係
を定義した対応テーブルと、生成された設計仕様を格納
するための暗号プログラム設計仕様格納手段とを備える
ことを特徴とするブロック暗号プログラム開発支援装
置。
4. A diagram syntax analysis means for analyzing a syntax of a diagram representation of a block cipher algorithm, a diagram syntax tree storage means for storing a diagram syntax tree as a result of the analysis, and a program design specification based on the stored diagram syntax tree. And a correspondence table defining a correspondence relationship between a diagram and a program design specification, and a cryptographic program design specification storing means for storing the generated design specification. Block cipher program development support device.
【請求項5】ブロック暗号プログラムの設計仕様の構文
を解析する設計仕様構文解析手段と、その解析結果であ
る設計仕様構文木を格納する設計仕様構文木格納手段
と、格納された設計仕様構文木からプログラムを生成す
るプログラム生成手段と、設計仕様とプログラムの間の
対応関係を定義した対応テーブルと、生成されたプログ
ラムを格納するための暗号プログラム格納手段とを備え
ることを特徴とするブロック暗号プログラム開発支援装
置。
5. A design specification syntax analysis means for analyzing a syntax of a design specification of a block cipher program, a design specification syntax tree storage means for storing a design specification syntax tree as a result of the analysis, and a stored design specification syntax tree. A block cipher program, comprising: a program generation unit that generates a program from a program; a correspondence table that defines a correspondence relationship between design specifications and the program; and a cipher program storage unit that stores the generated program. Development support device.
【請求項6】ブロック暗号プログラムのテストスケジュ
ールを格納するテストスケジュール格納手段と、このテ
ストスケジュール格納手段に格納されたテストスケジュ
ールに従ってテストケースを選択するテストケース選択
手段と、ブロック暗号プログラムを格納する暗号プログ
ラム格納手段と、格納されたブロック暗号プログラムに
前記選択されたテストケースの構成要素である鍵と平文
を与えて実行させるプログラム実行手段と、その実行結
果である暗号文と前記選択されたテストケースの構成要
素である暗号文とを比較するための比較手段と、前記選
択されたテストケースのIDと該比較結果とからなるテ
スト結果を格納するための暗号プログラムテスト結果格
納手段とを備えることを特徴とするブロック暗号プログ
ラム開発支援装置。
6. A test schedule storing means for storing a test schedule of a block cipher program, a test case selecting means for selecting a test case according to a test schedule stored in the test schedule storing means, and a cipher for storing a block cipher program. Program storage means, program execution means for executing the stored block cipher program by giving the key and plaintext which are the constituents of the selected test case and executing the ciphertext as the execution result, and the selected test case And a cryptographic program test result storage unit for storing a test result composed of the ID of the selected test case and the comparison result. Characteristic block cipher program development support device
JP04121797A 1997-02-25 1997-02-25 Cryptographic algorithm development support device and cryptographic program development support device Expired - Fee Related JP3427993B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04121797A JP3427993B2 (en) 1997-02-25 1997-02-25 Cryptographic algorithm development support device and cryptographic program development support device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04121797A JP3427993B2 (en) 1997-02-25 1997-02-25 Cryptographic algorithm development support device and cryptographic program development support device

Publications (2)

Publication Number Publication Date
JPH10240511A JPH10240511A (en) 1998-09-11
JP3427993B2 true JP3427993B2 (en) 2003-07-22

Family

ID=12602241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04121797A Expired - Fee Related JP3427993B2 (en) 1997-02-25 1997-02-25 Cryptographic algorithm development support device and cryptographic program development support device

Country Status (1)

Country Link
JP (1) JP3427993B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001209304A (en) * 2000-01-24 2001-08-03 Nec Corp Ciphering evaluation support system and machine readable recording medium stored with program
CN103049269B (en) * 2012-12-25 2016-02-24 卡斯柯信号有限公司 A kind of diversity redundancy coding method based on double-strand
CN111522556B (en) * 2020-04-29 2023-11-24 铁道警察学院 Block cipher programming language and compiling infrastructure design method

Also Published As

Publication number Publication date
JPH10240511A (en) 1998-09-11

Similar Documents

Publication Publication Date Title
Mood et al. Frigate: A validated, extensible, and efficient compiler and interpreter for secure computation
US5778169A (en) Computer system having improved regression testing
US7032212B2 (en) Method and system for generating test matrices for software programs
US7716641B2 (en) Method and system for automatically identifying and marking subsets of localizable resources
US5937181A (en) Simulation of a process of a concurrent system
US20060010426A1 (en) System and method for generating optimized test cases using constraints based upon system requirements
KR970049509A (en) Architectures and methods for generating trusted compilation architecture specific versions of intermediate programs
Mouris et al. Zilch: A framework for deploying transparent zero-knowledge proofs
Ipate et al. Generating test sets from non-deterministic stream X-machines
Mansurov et al. Automatic synthesis of SDL models in use case methodology
JP3427993B2 (en) Cryptographic algorithm development support device and cryptographic program development support device
Bellini et al. CLAASP: a cryptographic library for the automated analysis of symmetric primitives
Andova et al. Prototyping the Semantics of a DSL using ASF+ SDF: Link to Formal Verification of DSL Models
Erkök et al. Hardware/software co-verification of cryptographic algorithms using Cryptol
Cristiá et al. On comparing and complementing two MBT approaches
Lukell et al. Automated attack analysis and code generation in a multi-dimensional security protocol engineering framework
Stepney et al. Formal methods for industrial products
Qassir et al. SCLang: Graphical Domain-Specific Modeling Language for Stream Cipher
Grosu et al. What is behind UML-RT?
Best et al. Reducing k-safe Petri nets to pomset-equivalent 1-safe Petri nets
US20090132225A1 (en) Technique for creating simulated servicing applications from data captured by a configurable software probe
JP2002182709A (en) Programming device for programmable controller
Wang et al. New method for combining Matsui’s bounding conditions with sequential encoding method
Qassir et al. Designing a Graphical Domain-Specific Modeling Language for Efficient Block Cipher Configuration: BCLang
Li et al. The SAT-Based Automatic Searching and Experimental Verification for Differential Characteristics with Application to Midori64

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees