【解決手段】設計データは、コンタクト63、ポリシリコン64、及び配線65等のセル毎に、その配置、及び形状を表す。それにより、セルのなかで選択した種類のセルの配置、及び形状のうちの少なくとも一方の内容を操作すると、セル間の対応関係が把握できなくなるか、把握するのが困難となる。このことを利用し、セルの配置、及び形状のうちの少なくとも一方の内容を操作することで、設計データのフォーマットを変更することなく、暗号化を行う。
【発明を実施するための形態】
【0012】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図1は、本実施形態による暗号化/復号化装置の機能構成例を説明する図である。
図2は、本実施形態による暗号化/復号化装置の適用例を説明する図である。
【0013】
本実施形態による暗号化/復号化装置1は、GDS、或いはOASIS等のファイルに格納された設計データを対象に、その暗号化、及び暗号化された設計データの復号化を行う装置である。
図1に表すように、その暗号化/復号化装置1は、設計者等のオペレータが操作部2を介して行った指示に従い、指定された設計データの暗号化、或いは暗号化された設計データの復号化を行う。そのために、暗号化/復号化装置1は、操作解析部11、システム制御部12、暗号化/復号化部13、記憶部14、及び入出力部15を備えている。
【0014】
操作解析部11は、オペレータが操作部2に対して行った操作を解析し、その操作を介して行った指示を認識する。その認識結果は、操作解析部11からシステム制御部12に渡される。
【0015】
システム制御部12は、オペレータの指示に従って暗号化/復号化装置1全体を制御する。暗号化/復号化部13は、システム制御部12からの指示に従い、システム制御部12から指定されたファイルの暗号化、或いは復号化を行い、暗号化、或いは復号化を行ったファイルをシステム制御部12から指定された場所に出力する。ここでは、説明上、便宜的に、設計データはGDSファイルに格納されていると想定する。GDSファイルに格納される設計データは、設計された対象物を構成する構成要素の配置、及び形状を決定するレイアウト設計の結果を表すデータである。
【0016】
図3は、GDSファイルのデータ構成を説明する図である。GDSファイルでは、設計された対象物を構成する構成要素は、セルと呼ばれる。各セルには、
図3に表すように、0〜1023の間の数値がレイヤーとして割り当てられ、0〜63の間の数値がデータタイプとして割り当てられる。各セルの形状、及び配置は、各頂点の座標により表現され、回転角も設定可能となっている。
【0017】
記憶部14は、各種データ(ファイル)の格納等に用いられる。
図1では、格納されたデータとして、ルールファイル141、暗号化対象となるGDSファイル142、暗号化後のGDSファイル143、暗号化後の別のGDSファイル144、及び復号化用のルール(復号化ルール)145を表している。
【0018】
ルールファイル141は、暗号化のための各種ルールがまとめられたファイルである。暗号化/復号化部13は、ルールファイル141を参照し、指定されたGDSファイルの暗号化を行う。GDSファイル142は、オリジナル(元)の設計データが格納されたファイルであり、GDSファイル143は、暗号化・復号化13による暗号化が行われた後のGDSファイルである。GDSファイル142への暗号化、つまりGDSファイル143の生成は、例えば提供する外部での技術流出を防止するために行われる。
【0019】
本実施形態では、GDSファイル142への暗号化は、対象とするセル毎に、そのセルの配置、及び形状のうちの少なくとも一方の内容を操作し、その配置、或いは形状を変更することで行うようにしている。ルールファイル141に格納された各ルールは、そのような操作を行う対象とするセル、及びその操作内容を指定する。そのため、暗号化/復号化部13は、ルールファイル141を参照し、指定されたGDSファイルの暗号化、及び復号化を行う。
【0020】
暗号化を行ったGDSファイル143の提供先にルールファイル141を提供するのは望ましくない。このことから、本実施形態では、GDSファイル143の提供先には、そのGDSファイル143の復号化に必要なルールのみを提供するようにしている。復号化ルール145は、提供先に提供すべきルールのみを格納させたファイルである。
【0021】
入出力部15は、例えば外部装置との間でデータの入出力が可能なものである。暗号化、或いは復号化の対象となるGDSファイルの取得、暗号化、或いは復号化を行ったGDSファイルの出力等は、入出力部15を介して行うことができる。
【0022】
暗号化/復号化部13は、
図1に表すように、管理部131、ルール作成部132、暗号化部133、及び復号化部134を備える。
【0023】
管理部131は、記憶部14へのアクセスを行うと共に、暗号化を行ったGDSファイル、及び復号化を行ったGDSファイルを管理する。入出力部15が取得した暗号化、或いは復号化の対象となるGDSファイルの記憶部14への格納、及び暗号化、或いは復号化を行ったGDSファイルの入出力部15からの出力等は、管理部131を介して行われる。
【0024】
ルール作成部132は、ルールファイル141を参照し、暗号化のためのルールの作成、及び復号化のためのルールの作成を行う。そのために、ルール作成部132は、暗号化ルール作成部136、及び復号化ルール137を備えている。
【0025】
ルールファイル141に格納された各ルールは、実際の暗号化に用いるルールを作成するためのルールであっても良いが、その暗号化に用いるルールそのものであっても良い。ここでは便宜的に、ルールファイル141には暗号化に用いるルールそのものが格納されていると想定する。その想定では、暗号化ルール作成部136は、ルールファイル141に格納されているルールのなかから暗号化に用いるルールを選択することになる。復号化ルール作成部137は、ルールファイル141に格納されているルールのなかから実際に暗号化に用いられたルールを特定し、特定したルールによる操作を無効とさせるルールを作成する。
【0026】
暗号化部133は、ルール作成部132の暗号化ルール作成部136が選択したルールを用いて、指定されたGDSファイルの暗号化を行う。その暗号化を行ったGDSファイルは、管理部131により、指定された場所に出力される。
【0027】
復号化部134は、ルール作成部132の復号化ルール作成部137が作成したルールを用いて、指定されたGDSファイルの復号化を行う。その復号化を行ったGDSファイルは、管理部131により、指定された場所に出力される。
【0028】
ここで、
図5〜
図11を参照し、本実施形態による暗号化について具体的に説明する。
図5は、インバータの回路例を説明する図であり、
図6は、
図5に回路例を表すインバータのレイアウト設計例を説明する図である。
【0029】
インバータ50は、
図5に表すように、PチャネルMOS(Metal Oxide Semiconductor) FET(Field Effect Transistor)51、及びNチャネルMOS FET(以降「NチャネルFET」と表記。51を付したPチャネルMOS FETは「PチャネルFET」と表記する)52を電源電圧VDD、及びVSS間に接続することで実現される。PチャネルFET51、及びNチャネルFET52の各ゲートは入力端子INと接続され、PチャネルFET51、及びNチャネルFET52の各ゲートは出力端子OUTと接続されている。PチャネルFET51のソースには電源電圧VDDが印加され、NチャネルFET52のソースには電源電圧VSSが印加される。
【0030】
図6は、上記のように、PチャネルFET51、及びNチャネルFET52を構成要素とするインバータ50のレイアウト設計結果例を表している。その
図6では、61はN型拡散層、62はP型拡散層、63(63−1〜63−5)はコンタクト、64はポリシリコン、65(65−1〜65−4)は配線、をそれぞれ表している。
【0031】
配線65−1は、PチャネルFET51のソースに相当する。配線65−2は、PチャネルFET51,及びNチャネルFET52の各ドメインに相当する。配線65−3は、NチャネルFET52のソースに相当する。配線65−4は、PチャネルFET51、及びNチャネルFET52の各ゲートに相当する。
【0032】
N型拡散層61、及びP型拡散層62は、同一層(レイヤー)に存在し、その層上には、
図6には不図示のシリコン酸化膜が形成されている。各配線65−1〜65−3、及びポリシリコン64は、そのシリコン酸化膜上に形成され、配線65−4は、ポリシリコン64の更に上に形成されている。このことから、コンタクト63−1は、配線65−1とN型拡散層61とを接続するために設けられている。同様に、コンタクト63−2は、配線65−2とN型拡散層61、コンタクト63−3は、配線65−3とP型拡散層62、コンタクト63−4は、配線65−2とP型拡散層62、とをそれぞれ接続するために設けられている。コンタクト63−5は、配線65−4とポリシリコン64とを接続するために設けられている。
【0033】
図7〜
図9は、本実施形態による暗号化によってセルの配置に対して行われる操作例を説明する図である。
図7〜
図9では、理解を容易とするために、配置を操作するセルを限定し、その操作内容も簡単なものとしている。配置を操作するセルを含むレイアウト設計結果例として、
図5に回路を表すインバータ50を例にとっている。以降、
図7〜
図9を参照し、セルの配置に対して行う操作について具体的に説明する。
【0034】
図7に表す操作例は、ポリシリコン64を左回りに90度、回転させた場合を表している。
図7では、ポリシリコン64の元の配置を破線で表している。
図7に表すように、ポリシリコン64の回転により、PチャネルFET51、及びNチャネルFET52共に、ドレインとソースの関係、及びゲートとポリシリコン64の関係が認識し難くなっている。このことから、1セルの配置を変更する操作を行っただけで、元のレイアウト設計の内容も把握し難くなる。この
図7に表すような操作例は、ポリシリコンを少なくとも操作対象とし、操作内容として、90度の回転を指定するルールの選択により実現される。
【0035】
図8に表す操作例は、各配線65−1〜65−4を同じ方向に同じ距離だけ移動させた場合を表している。
図8では、
図7と同様に、各配線65−1〜65−4の元の配置をそれぞれ破線で表している。
【0036】
図8では、理解を容易とするために、移動距離は小さくしている。しかし、或る程度の移動距離を設定した場合、移動させたセル(ここでは配線65−1〜65−4)と、そのセルに関係する別のセル(ここでは各コンタクト63、ポリシリコン64、N型拡散層61、及びP型拡散層62)との対応関係が把握し難くなる。
図8には表していないが、セルの移動先には、別のセルが存在するのが普通である。そのため、レイアウト設計結果を確認しようとする人は、移動させたセルと、その移動先、或いはその近傍に存在するセルとの実際には存在しない対応関係を把握しようとすることになる。このことから、セルの配置を移動する操作を行っただけで、元のレイアウト設計の内容も把握し難くなる。この
図8に表すような操作例は、配線(メタル)を少なくとも操作対象とし、操作内容として、移動方向、及び移動距離を指定するルールの選択により実現される。
【0037】
図9に表す操作例は、
図7、及び
図8に表す各操作例を同時に行った場合、つまりポリシリコン64の左回りの90度の回転、及び各配線65−1〜65−4の同じ方向に同じ距離だけの移動を同時に行った場合を表している。
図9でも、
図7、及び
図8と同様に、ポリシリコン64、及び各配線65−1〜65−4の元の配置をそれぞれ破線で表している。
図9に表すように、複種類のセルの配置を操作した場合、元のレイアウト設計の内容はより把握し難くすることができる。
【0038】
セルの配置の操作は、基本的に、回転、及び移動のうちの少なくとも一方を対象にする操作である。このため、セルの配置の操作は、セルの移動、及び回転を共に対象としても良い。セルの形状の操作は、拡大、縮小、及び変形のうちの一つ以上を行う操作である。このため、例えば拡大、或いは縮小を行った形状に対し、更に変形を行うようにしても良い。同じデータタイプ、或いは同じ種類のセルに対し、それぞれ異なる操作を行っても良い。レイヤーによって操作内容を異ならせても良い。何れの操作を行ったとしても、操作後の設計データが表す内容(レイアウト)は人にとって把握し難いものとできることから、その操作によって暗号化を行うことができる。また、レイアウトの設計結果である設計データは、フォーマットが異なっても、セルの配置、及び形状を表すものである。そのため、設計データのフォーマット等に関係なく、暗号化、及び復号化を行うことができる。
【0039】
図10は、インバータのレイアウト設計に対する実際の暗号化例を説明する図であり、
図11は、インバータのレイアウト設定に対する暗号化に用いられるルールファイルの内容例を説明する図である。更に、
図10、及び
図11を参照し、
図5に回路を表すインバータ50に対して実際に行う暗号化、及びその暗号化のためのルールファイル141について具体的に説明する。
【0040】
図10に表す暗号化例は、ポリシリコン64、各配線65−1〜65−4、及び各コンタクト63−1〜63−5の配置を操作した場合の例である。ポリシリコン64の配置には、90度の回転操作、及び移動操作が行われている。各配線65−1〜65−4の配置には移動操作のみが行われ、各コンタクト63−1〜63−5の配置には、45度の回転操作、及び移動操作が行われている。そのような操作による暗号化の結果、N型拡散層61とP型拡散層62、ポリシリコン64、各配線65−1〜65−4、及び各コンタクト63−1〜63−5の間の関係が認識し難くなっている。
【0041】
移動操作を行った後のセルの位置は、多くの場合、別の回路、或いは素子等を構成する何れかのセルと重なる位置、或いは近傍の位置となる。このこともあり、実際には、インバータ50のレイアウト設計結果に含まれるセルの特定さえ非常に困難となる。そのため、レイアウト設計結果の高い機密性の実現も容易である。
【0042】
図10に表すような暗号化を実現させる場合、
図11に内容例を表すルールファイル141を用意すれば良い。この
図11において、ポリシリコン64の配置に対して行うべき操作内容は、「変数割り当てpoly1 = (Data=m1,Layer=n1;)」「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」の記述によって指定される。
【0043】
「変数割り当てpoly1 = (Data=m1,Layer=n1;)」は、操作対象とすべきセルを指定する記述であり、「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」は、操作内容を指定する記述である。より具体的には、「変数割り当てpoly1 = (Data=m1,Layer=n1;)」は、データタイプの値がm1、レイヤーの値がn1のセルが変数「poly1」として扱われることを表している。「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」は、変数「poly1」が割り当てられたセルに対し、回転操作、及び移動操作を行うことを指定する。
【0044】
「操作種別=回転、移動」は、行うべき操作の種類である操作種別が回転操作、及び移動操作であることを指定する。「操作量=(90°)、(160,20)」は、指定された操作種別の順序で、指定された操作種別の操作内容(操作量)を指定する。それにより、「(90°)」は、回転の正方向(例えば
図10に向かって左回り)に90度、回転させる操作を指定する。「(160,20)」は、X軸の正方向上に160、Y軸の正方向上に20、それぞれ移動させる操作を指定する。
図10では、それら2つの操作を2本の矢印で表している。「160」「20」は、レイアウト設計に用いられた座標系上で距離を表す数値である。
図10では、X軸の正方向への移動は、右方向への移動であり、Y軸の正方向への移動は、上方向への移動である。
【0045】
上記のようなことから、各配線65−1〜65−4の配置に対して行うべき操作内容は、「変数割り当てmetal1 = (Data=m2,Layer=n2;)「操作対象metal1、操作種別=移動、操作量=(100,200)」の記述によって指定される。また、各コンタクト63−1〜63−5の配置に対して行うべき操作内容は、「変数割り当てcon1 = (Data=m3,Layer=n3;)「操作対象con1、操作種別=移動、回転、操作量=(-100,-200)、(45°)」の記述によって指定される。
図10では、各配線65−1〜65−4の配置への1つの操作を1本の矢印で表し、各コンタクト63−1〜63−5の配置への2つの操作を2本の矢印で表している。
【0046】
図11に表すようなルールファイル141、つまりセル単位で操作種別、及び操作量を表すルールファイル141では、暗号化の際に行われた操作を無効とさせる操作内容を特定することができる。このため、
図11に表すようなルールファイル141は、復号化に用いることもできる。
【0047】
図10に表すような暗号化、及び
図11に表すようなルールファイル141は、共に1例であり、暗号化のための操作、及びルールファイル141の構成は共に、
図10、及び
図11によって限定されない。暗号化のための操作、及びルールファイル141の構成は、暗号化の対象とする設計結果、或いは機密性のレベル、等に応じて決定すれば良い。
【0048】
図12は、本実施形態による暗号化/復号化装置として使用可能な情報処理装置の構成例を表す図である。ここで、
図12を参照し、本実施形態による暗号化/復号化装置1として使用可能な情報処理装置例について具体的に説明する。
【0049】
この情報処理装置は、
図12に表すように、CPU(Central Processing Unit)81、ROM(Read Only Memory)82、メモリ(メモリモジュール)83、NIC(Network Interface Card)84、ハードディスク装置(HD)85、媒体駆動装置86、及びコントローラ87を備えている。この構成は、1例であり、暗号化/復号化装置1として使用可能な情報処理装置の構成は、
図12に表すようなものに限定されない。
【0050】
ROM82は、BIOS(Basic Input/Output System)を格納したメモリである。このBIOSは、CPU81によってメモリ83に読み出され実行される。ハードディスク装置85には、OS(Operating System)、並びに設計データの暗号化、及び復号化のためのアプリケーション・プログラム(以降「暗号化ソフトウェア」と略記)が格納されている。CPU81は、BIOSの起動が完了した後、コントローラ87を介してハードディスク装置85からOS、更には暗号化ソフトウェアを読み出して実行することができる。NIC84を介した通信は、OSの起動によって可能となる。
【0051】
この暗号化ソフトウェアは、ハードディスク装置85以外のストレージ、或いは媒体駆動装置86がアクセス可能な記録媒体86aに格納しても良い。ストレージ、或いは記録媒体は、NIC84がネットワークを介して通信可能な外部装置がアクセス可能なものであっても良い。このことから、暗号化ソフトウェアは、外部装置から受信しても良い。
【0052】
コントローラ86は、媒体駆動装置86以外に、表示装置91、及び入力装置(キーボード、ポインティングデバイス(PD)、等)92を接続可能なコントローラである。表示装置91、及び入力装置92は、情報処理装置に搭載されていても良いが、後から接続させても良い。このことから、
図12では、コントローラ87と表示装置91間、及びコントローラ87と入力装置92間は破線で結んでいる。
【0053】
上記のような構成の情報処理装置では、操作部2は例えば表示装置91、及び入力装置92である。これは、オペレータが、表示装置91に表示される画像等を見ながら、入力装置92に対し、所望の処理を実行させるための操作を行うことを想定している。
【0054】
操作解析部11、システム制御部12、及び暗号化/復号化部13は、CPU81、ROM82、メモリ83、ハードディスク装置85、及びコントローラ87によって実現される。記憶部14は、例えばハードディスク装置85、及び/或いは、記録媒体86aがセットされた媒体駆動装置86である。入出力部15は、例えばNIC84、及び/或いは、記録媒体86aがセットされた媒体駆動装置86である。
【0055】
図2に表す適用例は、例えば電子回路として半導体集積回路(LSI(Large Scale Integration)等)の設計を行うクライアントに対し、CADソフトを販売したベンダが、サービスとしてクライアントに提供する設計結果の技術流出を防止する場合を例にとったものである。次に、
図2を参照して、そのようなベンダを想定した適用例について詳細に説明する。
【0056】
ベンダがクライアントに提供する設計結果とは、通常、半導体集積回路の一部として利用可能な機能的、或いは論理的な単位回路である。その設計結果は、クライアントが基本素子(セル)として扱うことができる。
【0057】
図2中に表すマクロGDSファイル142は、暗号化の対象となるGDSファイル142の1例である。マクロGDSファイル143は、GDSファイル142の暗号化を行って得られるGDSファイルである。ここでは、混乱を避けるために、ベンダが技術流出を防止すべき設計結果として、マクロGDSファイル142のみを想定する。
【0058】
マクロGDSファイル142の暗号化は、そのマクロGDSファイル142を対象としたベンダ側での暗号化処理の実行によって行われる(SV1)。本実施形態では、暗号化処理の実行には、ルールファイル141の他に、クライアントに割り当てた識別情報である顧客コード31を必要とさせている。顧客コード31を必要としているのは、クライアント毎に、異なる操作内容でマクロGDSファイル142の暗号化を行うようにして、技術流出の可能性を低減させるためである。マクロGDSファイル142の暗号化によって得られたマクロGDSファイル143がクライアントに提供される。
【0059】
半導体修正回路を設計対象とするレイアウト設計は、セルの配置(Place)とセル間等を結ぶ配線(Route)を決定する設計である。配線はセル間を結ぶものが存在することから、レイアウト設計は、セルの配置の決定(SC1)、及び配線の決定(SC2)の順序で行われる。そのため、
図2には「P&R」を表記している。
【0060】
図2では、レイアウト設計に必要なデータとして、チップ情報(
図2中「Chip Info」と表記)21、ネットリスト22、ライブラリ(
図2中「Lib」と表記)23、LEF(Library Exchange Format)24、及びSDC(Synopsys Design Constraints)25を表している。
【0061】
チップ情報21は、設計を行うための情報の集合である。ネットリスト22は、セル間の接続関係を記述したデータである。
図2中に表記の「Verilog」は、ネットリスト23の記述に用いられるフォーマットである。ライブラリ23は、セル毎に、レイアウト、論理、及び遅延、などの情報がまとめられたものである。LEF24は、セル毎に、そのセルの大きさ、レイヤー数、各レイヤーのデザインルール、等の物理情報がまとめられたものである。SDC25には、設計制約が記述されている。
【0062】
配線の決定により、レイアウト設計が終了し、その設計結果26が生成される。その設計結果26がGDSファイル27に変換される。
【0063】
クライアントがマクロGDSファイル142にレイアウトが表されるセルを利用する半導体集積回路を設計した場合、生成されたGDSファイル27は、マクロGDSファイル142分のレイアウトデータが欠けたものとなる。そのため、クライアント側は、GDSファイル27のレイアウトデータにマクロGDSファイル143のレイアウトデータを加えるマージ処理を行う(SC3)。このマージ処理の実行によって得られたGDSファイル28が、レイアウト設計結果の検証対象となり、検証工程(PV(Physical Verification))に渡される。
【0064】
この検証工程では、クライアント側は、GDSファイル28を対象にチップレイアウトデザイン検証処理を実行する(SC4)。この検証処理を実行する検証プログラムは、例えばベンダから提供されたプログラムである。この検証プログラムは、検証処理の実行のために、GDSファイル28中のマクロGDSファイル143分のレイアウトデータ(設計データ)を復号化する。この検証プログラムは、検証処理の実行後、マクロGDSファイル143分のレイアウトデータを再度、暗号化する。
【0065】
そのようにして、検証プログラムは、技術流出する可能性を低減する。しかし、検証自体は、マクロGDSファイル142分のレイアウトデータを用いるため、そのレイアウトデータの代わりとなる検証用データを使用する場合と比較して、高精度に行うことができる。その結果、ベンダ側の検証に依存しなくとも済むようになって、レイアウト設計もより短時間に行えるようになる。また、暗号化の前後で設計データ(レイアウトデータ)は変化しないため、クライアント側は、SC3のマージ処理、及びS4のチップレイアウトデザイン検証処理を、従来と同様に行うことができる。それにより、レイアウト設計(ここでは検証工程も含む)における作業の煩雑化も大幅に抑制される。
【0066】
チップレイアウトデザイン検証処理での復号化は、ベンダ側から提供される復号化ルール145を用いて行われる。これは、GDSファイル28を復号化の対象とする場合、マクロGDSファイル143分のレイアウトデータのみを対象に、復号化を行わなければならないからである。つまり復号化のための操作対象となるセルのみを特定できなければならないからである。そのため、復号化ルール145には、操作対象とすべきセルを特定するための情報、そのセルの配置、及び/或いは、形状への操作内容を表す情報がまとめられる(
図7〜
図11)。
【0067】
復号化ルール145は、ルールファイル141、及び顧客コード31を参照する復号化ルール作成処理の実行によって作成される(SV2)。クライアント側に提供される復号化ルール145は、ルール作成部132の復号化ルール作成部136によって作成され、入出力部15を介して出力されるものである。上記のように、ルールファイル141が
図11に表すような構成であった場合、そのルールファイル141は復号化ルール145として用いることもできる。
【0068】
クライアント側は、チップレイアウトデザイン検証処理の実行結果から、レイアウト設計結果がOKかNGの何れであるかを判定する(SC5)。SC5の判定結果がNGであった場合、SC1、或いはSC2の処理に戻り、再度、レイアウト設計が行われる。SC5の判定結果がOKであった場合、レイアウト設計結果のテープアウト(T.O.)が行われる(SC6)。そのテープアウトによって出力されたGDSファイル144は、ベンダ側に、検証のために送られる。
【0069】
ベンダ側は、クライアント側から送られたGDSファイル144中のマクロGDSファイル143分のレイアウトデータに対する復号化処理を実行する(SV3)。ベンダ側は、その復号化処理の実行によって得られたGDSファイルを用いて各種検証を行い、その検証結果をクライアント側に通知する(SV4)。それにより、ベンダ側での検証により、レイアウトの設計結果がOKであることが確認された場合、クライアント側は次の工程に進むことになる。レイアウトの設計結果がNGであった場合、クライアント側は、再度、SC1、或いはSC2の処理に戻り、レイアウト設計を行うこととなる。
【0070】
図4は、暗号化/復号化処理のフローチャートである。この暗号化/復号化処理は、CPU81によって実行される処理であり、
図1に表す暗号化/復号化部13は、CPU81がこの暗号化/復号化処理を実行することで実現される。最後に、
図4を参照し、暗号化/復号化処理について詳細に説明する。
【0071】
この暗号化/復号化処理は、例えばオペレータが、暗号化プログラムを起動させた後、暗号化、及び復号化の何れを実行させるかの指定、対象とするGDSファイルの指定、及び顧客コード31の指定を行った状態で、実行を指示することで実行される処理である。暗号化、及び復号化の何れを実行させるかの指定結果は、暗号化/復号化フラグ情報41として保存される。この暗号化/復号化処理では、例えば復号化ルール145の作成のみを行うという指定も可能である。
【0072】
先ず、CPU81は、オペレータが指定したGDSファイルを読み込む(S1)。次に、CPU81は、暗号化/復号化フラグ情報41を参照し、オペレータが指定した処理が暗号化、及び復号化の何れであるか特定し、特定した処理に応じて必要なルールを作成するルール作成処理を実行する(S2)。このとき、暗号化/復号化フラグ情報41が処理として復号化を表し、且つ復号化ルール145の作成のみを指定していた場合、作成した復号化ルール145の書き出しを行った後、この暗号化/復号化処理が終了する。ルールの作成のために、ルールファイル141、及び顧客コード31が参照される。
【0073】
ルールを作成した後、CPU81は、暗号化/復号化フラグ情報41が指定する暗号化、或いは復号化のための処理を実行する(S3)。その処理の実行後、CPU81は、暗号化した、或いは復号化したGDSファイルを、オペレータが指定した場所に書き出す。GDSファイルの書き出しを行った後、暗号化/復号化処理が終了する。
【0074】
なお、本実施形態では、暗号化、及び復号化を行えるようにしているが、暗号化、及び復号化のうちの一方のみを行えるようにしても良い。また、暗号化、及び復号化にルールファイル141を参照するようにしているが、ルールを作成するルールを固定しても良い場合、或いはルールの作成機能を搭載させる場合には、ルールファイル141を用意する必要はない。ルールの作成機能としては、例えば設計データの予め定めた一部をルールの作成に用いる情報として、その情報に応じたルールを作成するものも考えられる。
【0075】
上記以外にも、様々な変形を行うことができる。
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得し、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う、
処理を実行させる暗号化プログラム。
(付記2)
オペレータによって指定される第1の情報を取得し、
前記第1の情報を用いて、前記暗号化のために操作を行うべき構成要素、及び前記構成要素への操作内容を表す暗号化ルールを作成し、
前記暗号化ルールを用いて、前記構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する、
ことを特徴とする付記1記載の暗号化プログラム。
(付記3)
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得し、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う、
処理を実行させる復号化プログラム。
(付記4)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得する取得部と、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、
を有することを特徴とする暗号化装置。
(付記5)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得する取得部と、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う復号化部と、
を有することを特徴とする復号化装置。
(付記6)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得する第1の取得部と、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得する第2の取得部と、
前記第1の取得部が取得した前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、
前記第2の取得部が取得した前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う復号化部と、
を有することを特徴とする暗号化/復号化装置。
(付記7)
コンピュータに、
配置、及び形状を、設計の対象物を構成する構成要素毎に表す設計データを取得させ、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行わせる、
ことを特徴とする暗号化方法。
(付記8)
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得させ、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行わせる、
ことを特徴とする復号化方法。