JPH10240511A - 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置 - Google Patents

暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置

Info

Publication number
JPH10240511A
JPH10240511A JP9041217A JP4121797A JPH10240511A JP H10240511 A JPH10240511 A JP H10240511A JP 9041217 A JP9041217 A JP 9041217A JP 4121797 A JP4121797 A JP 4121797A JP H10240511 A JPH10240511 A JP H10240511A
Authority
JP
Japan
Prior art keywords
diagram
program
block cipher
cryptographic
expression
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
JP9041217A
Other languages
English (en)
Other versions
JP3427993B2 (ja
Inventor
Akifumi Kumeta
暁文 久米田
Mutsumi Komuro
睦 小室
Toshiyuki Tsutsumi
俊之 堤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Software Engineering Co Ltd
Original Assignee
Hitachi Software Engineering Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Software Engineering Co Ltd filed Critical Hitachi Software Engineering Co Ltd
Priority to JP04121797A priority Critical patent/JP3427993B2/ja
Publication of JPH10240511A publication Critical patent/JPH10240511A/ja
Application granted granted Critical
Publication of JP3427993B2 publication Critical patent/JP3427993B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 ブロック暗号アルゴリズムおよびブロック暗
号プログラムの開発を効率良く支援可能にする。 【解決手段】 予め定義したブロック暗号アルゴリズム
仕様記述記法によるブロック暗号アルゴリズムのダイア
グラム表現をユーザが記述及び編集するのを支援する暗
号ダイアグラム編集手段と、該暗号ダイアグラム編集手
段によって編集されたブロック暗号アルゴリズムのダイ
アグラム表現を格納する暗号ダイアグラム格納手段と、
格納されたブロック暗号アルゴリズムのダイアグラム表
現を解釈実行する暗号ダイアグラム解釈実行手段と、解
釈実行中のブロック暗号アルゴリズムのダイアグラム表
現に現れる変数の状態を格納する暗号ダイアグラム実行
環境格納手段と、このブロック暗号ダイアグラム実行環
境格納手段の内容を検査するための暗号ダイアグラム実
行環境検査手段と、を備える。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、予め定義しておい
たブロック暗号アルゴリズム仕様記述記法に基づいてブ
ロック暗号アルゴリズムの開発を支援する装置および該
アルゴリズムを実現するプログラムの開発を支援する装
置に関するものである。
【0002】
【従来の技術】コンピュータネットワーク技術の発達等
によって情報の共有化が進むに従い、情報の漏洩を防ぐ
ための暗号技術に対する必要性が高まっている。暗号に
は大きく分けて、暗号化と復号化の時に同じ鍵を使用す
る秘密鍵暗号と、個人鍵と公開鍵という異なる鍵の組を
使用する公開鍵暗号がある。秘密鍵暗号は、暗号通信を
行なう際に鍵を送信者と受信者で共有する方法が問題と
なる。公開鍵暗号にはこの問題がない。
【0003】しかし、公開鍵暗号は秘密鍵暗号に比べ
て、暗号化と復号化に要する計算量が大きい。このた
め、両者は用途によって使い分けられる。
【0004】秘密鍵暗号としてよく用いられているもの
に、固定長のデータ(ブロック)を単位として暗号化と
復号化を行なうブロック暗号がある。ブロック暗号のア
ルゴリズムはこれまで種々のものが考案されている。文
献「Federal Information Processing Standards Publi
cation 46-2 1993 December 30;Announcing the DATAEN
CRYPTION STANDARD (DES)」に紹介されているDESは
その代表例である。
【0005】ところで、このようなブロック暗号アルゴ
リズムやそれを実現する手段に関する研究開発が進むに
つれて、解読技術も高度化している。つまり、現在十分
な強度をもっている暗号アルゴリズムが、今後もそうで
あるとは限らないのである。そこで、新しい解読技術に
耐えられる新しいブロック暗号アルゴリズムを効率的に
開発できるようにする必要がある。
【0006】そこで、従来において、ブロック暗号の開
発支援手段の一例として、特開平5−14340号公報
に見られるように、ブロック暗号の中間一致閉性試験
(強度試験)を少ない記憶領域で実行可能とするもの
や、特開平8−190344号公報に見られるように、
DESよりも探索計算量が多いFEAL等のinvol
ution型暗号へ実用的な時間で適用可能な暗号アル
ゴリズムの強度評価装置が知られている。
【0007】
【発明が解決しようとする課題】しかしながら、上記の
強度試験あるいは強度評価は、暗号アルゴリズムの作成
後に実施するものであり、基本的には、新しい解読技術
に耐えられる新しいブロック暗号アルゴリズムを如何に
効率良く開発するのを支援できるかが問題になる。
【0008】そのためには、ブロック暗号アルゴリズム
の開発を効率化する手段が必要である。具体的には、
(1)ブロック暗号アルゴリズムを記述するための記
法、(2)該記法によるブロック暗号アルゴリズムの記
述と編集を支援する手段、(3)該記法によって記述さ
れたブロック暗号アルゴリズムを試験的に実行する手
段、(4)ブロック暗号アルゴリズムの強度を評価する
手段等が必要である。
【0009】現在のところ、ブロック暗号アルゴリズム
を記述するための記法としては、非形式的なデータフロ
ーダイアグラムが通常用いられているが、ブロック暗号
アルゴリズムを細部まで正確に記述可能なものとはなっ
ていない。これが第1の問題点である。
【0010】一方、暗号アルゴリズムは正確に実現され
なければ、期待した効果を得ることができない。通常の
ブロック暗号アルゴリズムは、固定長のビット列に対し
て比較的単純な演算を繰り返し行なうだけであるので、
アルゴリズムをそのまま反映したプログラムを作成する
のは困難ではない。しかし、実際には高速化などの要求
から何等かの最適化がなされることが多い。その場合、
プログラムが元のアルゴリズムを正確に実現しているこ
とを十分に確認する必要がある。したがって、ブロック
暗号のプログラムをテストするために多くのテストケー
スが必要となる。
【0011】テストケースを作成するには、暗号アルゴ
リズムを実際に動作させて、平文とそれに対応する暗号
文の組を作成する必要がある。しかし、従来は手計算で
テストケースを作成しているため、多数の信頼できるテ
ストケースを効率良く生成することが不可能であった。
これが第2の問題点である。
【0012】一方また、前記の暗号アルゴリズム記法
は、どちらかと言えばハードウェアによる実現に適した
記法であり、ブロック暗号アルゴリズムを実現するプロ
グラムの設計仕様としては不適当である。これが第3の
問題点である。
【0013】さらに、前記のように、実用的なブロック
暗号プログラムを作成するためには、最適化を行なう必
要があるために、工数が掛かる。また、該ブロック暗号
プログラムを組み込む応用プログラムを開発する場合、
該ブロック暗号プログラムの開発が終了するまでは、ス
タブ(テスト用のダミーのサブルーチン)を使用するこ
とになる。したがって、その間は、応用プログラムをテ
ストする際に、該ブロック暗号を使用することができな
い。これが第4の問題点である。
【0014】本発明の第1の目的は、予め定義したブロ
ック暗号アルゴリズム記法に基づいてブロック暗号アル
ゴリズムの記述と編集を効率良く支援することができる
暗号アルゴリズム開発支援装置を提供することにある。
【0015】本発明の第2の目的は、前記ブロック暗号
アルゴリズム記法によって記述されたブロック暗号アル
ゴリズムを直接解釈実行することによって、該ブロック
暗号アルゴリズムを実現するプログラムをテストする際
に使用できるテストケースを自動的に生成し、暗号プロ
グラムのテストを効率良く支援することができる暗号プ
ログラム開発支援装置を提供することにある。
【0016】本発明の第3の目的は、前記ブロック暗号
アルゴリズム記法によって記述されたブロック暗号アル
ゴリズムから、プログラム開発の目的に適したプログラ
ムの設計仕様を自動生成し、暗号プログラムの生成を効
率良く支援することができる暗号プログラム開発支援装
置を提供することにある。
【0017】本発明の第4の目的は、前記ブロック暗号
アルゴリズムから自動生成された前記プログラム設計仕
様から、該ブロック暗号アルゴリズムを実現するプログ
ラムを自動生成し、暗号プログラムの生成を効率良く支
援することができる暗号プログラム開発支援装置を提供
することにある。
【0018】本発明の第5の目的は、暗号プログラム開
発のテスト工程において、ユーザによって指定されたス
ケジュールに従って、自動生成されたテストケースを用
いて、暗号プログラムを効率良くテストすることができ
る暗号プログラム開発支援装置を提供することにある。
【0019】
【課題を解決するための手段】上記の第1の目的を達成
するため、本発明は、予め定義したブロック暗号アルゴ
リズム仕様記述記法によるブロック暗号アルゴリズムの
ダイアグラム表現をユーザが記述及び編集するのを支援
する暗号ダイアグラム編集手段と、この暗号ダイアグラ
ム編集手段によって編集されたブロック暗号アルゴリズ
ムのダイアグラム表現を格納する暗号ダイアグラム格納
手段と、格納されたブロック暗号アルゴリズムのダイア
グラム表現を解釈実行する暗号ダイアグラム解釈実行手
段と、解釈実行中の該ブロック暗号アルゴリズムのダイ
アグラム表現に現れる変数の状態を格納する暗号ダイア
グラム実行環境格納手段と、このブロック暗号ダイアグ
ラム実行環境格納手段の内容を検査するための暗号ダイ
アグラム実行環境検査手段とを備えることを特徴とす
る。
【0020】ここで、本発明の前提となるブロック暗号
アルゴリズム仕様記述記法は、ビット列データを値とす
る変数のダイアグラム表現と、該ビット列データ上の演
算のダイアグラム表現とを構成要素として有し、前記変
数と前記演算を組み合わせるためのダイアグラム表現と
して、前記変数からの参照操作のダイアグラム表現と、
前記変数への代入操作のダイアグラム表現と、前記ビッ
ト列データへの前記演算の適用操作のダイアグラム表現
と、前記ビット列データの分割操作のダイアグラム表現
と、前記ビット列データの連結操作のダイアグラム表現
と、前記ビット列データの複製操作のダイアグラム表現
と、前記ビット列データへの繰り返し処理のダイアグラ
ム表現と、前記ビット列データ上の演算を定義するため
のダイアグラム表現を備えることを特徴とする。
【0021】第2の目的を達成するために、本発明は、
テストケースを区別するためのIDと暗号化鍵と平文と
該平文を前記暗号化鍵によって暗号化した暗号文からな
るブロック暗号プログラムテストケースを格納するため
の暗号プログラムテストケース格納手段と、前記IDを
生成するためのID計数手段と、前記暗号化鍵を生成す
るための鍵生成手段と、前記平文を生成するための平文
生成手段とを備え、前記暗号文を生成するブロック暗号
アルゴリズム開発支援手段とを備えることを特徴とす
る。
【0022】第3の目的を達成するために、本発明は、
ブロック暗号アルゴリズムのダイアグラム表現の構文を
解析するダイアグラム構文解析手段と、その解析結果で
あるダイアグラム構文木を格納するダイアグラム構文木
格納手段と、格納されたダイアグラム構文木からプログ
ラム設計仕様を生成する設計仕様生成手段と、ダイアグ
ラムとプログラム設計仕様の間の対応関係を定義した対
応テーブルと、生成された設計仕様を格納するための暗
号プログラム設計仕様格納手段とを備えることを特徴と
する。
【0023】第4の目的を達成するために、本発明は、
ブロック暗号プログラムの設計仕様の構文を解析する設
計仕様構文解析手段と、その解析結果である設計仕様構
文木を格納する設計仕様構文木格納手段と、格納された
設計仕様構文木からプログラムを生成するプログラム生
成手段と、設計仕様とプログラムの間の対応関係を定義
した対応テーブルと、生成されたプログラムを格納する
ための暗号プログラム格納手段とを備えることを特徴と
する。
【0024】第5の目的を達成するために、本発明は、
ブロック暗号プログラムのテストスケジュールを格納す
るテストスケジュール格納手段と、このテストスケジュ
ール格納手段に格納されたテストスケジュールに従って
テストケースを選択するテストケース選択手段と、ブロ
ック暗号プログラムを格納する暗号プログラム格納手段
と、格納されたブロック暗号プログラムに前記選択され
たテストケースの構成要素である鍵と平文を与えて実行
させるプログラム実行手段と、その実行結果である暗号
文と前記選択されたテストケースの構成要素である暗号
文とを比較するための比較手段と、前記選択されたテス
トケースのIDと比較結果とからなるテスト結果を格納
するための暗号プログラムテスト結果格納手段とを備え
ることを特徴とする。
【0025】
【発明の実施の形態】以下、本発明の実施形態を図面に
より詳細に説明する。
【0026】まず、実施形態の説明に先立ち、本発明の
各実施形態で使用するブロック暗号アルゴリズム仕様記
述記法について説明する。
【0027】[ブロック暗号アルゴリズム仕様記述記
法]図1および図2は、本発明の各実施形態で使用する
ブロック暗号アルゴリズム仕様記述法の文法の一覧を示
す図であり、ここで例示するブロック暗号アルゴリズム
仕様記述法は、図1(a)〜(c)に示すようにビット
列データを値とする変数のダイアグラム表現11〜13
と、図1(d)〜(h)に示すようにビット列データ上
の演算のダイアグラム表現14〜18とを構成要素とし
て有している。
【0028】さらに、前記変数と前記演算を組み合わせ
るためのダイアグラム表現として、図1(i)に示すよ
うに前記変数からの参照操作のダイアグラム表現19
と、図1(j)に示すように前記変数への代入操作のダ
イアグラム表現20と、図1(k)に示すように前記ビ
ット列データへの前記演算の適用操作のダイアグラム表
現21と、図1(m)に示すように前記ビット列データ
の分割操作のダイアグラム表現22と、図1(n)に示
すように前記ビット列データの連結操作のダイアグラム
表現23と、図1(p)に示すように前記ビット列デー
タの複製操作のダイアグラム表現24と、図2(a)に
示すように前記ビット列データへの繰り返し処理のダイ
アグラム表現25と、図2(b)に示すように前記ビッ
ト列データ上の演算を定義するためのダイアグラム表現
26を有する。
【0029】本例のブロック暗号アルゴリズム仕様記述
法ではビット列データのみを扱う。変数は全てビット列
データを格納するためにのみ使用され、演算はビット列
データに対するもののみが使用可能である。
【0030】例えば、図1(a)のダイヤグラム表現1
1は「64ビットデータ」を格納するための「B」とい
う名前の変数を表している。図1(b)のダイヤグラム
表現12は「32ビットデータ」を格納するための「L
_0」という名前の添字付変数を表しており、変数名中
の「0」が添字である。図1(c)のダイヤグラム表現
13は「32ビットデータ」を格納するための16個
(i=1〜16)の添字付変数「L_1」〜「L_1
6」を表している。図1(d)のダイヤグラム表現14
は「f」という名前の演算を表している。
【0031】図1(e)〜(h)は、よく使われる演算
の例であり、このような特殊な演算は必要に応じて導入
される。図1(e)のダイヤグラム表現15は、2つの
ビット列データの排他的論理和を表している。図1
(f)のダイヤグラム表現16は、「64ビットデー
タ」を「56ビットデータ」に縮小転字する演算を表し
ている。図1(g)のダイヤグラム表現17は、ビット
列データを「KSビット」だけシフトする演算を表して
いる。図1(h)のダイヤグラム表現18は、「2ビッ
トデータ」と「4ビットデータ」に対して「4ビットデ
ータ」を代入する演算を表している。
【0032】図1(i)のダイヤグラム表現19は、変
数中に格納されているビット列データを参照するための
表現であり、特に記述の対象となっているアルゴリズム
の入出力データを格納する変数には「input」また
は「output」というラベルを付ける。
【0033】図1(j)のダイヤグラム表現20は、変
数「CB」に「64ビット列データ」を代入するための
表現である。図1(k)のダイヤグラム表現21は、ビ
ット列データに対して「f」という名前の演算を適用す
るための表現である。
【0034】図1(m)のダイヤグラム表現22は、ビ
ット列データを分割し、複数ビット列データとして変数
X,Yに格納するための表現である。図1(n)のダイ
ヤグラム表現23は、複数個のビット列データを連結
し、1個のビット列データとするための表現である。図
1(p)のダイヤグラム表現24は、ビット列データを
複製し、複数の同じビット列データとするための表現で
ある。
【0035】図2(a)のダイヤグラム表現25は、i
個(i=1〜16)の添字付きの変数Xに格納されてい
るビット列データに対して、同じ処理を繰り返し適用
し、その結果を別の添字付きのi個(i=1〜16)の
変数Yに格納するための表現である。点線内は繰り返し
の内容であり、前記の表現と、場合によってはさらに繰
り返しの表現を用いて記述される。繰り返し回数は左上
に「16 times」というように記述する。
【0036】点線内の左側にある「i」は、現在何度目
の繰り返しであるかを表す繰り返し変数である。この繰
り返し変数「i」は「1」から始まって、順に「1」づ
つ加算され、繰り返し回数に達したところで繰り返し処
理は全て終了する。
【0037】図2(b)のダイヤグラム表現26は、演
算を定義するための表現である。この表現によって定義
された演算は、ダイヤグラム表現14の表現によって他
の場所で使用することができる。点線内は演算の内容で
あり、前記の表現を用いて記述される。
【0038】同名の変数の異なる出現は同一の変数を表
す。変数へのデータの格納は1回のみ許される。変数の
参照は、何回行なっても構わないが、データの格納され
ていない変数の参照は許されない。
【0039】[記述例]図3〜図5は、ブロック暗号ア
ルゴリズムである「DES」を本発明のブロック暗号ア
ルゴリズム仕様記述法によって記述したアルゴリズム構
成図であり、図3はブロック暗号アルゴリズムDESの
全体を表し、図4は図3で使われている演算「f」11
2の処理の詳細を表し、図5は図3で使われている変数
「K_i(i=1..16)109に格納される16個
の鍵Kの生成処理を詳細に表したものである。
【0040】これらの図3〜図5で使用されている転
字、シフト、代入の演算の詳細は、例えば図6に示すよ
うに別途与えられる。図6(a)は図3で使われている
転字演算「IP」の詳細であり、例えば、出力ビット列
の第1ビットが入力ビット列の第58ビットである。図
6(b)は図4で使われている拡大転字演算「EP」の
詳細であり、例えば、出力ビット列の第1ビットが入力
ビット列の第32ビットである。図6(c)は図4で使
われている代入演算「S_1」の詳細であり、2ビット
入力で表される4通りの場合と4ビット入力の16通り
の場合の組合せをマトリクスで表現しており、出力の4
ビット列の値は該マトリクスの各桝目の値となる。図6
(d)は図5で使われているシフト演算の詳細であり、
例えば、「K_1」は入力ビット列を1ビット左シフト
することを表している。
【0041】図3のアルゴリズムの詳細は次のようにな
る。
【0042】まず、暗号化の対象となる平文データは、
「B」という名前の64ビット変数101に格納され
る。この変数「B」には「input」というラベルが
付けられており、該アルゴリズムに対する入力であるこ
とが示されている。平文データは変数「B」の参照を表
す矢印102を経て、「IP」という名前の64ビット
データに対する転字103に送られる。
【0043】この転字処理結果である64ビットデータ
は、データの分割を表す矢印104を経て、上位の32
ビットデータは「L_0」という名前の32ビット変数
105に、下位の32ビットデータは「R_0」という
名前の32ビット変数107に格納される。
【0044】次に、繰り返し処理110に入り、この処
理内部において同様の処理が16回(「16 time
s」)行なわれる。
【0045】第i(i=1..16)回目の処理では、
「L_(i−1)」という名前の32ビット変数105
または106と、「R_(i−1)」という名前の32
ビット変数107または108と、「K_i」という名
前の48ビット変数109のデータが参照され、処理結
果は「L_i」という名前の32ビット変数114また
は115と、「R_i」という名前の32ビット変数1
16または117に格納される。
【0046】この繰り返し処理110の内容の詳細は次
のようなる。変数「R_(i−1)」はデータの複製を
表す矢印111を経て、一方は変数「L_i」114ま
たは115に格納され、他方は演算「f」112の二つ
の入力のうちの1つになる。
【0047】演算「f」112のもう1つの入力変数は
「K_i」である。この演算「f」112の結果は、入
力変数「L_(i−1)」と共に排他的論理和113の
入力となる。この排他的論理和113の結果は出力変数
「R_i」116または117に格納される。
【0048】このような繰り返し処理が全て終了する
と、「L_16」という名前の32ビット変数115と
「R_16」という名前の32ビット変数117のデー
タが、データの連結を表す矢印118を経て連結されて
64ビットデータとなり、「IP^−1」(転字IPの
逆)という転字119に入力される。
【0049】この転字119の処理結果が暗号文であ
り、データの格納を表す矢印120を経て、「CB」と
いう名前の64ビット変数121に格納される。この変
数121には「output」というラベルが付けられ
ており、DESアルゴリズムからの出力であることが示
されている。
【0050】なお、図3には、変数「L_i(i=
1..15)」の2つの出現106と115があるが、
同一の変数を表している。変数「R_i(i=1..1
5)」についても同様である。
【0051】図4の演算「f」の定義112の詳細は次
の通りである。演算「f」では32ビットデータ「R」
132と48ビットデータ「K」133の2つの入力か
ら、32ビットデータ「f(R,K)」149を計算す
る。
【0052】入力データ「R」132は、32ビットデ
ータの48ビットデータへの拡大転字「EP」134に
よって、48ビットデータ135に変換され、もう1つ
の48ビットデータ「K」133と共に排他的論理和1
36の入力となる。この排他的論理和136の演算結果
137は、8個(j=1..8)の6ビットデータに分
割され、8個の6ビットデータ変数「X_j(j=
1..8)」138に格納される。データの格納を表す
矢印137は、ここでは添字付変数の並びに接続されて
いるため、データの分割を表している。
【0053】次に、繰り返し処理139に入り、8個の
6ビットデータ変数X_j(j=1..8)のそれぞれ
に対して次の処理が行なわれる。
【0054】まず、6ビットデータ変数「X_j」13
8は1ビット、4ビット、1ビットのデータに分割さ
れ、それぞれ、1ビットデータ変数「r1」140、4
ビットデータ変数「c」141、1ビットデータ変数
「r2」142に格納される。ここで、変数「r1」1
40、変数「c」141、変数「r2」142は、繰り
返し変数jが加算される毎に新しく用意される。
【0055】変数「r1」140と「r2」141のデ
ータを連結した2ビットデータ143と、変数「c」1
42の4ビットデータ144が代入演算「S_j」14
5に入力される。この演算結果は4ビット変数「Y_
j」146に格納される。
【0056】このような繰り返し処理が全て終了する
と、8個の4ビットデータ「Y_j(j=1..8)」
146が連結されて32ビットデータ147となり、3
2ビットデータに対する転字「P」148に入力され
る。データ147の参照を表す矢印は、ここでは添字付
変数の並びからの参照になっているため、データの連結
を表してる。この演算結果が「f(R,K)」149と
なる。
【0057】図5に示す変数「K_i(i=1..1
6)」167の生成処理の詳細は次の通りである。ま
ず、DESアルゴリズムに対して入力される鍵(K)が
64ビットデータ変数「K」151に格納される。この
64ビットデータ変数「K」151は、矢印152を経
て、64ビットから56ビットへの縮小転字「KP」1
53に入力され、56ビットデータ154に変換され
る。
【0058】この56ビットデータ154は、2つの2
8ビットデータに分割され、それぞれ28ビット変数
「KL_0」155と「KR_0」157に格納され
る。
【0059】次に、繰り返し処理(1)159に入り、
各「KL_(i−1)」(i=1..16)155ある
いは156と、「KR_(i−1)(i=1..1
6)」157あるいは158に対して、次の処理が行な
われ、「KL_i(i=1..16)」162と「KR
_i(i=1..16)」163が順次生成される。
【0060】各「KL_(i−1)」155あるいは1
56はシフト演算「KS_i」160の入力となる。こ
の演算結果は変数「KL_i」162に格納される。
【0061】また、各変数「KR_(i−1)」157
あるいは158はシフト演算「KS_i」161の入力
となる。この演算結果は変数「KR_i」163に格納
される。
【0062】上記の繰り返し処理の後であるいは並行し
て、各「KL_i(i=1..16)」162と「KR
_i(i=1..16)」163に対して、次の繰り返
し処理(2)164が行なわれる。
【0063】各「KL_i」162と「KR_i」16
3を連結した56ビットデータ165に対して、56ビ
ットから48ビットへの縮小転字「PC」166が適用
され、その結果が48ビット変数「K_i」167に格
納される。
【0064】この記述例が示すように、本例のブロック
暗号アルゴリズム記述記法によれば、ブロック暗号アル
ゴリズムの詳細を厳密にかつ簡潔に記述することができ
る。
【0065】[第1の実施形態]次に、上述したブロッ
ク暗号アルゴリズム仕様記述記法を使用して実現される
暗号アルゴリズム開発支援装置の実施形態について、図
面に従って具体的に説明する。
【0066】図7は、ブロック暗号のアルゴリズム開発
支援装置の実施形態を示す機能構成図である。この第1
の実施形態のブロック暗号のアルゴリズム開発支援装置
は、前述した暗号アルゴリズムのダイアグラム表現をユ
ーザが記述及び編集するのを支援する暗号ダイアグラム
編集装置201と、記述および編集されたブロック暗号
アルゴリズムのダイアグラム表現を格納する暗号ダイア
グラム格納装置204と、ブロック暗号アルゴリズムの
ダイアグラム表現を解釈実行する暗号ダイアグラム解釈
実行装置202と、解釈実行中のブロック暗号アルゴリ
ズムのダイアグラム表現に現れる変数の状態を格納する
暗号ダイアグラム実行環境格納装置205と、暗号ダイ
アグラム実行環境格納装置205の内容を検査するため
の暗号ダイアグラム実行環境検査装置203とから構成
される。
【0067】暗号ダイアグラム編集装置201は、図3
で示したようなブロック暗号アルゴリズムのダイアグラ
ム表現をユーザが記述及び編集するのを支援するための
ものであり、従来のダイアグラム編集技術によって実現
可能である。この暗号ダイアグラム編集装置201は、
図6のような演算の詳細を定義するための機能も持って
おり、この定義は暗号ダイアグラム格納装置204に格
納される。
【0068】暗号ダイアグラム解釈実行装置202は、
ブロック暗号アルゴリズムのダイアグラム表現を解釈実
行するためのものであり、暗号ダイアグラム格納装置2
04に格納されている暗号ダイアグラムの構成要素を計
算可能なものから順に計算して、その計算結果である値
を暗号ダイアグラム実行環境格納装置205に格納して
いく。ただし、ダイアグラムの構成要素が「計算可能で
ある」ことは次のように定義される。
【0069】[構成要素の計算可能性の定義] (a)アルゴリズムの入力変数は計算可能である。
【0070】(b)組み込み演算はその入力が全て値が
決まっていれば、出力は計算可能である。
【0071】(c)変数は代入される値が決まっていれ
ば、計算可能である。
【0072】(d)n回の繰り返し部の第1回目は、繰
り返しの添字を「1」としたときに、入力変数全ての値
が決まっていれば、計算可能である。
【0073】(e)n回の繰り返し部の第i(i=
2..n)回目は、第1回目から第i−1回目の出力変
数が決まっていて、繰り返しの添字をiとしたときに入
力変数全ての値が決まっていれば、計算可能である。
【0074】(f)ユーザ定義演算は、入力変数全ての
値が決まっていれば、計算可能である。
【0075】暗号ダイアグラム解釈実行装置202は、
図8の詳細構成図に示すように、暗号ダイアグラム格納
装置204に格納されている暗号ダイアグラムを読み取
るためのダイアグラム走査装置206と、暗号ダイアグ
ラムの走査結果に基づき当該暗号ダイアグラムの構成要
素の計算可能性を検査するための計算可能性検査装置2
07と、暗号アルゴリズムの入力変数を設定するための
初期値設定装置208と、暗号ダイアグラムの構成要素
の値を計算するための値計算装置209から構成され
る。
【0076】暗号ダイアグラム実行環境検査装置203
は、ユーザが暗号ダイアグラム実行環境格納装置205
の内容を検査するためのものであり、図9の詳細構成図
に示すように、暗号ダイアグラムの構成要素のうち、ユ
ーザから指定された要素の値を読み取るための検査対象
指定装置210と、読み取った値を表示するための検査
結果表示装置211から成る。
【0077】この第1の実施形態の暗号アルゴリズム開
発支援装置の基本的な使用方法は、次のようになる。
【0078】まず、ユーザは、暗号ダイアグラム編集装
置201を使用し、図3に示したような記法によるブロ
ック暗号アルゴリズムのダイアグラム表現を記述及び編
集し、暗号ダイアグラム格納装置204に格納する。
【0079】次に、暗号ダイアグラム格納装置204に
格納したブロック暗号アルゴリズムがユーザの意図した
通りに動作することを確認するために、暗号ダイアグラ
ム解釈実行装置202を使用し、実際に前記ブロック暗
号アルゴリズムを実行させる。この実行結果は、暗号ダ
イアグラム実行環境格納装置205に、図11〜図13
に示すような表として格納される。
【0080】最後に、ユーザは暗号ダイアグラム実行環
境検査装置203を使用して前記実行結果を詳細に調べ
る。
【0081】以下、暗号ダイアグラム解釈実行装置20
2の動作を図10に示すフローチャートに基づき1ステ
ップずつを詳細に説明する。
【0082】ステップ212 暗号ダイアグラム格納装置204に格納されているダイ
アグラムの構成要素を、ダイアグラム走査装置206に
よって調べ、暗号ダイアグラム実行環境格納装置205
を初期化する。暗号ダイアグラム実行環境は、アルゴリ
ズム全体に対する表の他、各繰り返し部の各回に対応し
た表や、ユーザ定義演算に対応する表が作られて初期化
される。
【0083】例えば、図3〜図5に示したDES暗号ア
ルゴリズムの生成処理の場合、図11(a)に示す暗号
アルゴリズムDESの生成処理全体の表1100、図1
1(b)に示すDES全体の繰り返し部139に関する
表1110、図12に示す鍵生成処理全体の表112
0、図13(a)に示す鍵生成処理中の第1の繰り返し
部の各回の表1130、鍵生成処理中の第2の繰り返し
部の各回の表1140が作られて初期化される。
【0084】ここで、これらの各表は、「構成要素」1
101、「計算可能か?」1102、「値」1103の
各欄から構成され、「構成要素」1101の欄にはブロ
ック暗号アルゴリズム中に記述した変数等のダイヤグラ
ム表現の名称が設定される。また、「計算可能か?」1
102の欄には初期段階では「NO」が設定され、計算
可能になった段階で「YES」が設定されるようになっ
ている。さらに、「値」1103の欄には、変数等のダ
イヤグラム表現の計算結果が設定されるようになってい
る。
【0085】ステップ213 計算可能性検査装置207によって、前記の計算可能性
の定義に従って、ダイアグラム表現の中で値1103が
計算可能なものを全て列挙する。このとき、構成要素間
の関係はダイアグラム走査装置206によって調べる。
【0086】ステップ214 ステップ213で列挙された計算可能な構成要素の値1
103を値計算装置209によって計算する。このと
き、ダイアグラム走査装置206によって、計算に必要
な値を持つ他の構成要素を調べ、その値は暗号ダイアグ
ラム実行環境格納装置205から参照する。また、その
構成要素がアルゴリズムへの入力変数である場合は、初
期値設定装置208によって、ユーザによって指定され
た値を計算値とする。
【0087】ステップ215 暗号アルゴリズムの全ての出力変数に値が格納されたか
を調べる。そうであれば、実行を終了する。さもなけれ
ば、ステップ213に戻る。
【0088】例えば、図5に示す暗号アルゴリズムDE
Sの鍵生成処理においてi=1の鍵である出力変数「K
_1」167が生成されるまでの表1120,113
0,1140の内容は図14〜図16に示すようなもの
となる。
【0089】すなわち、実行の開始直後のステップ21
2で暗号ダイアグラム実行環境格納装置205が初期化
された時点では、条件が揃っていないために構成要素は
全て計算可能ではない。図14〜図16では、初期化さ
れた時点で計算可能か否かということを「開始」の欄1
401に「NO」で示している。
【0090】次に、ステップ213で、計算可能性検査
装置207によって前記の計算可能性の定義に従って、
アルゴリズムの入力変数Kのみが計算可能な構成要素と
して列挙され、ステップ214で、値計算装置209と
初期値設定装置208によって、ユーザによって指定さ
れた値XがKの計算値となる。図14では、計算段階の
欄1402の(1)に入力変数K=Xになったことを示
している。また、この時点で入力変数Kの「計算可能か
?」が「YES」に更新されたことを示している。
【0091】ステップ215で、暗号アルゴリズムの全
ての出力変数に値が格納されたかを調べるが、そうでは
ないのでステップ213に戻る。2度目のステップ21
3では、入力変数Kの値が決まっているので、計算可能
性検査装置207によって、前記の計算可能性の定義に
従って転字演算KPが計算可能な構成要素として列挙さ
れる。そして、転字演算KPの「計算可能か?」が「Y
ES」に更新される。
【0092】ステップ214で、値計算装置209によ
ってKP(X)が計算され、KPの値となる。図14で
は、計算段階の欄1402の(2)にKPの値が求めら
れたことをKP(X)で示している。続く、3度目のス
テップ213とステップ214では「KL_0」と「K
R_0」の値が計算される。図14では、計算段階の欄
1402の(3)に「KL_0」と「KR_0」の値が
求められたことを示している。
【0093】4度目のステップ213とステップ214
では、繰り返し部(1)のi=1の場合が計算可能にな
り、その入力変数「KL_0」と「KR_0」の値が決
まる。図15では、計算段階の欄1402の(4)に
「KL_0」と「KR_0」の値が求められたことを示
している。
【0094】5度目のステップ213とステップ214
では、2つの「KS_1」の値が計算され、6度目のス
テップ213とステップ214では、繰り返し部(1)
のi=1の場合の出力変数である「KL_1」と「KR
_1」の値が決まる。図15では、計算段階の欄140
2の(5)に「KS_1」の値が求められたことを示
し、また計算段階の欄1402の(6)に「KL_1」
と「KR_1」の値が求められたことを示している。
【0095】以下同様にして、図5のダイヤグラム表現
で記述された暗号アルゴリズムの実行が続けられる。こ
れによって、12度目のステップ213とステップ21
4で第1番目(i=1)の出力変数「K_1」の値が決
まる。図16では、計算段階の欄1402の(12)に
「K_1」の値が求められたことを示している。
【0096】このような処理がi=16になるまで繰り
返し実行される。これによって、16個の鍵に相当する
変数「K_1」が生成される。なお、暗号アルゴリズム
DES全体の処理としては、変数「CB」の値が求まっ
た段階で終了する。変数「CB」の値が求まったなら
ば、図11の表1100の「計算可能か?」1102の
欄は、全て「YES」になる。
【0097】このように、第1の実施形態によれば、前
述した記法によるブロック暗号アルゴリズムのダイアグ
ラム表現をユーザが記述及び編集するのを支援できる上
に、そのブロック暗号アルゴリズムのダイアグラム表現
を解釈実行し、当該ブロック暗号ダイアグラム実行環境
を詳細に調べることができ、ブロック暗号アルゴリズム
開発を効率的に行なうことができる。
【0098】[第2の実施形態]次に、本発明を適用し
た暗号プログラムテストケース生成装置の実施形態につ
いて、図面に従って具体的に説明する。
【0099】図17は、暗号プログラムテストケース生
成装置の実施形態を示す機能構成図である。この実施形
態の暗号プログラムテストケース生成装置300は、テ
ストケースを区別するためのID(識別情報)3041
と、暗号化鍵3042および平文3043並びに該平文
3043を暗号化鍵3042によって暗号化した暗号文
3044とからなるブロック暗号プログラムテストケー
ス304を格納するための暗号プログラムテストケース
格納装置305と、前記ID3041を生成するための
ID計数装置301と、前記暗号化鍵3042を生成す
るための鍵生成装置302と、前記平文3043を生成
するための平文生成装置303とから構成され、前記暗
号文3044を生成するために、前述の第1の実施形態
の暗号アルゴリズム開発支援装置200を利用する。
【0100】この実施形態の暗号プログラムテストケー
ス生成装置300の基本的な使用方法は次のようにな
る。
【0101】ユーザは、前述した暗号アルゴリズム開発
支援装置200を利用し、予めブロック暗号アルゴリズ
ムを開発しておく。すると、ユーザは、該ブロック暗号
アルゴリズムを実現するプログラムを検査する際に使用
するテストケースを、本実施形態の暗号プログラムテス
トケース生成装置300使用して作成することができ
る。
【0102】まず、ID計数装置301によって新しい
テストケースのID3041を生成する。次に、鍵生成
装置302によって暗号化鍵3042を生成し、さらに
平文生成装置303によって暗号化の対象となる平文3
043を生成する。
【0103】鍵生成装置302と平文生成装置303は
乱数等の手段によって、暗号化鍵3042や平文304
3を生成する。この場合、ユーザが暗号化鍵3042や
平文3043を直接入力することもある。
【0104】暗号化鍵3042と平文3043を生成し
たならば、暗号アルゴリズム開発支援装置200のブロ
ック暗号ダイアグラム解釈実行装置203に暗号化鍵3
042と平文3043とを入力し、前記第1の実施形態
で説明した手順によって、前記暗号アルゴリズムを解釈
実行することにより、前記平文3043を前記暗号アル
ゴリズムにより暗号化した暗号文3044が得られる。
【0105】そこで、前記ID3041と暗号化鍵30
42および平文3043と暗号文3044を一組にし、
テストケース304として暗号プログラムテストケース
格納装置305に格納蓄積する。
【0106】このように、第2の実施例によれば、新し
く開発されたブロック暗号アルゴリズムを実現するプロ
グラムをテストするためのテストケースを効率良く機械
的に生成することができる。
【0107】[第3の実施形態]次に、本発明の第3の
実施形態であるブロック暗号プログラム設計仕様生成装
置について、図面に従って具体的に説明する。
【0108】図18は、ブロック暗号プログラム設計仕
様生成装置の機能構成図であり、この実施形態のブロッ
ク暗号プログラム設計仕様生成装置400は、前記の暗
号アルゴリズム開発支援装置200で作成したブロック
暗号アルゴリズムのダイアグラム表現の構文を解析する
ダイアグラム構文解析装置401と、その解析結果であ
るダイアグラム構文木を格納するダイアグラム構文木格
納装置403と、この格納装置403に格納されたダイ
アグラム構文木からプログラム設計仕様を生成する設計
仕様生成装置402と、ダイアグラムとプログラム設計
仕様の間の対応関係を定義したダイアグラム設計仕様対
応テーブル405と、生成された設計仕様を格納するた
めの暗号プログラム設計仕様格納装置404とから構成
される。
【0109】この第3の実施形態のブロック暗号プログ
ラム設計仕様生成装置の動作の詳細は次のようになる。
【0110】まず、前記ブロック暗号アルゴリズム開発
支援装置200の暗号ダイアグラム格納装置204に格
納されている暗号ダイアグラムを、ダイアグラム構文解
析装置401によって構文解析する。
【0111】その解析結果は、ダイアグラム構文木格納
装置403に格納される。続いて、ダイアグラム設計仕
様対応テーブル405に従って、設計仕様生成装置40
2によって、ダイアグラム構文木からプログラム設計仕
様を生成する。その生成された設計仕様は暗号プログラ
ム設計仕様格納装置404に格納される。
【0112】プログラム設計仕様の記述記法としてPA
D(Problem Analysis Diagram)を使う場合、ダイアグ
ラム設計仕様対応テーブル405の詳細は例えば図19
および図20のように定義されている。
【0113】図19および図20において、項番(1)
は、ダイアグラム記述中にダイアグラム表現の欄405
2に示される変数があった場合、生成されるプログラム
設計仕様では、設計仕様(PAD)表現の欄4053に
示されるような変数の宣言が生成されることを表してい
る。
【0114】項番(2)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される添字付き変数の並
びがあった場合、生成されるプログラム設計仕様では、
設計仕様(PAD)表現の欄4053に示されるような
添字付き変数の並びの宣言が生成されることを表してい
る。
【0115】項番(3)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される転字演算があった
場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるような転字演算
の定義が生成されることを表している。この定義内容は
暗号ダイアグラム格納装置204内にある図6(a),
(b)のような転字演算の詳細である。
【0116】項番(4)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示されるシフト演算があっ
た場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるようなシフト演
算の定義が生成されることを表している。この定義内容
は暗号ダイアグラム格納装置204内にある図6(c)
のようなシフト演算の詳細である。
【0117】項番(5)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される代入演算があった
場合、生成されるプログラム設計仕様では、設計仕様
(PAD)表現の欄4053に示されるような代入演算
の定義が生成されることを表している。この定義内容は
暗号ダイアグラム格納装置204内にある図6(c)の
ような代入演算の詳細である。
【0118】項番(6)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される変数の参照を表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うな実行文中の式の部分的な式として、該変数の参照が
生成されることを表している。
【0119】項番(7)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される変数への代入を表
す表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、それまでの計算結果を該変数へ代入する実行文が
生成されることを表している。
【0120】項番(8)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示される演算の適用を表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、実行文中の式の部分的な式として、それまでの計
算結果に該演算を適用する式が生成されることを表して
いる。
【0121】項番(9)は、ダイアグラム記述中にダイ
アグラム表現の欄4052に示されるデータの分割を表
す表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、それまでの計算結果を複数の変数へ代入する実行
文が生成されることを表している。
【0122】項番(10)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示されるデータの連結を
表す表現があった場合、生成されるプログラム設計仕様
では、設計仕様(PAD)表現の欄4053に示される
ように、実行文中の式の部分的な式として、それまでの
計算結果を表す複数の式を連結する表現が生成されるこ
とを表している。
【0123】項番(11)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示されるデータの複製を
表す表現があった場合、生成されるプログラム設計仕様
では、設計仕様(PAD)表現の欄4053に示される
ように、実行文中の式の部分的な式として、それまでの
計算結果を表す式が複数個生成されることを表してい
る。
【0124】項番(12)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される繰り返しを表す
表現があった場合、生成されるプログラム設計仕様で
は、設計仕様(PAD)表現の欄4053に示されるよ
うに、実行文中の式の部分的な式として、PADの繰り
返し構造の実行文が生成されることを表している。
【0125】項番(13)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される入力変数と出力
変数の表現があった場合、生成されるプログラム設計仕
様では、設計仕様(PAD)表現の欄4053に示され
るように、該入力変数を引数とし、該出力変数の値を返
値とするPADの演算定義の表現が生成されることを表
している。
【0126】項番(14)は、ダイアグラム記述中にダ
イアグラム表現の欄4052に示される演算定義の表現
があった場合、生成されるプログラム設計仕様では、設
計仕様(PAD)表現の欄4053に示されるように、
PADの演算定義の表現が生成されることを表してい
る。
【0127】この図19および図20で例示した対応テ
ーブル405は再帰的に適用される。例えば図3、図
4、図5のDESアルゴリズムの設計仕様を生成したな
らば、この対応テーブル405に従って、図21および
図22に示すようなプログラム設計仕様が得られる。
【0128】ここで、図21のPAD表現によるプログ
ラム仕様は、図3と図5のダイアグラム記述を合わせた
ものに対応している。例えば、図21の演算「des_
main」の定義411、出力変数CBの宣言412、
出力変数CBを演算結果として返す表現426は、図3
の「入力変数B」101、図5の「入力変数K」151
と図3の「出力変数CB」121に図20の項番(1
5)の定義を適用した結果である。
【0129】同様に、図21の変数及び種々の演算の宣
言413は、図3の「転字IP」103、変数の並び
「L_i(i=0..16)」105と106と11
5、変数の並び「R_i(i=0..16)」107と
108と117、変数の並び「K_i(i=1..1
6)」109、図5の「転字KP」153、変数の並び
「KL_i(i=0..16)」155と162、変数
の並び「KL_i(i=0..16)」157と16
3、シフト演算の並び「KS_i(i=1..16)」
160、「転字PC」166に、図19の項番(1),
(2),(3),(4)を適用した結果である。
【0130】図21の414〜419は、図5の鍵生成
部から生成されたステップである。図21の鍵生成の第
1ステップ414は、図5のデータの「参照」152に
図19の項番(6)を適用し、データの「分割」154
に図19の項番(9)を適用して生成されたステップで
ある。
【0131】図21の鍵生成の第2ステップ(繰り返し
(1))415は、図5の「繰り返し処理(1)」15
9に図20の項番(12)を適用して生成されたステッ
プである。また、繰り返し(1)の第1サブステップ4
16は、変数「KL_(i−1)」の参照に図19の項
番(6)を、シフト演算「KS_i」160の適用に図
19の項番(8)を、変数「KL_i」への代入に図1
9の項番(7)を適用して生成されたステップである。
繰り返し(1)の第2サブステップ417も同様であ
る。鍵生成の第3ステップ(繰り返し(2))418
と、そのサブステップ419についても同様である。
【0132】図21の420〜425は、図3のDES
の全体の記述から生成されたステップであり、その生成
過程は前記の鍵生成部の場合と同様である。
【0133】図22の演算「f」の定義427と演算
「f」の計算値を返すステップ433は、図4の演算
「f」の定義139に図20の項番(14)を適用して
生成されたものである。ただし、演算「f」の計算値を
返すステップ433では、図4のデータの連結147に
図19の項番(10)を、「転字演算P」148の適用
に図19の項番(8)を適用して得られた表現が演算
「f」の計算値となっている。
【0134】図22の他のステップ428〜432は、
前記の例と同様にして生成される。
【0135】このように、ユーザは、本実施形態の暗号
プログラム設計仕様生成装置400を使用し、ブロック
暗号アルゴリズム開発支援装置200を利用して開発さ
れたブロック暗号アルゴリズムを実現するプログラムの
設計仕様を自動的に生成することができる。
【0136】なお、本実施形態では、プログラム設計仕
様表現としてPADを用いたが、フローチャート等の他
のプログラム設計仕様表現を使用した場合でも、同様に
して容易に実現可能である。
【0137】[第4の実施形態]次に、本発明の第4の
実施形態であるブロック暗号プログラム生成装置につい
て、図面に従って具体的に説明する。
【0138】図23は、暗号プログラム生成装置500
の機能構成図であり、この実施形態の暗号プログラム生
成装置500は、暗号プログラム設計仕様生成装置40
0の暗号プログラム設計仕様格納装置404に格納され
たブロック暗号プログラム設計仕様の構文を解析する設
計仕様構文解析装置501と、その解析結果である設計
仕様構文木を格納する設計仕様構文木格納装置503
と、この格納装置503に格納された設計仕様構文木か
らプログラムを生成するプログラム生成装置502と、
設計仕様とプログラムの間の対応会計を定義した設計仕
様プログラム対応テーブル505と、生成されたプログ
ラムを格納するための暗号プログラム格納装置504か
ら構成される。
【0139】この第4の実施形態のブロック暗号プログ
ラム生成装置の動作の詳細は次のようになる。
【0140】まず、前記暗号プログラム設計仕様生成装
置400の暗号プログラム設計仕様格納装置404に格
納されている暗号プログラム設計仕様を、設計仕様構文
解析装置501によって、構文解析する。
【0141】その解析結果は、設計仕様構文木格納装置
503に格納される。続いて、設計仕様プログラム対応
テーブル505に従って、プログラム生成装置502に
よって、前記設計仕様構文木からプログラムを生成す
る。生成されたプログラムは暗号プログラム格納装置5
04に格納される。
【0142】生成された暗号プログラムをコンパイラ/
リンカ506によってコンパイルし、ライブラリ507
とリンクすることにより、実行可能形式暗号プログラム
508が得られる。ライブラリ507には、生成された
暗号プログラムで使用されるビットデータの型や手続き
が含まれる。
【0143】プログラム設計仕様の記述記法としてPA
D(Problem Analysis Diagram)を使い、プログラミン
グ言語としてC言語を使う場合、設計仕様プログラム対
応テーブル505の詳細は例えば図24および図25の
ように定義されている。
【0144】項番(1)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数宣言
があった場合、生成されるプログラムでは、C言語表現
の欄5053に示すように、対応するビット数の型の変
数宣言が生成されることを表している。
【0145】項番(2)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数並び
の宣言があった場合、生成されるプログラムでは、C言
語表現の欄5053に示すように、対応するビット数の
型の配列変数の宣言が生成されることを表している。
【0146】項番(3)は、プログラム設計仕様中に転
字定義があった場合、生成されるプログラムでは、C言
語表現の欄5053に示すように、int型配列変数の
定義が生成されることを表している。
【0147】項番(4)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示されるシフト定
義があった場合、生成されるプログラムでは、int型
変数の定義が生成されることを表している。
【0148】項番(5)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される代入定義
があった場合、生成されるプログラムでは、C言語表現
の欄5053に示すように、int型2次元配列変数の
定義が生成されることを表している。ただし、例えば入
力が2ビットと4ビットであれば、該配列の大きさは4
(=2の2乗)×16(=2の4乗)となる。
【0149】項番(6)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数の参
照を表す表現があった場合、生成されるプログラムで
は、文中の式の部分的な式として、該変数の参照が生成
されることを表している。
【0150】項番(7)は、項番(6)と同様であるが
添字付変数に対応するのは、配列要素の参照であること
を表している。
【0151】項番(8)は、プログラム設計仕様中に設
計仕様(PAD)表現の欄5052に示される変数への
代入を表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、代入文が生
成されることを表している。
【0152】項番(9)は、項番(8)と同様である
が、添字付変数に対応するのは、配列要素への代入であ
ることを表している。
【0153】項番(10)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される演算の
適用を表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、実行文中の
式の部分的な式として、該演算を適用する式が生成され
ることを表している。
【0154】項番(11)〜(15)は、項番(10)
と同様であるが、排他的論理和、転字、逆転字、シフ
ト、代入の各演算では、該演算に対応するC関数を用い
た特殊な式が対応することを表している。
【0155】項番(16)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示されるデータ
の分割を表す表現があった場合、生成されるプログラム
では、C言語表現の欄5053に示すように、「div
ide」というC関数を用いたデータ分割を表す実行文
が生成されることを表している。
【0156】項番(17)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示されるデータ
の連結を表す表現があった場合、生成されるプログラム
では、C言語表現の欄5053に示すように、実行文中
の式の部分的な式として、「concat」というC関
数を用いたデータ連結を表す式が生成されることを表し
ている。
【0157】項番(18)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される繰り返
しを表す表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、「for
文」が生成されることを表している。
【0158】項番(19)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される値を返
す(返値)表現があった場合、生成されるプログラムで
は、C言語表現の欄5053に示すように、「retu
rn文」が生成されることを表している。
【0159】項番(20)は、プログラム設計仕様中に
設計仕様(PAD)表現の欄5052に示される演算定
義の表現があった場合、生成されるプログラムでは、C
言語表現の欄5053に示すように、関数の宣言と定義
が生成されることを表している。この図24および図2
5に示す内容の対応テーブル405は再帰的に適用され
る。
【0160】プログラミング言語としてC言語を使う場
合、前記ライブラリ507のヘッダーファイルは例えば
図27に示すようになる。この中では、図24および図
25に示した内容の対応テーブル405のC言語表現で
使用されているデータ型や関数のプロトタイプが宣言さ
れている。
【0161】図24および図25に示した内容の対応テ
ーブル405に従って、例えば、図21のDESアルゴ
リズムのプログラムを生成すると、図26(a),
(b)に示すようなプログラム4041,4042が得
られる。
【0162】図26(a)は、図21で示した設計仕様
から生成されたプログラムであり、同図(b)は図22
で示した設計仕様から生成されたプログラムである。
【0163】このように、本実施形態においては、前述
したブロック暗号アルゴリズム開発支援装置200とブ
ロック暗号プログラム設計仕様生成装置400を利用し
て開発されたブロック暗号アルゴリズムを実現するプロ
グラムを自動的に生成することができる。この生成され
たブロック暗号プログラムは、該ブロック暗号を使用す
る応用プログラムの開発時にスタブとして使用すること
ができる。
【0164】なお、本実施形態では、プログラム設計仕
様表現としてPADを用い、プログラミング言語として
C言語を用いたが、フローチャート等の他のプログラム
設計仕様表現と、C++やPascal等の他のプログ
ラミング言語を使用した場合でも、同様にして実現可能
である。
【0165】[第5の実施形態]次に、本発明の第5の
実施形態であるブロック暗号プログラムテスト支援装置
について、図面に従って具体的に説明する。
【0166】図28は、ブロック暗号プログラムテスト
支援装置の機能構成図であり、この実施形態のブロック
暗号プログラムテスト支援装置600は、ブロック暗号
プログラムのテストスケジュールを格納するテストスケ
ジュール格納装置601と、格納されたテストスケジュ
ールに従ってテストケース304を選択するテストケー
ス選択装置602と、ブロック暗号プログラムを格納す
る暗号プログラム格納装置605と、格納されたブロッ
ク暗号プログラムに対し前記選択されたテストケース3
04の構成要素である暗号鍵3042と平文3043を
与えて実行させるプログラム実行装置603と、その実
行結果である暗号文と前記選択されたテストケース30
4の構成要素である暗号文3044とを比較するための
比較装置604と、前記選択されたテストケース304
の構成要素であるID3041と比較装置604の比較
結果とからなるテスト結果607を格納するための暗号
プログラムテスト結果格納装置606とから構成され
る。
【0167】この第5の実施形態のブロック暗号プログ
ラムテスト支援装置600の動作の詳細は次のようにな
る。
【0168】まず、ユーザはあらかじめ、前述したブロ
ック暗号プログラムテストケース生成装置300によっ
て、暗号プログラムのテストケース304を生成してお
く。
【0169】また、テスト対象となる暗号プログラムを
暗号プログラム格納装置605に格納しておき、図29
に示すようなテストスケジュール6010をテストスケ
ジュール格納装置601に格納しておく。すると、本実
施形態のブロック暗号プログラムテスト支援装置600
は、図30に示すフローチャートに従って、暗号プログ
ラムのテストを順次実施し、その結果を蓄積していく。
【0170】まず、開始直後にステップ608でテスト
スケジュール6010で示される全ての項番のテストが
終了したかを調べる。そうであれば、処理を終了する。
さもなければステップ609に移る。
【0171】ステップ609では、テストケース選択装
置602によって、テストスケジュール格納装置601
に格納されている図29に示すようなテストスケジュー
ル6010に従って、暗号プログラムテストケース格納
装置305から、次のテストケース304を選択する。
【0172】ステップ610では、プログラム実行装置
603によって、前記選択されたテストケース304の
構成要素である暗号鍵3042と平文3043とを、暗
号プログラム格納装置605に格納されているテスト対
象の暗号プログラムに与えて実行させ、暗号文を生成す
る。
【0173】ステップ611では、比較装置604によ
って、テスト対象の暗号プログラムの実行結果である暗
号文と前記選択されたテストケース304の構成要素で
ある暗号文3044とを比較する。
【0174】ステップ612では、前記選択されたテス
トケース304の構成要素であるID3041と比較装
置604の比較結果とからなるテスト結果607を暗号
プログラムテスト結果格納装置606に格納し、ステッ
プ608に戻る。
【0175】このように、第5の実施形態によれば、前
述のテストケース生成装置300によって生成された暗
号プログラムテストケース304をテストスケジュール
601に従ってテスト対象の暗号プログラムに与え、そ
のテスト対象の暗号プログラムの信頼性をテストするこ
とができる。
【0176】なお、上記の各実施形態で説明した開発支
援装置における各機能ブロックは、コンピュータが実行
可能なプログラムによって実現することができ、そのプ
ログラムはCDROM等の記憶媒体に格納されてユーザ
に提供される。
【0177】
【発明の効果】以上説明したように本発明によれば、予
め定義したブロック暗号アルゴリズム記法に基づいてブ
ロック暗号アルゴリズムの記述と編集を効率良く支援
し、新しい解読技術に耐えられる新しい暗号アルゴリズ
ムの開発を効率良く支援することができる。
【0178】また、ブロック暗号アルゴリズム記法によ
って記述されたブロック暗号アルゴリズムを直接解釈実
行することによって、該ブロック暗号アルゴリズムを実
現するプログラムをテストする際に使用できるテストケ
ースを自動的に生成し、暗号プログラムのテストを効率
良く支援することができる。
【0179】さらに、ブロック暗号アルゴリズム記法に
よって記述されたブロック暗号アルゴリズムから、プロ
グラム開発の目的に適したプログラムの設計仕様を自動
生成し、暗号プログラムの生成を効率良く支援すること
ができる。
【0180】また、ブロック暗号アルゴリズムから自動
生成された前記プログラム設計仕様から、該ブロック暗
号アルゴリズムを実現するプログラムを自動生成し、暗
号プログラムの生成を効率良く支援することができる。
【0181】さらに、暗号プログラム開発のテスト工程
において、ユーザによって指定されたスケジュールに従
って、自動生成されたテストケースを用いて、暗号プロ
グラムを効率良くテストすることができるなど、新しい
解読技術に耐えられる高信頼性の暗号プログラムを開発
するうえでの効率を向上させるのに極めて有効である。
【図面の簡単な説明】
【図1】本発明で用いる暗号アルゴリズム仕様記述記法
で使用するダイアグラム表現を示す図である。
【図2】図1と共に暗号アルゴリズム仕様記述記法で使
用するダイアグラム表現を示す図である。
【図3】ブロック暗号アルゴリズムDESの全体の機能
を記述した例を示すダイアグラム表現図である。
【図4】図3における演算定義の機能を記述した例を示
すダイアグラム表現図である。
【図5】図3におけるブロック暗号アルゴリズムDES
の鍵生成部の機能を記述した例を示すダイアグラム表現
図である。
【図6】図3,図4,図5で使用されている転字,シフ
ト,代入の演算に用いるテーブルの詳細を示す図であ
る。
【図7】本発明の第1の実施形態であるブロック暗号ア
ルゴリズム開発支援装置の機能構成図である。
【図8】図7における暗号ダイアグラム解釈実行装置の
機能構成図である。
【図9】図7における暗号ダイアグラム実行環境検査装
置の機能構成図である。
【図10】暗号ダイアグラム解釈実行装置2の動作を示
すフローチャートである。
【図11】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
【図12】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
【図13】暗号ダイアグラム実行環境格納装置の内容の
例を示す図である。
【図14】暗号ダイアグラム解釈実行装置の動作例を示
す説明図である。
【図15】図14の続きを示すフローチャートである。
【図16】図15の続きを示すフローチャートである。
【図17】本発明の第2の実施形態であるブロック暗号
プログラムテストケース生成装置の機能構成図である。
【図18】本発明の第3の実施形態であるブロック暗号
プログラム設計仕様生成装置の機能構成図である。
【図19】ダイアグラム設計仕様対応テーブル405の
内容の定義例を示す説明図である。
【図20】図19の続きを示す説明図である。
【図21】図3,図4,図5のDESアルゴリズムに対
応するプログラム設計仕様の例を示す説明図である。
【図22】図21の続きを示す説明図である。
【図23】本発明の第4の実施形態であるブロック暗号
プログラム生成装置の機能構成図である。
【図24】設計仕様プログラム対応テーブル505の内
容の定義例を示す説明図である。
【図25】図24の続きを示す説明図である。
【図26】図21,図2ののプログラム設計仕様に対応
して生成されたプログラムの例を示すプログラムリスト
図である。
【図27】ビット演算用のC言語ライブラリのヘッダフ
ァイルの例を示す図である。
【図28】本発明の第5の実施形態であるブロック暗号
プログラムテスト支援装置の機能構成図である。
【図29】テストスケジュールの一例を示す図である。
【図30】ブロック暗号プログラムテスト支援装置の動
作を示すフローチャートである。
【符号の説明】
200…暗号アルゴリズム開発支援装置、201…暗号
ダイアグラム編集装置、202…暗号ダイアグラム解釈
実行装置、203…暗号ダイアグラム実行環境検査装
置、204…暗号ダイアグラム格納装置、205…暗号
ダイアグラム実行環境格納装置、206…ダイアグラム
走査装置、207…計算可能性検査装置、208…初期
値設定装置、209…値計算装置、210…検査対象指
定装置、211…検査結果表示装置、300…暗号プロ
グラムテストケース生成装置、301…ID計数装置、
302…鍵生成装置、303…平文生成装置、304…
ブロック暗号プログラムのテストケース、305…暗号
プログラムテストケース格納装置、400…暗号プログ
ラム設計仕様生成装置、401…ダイアグラム構文解析
装置、402…設計仕様生成装置、403…ダイアグラ
ム構文木格納装置、404…暗号プログラム設計仕様書
格納装置、405…ダイアグラム設計仕様対応テーブ
ル、500…暗号プログラム生成装置、501…設計仕
様構文解析装置、502…プログラム生成装置、503
…設計仕様構文木格納装置、504…暗号プログラム格
納装置、505…設計仕様プログラム対応テーブル、5
06…コンパイラ/リンカ、507…ライブラリ、50
8…実行可能形式暗号プログラム、600…暗号プログ
ラムテスト支援装置、601…テストスケジュール格納
装置、602…テストケース選択装置、603…プログ
ラム実行装置、604…比較装置、605…暗号プログ
ラム格納装置、606…暗号プログラムテスト結果格納
装置、607…テスト結果。
───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.6 識別記号 FI H04L 9/06 H04L 9/00 611Z 9/10 621Z (72)発明者 堤 俊之 神奈川県横浜市中区尾上町6丁目81番地 日立ソフトウェアエンジニアリング株式会 社内

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 予め定義したブロック暗号アルゴリズム
    仕様記述記法によるブロック暗号アルゴリズムのダイア
    グラム表現をユーザが記述及び編集するのを支援する暗
    号ダイアグラム編集手段と、 該暗号ダイアグラム編集手段によって編集されたブロッ
    ク暗号アルゴリズムのダイアグラム表現を格納する暗号
    ダイアグラム格納手段と、 格納されたブロック暗号アルゴリズムのダイアグラム表
    現を解釈実行する暗号ダイアグラム解釈実行手段と、 解釈実行中のブロック暗号アルゴリズムのダイアグラム
    表現に現れる変数の状態を格納する暗号ダイアグラム実
    行環境格納手段と、 このブロック暗号ダイアグラム実行環境格納手段の内容
    を検査するための暗号ダイアグラム実行環境検査手段
    と、を備えることを特徴とするブロック暗号アルゴリズ
    ム開発支援装置。
  2. 【請求項2】 ブロック暗号アルゴリズム仕様記述記法
    は、ビット列データを値とする変数のダイアグラム表現
    と、ビット列データ上の演算のダイアグラム表現とを構
    成要素として有し、前記変数と前記演算を組み合わせる
    ためのダイアグラム表現として、前記変数からの参照操
    作のダイアグラム表現と、前記変数への代入操作のダイ
    アグラム表現と、前記ビット列データへの前記演算の適
    用操作のダイアグラム表現と、前記ビット列データの分
    割操作のダイアグラム表現と、前記ビット列データの連
    結操作のダイアグラム表現と、前記ビット列データの複
    製操作のダイアグラム表現と、前記ビット列データへの
    繰り返し処理のダイアグラム表現と、前記ビット列デー
    タ上の演算を定義するためのダイアグラム表現とを備え
    ることを特徴とする請求項1記載のブロック暗号アルゴ
    リズム開発支援方法。
  3. 【請求項3】 テストケースを区別するためのIDと暗
    号化鍵と平文と該平文を前記暗号化鍵によって暗号化し
    た暗号文からなるブロック暗号プログラムテストケース
    を格納するための暗号プログラムテストケース格納手段
    と、 前記IDを生成するためのID計数手段と、 前記暗号化鍵を生成するための鍵生成手段と、 前記平文を生成するための平文生成手段とを備え、 前記暗号文を生成するブロック暗号アルゴリズム開発支
    援手段と、を備えることを特徴とするブロック暗号プロ
    グラム開発支援装置。
  4. 【請求項4】 ブロック暗号アルゴリズムのダイアグラ
    ム表現の構文を解析するダイアグラム構文解析手段と、 その解析結果であるダイアグラム構文木を格納するダイ
    アグラム構文木格納手段と、 格納されたダイアグラム構文木からプログラム設計仕様
    を生成する設計仕様生成手段と、 ダイアグラムとプログラム設計仕様の間の対応関係を定
    義した対応テーブルと、 生成された設計仕様を格納するための暗号プログラム設
    計仕様格納手段とを備えることを特徴とするブロック暗
    号プログラム開発支援装置。
  5. 【請求項5】 ブロック暗号プログラムの設計仕様の構
    文を解析する設計仕様構文解析手段と、 その解析結果である設計仕様構文木を格納する設計仕様
    構文木格納手段と、 格納された設計仕様構文木からプログラムを生成するプ
    ログラム生成手段と、 設計仕様とプログラムの間の対応関係を定義した対応テ
    ーブルと、 生成されたプログラムを格納するための暗号プログラム
    格納手段とを備えることを特徴とするブロック暗号プロ
    グラム開発支援装置。
  6. 【請求項6】 ブロック暗号プログラムのテストスケジ
    ュールを格納するテストスケジュール格納手段と、 このテストスケジュール格納手段に格納されたテストス
    ケジュールに従ってテストケースを選択するテストケー
    ス選択手段と、 ブロック暗号プログラムを格納する暗号プログラム格納
    手段と、 格納されたブロック暗号プログラムに前記選択されたテ
    ストケースの構成要素である鍵と平文を与えて実行させ
    るプログラム実行手段と、 その実行結果である暗号文と前記選択されたテストケー
    スの構成要素である暗号文とを比較するための比較手段
    と、 前記選択されたテストケースのIDと該比較結果とから
    なるテスト結果を格納するための暗号プログラムテスト
    結果格納手段とを備えることを特徴とするブロック暗号
    プログラム開発支援装置。
JP04121797A 1997-02-25 1997-02-25 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置 Expired - Fee Related JP3427993B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04121797A JP3427993B2 (ja) 1997-02-25 1997-02-25 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04121797A JP3427993B2 (ja) 1997-02-25 1997-02-25 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置

Publications (2)

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

Family

ID=12602241

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04121797A Expired - Fee Related JP3427993B2 (ja) 1997-02-25 1997-02-25 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置

Country Status (1)

Country Link
JP (1) JP3427993B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122908A2 (en) * 2000-01-24 2001-08-08 Nec Corporation Encryption evaluation support system that can largely reduce evaluation time of encryption algorithm, and record medium recording its program
CN103049269A (zh) * 2012-12-25 2013-04-17 卡斯柯信号有限公司 一种基于双链的相异性冗余编码方法
CN111522556A (zh) * 2020-04-29 2020-08-11 铁道警察学院 一种分组密码编程语言及编译基础设施的设计方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1122908A2 (en) * 2000-01-24 2001-08-08 Nec Corporation Encryption evaluation support system that can largely reduce evaluation time of encryption algorithm, and record medium recording its program
EP1122908A3 (en) * 2000-01-24 2003-10-01 Nec Corporation Encryption evaluation support system that can largely reduce evaluation time of encryption algorithm, and record medium recording its program
AU776931B2 (en) * 2000-01-24 2004-09-23 Nec Corporation Encryption evaluation support system that can largely reduce evaluation time of encryption algorithm, and record medium recording its program
US7051202B2 (en) 2000-01-24 2006-05-23 Nec Corporation Apparatus and computer-recording medium for evaluation support of encryption algorithm strength
CN103049269A (zh) * 2012-12-25 2013-04-17 卡斯柯信号有限公司 一种基于双链的相异性冗余编码方法
CN103049269B (zh) * 2012-12-25 2016-02-24 卡斯柯信号有限公司 一种基于双链的相异性冗余编码方法
CN111522556A (zh) * 2020-04-29 2020-08-11 铁道警察学院 一种分组密码编程语言及编译基础设施的设计方法
CN111522556B (zh) * 2020-04-29 2023-11-24 铁道警察学院 一种分组密码编程语言及编译基础设施的设计方法

Also Published As

Publication number Publication date
JP3427993B2 (ja) 2003-07-22

Similar Documents

Publication Publication Date Title
Bootle et al. Arya: Nearly linear-time zero-knowledge proofs for correct program execution
Crowley Asynchronous control of orientation and displacement in a robot vehicle
Mouris et al. Zilch: A framework for deploying transparent zero-knowledge proofs
Ipate et al. Generating test sets from non-deterministic stream X-machines
EP1314045B1 (en) Method for providing bitwise constraints for test generation
Ben El Ouahma et al. Side-channel robustness analysis of masked assembly codes using a symbolic approach
Niu et al. Zero-correlation linear cryptanalysis with equal treatment for plaintexts and tweakeys
JP3427993B2 (ja) 暗号アルゴリズム開発支援装置及び暗号プログラム開発支援装置
Bourhfir et al. Test cases selection from SDL specifications
Andova et al. Prototyping the Semantics of a DSL using ASF+ SDF: Link to Formal Verification of DSL Models
CN115659376A (zh) 基于符号执行生成数据流图的加密算法识别装置及方法
White et al. Path testing of computer programs with loops using a tool for simple loop patterns
Ballarin et al. A pragmatic approach to extending provers by computer algebra—with applications to coding theory
Balbontín Noval et al. A MzScheme implementation of transition P systems
JP4168224B2 (ja) プログラマブルコントローラのプログラミング装置
Stepney et al. Formal methods for industrial products
Konstantinidis et al. Implementation of code properties via transducers
Qassir et al. Developing a Graphical Domain-Specific Modeling Language for Efficient Lightweight Block Cipher Schemas Configuration: LWBCLang
Best et al. Reducing k-safe Petri nets to pomset-equivalent 1-safe Petri nets
Qassir et al. Designing a Graphical Domain-Specific Modeling Language for Efficient Block Cipher Configuration: BCLang
Sward et al. Issues in re-engineering from procedural to object-oriented code
Ünay et al. Supporting Custom Instructions with the LLVM Compiler for RISC-V Processor
Rakesh Design and Implementation of LRC and CRC algorithms in Netsim
JP3003459B2 (ja) プログラム作成支援装置
Zimmermann On the correctness of transformations in compiler back-ends

Legal Events

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