JP2014238631A - Encryption module generation device - Google Patents

Encryption module generation device Download PDF

Info

Publication number
JP2014238631A
JP2014238631A JP2013119529A JP2013119529A JP2014238631A JP 2014238631 A JP2014238631 A JP 2014238631A JP 2013119529 A JP2013119529 A JP 2013119529A JP 2013119529 A JP2013119529 A JP 2013119529A JP 2014238631 A JP2014238631 A JP 2014238631A
Authority
JP
Japan
Prior art keywords
cryptographic
information
design
data
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013119529A
Other languages
Japanese (ja)
Other versions
JP6011465B2 (en
Inventor
亨 反町
Toru Tanmachi
亨 反町
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013119529A priority Critical patent/JP6011465B2/en
Publication of JP2014238631A publication Critical patent/JP2014238631A/en
Application granted granted Critical
Publication of JP6011465B2 publication Critical patent/JP6011465B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To solve the problem that there is a problem with development efficiency because development is further needed to complete an encryption module in which common key encryption algorithm is used in a real system, although there are conventional proposals for a method to make design development of the common key encryption algorithm more efficient.SOLUTION: A device generates an encryption module from design of efficient encryption algorithm by operating a development flow in the same device from design development of a new common key encryption algorithm to the encryption module which is operable in a system. The device generates the encryption module from an efficient encryption algorithm design device including safety verification, by also realizing a safety evaluation function for the common key encryption algorithm.

Description

本発明は、秘密鍵暗号方式のモジュール実装に対応する開発技術に関する。   The present invention relates to a development technique corresponding to module implementation of a secret key cryptosystem.

近年、コンピュータや通信装置を利用した様々なサービスが提供され、それらのサービスでは、通信の秘匿や認証を実現するために、暗号技術を用いていることが多い。暗号に方式は大別して、暗号化と復号で同じ鍵を使う共通鍵暗号と、秘密鍵と公開鍵の異なる2種類の鍵を使用する公開鍵暗号がある。共通鍵暗号は送受信者間で鍵を共有する方法が課題となるが、公開鍵暗号に比べて暗号化及び復号に要する処理量が少ない利点があり、多くの分野や用途で使用されている。
共通鍵暗号アルゴリズムに対する解読技術も年々進歩しており、現在一般に利用している暗号アルゴリズムの安全性が今後も保証されるものでは無く、システムによっては独自に暗号アルゴリズムを設計し利用する事を目指して、効率的にアルゴリズムの設計を支援し、安全性評価を行うような技術がこれまでにも幾つか提案されている。
上記した共通鍵暗号アルゴリズムの設計装置や設計支援装置の一例が以下の特許文献1、2に開示されている。
特許文献1における従来技術では、共通鍵暗号アルゴリズムの設計を支援する一例として、ビット列データを値とする変数のダイアグラム表現、ビット列データ上の演算のダイアグラム表現、変数と演算を組み合わせるためのダイアグラム表現といった所定のダイアグラム表現を使って、ブロック暗号アルゴリズム全体のダイアグラム表現をユーザが記述および編集できる暗号ダイアグラム編集装置が提案されている。また、暗号ダイアグラム編集装置を使って設計されたブロック暗号アルゴリズムからブロック暗号プログラムを生成する技術や、この生成されたプログラムが元のアルゴリズムを正確に実現しているか否かをテストする技術も提案されている。
また、特許文献2における従来技術では、共通鍵暗号アルゴリズムの設計開発時の評価時間を大幅に短縮し得る暗号評価支援システム、また、暗号設計の専門家でなくても暗号アルゴリズムの評価を行うことができる暗号評価支援システムが提供されている。
In recent years, various services using computers and communication devices have been provided, and these services often use encryption technology in order to realize communication confidentiality and authentication. There are two types of encryption methods: common key encryption that uses the same key for encryption and decryption, and public key encryption that uses two types of keys with different secret keys and public keys. Common key cryptography has a problem of how to share keys between senders and receivers, but has the advantage of requiring less processing amount for encryption and decryption than public key cryptography, and is used in many fields and applications.
The cryptanalysis technology for the common key encryption algorithm is also improving year by year, and the security of the encryption algorithm currently in general use is not guaranteed in the future, and some systems aim to design and use the encryption algorithm independently. Thus, several techniques have been proposed to efficiently support algorithm design and perform safety evaluation.
Examples of the above-described common key encryption algorithm design apparatus and design support apparatus are disclosed in Patent Documents 1 and 2 below.
In the prior art in Patent Document 1, as an example of supporting the design of a common key encryption algorithm, a diagram representation of a variable having bit string data as a value, a diagram representation of an operation on bit string data, a diagram representation for combining variables and operations, and the like There has been proposed an encryption diagram editing apparatus that allows a user to describe and edit a diagram representation of the entire block cipher algorithm using a predetermined diagram representation. In addition, a technique for generating a block cipher program from a block cipher algorithm designed using an encryption diagram editing device and a technique for testing whether the generated program accurately implements the original algorithm are also proposed. ing.
Also, with the prior art in Patent Document 2, a cryptographic evaluation support system that can significantly reduce the evaluation time during the design and development of a common key cryptographic algorithm, and evaluation of cryptographic algorithms even if you are not a cryptographic design specialist A cryptographic evaluation support system is provided.

特開平10−240511JP-A-10-240511 特開2001−209304JP 2001-209304 A

従来、共通鍵暗号アルゴリズムの設計開発は、アルゴリズム設計を行い、安全性評価と一般的な実装プラットフォーム上における実装性評価を行い、アルゴリズムのサンプルプログラムとテストデータを生成して開発完了するのが一般的であり、実際のシステムに開発したアルゴリズムを利用する為に、動作条件や処理性能等の要求条件を考慮した暗号モジュールの開発は別途実施されている。   Conventionally, the design and development of a common key encryption algorithm generally involves algorithm design, security evaluation and implementation evaluation on a general implementation platform, generation of algorithm sample programs and test data, and completion of development. In order to use the algorithm developed for an actual system, the development of a cryptographic module that takes into account requirements such as operating conditions and processing performance has been carried out separately.

しかし、従来技術では、共通鍵暗号アルゴリズムの設計開発の効率化を行う為の技術は表現されているが、実際のシステムに利用する為の暗号モジュールの開発までを効率良く実施する為の方式は提案されていない。
このため、生成されたブロック暗号アルゴリズムまたはブロック暗号プログラムを基に、実際のシステム上で動作する暗号モジュールを開発しても、実際のシステムが動作する環境に起因する動作条件や、処理性能等の要求条件などにより、不適合となる場合がある。
このような場合、ブロック暗号アルゴリズムの設計を再度行うことになる。
また、設計された暗号モジュールの暗号安全性についても、従来では、生成されたブロック暗号アルゴリズムに対するサンプルプログラムとテストデータを生成し、実際のシステム上で、暗号安全性の評価試験を行っている。
このような場合、再度、共通鍵暗号アルゴリズムの設計まで遡ってやり直す必要があり、効率的ではない。
また、設計された暗号モジュールの暗号安全性についても、従来では、アルゴリズムのサンプルプログラムとテストデータを用いた暗号の安全性を評価する試験を必ず行っている。従来技術では、設計中の暗号モジュールに対する安全性の評価は行われているが、それはモジュール間での相対的な比較を行うための指標的な数値であるため、実際のシステムに対し、安全性が満たされているかの判定は行われていない。このため、実際のシステムで、暗号の安全性を評価する試験を行い、その結果、安全性が満たされていないと評価されると、暗号モジュールの設計を複数回、繰返し行うのが通常であり、効果的ではないと言う課題があった。
However, although the technology for expressing the efficiency of the design and development of the common key encryption algorithm is expressed in the conventional technology, the method for efficiently implementing the development of the cryptographic module for use in the actual system is Not proposed.
For this reason, even if a cryptographic module that operates on an actual system is developed based on the generated block encryption algorithm or block encryption program, the operating conditions, processing performance, etc. due to the environment in which the actual system operates There may be non-conformity due to requirements.
In such a case, the block cipher algorithm is designed again.
As for the cryptographic security of the designed cryptographic module, conventionally, a sample program and test data for the generated block cryptographic algorithm are generated, and a cryptographic security evaluation test is performed on an actual system.
In such a case, it is necessary to go back to the design of the common key encryption algorithm again, which is not efficient.
Also, with regard to the cryptographic security of the designed cryptographic module, conventionally, a test for evaluating the cryptographic security using the algorithm sample program and test data is always performed. Although the conventional technology evaluates the security of the cryptographic module under design, it is an index value for performing a relative comparison between the modules. It is not determined whether or not is satisfied. For this reason, tests for evaluating the security of cryptography in an actual system are performed, and as a result, if it is judged that the security is not satisfied, the design of the cryptographic module is usually repeated multiple times. There was a problem that it was not effective.

本発明は上記課題を解決するためになされたものであり、新たな共通鍵暗号アルゴリズムの設計開発からシステムで動作可能な暗号モジュールまでの開発を効率的に実現可能とする暗号モジュール生成装置を提供すること、また、共通鍵暗号アルゴリズムの安全性を評価可能な構成要素を提供する事により、安全性評価機能を併せて実現可能とする安全性検証付き暗号モジュール生成装置を提供することを主な目的とする。   The present invention has been made to solve the above-described problems, and provides a cryptographic module generation device that can efficiently realize the development from the design and development of a new common key cryptographic algorithm to the cryptographic module operable in the system. In addition, the main purpose is to provide a cryptographic module generation device with security verification that can implement a security evaluation function by providing components that can evaluate the security of a common key encryption algorithm. Objective.

本発明に係る暗号モジュール生成装置は、
暗号化機能を用いて設計されるシステムにおける暗号アルゴリズムの設計情報を入力する暗号設計データ入力部と、
システムの動作環境に応じたソースコードを選定するシステム動作環境選定部と、
ソースコードをシステム搭載可能なモジュールに変換する機能を持つシステム搭載用暗号ロジック変換部と、
その暗号モジュールを搭載するシステムのシステム要求条件を満足するか判定する暗号処理性能判定部と、
システム要求条件を満足すると判定された場合、暗号モジュールを出力する暗号モジュール出力部とを有するものである。
The cryptographic module generation device according to the present invention includes:
A cryptographic design data input unit for inputting cryptographic algorithm design information in a system designed using the cryptographic function;
A system operating environment selection section for selecting source code according to the system operating environment;
System-installed cryptographic logic converter with the function of converting source code into system-mountable modules,
A cryptographic processing performance determination unit that determines whether the system requirements of the system including the cryptographic module are satisfied;
And a cryptographic module output unit for outputting a cryptographic module when it is determined that the system requirement is satisfied.

本発明によれば、新たな共通鍵暗号アルゴリズムの設計開発からシステムで動作可能な暗号モジュールまでの開発を効率的に実現可能とする暗号モジュール生成装置を提供することが可能になる。   ADVANTAGE OF THE INVENTION According to this invention, it becomes possible to provide the encryption module production | generation apparatus which can implement | achieve efficiently from the design development of a new common key encryption algorithm to the encryption module which can operate | move by a system.

実施の形態1に係る暗号モジュール生成装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a cryptographic module generation device according to the first embodiment. 実施の形態1に係る暗号設計パーツの例を示す図。FIG. 3 is a diagram illustrating an example of a cryptographic design part according to the first embodiment. 実施の形態1に係る設計された暗号アルゴリズムの一例を示す図。FIG. 3 is a diagram showing an example of a designed encryption algorithm according to the first embodiment. 実施の形態2に係る安全性検証付き暗号モジュール生成装置の構成例を示す図。The figure which shows the structural example of the encryption module production | generation apparatus with security verification which concerns on Embodiment 2. FIG. 実施の形態2に係る設計された暗号アルゴリズムの一例を示す図。FIG. 4 is a diagram illustrating an example of a cryptographic algorithm designed according to the second embodiment. 実施の形態3に係る秘密鍵サイズ及び入力データサイズ変換可能な暗号モジュール生成装置の構成例を示す図。The figure which shows the structural example of the encryption module production | generation apparatus which can convert the secret key size and input data size which concern on Embodiment 3. FIG. 実施の形態4に係る秘密鍵サイズ及び入力データサイズ変換可能な安全性検証付き暗号モジュール生成装置の構成例を示す図。The figure which shows the structural example of the encryption module production | generation apparatus with security verification which can convert the secret key size and input data size which concern on Embodiment 4. FIG. 実施の形態1に係る処理の流れを示すフローチャート。3 is a flowchart showing a flow of processing according to the first embodiment. 実施の形態2に係る処理の流れを示すフローチャート。10 is a flowchart showing a flow of processing according to the second embodiment. 実施の形態3に係る処理の流れを示すフローチャート。10 is a flowchart showing a flow of processing according to the third embodiment. 実施の形態4に係る処理の流れを示すフローチャート。10 is a flowchart showing a flow of processing according to the fourth embodiment. 実施の形態3及び実施の形態4に係る秘密鍵サイズ及び入力データサイズを簡易的に変換させる方法の一例を示す図。The figure which shows an example of the method of converting simply the private key size and input data size which concern on Embodiment 3 and Embodiment 4. FIG. 実施の形態3及び実施の形態4に係る秘密鍵サイズ及び入力データサイズに対し、情報テーブルを用いて変換させる方法の一例を示す図。The figure which shows an example of the method of converting using the information table with respect to the secret key size and input data size which concern on Embodiment 3 and Embodiment 4. FIG.

実施の形態1.
本実施の形態に係る暗号モジュール生成装置は、共通鍵暗号アルゴリズムの開発設計を実施し、かつ、システム要求性能を満足する暗号モジュールを生成するものであり、入力された暗号設計データをシステムの動作環境(CPU処理性能に関連する制約、メモリ量に関連する制約、多重化処理の対応性など)の条件に適した暗号ロジックに変換し、その暗号ロジックがシステムで利用可能な品質の暗号モジュール試験を実施し、システムの要求性能を満足する暗号モジュールを出力するものである。
以下、本実施の形態に係る暗号モジュール生成装置の詳細を図1〜図13を参照して説明する。
Embodiment 1 FIG.
The cryptographic module generation apparatus according to the present embodiment performs development and design of a common key cryptographic algorithm, and generates a cryptographic module that satisfies the system required performance. Cryptographic module test with quality that can be used in the system by converting to cryptographic logic suitable for the environment (restrictions related to CPU processing performance, restrictions related to memory capacity, compatibility of multiplexing processing, etc.) To output a cryptographic module that satisfies the required performance of the system.
Details of the cryptographic module generation apparatus according to this embodiment will be described below with reference to FIGS.

図1は、本実施の形態に係る暗号モジュール生成装置の構成例を示す。
図1において、暗号設計データ入力部(101)は、設計したい暗号方式の情報を図2に示すような暗号設計パーツを利用して入力する情報入力インターフェース機能を有しており、設計情報をシステム搭載用暗号ロジック変換部(102)で一意に暗号アルゴリズムの構成が判別可能な情報に変換し、出力する。なお、本実施の形態では、暗号設計データ入力部(101)を暗号モジュール生成装置の一部として構成したが、暗号アルゴリズムの設計に関連する処理を別にした、暗号アルゴリズム設計装置の一部として構成してもよい。
暗号設計データ入力部(101)は、より具体的には、各暗号設計パーツの入出力データサイズの設定や繰り返し利用する回数(段数)を設定し、それぞれの設定した暗号設計パーツの関係性を組み合わせる結線情報を設定可能な情報入力インターフェースによって、システム搭載用暗号ロジック変換部(102)の入力となる暗号アルゴリズム構成情報を出力する。なお、図2に示す暗号設計パーツは、一般的に共通鍵暗号アルゴリズムのブロック暗号で利用されるFeistel型(201)、変形Feistel型(202)、SPN(Substitution Permutation Network)型のアルゴリズムの基本構成(203)、ストリーム暗号で利用される線形フィードバックシフトレジスタ(204)、拡大体線形フィードバックシフトレジスタ(205)、また両方の暗号方式に利用されるSBOX(206)(Substitution BOX)や排他的論理和(207)、論理積(208)、論理和(209)、加算(210)、乗算(211)、ローテートシフト(212)、ビット置換(213)、mビット置換(214)等の内部プリミティブ関数を用意し、想定されるブロック暗号、および、ストリーム暗号の構成に柔軟に対応可能である。
上記、暗号設計パーツを利用すれば、新たな暗号アルゴリズムの設計も可能である上に、従来の公開された暗号アルゴリズムであるMISTYやCamellia、AES(Advanced Encryption Standard)と言った暗号アルゴリズムの構成も再現可能である。
FIG. 1 shows a configuration example of a cryptographic module generation device according to the present embodiment.
In FIG. 1, a cryptographic design data input unit (101) has an information input interface function for inputting cryptographic scheme information desired to be designed using cryptographic design parts as shown in FIG. The on-board cryptographic logic conversion unit (102) converts the information into information that can uniquely determine the configuration of the cryptographic algorithm and outputs the information. In the present embodiment, the cryptographic design data input unit (101) is configured as a part of the cryptographic module generation apparatus. However, the cryptographic design data input unit (101) is configured as a part of the cryptographic algorithm design apparatus separately from processing related to the cryptographic algorithm design. May be.
More specifically, the cryptographic design data input unit (101) sets the input / output data size of each cryptographic design part and the number of times (number of stages) of repeated use and sets the relationship between the respective cryptographic design parts set. Cryptographic algorithm configuration information that is input to the system-installed cryptographic logic conversion unit (102) is output by an information input interface that can set connection information to be combined. The cryptographic design part shown in FIG. 2 is a basic configuration of an algorithm of Feistel type (201), modified Feistel type (202), and SPN (Substitution Permutation Network) type that is generally used in block ciphers of common key cryptographic algorithms. (203), linear feedback shift register (204) used in stream cipher, extended linear feedback shift register (205), SBOX (206) (Substitution BOX) and exclusive OR used in both ciphers Internal primitive functions such as (207), logical product (208), logical sum (209), addition (210), multiplication (211), rotate shift (212), bit substitution (213), m bit substitution (214) Prepare and assume The block cipher, and is flexibly corresponding to the configuration of the stream cipher.
By using the above-mentioned cryptographic design parts, it is possible to design a new cryptographic algorithm, and the configuration of cryptographic algorithms such as MISTY, Camellia, and AES (Advanced Encryption Standard), which are publicly available cryptographic algorithms, are also available. It can be reproduced.

図1において、システム搭載用暗号ロジック変換部(102)は、暗号設計データ入力部(101)から出力される暗号アルゴリズム構成情報と、システム動作環境選定部(103)で選定されたソースコードの情報とを入力とし、その二つの情報より、実際のシステム環境に適した暗号モジュールの生成を行う。
ソースコードの生成方法については、従来技術と同じ手法で行う。従来手法では、暗号モジュールを構成している各暗号設計パーツに対し、それぞれ対応したソースコードを予め保有しておき、暗号モジュールの設計が行われた後に、使用されている暗号設計パーツの構成、順序を基にして、ソースコードを生成しており、本発明でも同様の手法を用いてソースコードの生成を行う。
従来技術と本発明の違いは、実際のシステム環境に適したソースコードがシステム動作環境選定部(103)から提供されることである。
In FIG. 1, the system-installed cryptographic logic conversion unit (102) includes cryptographic algorithm configuration information output from the cryptographic design data input unit (101) and information on the source code selected by the system operating environment selection unit (103). From the two pieces of information, a cryptographic module suitable for the actual system environment is generated.
The source code generation method is the same as the conventional technique. In the conventional method, for each cryptographic design part constituting the cryptographic module, the corresponding source code is held in advance, and after the cryptographic module is designed, the configuration of the cryptographic design part used, Source code is generated based on the order. In the present invention, the source code is generated using the same technique.
The difference between the prior art and the present invention is that source code suitable for the actual system environment is provided from the system operating environment selection unit (103).

図1において、システム動作環境選定部(103)は、設計した暗号アルゴリズムを動作させるシステムの環境情報(動作環境情報)に応じた、適切なソースコードをシステム搭載用暗号ロジック変換部(102)に提供するための選定を行う。
図1において、システム動作環境選定部(103)は、設計した暗号アルゴリズムを動作させるシステムの環境情報(動作環境情報)に対応した適切なソースコードの選択を行い、システム搭載用暗号ロジック変換部(102)に出力する。
例えば、全ての暗号設計パーツに対し、(A)多重化対応されたソース、(B)メモリ使用量を抑えたソース、(C)CPU使用量を抑えたソース、が用意されており、実際のシステムでは、使用することが可能なメモリの容量が少なく、動作環境情報として、メモリ使用量の節約が指定されていた場合、用意されている3種類のソースコードのうち、メモリの使用量を抑えた(B)が選択される。
どのソースコードを使用するかの選定は、暗号モジュールの設計で用いられている暗号設計パーツ全てに対し、システム動作環境選定部(103)の指示を反映させても良いし、一部を設計者が暗号設計データ入力部(101)のGUI機能を用いたりして、変更してもよい。
ただし、多重化については、システム動作環境選定部(103)で指示した通りに対応する必要があるため、例えば、暗号設計パーツ毎に処理に必要な時間を予め定義しておき、システム動作環境選定部(103)では、処理時間が特定の時間以上かかる暗号設計パーツのみ、多重化されたソースを選択させることで効率的に、かつ動作環境情報に正しく対応されたソースコード生成が行える。
In FIG. 1, the system operating environment selection unit (103) sends an appropriate source code to the system-mounted cryptographic logic conversion unit (102) according to the environment information (operating environment information) of the system that operates the designed cryptographic algorithm. Make selections to provide.
In FIG. 1, a system operation environment selection unit (103) selects an appropriate source code corresponding to the environment information (operation environment information) of the system that operates the designed encryption algorithm, and the system-installed encryption logic conversion unit ( 102).
For example, for all cryptographic design parts, (A) a source that supports multiplexing, (B) a source that uses less memory, and (C) a source that uses less CPU are available. In the system, if the amount of memory that can be used is small and saving of memory usage is specified as the operating environment information, the memory usage of the three types of prepared source code is suppressed. (B) is selected.
The selection of which source code to use may reflect the instructions of the system operating environment selection section (103) for all the cryptographic design parts used in the cryptographic module design, or a part of the designer May be changed by using the GUI function of the cryptographic design data input unit (101).
However, since it is necessary to cope with multiplexing as instructed by the system operating environment selection unit (103), for example, the time required for processing is defined in advance for each cryptographic design part, and the system operating environment is selected. The unit (103) can generate source code efficiently and correctly corresponding to the operating environment information by selecting the multiplexed source only for the cryptographic design part that takes a specified time or more in processing time.

図1において、暗号処理性能判定部(105)は、システム搭載用暗号ロジック変換部(102)から出力される暗号モジュールが実際のシステム環境上で、要求されている性能(要求性能情報)を満たしているかのシミュレーションを実行することで判定を行う。
要求性能情報の例としては、データブロックに対する暗号化処理の処理速度性能、並行して実行できる同時処理数などがあげられる。
要求性能情報を入力する手段としては、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、要求性能情報をファイルに記載し、暗号処理性能判定部(105)が処理を行う際に読み込ませても良い。
暗号処理性能判定部(105)では、シミュレーションを行うための環境として、例えば、実際のH/W構成モデルをS/W上で模擬するためのエミュレータ環境を用いる。
また、暗号処理性能判定部(105)では、要求性能情報を評価するための、試験用プログラムの生成を行う。例えば、処理速度性能を評価する場合には、暗号モジュールを呼び出す前後で時刻の記録を行い、その差分を繰り返し測定するプログラムを生成し、前述のエミュレータ環境上で実行し、測定を行う。
要求性能を満足していた場合は、測定した処理性能結果と暗号モジュールを、システム搭載用暗号ロジック変換部(102)から暗号モジュール出力部(106)に出力する。要求性能を満足していない場合は、測定した処理性能結果を要求性能条件と共に出力し、再度、暗号設計データ入力部(101)で設計したい暗号方式の情報入力から設計を繰り返す。
In FIG. 1, the cryptographic processing performance determination unit (105) satisfies the required performance (required performance information) in the actual system environment by the cryptographic module output from the system-installed cryptographic logic conversion unit (102). Judgment is performed by executing a simulation of whether or not
Examples of the required performance information include the processing speed performance of the encryption process for the data block, the number of simultaneous processes that can be executed in parallel, and the like.
As a means for inputting the required performance information, a GUI function provided by the cryptographic design data input unit (101) may be used, or the required performance information is described in a file and processed by the cryptographic processing performance determination unit (105). It may be read when performing.
In the cryptographic processing performance determination unit (105), for example, an emulator environment for simulating an actual H / W configuration model on S / W is used as an environment for performing simulation.
In addition, the cryptographic processing performance determination unit (105) generates a test program for evaluating the required performance information. For example, when evaluating the processing speed performance, the time is recorded before and after calling the cryptographic module, a program for repeatedly measuring the difference is generated, executed in the above-mentioned emulator environment, and measured.
If the required performance is satisfied, the measured processing performance result and the cryptographic module are output from the system-installed cryptographic logic conversion unit (102) to the cryptographic module output unit (106). If the required performance is not satisfied, the measured processing performance result is output together with the required performance condition, and the design is repeated again from the information input of the cryptographic method desired to be designed by the cryptographic design data input unit (101).

図8は、実施の形態1の処理の流れを説明するフローチャートである。
設計者により、これから設計を行う暗号アルゴリズムが動作する実際のシステムに関する、動作環境情報が暗号モジュール生成装置に入力される(S801)。動作環境情報の例としては、CPU処理性能に関連する制約、メモリ量に関連する制約、多重化処理の対応性などが挙げられる。動作環境情報の入力には、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、動作環境情報をファイルに記載し、システム搭載用暗号ロジック変換部(102)が処理を行う際に読み込ませても良い。
次に、システムに対する要求性能情報が暗号モジュール生成装置に入力される(S802)。要求性能情報の例としては、一つのデータブロックに対する暗号化処理を完了するまでの制限時間、並行して同時実行できる処理数などがあげられる。要求性能情報の入力には、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、要求性能情報をファイルに記載し、暗号処理性能判定部(105)が処理を行う際に読み込ませても良い。
次に、暗号設計データ入力部(101)において、暗号モジュールの設計を行い(S803)、暗号安全性に対する相対的な評価を行う(S804、S805)。暗号安全性に対する相対的な評価に関しては、従来技術で行われているもの(暗号設計パーツ毎に指数が割り振られており、選択されたパーツの総計を取る手法)であるため、詳細な説明は省略する。暗号安全性に対する相対的な評価が不足していた場合には、再度暗号モジュールの設計(803)を行う。
次に、システム搭載用暗号ロジック変換部(102)にて、上記手順で出力された暗号モジュールの構成情報をもとに、ソースコードの生成を行う(S806)。尚、ソースコードは、暗号設計パーツ毎に複数用意されており、システム動作環境選定部(103)がどのソースコードを使用するかの選定を行う。
次にシステム搭載用暗号ロジック変換部(102)がコンパイルを行う(S807)。使用するコンパイラは、実際のシステムに対応したクロスコンパイラを用い、また、その際のコンパイルオプションには、動作環境情報に応じたもの、例えば、メモリ使用量を抑える指定があった場合、メモリ使用量を最小化するようなオプションを設定する。尚、ソースコードの生成(S806)を行った後に、必要に応じで出力されたソースコードに対し、修正を行っても良い。
次に、暗号処理性能判定部(105)で、生成された暗号モジュールが実際のシステム上で動作する際、性能条件を満たしているのかの検証を行う(S808)。
検証の結果、要求性能を満たしているか確認を行い(S809),満たされていない場合は、暗号モジュールの設計(S803)を繰り返し、満たされたら暗号モジュール出力部(106)が暗号モジュールの構成情報を出力する(S810)。
FIG. 8 is a flowchart for explaining the processing flow of the first embodiment.
The designer inputs the operating environment information regarding the actual system on which the cryptographic algorithm to be designed will operate, to the cryptographic module generation device (S801). Examples of the operating environment information include restrictions related to CPU processing performance, restrictions related to the amount of memory, compatibility of multiplexing processing, and the like. For the input of the operating environment information, the GUI function provided by the cryptographic design data input unit (101) may be used, or the operating environment information is described in a file and processed by the cryptographic logic conversion unit for system installation (102). It may be read when performing.
Next, required performance information for the system is input to the cryptographic module generation device (S802). Examples of the required performance information include a time limit for completing the encryption process for one data block, and the number of processes that can be executed concurrently. The GUI function provided by the cryptographic design data input unit (101) may be used to input the required performance information, or the required performance information is described in a file, and the cryptographic processing performance determination unit (105) performs processing. You may make it read at the time.
Next, in the cryptographic design data input unit (101), a cryptographic module is designed (S803), and a relative evaluation for cryptographic security is performed (S804, S805). Regarding the relative evaluation of cryptographic security, since it is the one performed in the prior art (index is assigned to each cryptographic design part and the total of the selected parts is taken), the detailed explanation is Omitted. If the relative evaluation for cryptographic security is insufficient, the cryptographic module is designed again (803).
Next, the system-installed cryptographic logic conversion unit (102) generates source code based on the configuration information of the cryptographic module output in the above procedure (S806). A plurality of source codes are prepared for each cryptographic design part, and the system operating environment selection unit (103) selects which source code is used.
Next, the system-installed cryptographic logic conversion unit (102) compiles (S807). The compiler to be used is a cross compiler that corresponds to the actual system, and the compile options at that time correspond to the operating environment information, for example, if there is a specification to reduce the memory usage, the memory usage Set an option that minimizes. It should be noted that after generating the source code (S806), the source code output may be modified as necessary.
Next, the cryptographic processing performance determination unit (105) verifies whether the generated cryptographic module satisfies the performance condition when operating on the actual system (S808).
As a result of the verification, it is confirmed whether or not the required performance is satisfied (S809). If not, the cryptographic module design (S803) is repeated, and if satisfied, the cryptographic module output unit (106) configures the cryptographic module configuration information. Is output (S810).

次に、図1に示した暗号モジュール生成装置を用いて暗号設計を行う場合の暗号アルゴリズムの概要を説明する。
図3は、本実施の形態に係る設計された暗号アルゴリズムの一例を示す。
Next, an outline of a cryptographic algorithm when a cryptographic design is performed using the cryptographic module generation device shown in FIG. 1 will be described.
FIG. 3 shows an example of a cryptographic algorithm designed according to the present embodiment.

図3では、ブロック単位を64ビットとしたブロック暗号アルゴリズムを設計し、暗号化モジュールを生成する例を説明する。
アルゴリズムの全体基本構成として、暗号設計データ入力部(101)で用意された暗号設計パーツを利用して、例えば、5回繰り返しの5段Feistel型(201)を処理し、6回繰り返しの6段SPN型(203)を処理し、5回繰り返しの5段変形Feistel型(202)を処理する構成を選択する。暗号設計データ入力部(101)への入力として、入出力情報64ビットと5段、6段、5段の段数情報を入力する。また、SPN型(203)では入力データの分割情報として8ビットを入力する。
FIG. 3 illustrates an example in which a block cipher algorithm with 64 bits as a block unit is designed and an encryption module is generated.
As an overall basic configuration of the algorithm, for example, a 5-stage Feistel type (201) that is repeated 5 times is processed using a cryptographic design part prepared in the cryptographic design data input unit (101), and 6-stage that is repeated 6 times. A configuration for processing the SPN type (203) and processing the five-stage modified Feistel type (202) repeated five times is selected. As input to the cipher design data input unit (101), 64 bits of input / output information and stage number information of 5, 6, 5 stages are input. In the SPN type (203), 8 bits are input as division information of input data.

まず、最初に処理される5段Feistel型(301)の情報の設定方法について説明する。5段Feistel型(301)のFunction(304)は入出力情報32ビットが決定される。また、Functionの内部構成としては1段SPN型と入力される鍵との32ビット排他的論理和を選択する。また、1段SPN型では入力データの分割情報として4ビットを入力する。従って、1段SPN型のFunctionは入出力情報4ビットが決定される。4ビット入出力のFunction(305)の内部構成としては、4ビット入出力のSBOXを選択する。SBOXが選択されると、情報量4ビット毎のSBOXテーブル情報(16エントリ)の定義を実施する。また、1段SPN型の内部構成である4ビット置換に関しても、4ビット単位のデータの置換情報の定義を実施する。なお、4ビット入出力のSBOXが8個とも同じ情報を設定している場合としているが、設定によっては8個とも異なるSBOXテーブル情報を定義する事も可能である。 First, a method for setting information of the 5-stage Feistel type (301) processed first will be described. In the 5-stage Feistel type (301) Function (304), 32 bits of input / output information are determined. Further, as the internal structure of the Function, a 32-bit exclusive OR between the one-stage SPN type and the input key is selected. In the one-stage SPN type, 4 bits are input as division information of input data. Therefore, 4 bits of input / output information are determined for the one-stage SPN function. A 4-bit input / output SBOX is selected as the internal configuration of the 4-bit input / output function (305). When SBOX is selected, definition of SBOX table information (16 entries) for every 4 bits of information amount is performed. Also, regarding 4-bit replacement, which is an internal configuration of the one-stage SPN type, definition of replacement information for data in units of 4 bits is performed. Note that the same information is set for all of the eight 4-bit input / output SBOXs, but different SBOX table information may be defined depending on the setting.

次に、アルゴリズムの全体基本構成の2番目に処理される6段SPN型(302)の情報の設定方法について説明する。6段SPN型(302)のFunction(306)は分割情報として8ビットが設定されている為、入出力情報8ビットが決定される。8ビット入出力のFunctionの内部構成としては、8ビット入出力のSBOXを選択する。SBOXが選択されると、情報量8ビット毎のSBOXテーブル情報(256エントリ)の定義を実施する。この場合も、8ビット入出力のSBOXが8個とも同じ情報を設定している場合としているが、設定によっては8個とも異なるSBOXテーブル情報を定義する事も可能である。また、6段SPN型(302)の内部構成である8ビット置換に関しても、8ビット単位のデータの置換情報の定義を実施する。   Next, a method for setting information of the six-stage SPN type (302) to be processed second in the overall basic configuration of the algorithm will be described. In the function (306) of the 6-stage SPN type (302), 8 bits are set as the division information, so 8 bits of input / output information are determined. An 8-bit input / output SBOX is selected as the internal configuration of the 8-bit input / output function. When SBOX is selected, SBOX table information (256 entries) is defined for every 8 bits of information. In this case as well, the same information is set for all eight 8-bit input / output SBOXs, but different SBOX table information may be defined depending on the setting. Also, regarding 8-bit replacement, which is an internal configuration of the 6-stage SPN type (302), definition of replacement information for data in units of 8 bits is performed.

最後に、アルゴリズムの全体基本構成の3番目に処理される5段変形Feistel型(303)の情報の設定方法について説明する。5段変形Feistel型(303)のFunction(307)は入出力情報32ビットが決定される。また、Functionの内部構成としては4段変形Feistel型と入力される鍵との32ビット排他的論理和を選択する。4段変形Feistel型のFunction(308)は入出力情報16ビットが決定される。16ビット入出力のFunctionの内部構成としては、16ビット入出力の1ビット左ローテートシフトを選択する。   Finally, a method for setting information of the five-stage modified Feistel type (303) processed third in the overall basic configuration of the algorithm will be described. In the function (307) of the five-stage modified Feistel type (303), 32 bits of input / output information are determined. Further, as the internal structure of the Function, a 32-bit exclusive OR of the four-stage modified Feistel type and the input key is selected. The four-stage modified Feistel function (308) has 16 bits of input / output information. A 16-bit input / output 1-bit left rotate shift is selected as the internal configuration of the 16-bit input / output function.

以上のように設定する事により、64ビット入出力のブロック暗号アルゴリズムにおけるデータランダマイズ部の構成を決定する事が出来る。本説明では一般的なブロック暗号アルゴリズムで定義される鍵スケジュール部までは説明しないが、上記のデータランダマイズ部の設定方法と同様の方法で設定可能である。
なお、本実施の形態では、暗号設計データ入力部(101)にて設定可能な暗号設計情報の組合せ数は膨大な数となり、暗号設計者が暗号アルゴリズム設計装置、及び、暗号モジュール自動生成装置を利用して設計した暗号アルゴリズムを一意に特定する事は困難である。また、暗号設計者が暗号アルゴリズム設計装置、及び、暗号モジュール自動生成装置を利用して暗号モジュールまで生成可能な事から、一般のシステム利用者は暗号アルゴリズムの詳細を知る必要なく、暗号モジュールをブラックボックスで利用する事が出来る。これは、容易な暗号アルゴリズムの解析を防ぐ予防策となる事から、システムの安全性向上に繋がるといった効果も得られる。
By setting as described above, the configuration of the data randomizing unit in the 64-bit input / output block cipher algorithm can be determined. In this description, the key schedule part defined by a general block cipher algorithm is not described, but it can be set by a method similar to the setting method of the data randomization part.
In the present embodiment, the number of combinations of cryptographic design information that can be set by the cryptographic design data input unit (101) is enormous, and the cryptographic designer installs the cryptographic algorithm design device and the cryptographic module automatic generation device. It is difficult to uniquely identify the cryptographic algorithm designed by using it. In addition, since a cryptographic designer can generate a cryptographic module using a cryptographic algorithm design device and a cryptographic module automatic generation device, a general system user does not need to know the details of the cryptographic algorithm and blackens the cryptographic module. Can be used in a box. Since this is a preventive measure that prevents easy analysis of the cryptographic algorithm, an effect of improving the security of the system can be obtained.

実施の形態2.
本実施の形態では、暗号の安全性を検証可能な機能を付加した場合の別の構成を以下に示す。
図4は、本実施の形態に係る安全性検証付き暗号モジュール生成装置の構成例を示す。
図4において、暗号設計データ入力部(101)は、設計したい暗号方式の情報を図2に示すような暗号設計パーツを利用して入力する情報入力インターフェース機能を有しており、設計情報をシステム搭載用暗号ロジック変換部(102)で一意に暗号アルゴリズムの構成が判別可能な情報に変換し、出力する。なお、本実施の形態では、暗号設計データ入力部(101)を暗号モジュール生成装置の一部として構成したが、暗号アルゴリズムの設計に関連する処理を別にした、暗号アルゴリズム設計装置の一部として構成してもよい。
暗号設計データ入力部(101)は、より具体的には、各暗号設計パーツの入出力データサイズの設定や繰り返し利用する回数(段数)を設定し、それぞれの設定した暗号設計パーツの関係性を組み合わせる結線情報を設定可能な情報入力インターフェースによって、システム搭載用暗号ロジック変換部(102)の入力となる暗号アルゴリズム構成情報を出力する。本実施の形態では、実施の形態1の場合と異なり、暗号設計パーツの構成の組合せを自由に選択させるのではなく、予め安全性が評価可能な暗号設計パーツの組合せ例をパターンとして用意しておき、暗号設計者はそのパターンの中から設計したい暗号方式の情報を設定する。組合せ例のパターンは有限な構成となるが、暗号設計パーツを何回繰り返し使用するのか、入出力サイズの選択、安全性の確かめられたSBOXや論理演算の組合せ方法などをパラメータ設定させる事で、アルゴリズムの構成を一意に特定できない構成とする事が可能である。
ここで定義する安全性の尺度は、例えばブロック暗号の場合は全数探索法や差分解読法、線形解読法など、ストリーム暗号の場合は長周期性や線形複雑度、相関攻撃などの代表的な解読法の評価指標の事を指す。
Embodiment 2. FIG.
In the present embodiment, another configuration in the case where a function capable of verifying the security of encryption is added will be described below.
FIG. 4 shows a configuration example of the cryptographic module generation apparatus with security verification according to the present embodiment.
In FIG. 4, the cryptographic design data input unit (101) has an information input interface function for inputting cryptographic scheme information to be designed using cryptographic design parts as shown in FIG. The on-board cryptographic logic conversion unit (102) converts the information into information that can uniquely determine the configuration of the cryptographic algorithm and outputs the information. In the present embodiment, the cryptographic design data input unit (101) is configured as a part of the cryptographic module generation apparatus. However, the cryptographic design data input unit (101) is configured as a part of the cryptographic algorithm design apparatus separately from processing related to the cryptographic algorithm design. May be.
More specifically, the cryptographic design data input unit (101) sets the input / output data size of each cryptographic design part and the number of times (number of stages) of repeated use and sets the relationship between the respective cryptographic design parts set. Cryptographic algorithm configuration information that is input to the system-installed cryptographic logic conversion unit (102) is output by an information input interface that can set connection information to be combined. In the present embodiment, unlike the case of the first embodiment, a combination example of cryptographic design parts whose security can be evaluated in advance is prepared as a pattern instead of freely selecting a combination of cryptographic design part configurations. In addition, the encryption designer sets information on the encryption method to be designed from the pattern. The pattern of the combination example has a finite configuration, but by setting the parameters such as how many times the cryptographic design parts are used repeatedly, the input / output size selection, the SBOX that has been confirmed to be secure and the logical operation combination method, It is possible to adopt a configuration in which the algorithm configuration cannot be uniquely specified.
The security measures defined here are, for example, exhaustive search, differential cryptanalysis, linear cryptanalysis, etc. for block ciphers, and typical cryptanalysis, such as long-periodity, linear complexity, and correlation attacks, for stream ciphers. Refers to the legal evaluation index.

図4において、暗号安全性検証部(401)は、暗号設計データ入力部(101)から暗号アルゴリズム構成情報を入力とし、想定される組合せのパターンであるか判定し、かつ、組合せのパターンが満足されているならば、定義した安全性の評価指標を計算し、その安全性の尺度を満足しているかを判定する。安全性の尺度を満足していた場合は、検証した安全性判定結果と暗号アルゴリズム構成情報をシステム搭載用暗号ロジック変換部(102)に出力する。安全性の尺度を満足していない場合は、検証した安全性判定結果を出力し、再度、暗号設計データ入力部(101)で設計したい暗号方式の情報入力から設計を繰り返す。なお、本実施の形態では、暗号安全性検証部(401)を暗号モジュール生成装置の一部として構成したが、暗号アルゴリズムの設計に関連する処理を別にした、暗号アルゴリズム設計装置の一部として構成してもよい。   In FIG. 4, the cryptographic security verification unit (401) receives the cryptographic algorithm configuration information from the cryptographic design data input unit (101), determines whether the combination pattern is assumed, and satisfies the combination pattern. If so, the defined safety evaluation index is calculated to determine whether the safety measure is satisfied. If the safety measure is satisfied, the verified safety determination result and the encryption algorithm configuration information are output to the system-installed encryption logic conversion unit (102). If the safety measure is not satisfied, the verified safety judgment result is output, and the design is repeated again from the information input of the encryption method desired to be designed by the cipher design data input unit (101). In this embodiment, the cryptographic security verification unit (401) is configured as a part of the cryptographic module generation apparatus. However, the cryptographic security verification unit (401) is configured as a part of the cryptographic algorithm design apparatus separately from processing related to the cryptographic algorithm design. May be.

図4において、システム搭載用暗号ロジック変換部(102)は、暗号設計データ入力部(101)から出力される暗号アルゴリズム構成情報と、システム動作環境選定部(103)で選定されたソースコードの情報とを入力とし、その二つの情報より、実際のシステム環境に適した暗号モジュールの生成を行う。
ソースコードの生成方法については、従来技術と同じ手法で行う。従来手法では、暗号モジュールを構成している各暗号設計パーツに対し、それぞれ対応したソースコードを予め保有しておき、暗号モジュールの設計が行われた後に、使用されている暗号設計パーツの構成、順序を基にして、ソースコードを生成しており、本発明でも同様の手法を用いてソースコードの生成を行う。
従来技術と本発明の違いは、実際のシステム環境に適したソースコードがシステム動作環境選定部(103)から提供されることである。
In FIG. 4, the system-installed cryptographic logic conversion unit (102) includes cryptographic algorithm configuration information output from the cryptographic design data input unit (101) and information on the source code selected by the system operating environment selection unit (103). From the two pieces of information, a cryptographic module suitable for the actual system environment is generated.
The source code generation method is the same as the conventional technique. In the conventional method, for each cryptographic design part constituting the cryptographic module, the corresponding source code is held in advance, and after the cryptographic module is designed, the configuration of the cryptographic design part used, Source code is generated based on the order. In the present invention, the source code is generated using the same technique.
The difference between the prior art and the present invention is that source code suitable for the actual system environment is provided from the system operating environment selection unit (103).

図4において、システム動作環境選定部(103)は、設計した暗号アルゴリズムを動作させるシステムの環境情報(動作環境情報)に対応した適切なソースコードの選択を行い、システム搭載用暗号ロジック変換部(102)に出力する。
例えば、全ての暗号設計パーツに対し、(A)多重化対応されたソース、(B)メモリ使用量を抑えたソース、(C)CPU使用量を抑えたソース、が用意されており、実際のシステムでは、使用することが可能なメモリの容量が少なく、動作環境情報として、メモリ使用量の節約が指定されていた場合、用意されている3種類のソースコードのうち、メモリの使用量を抑えた(B)が選択される。
どのソースコードを使用するかの選定は、暗号モジュールの設計で用いられている暗号設計パーツ全てに対し、システム動作環境選定部(103)の指示を反映させても良いし、一部を設計者が暗号設計データ入力部(101)のGUI機能を用いたりして、変更してもよい。
ただし、多重化については、システム動作環境選定部(103)で指示した通りに対応する必要があるため、例えば、暗号設計パーツ毎に処理に必要な時間を予め定義しておき、システム動作環境選定部(103)では、処理時間が特定の時間以上かかる暗号設計パーツのみ、多重化されたソースを選択させることで効率的に、かつ動作環境情報に正しく対応されたソースコード生成が行える。
In FIG. 4, the system operation environment selection unit (103) selects an appropriate source code corresponding to the environment information (operation environment information) of the system that operates the designed encryption algorithm, and the system-installed encryption logic conversion unit ( 102).
For example, for all cryptographic design parts, (A) a source that supports multiplexing, (B) a source that uses less memory, and (C) a source that uses less CPU are available. In the system, if the amount of memory that can be used is small and saving of memory usage is specified as the operating environment information, the memory usage of the three types of prepared source code is suppressed. (B) is selected.
The selection of which source code to use may reflect the instructions of the system operating environment selection section (103) for all the cryptographic design parts used in the cryptographic module design, or a part of the designer May be changed by using the GUI function of the cryptographic design data input unit (101).
However, since it is necessary to cope with multiplexing as instructed by the system operating environment selection unit (103), for example, the time required for processing is defined in advance for each cryptographic design part, and the system operating environment is selected. The unit (103) can generate source code efficiently and correctly corresponding to the operating environment information by selecting the multiplexed source only for the cryptographic design part that takes a specified time or more in processing time.

図4において、暗号処理性能判定部(105)は、システム搭載用暗号ロジック変換部(102)から出力される暗号モジュールが実際のシステム環境上で、要求されている西方(要求性能情報)を満たしているかのシミュレーションを実行することで判定を行う。
要求性能情報の例としては、データブロックに対する暗号化処理の処理速度性能、並行して実行できる同時実行数などがあげられる。
要求性能情報を入力する手段としては、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、要求性能情報をファイルに記載し、暗号処理性能判定部(105)が処理を行う際に読み込ませても良い。
暗号処理性能判定部(105)では、シミュレーションを行うための環境として、例えば、実際のH/W構成モデルをS/W上で模擬するためのエミュレータ環境を用いる。
また、暗号処理性能判定部(105)では、要求性能情報を評価するための、試験用プログラムの生成を行う。例えば、処理速度性能を評価する場合には、暗号モジュールを呼び出す前後で時刻の記録を行い、その差分を繰り返し測定するプログラムを生成し、前述のエミュレータ環境上で実行し、測定を行う。
要求性能を満足していた場合は、測定した処理性能結果と暗号モジュールを、システム搭載用暗号ロジック変換部(102)から暗号モジュール出力部(106)に出力する。要求性能を満足していない場合は、測定した処理性能結果を要求性能条件と共に出力し、再度、暗号設計データ入力部(101)で設計したい暗号方式の情報入力から設計を繰り返す。
In FIG. 4, the cryptographic processing performance determination unit (105) satisfies the requested west (required performance information) in the actual system environment when the cryptographic module output from the system-installed cryptographic logic conversion unit (102) Judgment is performed by executing a simulation of whether or not
Examples of the required performance information include the processing speed performance of the encryption process for the data block, the number of concurrent executions that can be executed in parallel, and the like.
As a means for inputting the required performance information, a GUI function provided by the cryptographic design data input unit (101) may be used, or the required performance information is described in a file and processed by the cryptographic processing performance determination unit (105). It may be read when performing.
In the cryptographic processing performance determination unit (105), for example, an emulator environment for simulating an actual H / W configuration model on S / W is used as an environment for performing simulation.
In addition, the cryptographic processing performance determination unit (105) generates a test program for evaluating the required performance information. For example, when evaluating the processing speed performance, the time is recorded before and after calling the cryptographic module, a program for repeatedly measuring the difference is generated, executed in the above-mentioned emulator environment, and measured.
If the required performance is satisfied, the measured processing performance result and the cryptographic module are output from the system-installed cryptographic logic conversion unit (102) to the cryptographic module output unit (106). If the required performance is not satisfied, the measured processing performance result is output together with the required performance condition, and the design is repeated again from the information input of the cryptographic method desired to be designed by the cryptographic design data input unit (101).

図9は、実施の形態2の処理の流れを説明するフローチャートである。
設計者により、これから設計を行う暗号アルゴリズムが動作する実際のシステムに関する、動作環境情報が暗号モジュール生成装置に入力される(S801)。動作環境情報の例としては、CPU処理性能に関連する制約、メモリ量に関連する制約、多重化処理の対応性などが挙げられる。動作環境情報を入力する手段としては、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、動作環境情報をファイルに記載し、システム搭載用暗号ロジック変換部(102)が処理を行う際に読み込ませても良い。
次に、システムに対する要求性能情報が暗号モジュール生成装置に入力される(S802)。要求性能情報の例としては、一つのデータブロックに対する暗号化処理を完了するまでの制限時間、並行して同時実行できる処理数などがあげられる。要求性能情報の入力には、暗号設計データ入力部(101)で提供されるGUI機能を用いても良いし、要求性能情報をファイルに記載し、暗号処理性能判定部(105)が処理を行う際に読み込ませても良い。
次に、暗号設計データ入力部(101)において、暗号モジュールの設計を行い(S803)、暗号安全性の検証を行う(S901、S805)。暗号安全性の検証を行うには、設計された暗号アルゴリズムが、予め安全性の尺度を満たしている組合せのパターンであるかを判定する。暗号アルゴリズムが、安全性を満たしていなかった場合には、再度暗号モジュールの設計(S803)を行う。
次に、システム搭載用暗号ロジック変換部(102)にて、上記手順で出力された暗号モジュールの構成情報をもとに、ソースコードの生成を行う(S806)。尚、ソースコードは、暗号設計パーツ毎に複数用意されており、システム動作環境選定部(103)がどのソースコードを使用するかの選定を行う。
次にシステム搭載用暗号ロジック変換部(102)がコンパイルを行う(S807)。使用するコンパイラは、実際のシステムに対応したクロスコンパイラを用い、また、その際のコンパイルオプションには、動作環境情報に応じたもの、例えば、メモリ使用量を抑える指定があった場合、メモリ使用量を最小化するようなオプションを設定する。尚、ソースコードの生成(S806)を行った後に、必要に応じで出力されたソースコードに対し、修正を行っても良い。
次に、暗号処理性能判定部(105)で、生成された暗号モジュールが実際のシステム上で動作する際、性能条件を満たしているのかの検証を行う(S808)。
検証の結果、要求性能を満たしているか確認を行い(S809),満たされていない場合は、暗号モジュールの設計(S803)を繰り返し、満たされたら暗号モジュール出力部(106)が暗号モジュールの構成情報を出力する(S810)。
FIG. 9 is a flowchart illustrating the processing flow of the second embodiment.
The designer inputs the operating environment information regarding the actual system on which the cryptographic algorithm to be designed will operate, to the cryptographic module generation device (S801). Examples of the operating environment information include restrictions related to CPU processing performance, restrictions related to the amount of memory, compatibility of multiplexing processing, and the like. As a means for inputting the operating environment information, a GUI function provided by the cryptographic design data input unit (101) may be used, or the operating environment information is described in a file, and the system-installed cryptographic logic converting unit (102). May be read when performing processing.
Next, required performance information for the system is input to the cryptographic module generation device (S802). Examples of the required performance information include a time limit for completing the encryption process for one data block, and the number of processes that can be executed concurrently. The GUI function provided by the cryptographic design data input unit (101) may be used to input the required performance information, or the required performance information is described in a file, and the cryptographic processing performance determination unit (105) performs processing. You may make it read at the time.
Next, the cryptographic design data input unit (101) designs a cryptographic module (S803), and verifies cryptographic security (S901, S805). In order to verify the cryptographic security, it is determined whether the designed cryptographic algorithm is a combination pattern that satisfies a security measure in advance. If the cryptographic algorithm does not satisfy the security, the cryptographic module is designed again (S803).
Next, the system-installed cryptographic logic conversion unit (102) generates source code based on the configuration information of the cryptographic module output in the above procedure (S806). A plurality of source codes are prepared for each cryptographic design part, and the system operating environment selection unit (103) selects which source code is used.
Next, the system-installed cryptographic logic conversion unit (102) compiles (S807). The compiler to be used is a cross compiler that corresponds to the actual system, and the compile options at that time correspond to the operating environment information, for example, if there is a specification to reduce the memory usage, the memory usage Set an option that minimizes. It should be noted that after generating the source code (S806), the source code output may be modified as necessary.
Next, the cryptographic processing performance determination unit (105) verifies whether the generated cryptographic module satisfies the performance condition when operating on the actual system (S808).
As a result of the verification, it is confirmed whether or not the required performance is satisfied (S809). If not, the cryptographic module design (S803) is repeated, and if satisfied, the cryptographic module output unit (106) configures the cryptographic module configuration information. Is output (S810).

次に、図4に示した安全性検証付き暗号モジュール生成装置を用いて暗号設計を行う場合の暗号アルゴリズムの概要を説明する。
図5は、本実施の形態に係る設計された暗号アルゴリズムの一例を示す。
Next, an overview of a cryptographic algorithm when performing cryptographic design using the cryptographic module generating apparatus with security verification shown in FIG. 4 will be described.
FIG. 5 shows an example of a cryptographic algorithm designed according to this embodiment.

図5では、ブロック単位を64ビットとしたブロック暗号アルゴリズムを設計し、暗号化モジュールを生成する例を説明する。
アルゴリズムの全体基本構成として、暗号設計データ入力部(101)で用意された暗号設計パーツの組合せパターンから安全性の検証可能な構成としてn段Feistel型(201)を選択し、その内部Functionにm段変形Feistel型(202)、またその内部Functionにl段変形Feistel型(202)を選択する。最終的なl段変形Feistel型(202)のその内部Functionにはkビット入出力のSBOX(206)を選択する。
FIG. 5 illustrates an example in which a block cipher algorithm with a block unit of 64 bits is designed and an encryption module is generated.
As an overall basic configuration of the algorithm, an n-stage Feistel type (201) is selected as a configuration capable of verifying security from a combination pattern of cryptographic design parts prepared in the cryptographic design data input unit (101), and m is set as its internal Function. A step-deformed Feistel type (202) is selected, and a l-step deformed Feistel type (202) is selected as its internal function. A k-bit input / output SBOX (206) is selected as an internal function of the final l-stage modified Feistel type (202).

まず、全体基本構成のn段Feistel型(201)の情報の設定方法について説明する。例えば、n段Feistel型は8回繰り返しの8段Feistel型(501)とし、入出力は64ビットを設定する。8段Feistel型(501)のFunction(502)は入出力情報32ビットが決定される。また、Function(502)の内部構成としてはm段変形Feistel型が選択されているが、その設定情報として、3段変形Feistel型を選択する。但し、3段変形Feistel型のそれぞれの段の処理前には、入力される鍵と変形Feistel型へ入力される上位16ビット情報との16ビット排他的論理和を挿入し、3段変形Feistel型の処理後にも入力される鍵と変形Feistel型から出力される上位16ビット情報との16ビット排他的論理和を挿入する。 First, an information setting method of the n-stage Feistel type (201) having the entire basic configuration will be described. For example, the n-stage Feistel type is an 8-stage Feistel type (501) that is repeated eight times, and the input / output is set to 64 bits. An 8-stage Feistel type (501) Function (502) determines 32 bits of input / output information. Further, although the m-stage modified Feistel type is selected as the internal configuration of the Function (502), the three-stage modified Feistel type is selected as the setting information. However, before processing each stage of the three-stage modified Feistel type, a 16-bit exclusive OR of the input key and the upper 16-bit information input to the modified Feistel type is inserted, and the three-stage modified Feistel type A 16-bit exclusive OR of the key input after the process of step S1 and the higher-order 16-bit information output from the modified Feistel type is inserted.

また、3段変形Feistel型のFunction(503)は入出力情報16ビットが決定される。また、Function(503)の内部構成としては、再度3段変形Feistel型を選択する。但し、3段変形Feistel型の2段目処理後に入力される鍵と2段目処理後に変形Feistel型から出力される情報との16ビット排他的論理和を挿入する。 In the three-stage modified Feistel function (503), 16 bits of input / output information are determined. In addition, as the internal configuration of the Function (503), the three-stage modified Feistel type is selected again. However, a 16-bit exclusive OR of a key input after the second stage processing of the three-stage modified Feistel type and information output from the modified Feistel type after the second stage processing is inserted.

最後に3段変形Feistel型のFunction(504)は何も設定しなければ入出力情報8ビットが決定されるが、今回の場合は非均等変形Feistel型を選択し、9ビットと7ビットに分割するように設定する。従って、1段目と3段目の変形Feistel型のFunctionは入出力情報9ビットとし、2段目の変形Feistel型のFunctionは入出力情報7ビットとする。9ビット入出力のFunctionの内部構成としては、9ビット入出力のSBOX(504a)を選択する。SBOXが選択されると、情報量9ビット毎のSBOXテーブル情報(512エントリ)の定義を実施する。7ビット入出力のFunctionの内部構成としては、7ビット入出力のSBOX(504b)を選択する。SBOXが選択されると、情報量7ビット毎のSBOXテーブル情報(128エントリ)の定義を実施する。なお、9ビット入出力のSBOXが2個(504a、505)とも同じ情報を設定している場合としているが、設定によっては2個異なるSBOXテーブル情報を定義する事も可能である。
なお、SBOXテーブル情報の定義方法に関しては、差分解読法や線形解読法への安全性評価が可能な構成を選択する。安全性評価が可能な構成としては、一般に数学的に安全性が証明可能な構成として暗号アルゴリズムMISTYやHierocryptが知られており、本実施の形態の構成としてもMISTYのようなガロア体上の演算によって構成されるSBOXの構成を採用する。
Finally, if the 3-stage modified Feistel function (504) is not set, the 8-bit input / output information is determined. In this case, the non-uniform modified Feistel type is selected and divided into 9 bits and 7 bits. Set to Therefore, the first and third modified Feistel functions are 9 bits of input / output information, and the second modified Feistel function is 7 bits of input / output information. As the internal configuration of the 9-bit input / output function, the 9-bit input / output SBOX (504a) is selected. When SBOX is selected, SBOX table information (512 entries) is defined for every 9 bits of information. A 7-bit input / output SBOX (504b) is selected as the internal configuration of the 7-bit input / output function. When SBOX is selected, definition of SBOX table information (128 entries) for every 7 bits of information amount is performed. Although the same information is set for two 9-bit input / output SBOXs (504a, 505), two different SBOX table information can be defined depending on the setting.
As a method for defining the SBOX table information, a configuration capable of safety evaluation for differential cryptanalysis and linear cryptanalysis is selected. As a configuration capable of safety evaluation, cryptographic algorithms MISTY and Hiercrypt are generally known as configurations that can be mathematically proved in safety. As a configuration of this embodiment, an operation on a Galois field such as MISTY is also known. The SBOX configuration constituted by is adopted.

以上のように設定する事により、64ビット入出力のブロック暗号アルゴリズムにおけるデータランダマイズ部の構成を決定する事が出来る。本説明では一般的なブロック暗号アルゴリズムで定義される鍵スケジュール部までは説明しないが、上記のデータランダマイズ部の設定方法と同様の方法で設定可能である。 By setting as described above, the configuration of the data randomizing unit in the 64-bit input / output block cipher algorithm can be determined. In this description, the key schedule part defined by a general block cipher algorithm is not described, but it can be set by a method similar to the setting method of the data randomization part.

上記のように暗号設計データ入力部(101)にて設定した暗号設計情報から、暗号安全性検証部(107)にて、設計された暗号アルゴリズムの安全性検証を行う。安全性検証部では、予め用意されている暗号設計パーツの組合せパターン毎に設定されている安全性評価指標の計算方法によって、安全性検証を行う。本実施の形態では、64ビット入出力のブロック暗号アルゴリズムの安全性評価である事から、全数探索法や差分解読法、線形解読法に関する安全性検証を実施する事が可能である。図5で示した構成は、数学的に安全性が証明可能な構成として暗号アルゴリズムMISTYを簡易な構成に変換したものであり、差分解読法、線形解読法に対しての評価は同様に可能である。差分解読法の安全性評価指標である最大平均差分確率は2-56、線形解読法の安全性評価指標である最大平均線形確率は2-56となる。 From the cryptographic design information set by the cryptographic design data input unit (101) as described above, the cryptographic security verification unit (107) verifies the security of the designed cryptographic algorithm. The security verification unit performs security verification by a calculation method of a security evaluation index set for each combination pattern of cryptographic design parts prepared in advance. In the present embodiment, since it is a safety evaluation of a 64-bit input / output block cipher algorithm, it is possible to carry out a security verification regarding an exhaustive search method, a differential cryptanalysis method, and a linear cryptanalysis method. The configuration shown in FIG. 5 is obtained by converting the cryptographic algorithm MISTY into a simple configuration as a configuration that can be mathematically proved to be safe, and can be similarly evaluated for differential cryptanalysis and linear cryptanalysis. is there. The maximum average differential probability that is the safety evaluation index of the differential cryptanalysis is 2-56 , and the maximum average linear probability that is the safety evaluation index of the linear cryptanalysis is 2-56 .

上記のように暗号安全性検証部(107)にて安全性検証が行われた暗号設計情報を、システム搭載用暗号ロジック変換部(102)にて、実行可能な暗号化プログラムに変換する。暗号設計情報によって、予め用意されている暗号設計パーツに対応した関数コールを呼び出し、暗号設計情報の設定ビット情報やSBOXテーブル情報やビット置換の置換情報を設定する事で、暗号化プログラムへの変換を行う。その際に、選択された暗号設計パーツにFunction機能が定義されている場合は、そのFunctionに対応する関数コールを再帰的に呼び出す機能も予め設定されている。 The cryptographic design information verified by the cryptographic security verification unit (107) as described above is converted into an executable encryption program by the system-installed cryptographic logic conversion unit (102). Conversion to an encryption program by calling a function call corresponding to the encryption design part prepared in advance using the encryption design information and setting the set bit information, SBOX table information, and bit replacement replacement information of the encryption design information I do. At this time, when a function function is defined in the selected cryptographic design part, a function for recursively calling a function call corresponding to the function is also set in advance.

次に、変換された暗号化プログラムを用いて、システム動作環境入力部(103)から設定された、システムで使用するCPUの型名やクロック周波数、利用可能なメモリ(ROM、RAM)サイズ、利用条件を考慮したモジュール構成をコンパイルの条件として、暗号モジュールの生成を行う。
なお、本実施の形態では、暗号設計データ入力部(101)にて設定可能な暗号設計情報の組合せ数は、実施の形態1と比較した場合は限定されるが、全体基本構成のFeistel型の段数や入出力サイズ、その内部Functionの変形Feistel型の段数や入出力サイズ、そのまた内部Functionの変形Feistel型の段数や入出力サイズ、その内部のSBOXテーブル情報の選択候補数等、非常に多くの変動可能なパラメータが存在する。暗号設計データ入力部(101)で用意された暗号設計パーツの組合せパターンも、本実施の形態のMISTYの構成以外にも、Feistel型、変形Feistel型、SPN型をそれぞれ組み合わせて構成する事が可能であり、非常に膨大な数となり、暗号設計者が暗号アルゴリズム設計装置、及び、暗号モジュール自動生成装置を利用して設計した暗号アルゴリズムを一意に特定する事は困難である。
また、暗号設計者が暗号アルゴリズム設計装置、及び、暗号モジュール自動生成装置を利用して暗号モジュールまで生成可能な事から、一般のシステム利用者は暗号アルゴリズムの詳細を知る必要なく、暗号モジュールをブラックボックスで利用する事が出来る。これは、容易な暗号アルゴリズムの解析を防ぐ予防策となる事から、システムの安全性向上に繋がるといった効果も得られる。
Next, using the converted encryption program, the CPU model name and clock frequency used in the system, available memory (ROM, RAM) size, and usage set from the system operating environment input unit (103) A cryptographic module is generated using a module configuration that takes the conditions into account as a compilation condition.
In the present embodiment, the number of combinations of cryptographic design information that can be set in the cryptographic design data input unit (101) is limited when compared with the first embodiment, but the Feistel type of the overall basic configuration is limited. The number of stages and input / output sizes, the number of stages and input / output sizes of the modified Feistel type of the internal function, the number of stages and input / output sizes of the modified Feistel type of the internal function, and the number of selection candidates for the SBOX table information inside it There are variable parameters. The combination pattern of the cryptographic design parts prepared in the cryptographic design data input unit (101) can also be configured by combining Feistel type, modified Feistel type, and SPN type in addition to the MISTY configuration of this embodiment. Therefore, it is difficult to uniquely identify a cryptographic algorithm designed by a cryptographic designer using a cryptographic algorithm design device and a cryptographic module automatic generation device.
In addition, since a cryptographic designer can generate a cryptographic module using a cryptographic algorithm design device and a cryptographic module automatic generation device, a general system user does not need to know the details of the cryptographic algorithm and blackens the cryptographic module. Can be used in a box. Since this is a preventive measure that prevents easy analysis of the cryptographic algorithm, an effect of improving the security of the system can be obtained.

実施の形態3.
本実施の形態では、使用する秘密鍵データサイズや入力データサイズを変換する事を可能な機能を付加した場合の別の構成を以下に示す。
図6は、本実施の形態に係る秘密鍵サイズ及び入力データサイズ変換可能な暗号モジュール生成装置の構成例を示し、図10は、本実施の形態の処理の流れを示すフローチャートである。
図6において、図1で示す実施の形態1に、暗号設計データ入力部(101)にて設定した暗号設計情報に、秘密鍵データ情報変換部(601)と入力データ情報変換部(602)にて、暗号モジュールのインターフェースとして、異なる入力情報から内部の暗号アルゴリズムで使用する秘密鍵データ、入力データに変換する機能を付加する。
図6の暗号設計データ入力部(101)、システム搭載用暗号ロジック変換部(102)、システム動作環境選定部(103)、暗号処理性能判定部(105)、及び暗号モジュール出力部(106)は図1と同じである。なお、本実施の形態では、暗号設計データ入力部(101)、秘密鍵データ情報変換部(601)と入力データ情報変換部(602)を暗号モジュール生成装置の一部として構成したが、暗号アルゴリズムの設計に関連する処理を別にした、暗号アルゴリズム設計装置の一部として構成してもよい。
Embodiment 3 FIG.
In the present embodiment, another configuration when a function capable of converting the secret key data size to be used and the input data size is added is shown below.
FIG. 6 shows a configuration example of a cryptographic module generation apparatus capable of converting the secret key size and the input data size according to the present embodiment, and FIG. 10 is a flowchart showing a processing flow of the present embodiment.
In FIG. 6, the encryption design information set in the encryption design data input unit (101) in the first embodiment shown in FIG. 1 is added to the secret key data information conversion unit (601) and the input data information conversion unit (602). Thus, as a cryptographic module interface, a function of converting different input information into secret key data and input data used in the internal cryptographic algorithm is added.
The cryptographic design data input unit (101), system-installed cryptographic logic conversion unit (102), system operating environment selection unit (103), cryptographic processing performance determination unit (105), and cryptographic module output unit (106) in FIG. The same as FIG. In this embodiment, the cryptographic design data input unit (101), the secret key data information conversion unit (601), and the input data information conversion unit (602) are configured as a part of the cryptographic module generation device. You may comprise as a part of encryption algorithm design apparatus except the process relevant to design of this.

図6において、秘密鍵データ情報変換部(601)は、暗号設計データ入力部(101)にて設定した暗号設計情報を入力とし、内部の暗号アルゴリズムで使用される秘密鍵データサイズ(nビット)を判別し、暗号モジュールのインターフェース部分に開示される秘密鍵データサイズ(mビット)を設定する。また、暗号モジュールのインターフェースから入力されるmビットの秘密鍵データから内部の暗号アルゴリズムで使用されるnビットの秘密鍵データに変換する方式を設定し、システム搭載用暗号ロジック変換部(102)に出力する。
nおよびmの値は、暗号設計データ入力部(101)を用いて、例えば、設計者が入力を行う。また、変換する方式も、暗号設計データ入力部(101)を用いて、設計者が入力を行ってもよいし、予め幾つか用意されている方式の中から設計者が選択してもよい。
mビットデータからnビットデータへの変換方法としては、例えば、図12に示すように、mビットデータ(1210)の上位nビットデータ(1220)を有効にする等の非常に簡易な方法として左端からnビット分のみ有効にする方法から、図13に示すように、mビットデータ(1310)からnビットの情報を1ビット毎に選択する選択情報テーブル(1300)を定義(nビットデータ上で何番目のビット(1301a)とそれがmビットデータ上で何番目のビット(1301b)を示す)して、その情報テーブル(1300)を基にnビットデータ(1320)へ変換を行う等の方法がある。
In FIG. 6, a secret key data information conversion unit (601) receives the cipher design information set by the cipher design data input unit (101), and uses the cipher key data size (n bits) used in the internal cipher algorithm. And the secret key data size (m bits) disclosed in the interface part of the cryptographic module is set. Also, a method for converting m-bit secret key data input from the interface of the cryptographic module into n-bit secret key data used in the internal encryption algorithm is set, and the system-installed cryptographic logic conversion unit (102) is set. Output.
For example, the designer inputs the values of n and m using the cryptographic design data input unit (101). The conversion method may be input by the designer using the cryptographic design data input unit (101), or the designer may select from several methods prepared in advance.
As a conversion method from m-bit data to n-bit data, for example, as shown in FIG. 12, the left end is a very simple method such as enabling upper n-bit data (1220) of m-bit data (1210). As shown in FIG. 13, a selection information table (1300) for selecting n-bit information from the m-bit data (1310) for each bit is defined (on n-bit data). A number of bits (1301a) and the number of bits (1301b) on m-bit data), and conversion to n-bit data (1320) based on the information table (1300) There is.

図6において、入力データ情報変換部(602)は、暗号設計データ入力部(101)にて設定した暗号設計情報を入力とし、内部の暗号アルゴリズムで使用される初期値データサイズ(nビット)を判別し、暗号モジュールのインターフェース部分に開示される初期値データサイズ(mビット)を設定する。また、暗号モジュールのインターフェースから入力されるmビットの初期値データから内部の暗号アルゴリズムで使用されるnビットの初期値データに変換する方式および、内部の暗号アルゴリズムで使用されるnビットの出力データから暗号モジュールのインターフェースから出力されるmビットの出力データを設定し、システム搭載用暗号ロジック変換部(102)に出力する。
nおよびmの値は、秘密鍵データ情報変換部(601)と同じく、暗号設計データ入力部(101)を用いて、例えば、設計者が入力を行う。また、変換する方式も、暗号設計データ入力部(101)を用いて、設計者が入力を行ってもよいし、予め幾つか用意されている方式の中から設計者が選択してもよい。
mビットデータからnビットデータへの変換方法としては、秘密鍵データ情報変換部(601)と同様に、例えば、mビットデータの上位nビットデータを有効にする等の非常に簡易な方法から、mビットからnビットの情報を1ビット毎に選択する選択情報テーブルを定義して、その情報テーブルを基に変換を行う等の方法がある。
nビットデータからmビットデータへの変換方法としては、前記mビットデータからnビットデータへの変換方法の逆を行い、入力時に削除されたビットに対応する部分には、乱数を埋めていく方法がある。
図10を用いて、本実施の形態の処理の流れを説明する。基本的には、実施の形態1での説明に処理フローの説明に用いた、図8と同じであり、例えば、設計者により、暗号モジュールのインターフェースとして公開する秘密鍵のデータサイズ(mビット)と内部の暗号アルゴリズムで使用される秘密鍵のデータサイズ(nビット)が暗号設計データ入力部(101)に設定される(S1001)と、次に、同じく暗号モジュールのインターフェースとして公開する入力データおよび初期値データ、出力データサイズ(mビット)と内部の暗号アルゴリズムで使用される入力データおよび初期値データ、出力データのデータサイズ(nビット)が暗号設計データ入力部(101)に設定される(S1002)が新たに加えられている。なお、本実施の形態では、秘密鍵データ情報変換部(601)が扱うデータと、入力データ情報変換部(602)が扱うデータのサイズを、同じmビット、nビットとしたが、違う数値でもよい。
従来では、暗号モジュールのインターフェース部分に開示される初期値データサイズおよび暗号鍵データサイズが、内部の暗号アルゴリズムに用いられているものと同じであったため、攻撃者はこれを暗号解析のための手掛かりにすることができていたが、本実施の形態で説明したように、秘密鍵データ情報変換部、入力データ情報変換部を有することで、暗号モジュールのインターフェースとして公開されるデータ長を内部の暗号アルゴリズムに用いられているデータ長と違う値にすることで、暗号モジュールの暗号安全性を向上させることが可能である。
In FIG. 6, an input data information conversion unit (602) receives the cryptographic design information set by the cryptographic design data input unit (101) as an input, and sets an initial value data size (n bits) used in the internal cryptographic algorithm. The initial value data size (m bits) disclosed in the interface portion of the cryptographic module is determined. Also, a method for converting m-bit initial value data input from the cryptographic module interface into n-bit initial value data used in the internal cryptographic algorithm, and n-bit output data used in the internal cryptographic algorithm The m-bit output data output from the interface of the encryption module is set and output to the system-installed encryption logic conversion unit (102).
The values of n and m are input by, for example, a designer using the cryptographic design data input unit (101) as in the secret key data information conversion unit (601). The conversion method may be input by the designer using the cryptographic design data input unit (101), or the designer may select from several methods prepared in advance.
As a conversion method from m-bit data to n-bit data, in the same manner as the secret key data information conversion unit (601), for example, from a very simple method such as enabling upper n-bit data of m-bit data, There is a method of defining a selection information table for selecting information from m bits to n bits for each bit and performing conversion based on the information table.
As a conversion method from n-bit data to m-bit data, a method of reversing the conversion method from m-bit data to n-bit data and filling a portion corresponding to a bit deleted at the time of input with a random number There is.
The processing flow of the present embodiment will be described with reference to FIG. Basically, it is the same as FIG. 8 used in the description of the processing flow in the description of the first embodiment. For example, the data size (m bits) of the secret key disclosed as the interface of the cryptographic module by the designer When the data size (n bits) of the secret key used in the internal encryption algorithm is set in the encryption design data input unit (101) (S1001), Initial value data, output data size (m bits), input data used in an internal encryption algorithm, initial value data, and data size of output data (n bits) are set in the encryption design data input unit (101) ( S1002) is newly added. In this embodiment, the data handled by the secret key data information conversion unit (601) and the data handled by the input data information conversion unit (602) are the same m bits and n bits. Good.
Conventionally, the initial value data size and the encryption key data size disclosed in the interface part of the cryptographic module are the same as those used for the internal cryptographic algorithm. However, as described in the present embodiment, by having the secret key data information conversion unit and the input data information conversion unit, the data length disclosed as the interface of the cryptographic module is changed to the internal encryption. By making the value different from the data length used in the algorithm, it is possible to improve the cryptographic security of the cryptographic module.

実施の形態4.
本実施の形態では、実施の形態3と同様に、使用する秘密鍵データサイズや入力データサイズを変換する事を可能な機能を付加した場合の別の構成を以下に示す。
図7は、本実施の形態に係る秘密鍵サイズ及び入力データサイズ変換可能な安全性検証付き暗号モジュール生成装置の構成例を示し、図11は、本実施の形態の流れを示すフローチャートである。
図7において、図4で示す実施の形態2に、暗号設計データ入力部(101)にて設定した暗号設計情報に、実施の形態3での説明に用いた、図6の秘密鍵データ情報変換部(601)と入力データ情報変換部(602)にて、暗号モジュールのインターフェースとして、異なる入力情報から内部の暗号アルゴリズムで使用する秘密鍵データ、入力データに変換する機能を付加する。
図7の暗号設計データ入力部(101)、暗号安全性検証部(401)、システム搭載用暗号ロジック変換部(102)、システム動作環境選定部(103)、暗号処理性能判定部(105)及び暗号モジュール出力部(106)は図4と同じである。なお、本実施の形態では、暗号設計データ入力部(101)、暗号安全性検証部(401)、秘密鍵データ情報変換部(601)と入力データ情報変換部(602)を暗号モジュール生成装置の一部として構成したが、暗号アルゴリズムの設計に関連する処理を別にした、暗号アルゴリズム設計装置の一部として構成してもよい。
Embodiment 4 FIG.
In the present embodiment, as in the third embodiment, another configuration when a function capable of converting the secret key data size to be used and the input data size is added will be described below.
FIG. 7 shows a configuration example of a cryptographic module generating apparatus with security verification capable of converting the secret key size and the input data size according to the present embodiment, and FIG. 11 is a flowchart showing the flow of the present embodiment.
7, the secret key data information conversion of FIG. 6 used for the description in the third embodiment is applied to the cryptographic design information set in the cryptographic design data input unit (101) in the second embodiment shown in FIG. The function (601) and the input data information conversion unit (602) add a function of converting different input information into secret key data and input data used in the internal encryption algorithm as an interface of the encryption module.
The cryptographic design data input unit (101), cryptographic security verification unit (401), system-installed cryptographic logic conversion unit (102), system operating environment selection unit (103), cryptographic processing performance determination unit (105), and The cryptographic module output unit (106) is the same as in FIG. In this embodiment, the cryptographic design data input unit (101), the cryptographic security verification unit (401), the secret key data information conversion unit (601), and the input data information conversion unit (602) are included in the cryptographic module generation device. Although it is configured as a part, it may be configured as a part of a cryptographic algorithm design apparatus separately from processing related to the design of the cryptographic algorithm.

図7において、秘密鍵データ情報変換部(601)は、暗号設計データ入力部(101)にて設定した暗号設計情報を入力とし、内部の暗号アルゴリズムで使用される秘密鍵データサイズ(nビット)を判別し、暗号モジュールのインターフェース部分に開示される秘密鍵データサイズ(mビット)を設定する。また、暗号モジュールのインターフェースから入力されるmビットの秘密鍵データから内部の暗号アルゴリズムで使用されるnビットの秘密鍵データに変換する方式を設定し、暗号安全性検証部(107)に出力する。
nおよびmの値は、暗号設計データ入力部(101)を用いて、例えば、設計者が入力を行う。また、変換する方式も、暗号設計データ入力部(101)を用いて、設計者が入力を行ってもよいし、予め幾つか用意されている方式の中から設計者が選択してもよい。
mビットデータからnビットデータへの変換方法としては、実施の形態3と同様、例えば、図12に示すように、mビットデータ(1210)の上位nビットデータ(1220)を有効にする等の非常に簡易な方法として左端からnビット分のみ有効にする方法から、図13に示すように、mビットデータ(1310)からnビットの情報を1ビット毎に選択する選択情報テーブル(1300)を定義(nビットデータ上で何番目のビット(1301a)とそれがmビットデータ上で何番目のビット(1301b)を示す)して、その情報テーブル(1300)を基にnビットデータ(1320)へ変換を行う等の方法がある。
In FIG. 7, the secret key data information conversion unit (601) receives the cipher design information set by the cipher design data input unit (101), and uses the cipher key data size (n bits) used in the internal cipher algorithm. And the secret key data size (m bits) disclosed in the interface part of the cryptographic module is set. Also, a method for converting the m-bit secret key data input from the cryptographic module interface into the n-bit secret key data used in the internal encryption algorithm is set and output to the cryptographic security verification unit (107). .
For example, the designer inputs the values of n and m using the cryptographic design data input unit (101). The conversion method may be input by the designer using the cryptographic design data input unit (101), or the designer may select from several methods prepared in advance.
As a conversion method from m-bit data to n-bit data, as shown in FIG. 12, for example, as shown in FIG. 12, the upper n-bit data (1220) of m-bit data (1210) is validated. From a method of enabling only n bits from the left end as a very simple method, as shown in FIG. 13, a selection information table (1300) for selecting n-bit information from m-bit data (1310) for each bit is created. Definition (number bit (1301a) on n-bit data and number bit (1301b) on m-bit data) and n-bit data (1320) based on the information table (1300) There is a method such as converting to.

図7において、入力データ情報変換部(602)は、暗号設計データ入力部(101)にて設定した暗号設計情報を入力とし、内部の暗号アルゴリズムで使用される初期値データサイズ(nビット)を判別し、暗号モジュールのインターフェース部分に開示される初期値データサイズ(mビット)を設定する。また、暗号モジュールのインターフェースから入力されるmビットの初期値データから内部の暗号アルゴリズムで使用されるnビットの初期値データに変換する方式および、内部の暗号アルゴリズムで使用されるnビットの出力データから暗号モジュールのインターフェースから出力されるmビットの出力データを設定し、暗号安全性検証部(401)に出力する。
nおよびmの値は、秘密鍵データ情報変換部(601)と同じく、暗号設計データ入力部(101)を用いて、例えば、設計者が入力を行う。また、変換する方式も、暗号設計データ入力部(101)を用いて、設計者が入力を行ってもよいし、予め幾つか用意されている方式の中から設計者が選択してもよい。
mビットデータからnビットデータへの変換方法としては、秘密鍵データ情報変換部(601)と同様に、例えば、mビットデータの上位nビットデータを有効にする等の非常に簡易な方法から、mビットからnビットの情報を1ビット毎に選択する選択情報テーブルを定義して、その情報テーブルを基に変換を行う等の方法がある。
nビットデータからmビットデータへの変換方法としては、前記mビットデータからnビットデータへの変換方法の逆を行い、入力時に削除されたビットに対応する部分には、乱数を埋めていく方法がある。
図11を用いて、本実施の形態の処理の流れを説明する。基本的には、実施の形態2での説明に処理フローの説明に用いた、図9と同じであり、例えば、設計者により、暗号モジュールのインターフェースとして公開する秘密鍵のデータサイズ(mビット)と内部の暗号アルゴリズムで使用される秘密鍵のデータサイズ(nビット)が暗号設計データ入力部(101)に設定される(S1001)と、次に、同じく暗号モジュールのインターフェースとして公開する入力データおよび初期値データ、出力データサイズ(mビット)と内部の暗号アルゴリズムで使用される入力データおよび初期値データ、出力データのデータサイズ(nビット)が暗号設計データ入力部(101)に設定される(S1002)が新たに加えられている。なお、本実施の形態では、秘密鍵データ情報変換部(601)が扱うデータと、入力データ情報変換部(602)が扱うデータのサイズを、同じmビット、nビットとしたが、違う数値でもよい。
従来では、暗号モジュールのインターフェース部分に開示される初期値データサイズおよび暗号鍵データサイズが、内部の暗号アルゴリズムに用いられているものと同じであったため、攻撃者はこれを暗号解析のための手掛かりにすることができていたが、本実施の形態で説明したように、秘密鍵データ情報変換部、入力データ情報変換部を有することで、暗号モジュールのインターフェースとして公開されるデータ長を内部の暗号アルゴリズムに用いられているデータ長と違う値にすることで、暗号モジュールの暗号安全性を向上させることが可能である。
また、暗号の安全性を検証可能な機能を付加する事で、暗号の設計技術に精通していないユーザも利用可能な安全性検証付き暗号モジュール生成装置を構築する事が可能である。
In FIG. 7, the input data information conversion unit (602) receives the cryptographic design information set by the cryptographic design data input unit (101) as an input, and sets the initial value data size (n bits) used in the internal cryptographic algorithm. The initial value data size (m bits) disclosed in the interface portion of the cryptographic module is determined. Also, a method for converting m-bit initial value data input from the cryptographic module interface into n-bit initial value data used in the internal cryptographic algorithm, and n-bit output data used in the internal cryptographic algorithm The m-bit output data output from the cryptographic module interface is set and output to the cryptographic security verification unit (401).
The values of n and m are input by, for example, a designer using the cryptographic design data input unit (101) as in the secret key data information conversion unit (601). The conversion method may be input by the designer using the cryptographic design data input unit (101), or the designer may select from several methods prepared in advance.
As a conversion method from m-bit data to n-bit data, in the same manner as the secret key data information conversion unit (601), for example, from a very simple method such as enabling upper n-bit data of m-bit data, There is a method of defining a selection information table for selecting information from m bits to n bits for each bit and performing conversion based on the information table.
As a conversion method from n-bit data to m-bit data, a method of reversing the conversion method from m-bit data to n-bit data and filling a portion corresponding to a bit deleted at the time of input with a random number There is.
The processing flow of this embodiment will be described with reference to FIG. Basically, it is the same as FIG. 9 used in the description of the processing flow in the description of the second embodiment. For example, the data size (m bits) of the secret key disclosed as an interface of the cryptographic module by the designer When the data size (n bits) of the secret key used in the internal encryption algorithm is set in the encryption design data input unit (101) (S1001), Initial value data, output data size (m bits), input data used in an internal encryption algorithm, initial value data, and data size of output data (n bits) are set in the encryption design data input unit (101) ( S1002) is newly added. In this embodiment, the data handled by the secret key data information conversion unit (601) and the data handled by the input data information conversion unit (602) are the same m bits and n bits. Good.
Conventionally, the initial value data size and the encryption key data size disclosed in the interface part of the cryptographic module are the same as those used for the internal cryptographic algorithm. However, as described in the present embodiment, by having the secret key data information conversion unit and the input data information conversion unit, the data length disclosed as the interface of the cryptographic module is changed to the internal encryption. By making the value different from the data length used in the algorithm, it is possible to improve the cryptographic security of the cryptographic module.
In addition, by adding a function capable of verifying the security of encryption, it is possible to construct a cryptographic module generation apparatus with safety verification that can be used even by users who are not familiar with encryption design technology.

Claims (3)

暗号化機能を用いて設計されるシステムにおける暗号化処理の要求性能情報に基づいて、前記システムで利用する暗号アルゴリズムの設計情報を入力する暗号設計データ入力部と、前記システムの動作環境情報に基づいて、ソースコードを選定するシステム動作環境選定部と、
前記暗号設計データ入力部によって入力された前記設計情報に基づいて、前記システム動作環境選定部により選定されたソースコードを暗号モジュールに変換するシステム搭載用暗号ロジック変換部と、
前記システム搭載用暗号ロジック変換部により変換された暗号モジュールを搭載するシステムの暗号処理性能のシステム要求条件を前記暗号モジュールが満足するか否かを判定する暗号処理性能判定部と、
前記暗号処理性能判定部によりシステム要求条件を満足すると判定された場合、前記暗号モジュールを出力する暗号モジュール出力部とを有することを特徴とする暗号モジュール生成装置。
Based on required performance information of encryption processing in a system designed using an encryption function, an encryption design data input unit for inputting design information of an encryption algorithm used in the system, and based on operating environment information of the system System operating environment selection section for selecting source code,
Based on the design information input by the cryptographic design data input unit, a system-installed cryptographic logic conversion unit that converts the source code selected by the system operating environment selection unit into a cryptographic module;
A cryptographic processing performance determination unit that determines whether or not the cryptographic module satisfies a system requirement condition of cryptographic processing performance of a system in which the cryptographic module converted by the system mounting cryptographic logic conversion unit is mounted;
And a cryptographic module output unit configured to output the cryptographic module when the cryptographic processing performance determination unit determines that the system requirement is satisfied.
前記設計情報の暗号の安全性を評価する暗号安全性解析部を有すると共に、
前記システム搭載用暗号ロジック変換部は、前記暗号安全性解析部による安全性評価結果と、前記設計情報とに基づいて、前記システム動作環境選定部で選定されたソースコードを、前記暗号モジュールに変換することを特徴とする請求項1記載の暗号モジュール生成装置。
Having a cryptographic security analysis unit for evaluating the cryptographic security of the design information,
The system-installed cryptographic logic conversion unit converts the source code selected by the system operating environment selection unit into the cryptographic module based on the security evaluation result by the cryptographic security analysis unit and the design information. The cryptographic module generation apparatus according to claim 1, wherein:
前記暗号モジュールに入力される秘密鍵データを内部の前記暗号アルゴリズムで使用される秘密鍵データに変換する秘密鍵データ情報変換部と、
前記暗号モジュールに入力される入力データおよび初期値データを内部の前記暗号アルゴリズムで入力されるデータに変換し、かつ、内部の前記暗号アルゴリズムから出力される出力データを、前記暗号化モジュールから出力する出力データに変換する入力データ情報変換部とを有すると共に、
前記システム搭載用暗号ロジック変換部は、前記設計情報と、前記秘密鍵データ情報変換部及び前記入力データ情報変換部で変換されたデータとに基づいて、前記システム動作環境選定部で選定されたソースコードを前記暗号モジュールに変換することを特徴とする請求項1記載の暗号モジュール生成装置。
A secret key data information conversion unit for converting secret key data input to the cryptographic module into secret key data used in the internal cryptographic algorithm;
Input data and initial value data input to the encryption module are converted into data input by the internal encryption algorithm, and output data output from the internal encryption algorithm is output from the encryption module And having an input data information conversion unit for converting to output data,
The system-installed cryptographic logic conversion unit is a source selected by the system operating environment selection unit based on the design information and the data converted by the secret key data information conversion unit and the input data information conversion unit. The cryptographic module generation apparatus according to claim 1, wherein the code is converted into the cryptographic module.
JP2013119529A 2013-06-06 2013-06-06 Cryptographic module generator Active JP6011465B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013119529A JP6011465B2 (en) 2013-06-06 2013-06-06 Cryptographic module generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013119529A JP6011465B2 (en) 2013-06-06 2013-06-06 Cryptographic module generator

Publications (2)

Publication Number Publication Date
JP2014238631A true JP2014238631A (en) 2014-12-18
JP6011465B2 JP6011465B2 (en) 2016-10-19

Family

ID=52135766

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013119529A Active JP6011465B2 (en) 2013-06-06 2013-06-06 Cryptographic module generator

Country Status (1)

Country Link
JP (1) JP6011465B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020137606A1 (en) * 2018-12-26 2020-07-02 ソニーセミコンダクタソリューションズ株式会社 Semiconductor device and electronic apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031586A (en) * 1996-07-15 1998-02-03 Nec Corp Program generation device
JPH10149280A (en) * 1996-09-17 1998-06-02 Toshiba Corp Device and method for program composition
JP2000056678A (en) * 1998-06-02 2000-02-25 Nippon Telegr & Teleph Corp <Ntt> Random characteristic evaluation apparatus and evaluation method of function, random function formation apparatus and method and recording medium recording program for executing these methods
JP2001282102A (en) * 2000-01-26 2001-10-12 Fujitsu Ltd Cipher designing device, cipher designing program and recording medium
JP2006285582A (en) * 2005-03-31 2006-10-19 Canon Inc Program code generating device, program code generating method, and computer program
JP2010166402A (en) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp Encryption processing apparatus, encryption processing method, and encryption processing program

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031586A (en) * 1996-07-15 1998-02-03 Nec Corp Program generation device
JPH10149280A (en) * 1996-09-17 1998-06-02 Toshiba Corp Device and method for program composition
JP2000056678A (en) * 1998-06-02 2000-02-25 Nippon Telegr & Teleph Corp <Ntt> Random characteristic evaluation apparatus and evaluation method of function, random function formation apparatus and method and recording medium recording program for executing these methods
JP2001282102A (en) * 2000-01-26 2001-10-12 Fujitsu Ltd Cipher designing device, cipher designing program and recording medium
JP2006285582A (en) * 2005-03-31 2006-10-19 Canon Inc Program code generating device, program code generating method, and computer program
JP2010166402A (en) * 2009-01-16 2010-07-29 Mitsubishi Electric Corp Encryption processing apparatus, encryption processing method, and encryption processing program

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020137606A1 (en) * 2018-12-26 2020-07-02 ソニーセミコンダクタソリューションズ株式会社 Semiconductor device and electronic apparatus

Also Published As

Publication number Publication date
JP6011465B2 (en) 2016-10-19

Similar Documents

Publication Publication Date Title
KR101364192B1 (en) Encryption processing device, method for building encryption process algorithm, encryption processing method, and computer program
RU2383934C2 (en) Cryptographic processing device, cryptographic processing method
US9363074B2 (en) Encryption processing apparatus, encryption processing method, and computer program
JP5711681B2 (en) Cryptographic processing device
JP5682525B2 (en) Cryptographic processing apparatus, cryptographic processing method, and program
JP5268609B2 (en) Cryptographic processing apparatus and calculation method
JP2001324924A (en) Device and method for ciphering, device and method for deciphering, and arithmetic operation device
RU2603550C2 (en) Data processing device, data processing method, and program
JP6135804B1 (en) Information processing apparatus, information processing method, and program
JP2008058829A (en) Encryption processor, encryption processing method, and computer program
JP2007199156A (en) Encryption processing device, equipment and method for manufacturing encryption processing device, and computer program
Weerasinghe An effective RC4 stream cipher
Kazymyrov et al. Influence of addition modulo 2 n on algebraic attacks
JP2005107078A (en) Encryption processing system, encryption processing method, and computer program
Rajasekar et al. Design and implementation of power and area optimized AES architecture on FPGA for IoT application
KR101445339B1 (en) Integrated cryptographic apparatus for providing confidentiality and integrity
JP6011465B2 (en) Cryptographic module generator
JP6187624B1 (en) Information processing apparatus, information processing method, and program
JP6292195B2 (en) Information processing apparatus and information processing method
JP5182295B2 (en) Encryption apparatus and encryption processing method
Rao et al. An efficient high speed AES implementation using Traditional FPGA and LabVIEW FPGA platforms
Kotel et al. Lightweight encryption algorithm based on modified XTEA for low-resource embedded devices
JP5014678B2 (en) Random number generator
JP5354914B2 (en) Encryption processing device, decryption processing device, and program
CN113572593B (en) Complex format parameter transmission method and device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151119

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160905

R151 Written notification of patent or utility model registration

Ref document number: 6011465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250