(57)【要約】【課題】設計者等の作業の煩雑化を抑えつつ、設計データの機密性を実現させるための技術を提供する。【解決手段】設計データは、コンタクト６３、ポリシリコン６４、及び配線６５等のセル毎に、その配置、及び形状を表す。それにより、セルのなかで選択した種類のセルの配置、及び形状のうちの少なくとも一方の内容を操作すると、セル間の対応関係が把握できなくなるか、把握するのが困難となる。このことを利用し、セルの配置、及び形状のうちの少なくとも一方の内容を操作することで、設計データのフォーマットを変更することなく、暗号化を行う。【選択図】図７
2015176070.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得し、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う、
処理を実行させる暗号化プログラム。
【請求項２】
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得する取得部と、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、
を有することを特徴とする暗号化装置。
【請求項３】
コンピュータに、
配置、及び形状を、設計の対象物を構成する構成要素毎に表す設計データを取得させ、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行わせる、
ことを特徴とする暗号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計の対象物を構成する構成要素毎に、配置、及び形状を表す設計データの暗号化、及び復号化に関する。
【背景技術】
【０００２】
現在、各種設計にＣＡＤ（Computer Aided Design）が広く用いられている。このＣＡＤは、コンピュータ（情報処理装置）の処理能力を利用し、設計者が設計をより容易に行えるように支援する。そのため、ＣＡＤを用いることにより、設計者は設計をより短時間に行えるようになる。
【０００３】
例えばＣＡＤを用いた設計結果は、多くの場合、設計対象物の構成要素毎に、その構成要素の配置、及び形状を表す設計データとして出力される。ＧＤＳ（Graphic Data System）ファイル、ＯＡＳＩＳ（Open Artwork System Interchange Standard）ファイルは、設計データの格納に広く用いられている。
【０００４】
設計データは、知的財産である。そのため、設計データには、機密性が求められることが多い。特に、外部に提供する場合、技術流出を防止するうえで機密性は強く要請される。それにより、従来、機密性が求められる設計データを外部に提供する際には、暗号化を行った設計データを提供することも多い。
【０００５】
現在、暗号化方式としては、鍵を用いて、暗号化対象の元のデータを別のデータに変換する方式（以降「鍵暗号化方式」と表記）が広く用いられている。しかし、元のデータ（以降「元データ」と表記）を別のデータ（以降「暗号化データ」と表記）に変換する場合、そのデータ変換によって、元データを処理させるソフトウェア（以降「ＣＡＤソフト」と表記）には、暗号化データから復号化した元データを処理させなければならない。また、鍵の管理も必要となる。そのため、設計者等にとっては、行うべき作業が増え、煩雑化することになる。
【０００６】
機密性が求められる設計データの漏洩防止には、暗号化が不可欠である。しかし、鍵を用いた暗号化では、設計データを扱う設計者等にとって、作業を煩雑化させる度合いが大きい。このことから、暗号化、及び復号化には、設計者等の作業の煩雑化を抑えるという視点も重要と思われる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２４２１４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
一側面では、本発明は、設計者等の作業の煩雑化を抑えつつ、設計データの機密性を実現させるための技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明を適用した１システムは、設計の対象物を構成する構成要素毎に、構成要素の配置、及び形状を表す設計データを取得する取得部と、設計データが配置、及び形状を表す構成要素別に、配置、及び形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、復号化部とを有する。
【発明の効果】
【００１０】
本発明を適用した場合には、暗号化に伴う設計データのフォーマットの変更が回避可能となって、設計者等の作業の煩雑化を抑えつつ、設計データの機密性を実現させることができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態による暗号化／復号化装置の機能構成例を説明する図である。
【図２】本実施形態による暗号化／復号化装置の適用例を説明する図である。
【図３】ＧＤＳファイルのデータ構成を説明する図である。
【図４】暗号化／復号化処理のフローチャートである。
【図５】インバータの回路例を説明する図である。
【図６】図５に回路例を表すインバータのレイアウト設計例を説明する図である。
【図７】本実施形態による暗号化によってセルの配置に対して行われる第１の操作例を説明する図である。
【図８】本実施形態による暗号化によってセルの配置に対して行われる第２の操作例を説明する図である。
【図９】本実施形態による暗号化によってセルの配置に対して行われる第３の操作例を説明する図である。
【図１０】インバータのレイアウト設計に対する実際の暗号化例を説明する図である。
【図１１】インバータのレイアウト設定に対する暗号化に用いられるルールファイルの内容例を説明する図である。
【図１２】本実施形態による暗号化／復号化装置として使用可能な情報処理装置の構成例を表す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による暗号化／復号化装置の機能構成例を説明する図である。図２は、本実施形態による暗号化／復号化装置の適用例を説明する図である。
【００１３】
本実施形態による暗号化／復号化装置１は、ＧＤＳ、或いはＯＡＳＩＳ等のファイルに格納された設計データを対象に、その暗号化、及び暗号化された設計データの復号化を行う装置である。図１に表すように、その暗号化／復号化装置１は、設計者等のオペレータが操作部２を介して行った指示に従い、指定された設計データの暗号化、或いは暗号化された設計データの復号化を行う。そのために、暗号化／復号化装置１は、操作解析部１１、システム制御部１２、暗号化／復号化部１３、記憶部１４、及び入出力部１５を備えている。
【００１４】
操作解析部１１は、オペレータが操作部２に対して行った操作を解析し、その操作を介して行った指示を認識する。その認識結果は、操作解析部１１からシステム制御部１２に渡される。
【００１５】
システム制御部１２は、オペレータの指示に従って暗号化／復号化装置１全体を制御する。暗号化／復号化部１３は、システム制御部１２からの指示に従い、システム制御部１２から指定されたファイルの暗号化、或いは復号化を行い、暗号化、或いは復号化を行ったファイルをシステム制御部１２から指定された場所に出力する。ここでは、説明上、便宜的に、設計データはＧＤＳファイルに格納されていると想定する。ＧＤＳファイルに格納される設計データは、設計された対象物を構成する構成要素の配置、及び形状を決定するレイアウト設計の結果を表すデータである。
【００１６】
図３は、ＧＤＳファイルのデータ構成を説明する図である。ＧＤＳファイルでは、設計された対象物を構成する構成要素は、セルと呼ばれる。各セルには、図３に表すように、０〜１０２３の間の数値がレイヤーとして割り当てられ、０〜６３の間の数値がデータタイプとして割り当てられる。各セルの形状、及び配置は、各頂点の座標により表現され、回転角も設定可能となっている。
【００１７】
記憶部１４は、各種データ（ファイル）の格納等に用いられる。図１では、格納されたデータとして、ルールファイル１４１、暗号化対象となるＧＤＳファイル１４２、暗号化後のＧＤＳファイル１４３、暗号化後の別のＧＤＳファイル１４４、及び復号化用のルール（復号化ルール）１４５を表している。
【００１８】
ルールファイル１４１は、暗号化のための各種ルールがまとめられたファイルである。暗号化／復号化部１３は、ルールファイル１４１を参照し、指定されたＧＤＳファイルの暗号化を行う。ＧＤＳファイル１４２は、オリジナル（元）の設計データが格納されたファイルであり、ＧＤＳファイル１４３は、暗号化・復号化１３による暗号化が行われた後のＧＤＳファイルである。ＧＤＳファイル１４２への暗号化、つまりＧＤＳファイル１４３の生成は、例えば提供する外部での技術流出を防止するために行われる。
【００１９】
本実施形態では、ＧＤＳファイル１４２への暗号化は、対象とするセル毎に、そのセルの配置、及び形状のうちの少なくとも一方の内容を操作し、その配置、或いは形状を変更することで行うようにしている。ルールファイル１４１に格納された各ルールは、そのような操作を行う対象とするセル、及びその操作内容を指定する。そのため、暗号化／復号化部１３は、ルールファイル１４１を参照し、指定されたＧＤＳファイルの暗号化、及び復号化を行う。
【００２０】
暗号化を行ったＧＤＳファイル１４３の提供先にルールファイル１４１を提供するのは望ましくない。このことから、本実施形態では、ＧＤＳファイル１４３の提供先には、そのＧＤＳファイル１４３の復号化に必要なルールのみを提供するようにしている。復号化ルール１４５は、提供先に提供すべきルールのみを格納させたファイルである。
【００２１】
入出力部１５は、例えば外部装置との間でデータの入出力が可能なものである。暗号化、或いは復号化の対象となるＧＤＳファイルの取得、暗号化、或いは復号化を行ったＧＤＳファイルの出力等は、入出力部１５を介して行うことができる。
【００２２】
暗号化／復号化部１３は、図１に表すように、管理部１３１、ルール作成部１３２、暗号化部１３３、及び復号化部１３４を備える。
【００２３】
管理部１３１は、記憶部１４へのアクセスを行うと共に、暗号化を行ったＧＤＳファイル、及び復号化を行ったＧＤＳファイルを管理する。入出力部１５が取得した暗号化、或いは復号化の対象となるＧＤＳファイルの記憶部１４への格納、及び暗号化、或いは復号化を行ったＧＤＳファイルの入出力部１５からの出力等は、管理部１３１を介して行われる。
【００２４】
ルール作成部１３２は、ルールファイル１４１を参照し、暗号化のためのルールの作成、及び復号化のためのルールの作成を行う。そのために、ルール作成部１３２は、暗号化ルール作成部１３６、及び復号化ルール１３７を備えている。
【００２５】
ルールファイル１４１に格納された各ルールは、実際の暗号化に用いるルールを作成するためのルールであっても良いが、その暗号化に用いるルールそのものであっても良い。ここでは便宜的に、ルールファイル１４１には暗号化に用いるルールそのものが格納されていると想定する。その想定では、暗号化ルール作成部１３６は、ルールファイル１４１に格納されているルールのなかから暗号化に用いるルールを選択することになる。復号化ルール作成部１３７は、ルールファイル１４１に格納されているルールのなかから実際に暗号化に用いられたルールを特定し、特定したルールによる操作を無効とさせるルールを作成する。
【００２６】
暗号化部１３３は、ルール作成部１３２の暗号化ルール作成部１３６が選択したルールを用いて、指定されたＧＤＳファイルの暗号化を行う。その暗号化を行ったＧＤＳファイルは、管理部１３１により、指定された場所に出力される。
【００２７】
復号化部１３４は、ルール作成部１３２の復号化ルール作成部１３７が作成したルールを用いて、指定されたＧＤＳファイルの復号化を行う。その復号化を行ったＧＤＳファイルは、管理部１３１により、指定された場所に出力される。
【００２８】
ここで、図５〜図１１を参照し、本実施形態による暗号化について具体的に説明する。
図５は、インバータの回路例を説明する図であり、図６は、図５に回路例を表すインバータのレイアウト設計例を説明する図である。
【００２９】
インバータ５０は、図５に表すように、ＰチャネルＭＯＳ（Metal Oxide Semiconductor）  ＦＥＴ（Field Effect Transistor）５１、及びＮチャネルＭＯＳ  ＦＥＴ（以降「ＮチャネルＦＥＴ」と表記。５１を付したＰチャネルＭＯＳ  ＦＥＴは「ＰチャネルＦＥＴ」と表記する）５２を電源電圧ＶＤＤ、及びＶＳＳ間に接続することで実現される。ＰチャネルＦＥＴ５１、及びＮチャネルＦＥＴ５２の各ゲートは入力端子ＩＮと接続され、ＰチャネルＦＥＴ５１、及びＮチャネルＦＥＴ５２の各ゲートは出力端子ＯＵＴと接続されている。ＰチャネルＦＥＴ５１のソースには電源電圧ＶＤＤが印加され、ＮチャネルＦＥＴ５２のソースには電源電圧ＶＳＳが印加される。
【００３０】
図６は、上記のように、ＰチャネルＦＥＴ５１、及びＮチャネルＦＥＴ５２を構成要素とするインバータ５０のレイアウト設計結果例を表している。その図６では、６１はＮ型拡散層、６２はＰ型拡散層、６３（６３−１〜６３−５）はコンタクト、６４はポリシリコン、６５（６５−１〜６５−４）は配線、をそれぞれ表している。
【００３１】
配線６５−１は、ＰチャネルＦＥＴ５１のソースに相当する。配線６５−２は、ＰチャネルＦＥＴ５１，及びＮチャネルＦＥＴ５２の各ドメインに相当する。配線６５−３は、ＮチャネルＦＥＴ５２のソースに相当する。配線６５−４は、ＰチャネルＦＥＴ５１、及びＮチャネルＦＥＴ５２の各ゲートに相当する。
【００３２】
Ｎ型拡散層６１、及びＰ型拡散層６２は、同一層（レイヤー）に存在し、その層上には、図６には不図示のシリコン酸化膜が形成されている。各配線６５−１〜６５−３、及びポリシリコン６４は、そのシリコン酸化膜上に形成され、配線６５−４は、ポリシリコン６４の更に上に形成されている。このことから、コンタクト６３−１は、配線６５−１とＮ型拡散層６１とを接続するために設けられている。同様に、コンタクト６３−２は、配線６５−２とＮ型拡散層６１、コンタクト６３−３は、配線６５−３とＰ型拡散層６２、コンタクト６３−４は、配線６５−２とＰ型拡散層６２、とをそれぞれ接続するために設けられている。コンタクト６３−５は、配線６５−４とポリシリコン６４とを接続するために設けられている。
【００３３】
図７〜図９は、本実施形態による暗号化によってセルの配置に対して行われる操作例を説明する図である。図７〜図９では、理解を容易とするために、配置を操作するセルを限定し、その操作内容も簡単なものとしている。配置を操作するセルを含むレイアウト設計結果例として、図５に回路を表すインバータ５０を例にとっている。以降、図７〜図９を参照し、セルの配置に対して行う操作について具体的に説明する。
【００３４】
図７に表す操作例は、ポリシリコン６４を左回りに９０度、回転させた場合を表している。図７では、ポリシリコン６４の元の配置を破線で表している。図７に表すように、ポリシリコン６４の回転により、ＰチャネルＦＥＴ５１、及びＮチャネルＦＥＴ５２共に、ドレインとソースの関係、及びゲートとポリシリコン６４の関係が認識し難くなっている。このことから、１セルの配置を変更する操作を行っただけで、元のレイアウト設計の内容も把握し難くなる。この図７に表すような操作例は、ポリシリコンを少なくとも操作対象とし、操作内容として、９０度の回転を指定するルールの選択により実現される。
【００３５】
図８に表す操作例は、各配線６５−１〜６５−４を同じ方向に同じ距離だけ移動させた場合を表している。図８では、図７と同様に、各配線６５−１〜６５−４の元の配置をそれぞれ破線で表している。
【００３６】
図８では、理解を容易とするために、移動距離は小さくしている。しかし、或る程度の移動距離を設定した場合、移動させたセル（ここでは配線６５−１〜６５−４）と、そのセルに関係する別のセル（ここでは各コンタクト６３、ポリシリコン６４、Ｎ型拡散層６１、及びＰ型拡散層６２）との対応関係が把握し難くなる。図８には表していないが、セルの移動先には、別のセルが存在するのが普通である。そのため、レイアウト設計結果を確認しようとする人は、移動させたセルと、その移動先、或いはその近傍に存在するセルとの実際には存在しない対応関係を把握しようとすることになる。このことから、セルの配置を移動する操作を行っただけで、元のレイアウト設計の内容も把握し難くなる。この図８に表すような操作例は、配線（メタル）を少なくとも操作対象とし、操作内容として、移動方向、及び移動距離を指定するルールの選択により実現される。
【００３７】
図９に表す操作例は、図７、及び図８に表す各操作例を同時に行った場合、つまりポリシリコン６４の左回りの９０度の回転、及び各配線６５−１〜６５−４の同じ方向に同じ距離だけの移動を同時に行った場合を表している。図９でも、図７、及び図８と同様に、ポリシリコン６４、及び各配線６５−１〜６５−４の元の配置をそれぞれ破線で表している。図９に表すように、複種類のセルの配置を操作した場合、元のレイアウト設計の内容はより把握し難くすることができる。
【００３８】
セルの配置の操作は、基本的に、回転、及び移動のうちの少なくとも一方を対象にする操作である。このため、セルの配置の操作は、セルの移動、及び回転を共に対象としても良い。セルの形状の操作は、拡大、縮小、及び変形のうちの一つ以上を行う操作である。このため、例えば拡大、或いは縮小を行った形状に対し、更に変形を行うようにしても良い。同じデータタイプ、或いは同じ種類のセルに対し、それぞれ異なる操作を行っても良い。レイヤーによって操作内容を異ならせても良い。何れの操作を行ったとしても、操作後の設計データが表す内容（レイアウト）は人にとって把握し難いものとできることから、その操作によって暗号化を行うことができる。また、レイアウトの設計結果である設計データは、フォーマットが異なっても、セルの配置、及び形状を表すものである。そのため、設計データのフォーマット等に関係なく、暗号化、及び復号化を行うことができる。
【００３９】
図１０は、インバータのレイアウト設計に対する実際の暗号化例を説明する図であり、図１１は、インバータのレイアウト設定に対する暗号化に用いられるルールファイルの内容例を説明する図である。更に、図１０、及び図１１を参照し、図５に回路を表すインバータ５０に対して実際に行う暗号化、及びその暗号化のためのルールファイル１４１について具体的に説明する。
【００４０】
図１０に表す暗号化例は、ポリシリコン６４、各配線６５−１〜６５−４、及び各コンタクト６３−１〜６３−５の配置を操作した場合の例である。ポリシリコン６４の配置には、９０度の回転操作、及び移動操作が行われている。各配線６５−１〜６５−４の配置には移動操作のみが行われ、各コンタクト６３−１〜６３−５の配置には、４５度の回転操作、及び移動操作が行われている。そのような操作による暗号化の結果、Ｎ型拡散層６１とＰ型拡散層６２、ポリシリコン６４、各配線６５−１〜６５−４、及び各コンタクト６３−１〜６３−５の間の関係が認識し難くなっている。
【００４１】
移動操作を行った後のセルの位置は、多くの場合、別の回路、或いは素子等を構成する何れかのセルと重なる位置、或いは近傍の位置となる。このこともあり、実際には、インバータ５０のレイアウト設計結果に含まれるセルの特定さえ非常に困難となる。そのため、レイアウト設計結果の高い機密性の実現も容易である。
【００４２】
図１０に表すような暗号化を実現させる場合、図１１に内容例を表すルールファイル１４１を用意すれば良い。この図１１において、ポリシリコン６４の配置に対して行うべき操作内容は、「変数割り当てpoly1  = (Data=m1,Layer=n1;)」「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」の記述によって指定される。
【００４３】
「変数割り当てpoly1  = (Data=m1,Layer=n1;)」は、操作対象とすべきセルを指定する記述であり、「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」は、操作内容を指定する記述である。より具体的には、「変数割り当てpoly1  = (Data=m1,Layer=n1;)」は、データタイプの値がm1、レイヤーの値がn1のセルが変数「poly1」として扱われることを表している。「操作対象poly1、操作種別=回転、移動、操作量=(90°)、(160,20)」は、変数「poly1」が割り当てられたセルに対し、回転操作、及び移動操作を行うことを指定する。
【００４４】
「操作種別=回転、移動」は、行うべき操作の種類である操作種別が回転操作、及び移動操作であることを指定する。「操作量=(90°)、(160,20)」は、指定された操作種別の順序で、指定された操作種別の操作内容（操作量）を指定する。それにより、「(90°)」は、回転の正方向（例えば図１０に向かって左回り）に９０度、回転させる操作を指定する。「(160,20)」は、Ｘ軸の正方向上に１６０、Ｙ軸の正方向上に２０、それぞれ移動させる操作を指定する。図１０では、それら２つの操作を２本の矢印で表している。「１６０」「２０」は、レイアウト設計に用いられた座標系上で距離を表す数値である。図１０では、Ｘ軸の正方向への移動は、右方向への移動であり、Ｙ軸の正方向への移動は、上方向への移動である。
【００４５】
上記のようなことから、各配線６５−１〜６５−４の配置に対して行うべき操作内容は、「変数割り当てmetal1 = (Data=m2,Layer=n2;)「操作対象metal1、操作種別=移動、操作量=(100,200)」の記述によって指定される。また、各コンタクト６３−１〜６３−５の配置に対して行うべき操作内容は、「変数割り当てcon1   = (Data=m3,Layer=n3;)「操作対象con1、操作種別=移動、回転、操作量=(-100,-200)、(45°)」の記述によって指定される。図１０では、各配線６５−１〜６５−４の配置への１つの操作を１本の矢印で表し、各コンタクト６３−１〜６３−５の配置への２つの操作を２本の矢印で表している。
【００４６】
図１１に表すようなルールファイル１４１、つまりセル単位で操作種別、及び操作量を表すルールファイル１４１では、暗号化の際に行われた操作を無効とさせる操作内容を特定することができる。このため、図１１に表すようなルールファイル１４１は、復号化に用いることもできる。
【００４７】
図１０に表すような暗号化、及び図１１に表すようなルールファイル１４１は、共に１例であり、暗号化のための操作、及びルールファイル１４１の構成は共に、図１０、及び図１１によって限定されない。暗号化のための操作、及びルールファイル１４１の構成は、暗号化の対象とする設計結果、或いは機密性のレベル、等に応じて決定すれば良い。
【００４８】
図１２は、本実施形態による暗号化／復号化装置として使用可能な情報処理装置の構成例を表す図である。ここで、図１２を参照し、本実施形態による暗号化／復号化装置１として使用可能な情報処理装置例について具体的に説明する。
【００４９】
この情報処理装置は、図１２に表すように、ＣＰＵ（Central Processing Unit）８１、ＲＯＭ（Read Only Memory）８２、メモリ（メモリモジュール）８３、ＮＩＣ（Network Interface Card）８４、ハードディスク装置（ＨＤ）８５、媒体駆動装置８６、及びコントローラ８７を備えている。この構成は、１例であり、暗号化／復号化装置１として使用可能な情報処理装置の構成は、図１２に表すようなものに限定されない。
【００５０】
ＲＯＭ８２は、ＢＩＯＳ（Basic Input/Output System）を格納したメモリである。このＢＩＯＳは、ＣＰＵ８１によってメモリ８３に読み出され実行される。ハードディスク装置８５には、ＯＳ（Operating System）、並びに設計データの暗号化、及び復号化のためのアプリケーション・プログラム（以降「暗号化ソフトウェア」と略記）が格納されている。ＣＰＵ８１は、ＢＩＯＳの起動が完了した後、コントローラ８７を介してハードディスク装置８５からＯＳ、更には暗号化ソフトウェアを読み出して実行することができる。ＮＩＣ８４を介した通信は、ＯＳの起動によって可能となる。
【００５１】
この暗号化ソフトウェアは、ハードディスク装置８５以外のストレージ、或いは媒体駆動装置８６がアクセス可能な記録媒体８６ａに格納しても良い。ストレージ、或いは記録媒体は、ＮＩＣ８４がネットワークを介して通信可能な外部装置がアクセス可能なものであっても良い。このことから、暗号化ソフトウェアは、外部装置から受信しても良い。
【００５２】
コントローラ８６は、媒体駆動装置８６以外に、表示装置９１、及び入力装置（キーボード、ポインティングデバイス（ＰＤ）、等）９２を接続可能なコントローラである。表示装置９１、及び入力装置９２は、情報処理装置に搭載されていても良いが、後から接続させても良い。このことから、図１２では、コントローラ８７と表示装置９１間、及びコントローラ８７と入力装置９２間は破線で結んでいる。
【００５３】
上記のような構成の情報処理装置では、操作部２は例えば表示装置９１、及び入力装置９２である。これは、オペレータが、表示装置９１に表示される画像等を見ながら、入力装置９２に対し、所望の処理を実行させるための操作を行うことを想定している。
【００５４】
操作解析部１１、システム制御部１２、及び暗号化／復号化部１３は、ＣＰＵ８１、ＲＯＭ８２、メモリ８３、ハードディスク装置８５、及びコントローラ８７によって実現される。記憶部１４は、例えばハードディスク装置８５、及び／或いは、記録媒体８６ａがセットされた媒体駆動装置８６である。入出力部１５は、例えばＮＩＣ８４、及び／或いは、記録媒体８６ａがセットされた媒体駆動装置８６である。
【００５５】
図２に表す適用例は、例えば電子回路として半導体集積回路（ＬＳＩ（Large Scale Integration）等）の設計を行うクライアントに対し、ＣＡＤソフトを販売したベンダが、サービスとしてクライアントに提供する設計結果の技術流出を防止する場合を例にとったものである。次に、図２を参照して、そのようなベンダを想定した適用例について詳細に説明する。
【００５６】
ベンダがクライアントに提供する設計結果とは、通常、半導体集積回路の一部として利用可能な機能的、或いは論理的な単位回路である。その設計結果は、クライアントが基本素子（セル）として扱うことができる。
【００５７】
図２中に表すマクロＧＤＳファイル１４２は、暗号化の対象となるＧＤＳファイル１４２の１例である。マクロＧＤＳファイル１４３は、ＧＤＳファイル１４２の暗号化を行って得られるＧＤＳファイルである。ここでは、混乱を避けるために、ベンダが技術流出を防止すべき設計結果として、マクロＧＤＳファイル１４２のみを想定する。
【００５８】
マクロＧＤＳファイル１４２の暗号化は、そのマクロＧＤＳファイル１４２を対象としたベンダ側での暗号化処理の実行によって行われる（ＳＶ１）。本実施形態では、暗号化処理の実行には、ルールファイル１４１の他に、クライアントに割り当てた識別情報である顧客コード３１を必要とさせている。顧客コード３１を必要としているのは、クライアント毎に、異なる操作内容でマクロＧＤＳファイル１４２の暗号化を行うようにして、技術流出の可能性を低減させるためである。マクロＧＤＳファイル１４２の暗号化によって得られたマクロＧＤＳファイル１４３がクライアントに提供される。
【００５９】
半導体修正回路を設計対象とするレイアウト設計は、セルの配置(Place)とセル間等を結ぶ配線(Route)を決定する設計である。配線はセル間を結ぶものが存在することから、レイアウト設計は、セルの配置の決定（ＳＣ１）、及び配線の決定（ＳＣ２）の順序で行われる。そのため、図２には「Ｐ＆Ｒ」を表記している。
【００６０】
図２では、レイアウト設計に必要なデータとして、チップ情報（図２中「Chip Info」と表記）２１、ネットリスト２２、ライブラリ（図２中「Lib」と表記）２３、ＬＥＦ（Library Exchange Format）２４、及びＳＤＣ（Synopsys Design Constraints）２５を表している。
【００６１】
チップ情報２１は、設計を行うための情報の集合である。ネットリスト２２は、セル間の接続関係を記述したデータである。図２中に表記の「Verilog」は、ネットリスト２３の記述に用いられるフォーマットである。ライブラリ２３は、セル毎に、レイアウト、論理、及び遅延、などの情報がまとめられたものである。ＬＥＦ２４は、セル毎に、そのセルの大きさ、レイヤー数、各レイヤーのデザインルール、等の物理情報がまとめられたものである。ＳＤＣ２５には、設計制約が記述されている。
【００６２】
配線の決定により、レイアウト設計が終了し、その設計結果２６が生成される。その設計結果２６がＧＤＳファイル２７に変換される。
【００６３】
クライアントがマクロＧＤＳファイル１４２にレイアウトが表されるセルを利用する半導体集積回路を設計した場合、生成されたＧＤＳファイル２７は、マクロＧＤＳファイル１４２分のレイアウトデータが欠けたものとなる。そのため、クライアント側は、ＧＤＳファイル２７のレイアウトデータにマクロＧＤＳファイル１４３のレイアウトデータを加えるマージ処理を行う（ＳＣ３）。このマージ処理の実行によって得られたＧＤＳファイル２８が、レイアウト設計結果の検証対象となり、検証工程（ＰＶ（Physical Verification））に渡される。
【００６４】
この検証工程では、クライアント側は、ＧＤＳファイル２８を対象にチップレイアウトデザイン検証処理を実行する（ＳＣ４）。この検証処理を実行する検証プログラムは、例えばベンダから提供されたプログラムである。この検証プログラムは、検証処理の実行のために、ＧＤＳファイル２８中のマクロＧＤＳファイル１４３分のレイアウトデータ（設計データ）を復号化する。この検証プログラムは、検証処理の実行後、マクロＧＤＳファイル１４３分のレイアウトデータを再度、暗号化する。
【００６５】
そのようにして、検証プログラムは、技術流出する可能性を低減する。しかし、検証自体は、マクロＧＤＳファイル１４２分のレイアウトデータを用いるため、そのレイアウトデータの代わりとなる検証用データを使用する場合と比較して、高精度に行うことができる。その結果、ベンダ側の検証に依存しなくとも済むようになって、レイアウト設計もより短時間に行えるようになる。また、暗号化の前後で設計データ（レイアウトデータ）は変化しないため、クライアント側は、ＳＣ３のマージ処理、及びＳ４のチップレイアウトデザイン検証処理を、従来と同様に行うことができる。それにより、レイアウト設計（ここでは検証工程も含む）における作業の煩雑化も大幅に抑制される。
【００６６】
チップレイアウトデザイン検証処理での復号化は、ベンダ側から提供される復号化ルール１４５を用いて行われる。これは、ＧＤＳファイル２８を復号化の対象とする場合、マクロＧＤＳファイル１４３分のレイアウトデータのみを対象に、復号化を行わなければならないからである。つまり復号化のための操作対象となるセルのみを特定できなければならないからである。そのため、復号化ルール１４５には、操作対象とすべきセルを特定するための情報、そのセルの配置、及び／或いは、形状への操作内容を表す情報がまとめられる（図７〜図１１）。
【００６７】
復号化ルール１４５は、ルールファイル１４１、及び顧客コード３１を参照する復号化ルール作成処理の実行によって作成される（ＳＶ２）。クライアント側に提供される復号化ルール１４５は、ルール作成部１３２の復号化ルール作成部１３６によって作成され、入出力部１５を介して出力されるものである。上記のように、ルールファイル１４１が図１１に表すような構成であった場合、そのルールファイル１４１は復号化ルール１４５として用いることもできる。
【００６８】
クライアント側は、チップレイアウトデザイン検証処理の実行結果から、レイアウト設計結果がＯＫかＮＧの何れであるかを判定する（ＳＣ５）。ＳＣ５の判定結果がＮＧであった場合、ＳＣ１、或いはＳＣ２の処理に戻り、再度、レイアウト設計が行われる。ＳＣ５の判定結果がＯＫであった場合、レイアウト設計結果のテープアウト（Ｔ．Ｏ．）が行われる（ＳＣ６）。そのテープアウトによって出力されたＧＤＳファイル１４４は、ベンダ側に、検証のために送られる。
【００６９】
ベンダ側は、クライアント側から送られたＧＤＳファイル１４４中のマクロＧＤＳファイル１４３分のレイアウトデータに対する復号化処理を実行する（ＳＶ３）。ベンダ側は、その復号化処理の実行によって得られたＧＤＳファイルを用いて各種検証を行い、その検証結果をクライアント側に通知する（ＳＶ４）。それにより、ベンダ側での検証により、レイアウトの設計結果がＯＫであることが確認された場合、クライアント側は次の工程に進むことになる。レイアウトの設計結果がＮＧであった場合、クライアント側は、再度、ＳＣ１、或いはＳＣ２の処理に戻り、レイアウト設計を行うこととなる。
【００７０】
図４は、暗号化／復号化処理のフローチャートである。この暗号化／復号化処理は、ＣＰＵ８１によって実行される処理であり、図１に表す暗号化／復号化部１３は、ＣＰＵ８１がこの暗号化／復号化処理を実行することで実現される。最後に、図４を参照し、暗号化／復号化処理について詳細に説明する。
【００７１】
この暗号化／復号化処理は、例えばオペレータが、暗号化プログラムを起動させた後、暗号化、及び復号化の何れを実行させるかの指定、対象とするＧＤＳファイルの指定、及び顧客コード３１の指定を行った状態で、実行を指示することで実行される処理である。暗号化、及び復号化の何れを実行させるかの指定結果は、暗号化／復号化フラグ情報４１として保存される。この暗号化／復号化処理では、例えば復号化ルール１４５の作成のみを行うという指定も可能である。
【００７２】
先ず、ＣＰＵ８１は、オペレータが指定したＧＤＳファイルを読み込む（Ｓ１）。次に、ＣＰＵ８１は、暗号化／復号化フラグ情報４１を参照し、オペレータが指定した処理が暗号化、及び復号化の何れであるか特定し、特定した処理に応じて必要なルールを作成するルール作成処理を実行する（Ｓ２）。このとき、暗号化／復号化フラグ情報４１が処理として復号化を表し、且つ復号化ルール１４５の作成のみを指定していた場合、作成した復号化ルール１４５の書き出しを行った後、この暗号化／復号化処理が終了する。ルールの作成のために、ルールファイル１４１、及び顧客コード３１が参照される。
【００７３】
ルールを作成した後、ＣＰＵ８１は、暗号化／復号化フラグ情報４１が指定する暗号化、或いは復号化のための処理を実行する（Ｓ３）。その処理の実行後、ＣＰＵ８１は、暗号化した、或いは復号化したＧＤＳファイルを、オペレータが指定した場所に書き出す。ＧＤＳファイルの書き出しを行った後、暗号化／復号化処理が終了する。
【００７４】
なお、本実施形態では、暗号化、及び復号化を行えるようにしているが、暗号化、及び復号化のうちの一方のみを行えるようにしても良い。また、暗号化、及び復号化にルールファイル１４１を参照するようにしているが、ルールを作成するルールを固定しても良い場合、或いはルールの作成機能を搭載させる場合には、ルールファイル１４１を用意する必要はない。ルールの作成機能としては、例えば設計データの予め定めた一部をルールの作成に用いる情報として、その情報に応じたルールを作成するものも考えられる。
【００７５】
上記以外にも、様々な変形を行うことができる。
以上の変形例を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得し、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う、
処理を実行させる暗号化プログラム。
（付記２)
オペレータによって指定される第１の情報を取得し、
前記第１の情報を用いて、前記暗号化のために操作を行うべき構成要素、及び前記構成要素への操作内容を表す暗号化ルールを作成し、
前記暗号化ルールを用いて、前記構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する、
ことを特徴とする付記１記載の暗号化プログラム。
（付記３)
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得し、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う、
処理を実行させる復号化プログラム。
（付記４)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得する取得部と、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、
を有することを特徴とする暗号化装置。
（付記５)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得する取得部と、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う復号化部と、
を有することを特徴とする復号化装置。
（付記６)
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状を表す設計データを取得する第１の取得部と、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得する第２の取得部と、
前記第１の取得部が取得した前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行う暗号化部と、
前記第２の取得部が取得した前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行う復号化部と、
を有することを特徴とする暗号化／復号化装置。
（付記７)
コンピュータに、
配置、及び形状を、設計の対象物を構成する構成要素毎に表す設計データを取得させ、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する暗号化を行わせる、
ことを特徴とする暗号化方法。
（付記８）
コンピュータに、
設計の対象物を構成する構成要素毎に、前記構成要素の配置、及び形状のうちの少なくとも一方の内容が操作された設計データを取得させ、
前記設計データが前記配置、及び前記形状を表す構成要素別に、前記配置、及び前記形状のうちの少なくとも一方の内容を操作する復号化を行わせる、
ことを特徴とする復号化方法。
【符号の説明】
【００７６】
１    暗号化／復号化装置
２    操作部
１１    操作解析部
１２    システム制御部
１３    暗号化／復号化部
１４    記憶部
１５    入出力部
１３１    管理部
１３２    ルール作成部
１３３    暗号化部
１３４    復号化部
１３６    暗号化ルール作成部
１３７    復号化ルール作成部
１４１    ルールファイル
【図１】
2015176070.tif 000003
【図２】
2015176070.tif 000004
【図３】
2015176070.tif 000005
【図４】
2015176070.tif 000006
【図５】
2015176070.tif 000007
【図１１】
2015176070.tif 000008
【図１２】
2015176070.tif 000009
【図６】
2015176070.tif 000010
【図７】
2015176070.tif 000011
【図８】
2015176070.tif 000012
【図９】
2015176070.tif 000013
【図１０】
2015176070.tif 000014