暗号化

機密情報を暗号化するために、OptiStructの入力ファイルには暗号化機能があります。

暗号化には2つの方法があります。1つ目の方法は、行全体または行内の特定のフィールドのみを暗号化することができます。2つ目の方法は、インクルードファイル(暗号化に対応したエントリを含む)全体を暗号化することができます。現時点では、材料、プロパティおよび一部のテーブルバルクデータエントリがサポートされています(サポートされているエントリを参照)。

方法1:行または行内のフィールドの暗号化

暗号化キー

典型的な暗号化キーを以下に示します。1行目にはラベル‘/ENCRYPT/’と、それに続く固有の暗号化IDが含まれています。続く5行は、暗号化された行を解読するために必要な暗号化キーです。

暗号化キーはケースコントロールセクションまたはバルクデータセクションのいずれかに配置することができますが、対応する暗号化された行の前に配置する必要があります。最大100種類の暗号化キーが許可されています(インクルードファイルに含まれるものを含む)。

IDがZB001である暗号化キーの例
/ENCRYPT/ZB001
1GcxRn2nMRIp575cxxQrdIBaZYBB6oPGNhPJh4lAZOH9HdVivEeMVIGEJWJM5T0q6O3zzUH3KyJRJ5OOjx6ojdd9OjHT4C63ko2I
%ZB001MGoRMaLooUWUaHxbHHbErfqmYfVVMh9h2TgKcZvYw13940WzdJv0cS2KuK77XBDGBvyMtNikHbfwlaasrGdSkKAZZrEdrP
%ZB001gbGGRgQ0GQMCYNi4HIdcbTbCFWcJDnCH7UfhSwwjZTammusHl9juHaAT5pxPeNVdkwv9OqH44OTmv5XeiD1uaSxTNH2u8i
%ZB001P0av0XqspIeqUWja5CVLjvismTRhTLOPOmTJyK3FPyeh77evhjFZxmANrKrdXpoML6xTMkK8emlwoN9vYumaBvqRLsg8zs
%ZB001H80ZXXnnhZ6cViaSBly3G4xhptIpGKWYjyXThW7R1ERUrmBjxBq7mpKX5hno4LdLitUvMUjOlSFJYy507eyyakjnKtzvU7

暗号化プロセス

暗号化は、行内のいくつかのフィールドを選択することで、数値データの完全な行または部分的な行に適用することができます。特定のエントリ(および、MAT1のようなそのようなエントリに対応するデータ)を識別し、そのようなエントリをASCIIファイルにリストアップすることができます。その後、Solversパッケージに含まれている暗号化ツールを使用して、ASCIIファイルに記載されている行を暗号化することができます。暗号化ツールは、Solversのインストール先の以下の場所に含まれています:
  • Windows:

    $ALTAIR_HOME\hwsolvers\optistruct\bin\win64\os_encrypt_win.exe

  • Linux

    $ALTAIR_HOME/hwsolvers/optistruct/bin/linux64/os_encrypt_linux

以下の例では、OptiStruct入力ファイル内の一部の材料データを暗号化するプロセスを説明しています。

例:

暗号化されていないOptiStructの入力ファイル(input_file.fem)で、以下のMAT1エントリがある場合:
MAT1    120     1.E6          0.0     3.57      1.0e-4 
        35.E3   35.E3   23.E3
以下の行を指定して、MAT1のエントリ名とID以外のすべてのフィールド、およびASCIIファイルのoriginal.txt内を暗号化します。
                 1.E6         0.0     3.57       1.0e-4 
        35.E3    35.E3  23.E3

上に示すとおり、MAT1エントリ名とIDが削除されます。

次に、以下のように暗号化ツールを実行することで、original.txtファイルに記載されている値/フィールドの暗号化された行を取得することができます。

Windowsでは、暗号化ツールos_encrypt_win.exeを使用して、以下の例のコマンドで行を暗号化することができます。
os_encrypt_win.exe original.txt encrypted.txt
Linuxでは、暗号化ツールos_encrypt_linuxを使用して、以下の例のコマンドで行を暗号化することができます。
os_encrypt_linux original.txt encrypted.txt
暗号化ツールが実行された後、encrypted.txtファイルには、暗号化キーと暗号化された行の両方が含まれており、以下の例のようなデータになります。
/ENCRYPT/SA001         
8C6E0qxlqRSurzdzpaFk93kzJLuCxSAYseqRhFPBFaG1SoOJRDDyynNiaZjSEUHjRBqStVSYhQRM5ry8M0kJ1rJIvDO3k8w5SDXL
%SA001MGoRMaLooUWUaHxbHHbp7O3cswgTiO9703TesSogWarRCwQe5p9MfSXRsaWT357uMSIWQAJCJOk2c52pyVLF5mXFLIhBmu
%SA001gbGGRgQ0GQMCYNi4HIdIoVBlaqZl3n58MMkJ0779RKgMC84EVxFYcsxsLNe3SZhZDlXbDvAoOTqA4sHt7k1zDCcYYF96hr
%SA001P0av0XqspIeqUWja5CV1wxIR7nO9JLHGdeYvWVEfHpkHXLqsRXlDI4xm7sYHL10IovZvBpDsyr8KxAtAxRmfofOIIcZ6Kn
%SA001H80ZXXnnhZ6cViaSBlymF2Pj1cig3W04EcOn11EaAUV2FyLefxKj555uJDSQqVnF9g4L9Xa63VaffjnDU9w1BSMqTp451E 
%SA001CJeM8FK1xQacReDR8E9G5w8BpP1vdbQAEAxSP4fjRVsR6vapexJOzhxqumnfUK6CtDJdkfDRig4EgHO88eVh0fdBk2uunT
%SA001iKC2I3czrRgT6NH18PAmc1t6YoiNWRY1oXKgFH5Q6hfkr6fvqbW9o6MQVtvLqqQoThoECm3LCAjusU9Zj3CMZFJiwxtTMD
注: この例の暗号化キーIDは、/ENCRYPT/に続くキーワードSA001です。

この暗号化キーIDに続いて、最初の5行は、OptiStructが暗号化データを解読するために使用する暗号化キーに対応しています。残りの行(この場合、暗号化キーの後に2行ある)は、original.txtファイルで最初に入力された行の暗号化された形に対応しています。

元のinput_file.femファイル内の暗号化されたフィールドは、部分的に暗号化された行の場合は%%で置き換える必要があります。完全に暗号化された行については、元の行全体を削除し、暗号化された形の行に置き換える必要があります。
注: 暗号化キーは同じinput_file.femファイル内にあり、暗号化されている対応する行の上に置かれる必要があります。
/ENCRYPT/SA001         
8C6E0qxlqRSurzdzpaFk93kzJLuCxSAYseqRhFPBFaG1SoOJRDDyynNiaZjSEUHjRBqStVSYhQRM5ry8M0kJ1rJIvDO3k8w5SDXL
%SA001MGoRMaLooUWUaHxbHHbp7O3cswgTiO9703TesSogWarRCwQe5p9MfSXRsaWT357uMSIWQAJCJOk2c52pyVLF5mXFLIhBmu
%SA001gbGGRgQ0GQMCYNi4HIdIoVBlaqZl3n58MMkJ0779RKgMC84EVxFYcsxsLNe3SZhZDlXbDvAoOTqA4sHt7k1zDCcYYF96hr
%SA001P0av0XqspIeqUWja5CV1wxIR7nO9JLHGdeYvWVEfHpkHXLqsRXlDI4xm7sYHL10IovZvBpDsyr8KxAtAxRmfofOIIcZ6Kn
%SA001H80ZXXnnhZ6cViaSBlymF2Pj1cig3W04EcOn11EaAUV2FyLefxKj555uJDSQqVnF9g4L9Xa63VaffjnDU9w1BSMqTp451E
MAT1      120          %%                     %%          %%        %%  
%SA001CJeM8FK1xQacReDR8E9G5w8BpP1vdbQAEAxSP4fjRVsR6vapexJOzhxqumnfUK6CtDJdkfDRig4EgHO88eVh0fdBk2uunT
%SA001iKC2I3czrRgT6NH18PAmc1t6YoiNWRY1oXKgFH5Q6hfkr6fvqbW9o6MQVtvLqqQoThoECm3LCAjusU9Zj3CMZFJiwxtTMD

暗号化キーでは、/ENCRYPT/SA001と最初の5行)は暗号化される実際の行の上に置かれます。さらに、MAT1エントリの部分的に暗号化された初期行のすべての暗号化されたフィールドは%%で置き換えられ、MAT1エントリの継続行は完全に削除されます。上記MAT1エントリの後の%SA001から始まる1行目には、%%でマークされたフィールドの暗号化データが含まれており、%SA001から始まる2行目には、継続行の暗号化データが含まれます。

注:
  • 現在、暗号化には数値フィールドのみがサポートされています。文字データの暗号化は現在サポートされていません。
  • 文字、エントリ名、ID(識別番号)、特殊記号は暗号化できません。これらのフィールドが暗号化ツールを用いた暗号化のために識別されるべきではない場合には、部分的な行の暗号化のみを使用することができます。
  • 固定ショート、固定ロング、フリーフォーマットがすべてサポートされています。2つの半分の行を持つロングフォーマットの部分的に暗号化された行の後には、2つの暗号化された半分の行が続く必要があります。
  • 暗号化されるべき複数の行 / エントリが暗号化ツールを介して別々に実行された場合、各行 / エントリに対応する複数の暗号化キーと暗号化された行の組み合わせが受信されます。ただし、暗号化キーのIDは同じになります。このような行 / エントリを同一機種で使用する場合は、同一機種で使用するすべての暗号化キーIDが異なることを確認するために、暗号化キーIDを手動で変更する必要があります。
    例えば、下記の暗号化行MAT1 ID 120およびMAT1 ID 220の両方を同一機種で使用する場合には、第2の暗号化材料(MAT1 ID 220)の暗号化キーを手動で別のID(SA001からSA002)に変更する必要があります。
    /ENCRYPT/SA001         
    8C6E0qxlqRSurzdzpaFk93kzJLuCxSAYseqRhFPBFaG1SoOJRDDyynNiaZjSEUHjRBqStVSYhQRM5ry8M0kJ1rJIvDO3k8w5SDXL
    %SA001MGoRMaLooUWUaHxbHHbp7O3cswgTiO9703TesSogWarRCwQe5p9MfSXRsaWT357uMSIWQAJCJOk2c52pyVLF5mXFLIhBmu
    %SA001gbGGRgQ0GQMCYNi4HIdIoVBlaqZl3n58MMkJ0779RKgMC84EVxFYcsxsLNe3SZhZDlXbDvAoOTqA4sHt7k1zDCcYYF96hr
    %SA001P0av0XqspIeqUWja5CV1wxIR7nO9JLHGdeYvWVEfHpkHXLqsRXlDI4xm7sYHL10IovZvBpDsyr8KxAtAxRmfofOIIcZ6Kn
    %SA001H80ZXXnnhZ6cViaSBlymF2Pj1cig3W04EcOn11EaAUV2FyLefxKj555uJDSQqVnF9g4L9Xa63VaffjnDU9w1BSMqTp451E
    MAT1    120     %%              %%      %%      %%  
    %SA001CJeM8FK1xQacReDR8E9G5w8BpP1vdbQAEAxSP4fjRVsR6vapexJOzhxqumnfUK6CtDJdkfDRig4EgHO88eVh0fdBk2uunT
    /ENCRYPT/SA002
    1GcxRn2nMRIp575cxxQrdIBaZYBB6oPGNhPJh4lAZOH9HdVivEeMVIGEJWJM5T0q6O3zzUH3KyJRJ5OOjx6ojdd9OjHT4C63ko2I
    %SA002MGoRMaLooUWUaHxbHHbErfqmYfVVMh9h2TgKcZvYw13940WzdJv0cS2KuK77XBDGBvyMtNikHbfwlaasrGdSkKAZZrEdrP
    %SA002gbGGRgQ0GQMCYNi4HIdcbTbCFWcJDnCH7UfhSwwjZTammusHl9juHaAT5pxPeNVdkwv9OqH44OTmv5XeiD1uaSxTNH2u8i
    %SA002P0av0XqspIeqUWja5CVLjvismTRhTLOPOmTJyK3FPyeh77evhjFZxmANrKrdXpoML6xTMkK8emlwoN9vYumaBvqRLsg8zs
    %SA002H80ZXXnnhZ6cViaSBly3G4xhptIpGKWYjyXThW7R1ERUrmBjxBq7mpKX5hno4LdLitUvMUjOlSFJYy507eyyakjnKtzvU7
    MAT1    220     %%              %%      %%      %%  
    %SA002CJeM8FK1xQacReDR8E9G5w8BpP1vdbQAEAxSP4fjRVsR6vapexJOzhxqumnfUK6CtDJdkfDRig4EgHO88eVh0fdBk2uunT
  • 暗号化キーと暗号化された行は、インクルードファイルに配置することができます。GZIPフォーマットもサポートされています。
  • 暗号化されたデータを持つエントリは、ECHOコマンドやECHOONコマンドでは印刷されません。
  • 材料 / プロパティに関するエラー / 警告メッセージは、実数を*****に置き換えることで保護されます。
  • 暗号化された材料 / プロパティを使用したパラメータ(サイズ)の最適化はサポートされていません。

サポートされているエントリ

現在、方法1のための暗号化には以下のエントリがサポートされています:
  • プロパティ:

    PBAR, PBARL, PBEAM, PBEAML, PBUSH, PCOMP, PDAMP, PELAS, PDUM1, PGAP, PHFSHL, PROD, PSHEAR, PSHELL, PSOLID, PVISC, PWELD, PMASS, PCOMPG, PTUBE, PAABSF, PACABS, PACBAR, PCOMPP, PFAT, PCONT, PAXI, PSEAM, PWELD, PLY, PBUSHT, PELAST, PGASK, PGAPHT, PCONTHT, PLSOLID, PCOMPLS, PJOINTG, PCOHE, PPLANE

  • 材料:

    MAT1, MAT2, MAT4, MAT5, MAT8, MAT9, MAT10, MATHF, MATT1, MATT2, MATT4, MATT5, MATT8, MATT9, MDUM1, MATFAT, MATEP, MATTEP, MATF, MATG, MATTG, MATHE, MATTHE, MATHP, BLKHDF, MATTORT, MATS1, MATTVE, MATVE, MATVORT, MATVP, MAT3, MATT3, MATHED, MGASK, MCOHE, MCOHED, DMGINI, DMGEVO

  • テーブル

    TABLES1, TABLEST, TABLEG, TABLEMD, TABLEM1, TABLEM2, TABLEM3, TABLEM4

方法2:インクルードファイル全体の暗号化

インクルードファイル全体を暗号化するには、方法2を使用します。これは、OptiStructのデータを暗号化するための、よりシンプルで汎用性の高いアプローチを可能にします。暗号化すべきすべてのデータ(プロパティや材料、関連するテーブルエントリなど)を別のインクルードファイルに置き、この方法を使って暗号化することができます。暗号化されたファイルは、既存のインクルードファイルを暗号化されたインクルードファイルで置き換えることで、OptiStructモデルにインクルードすることができます。OptiStructは、付属の暗号化キーを使用してデータを自動的に読み取ります。

暗号化プロセス

暗号化ツールは、Solversのインストール先の以下の場所に含まれています。
  • Windows:

    $ALTAIR_HOME\hwsolvers\optistruct\bin\win64\os_encrypt_v2_win.exe

  • Linux

    $ALTAIR_HOME/hwsolvers/optistruct/bin/linux64/os_encrypt_v2_linux

2つ目の方法については、1つ目の方法と比較して主に2つの違いがあります:

  • 2つ目の方法を使えば、部分的な行やフィールドだけでなくインクルードファイル全体を暗号化することができます。
  • 暗号化キーID(5桁の英数字キーID)は、暗号化ツールを実行する際に、以下のように指定する必要があります。
Windowsでは、os_encrypt_v2_win.exe暗号化ツールを使用して、以下のコマンド例(SE123は暗号化キーIDの例)を使用してインクルードファイルを暗号化することができます:
os_encrypt_v2_win.exe SE123 original_include.fem encrypted_include.fem
Linuxでは、os_encrypt_v2_linux 暗号化ツールを使用して、以下のコマンド例(SE123は暗号化キーIDの例)を使用してインクルードファイルを暗号化できます:
os_encrypt_v2_linux SE123 original_include.fem encrypted_include.fem
暗号化ツールが実行された後、encrypted_include.femファイルには、暗号化キーと元のインクルードファイルのすべての行が暗号化された行の両方が含まれています。
/ENCRYPT/SE123
1sV2x7KNST5811S9IZuC6ZN6PEF2ODtVJSUMQmCGH9tfDynXLK7G274Rhu3OJ7qQWVNGJHYDJlLV3P97viS8Fw4MBp5MQA9Y1H3V
%SE123MGoRMaLooUWUaHxbHHbKlyvxwZodu52CEbJoOZGd6PbIUfDnbHr5L3aqkRe3QHpEaA1qQcMYhxXUkoWJtJWEefLo3qUbRa
%SE123gbGGRgQ0GQMCYNi4HIdgrvmMWEyo1nt0uqWPSAV2x5M9QnnJxLtDEPwD9AiZlhLpNPCr9J96iyZY8XhfCeI4tCQz7JNbZk
%SE123P0av0XqspIeqUWja5CVPzNt23BnCHL58B8K1yYcYnaQ4l0ZxtvPsubw7vfcne9eYyZEB7DCAIMri1pJaoBtaJUEP7ZP9v0
%SE123H80ZXXnnhZ6cViaSBly9AN2sDnbxoiP3v6AxTWSWBczdHRsXv9mCVQs3voKkxRFJ78XPtjNCBo7rXC1R9hrkU5pVazXVNJ
%SE123CJeM8FK1xQacReDR8E9CrfcsgnpR9XEocQTDCQHWpyJ14PScAKVTzXv8a7NcuXk8hQDSoX0XELsNTa8EI5fPm7ctY8S3sziKC2I3czrRgT6NH18PAF9AItk99fOsQfC4hRbqDTKEMWzLwTR6CW6Ec0TWnaYLM2ZC0zYG6cBI0W8GMkG9dWzxrh1Kiti0
%SE123QuJ6c1TZXFVS0JfXlAIQg9qbR3UAh0Xg9PYvqDI86zowGCTobFA31fgpMVpOeGyQzb8wU6smrb4i2kxPF6Ru3pYNblta25ZVnXIRtwm4H6cmU3JdV6BnQ1Gwobx2DyuzeZxXlCe3BjTmIS1JveRbAmaUwKnazwQyPzBPeNyGC3WpWPvCxnBmHkaIt66c
%SE123cI82yEWIPPRRxKzQjAeUWHPgi1KO5KqwQ02NI1IWJ8Id0foJ2fctBdy741GzxQcC2DzjGpcqoWzzVbd1DHfrsoTHSioOorNc6MOuc52bLayrZgCYpu61TAsHN4x6lst3L9SMOwhv9Ad5rYBxvjbOqNVDmTleWCpdbFvVpdr2t4LllT5pJIw4damZF5yP
%SE123aGGpNgiKjR2qpEOfutncIk50hdZWg464SRiEskzB6iYLub4bvxmxeQaSYTgXIAoaSs3OFjtBc07f9DNY9fFTom2FISxmN9RefGc67DgU3XwcbD3ZJyCg2xrlzK6xZeQcR6QouUowObZ9Z9UD9icwFnPBm2ELPaLne0dBG6rtlQlDmOEA9GYZqkuSAXHj
%SE123ZAQQR4F5HMQ5o5AHK0HRLOueWYeaEScuZ4LzXFESv9RciABdLcLiWKONxryzLHJcFDI1CcAZOh0d64OApjqpibFhjk1STMegJXILbcdHWibXXNnF7BRZCnwKxFo8vfMUTss4NzxMUwONk7vpQukEHVvuXRuh0fpEshViiUPBjCkERKq1U0F3nshAoLpx
%SE123eJHHBxvywZCd0rYTYVXWZTqK5nmNEEwQrkDCLLTp97Gg679SepaFU14YONdViOJIoRjExZtghE2vTalOnaNFntJJXKzcrF59LS77bcjZqsOHDN2CUcLV3TOmPneIFmD10ebAuzzJGUwvO3BFdrNr9K7XdZxZeJTyu311lD89eUTQfTolEk5BFU6JdAty
%SE1239ggGT6OlDAX6X7LQ1xU1Rk6smxjb3OZaHyMdNKjH0xNwpdwqN1Rjj1A6tN0HTRVxGA3t5EoOMMcSVzZBso4jYF0TEHjJ1rGnSjabVtVaKBQTvfcZ5nARG9YqkumuAjMs9NhrmVcDdLhxCsUrHhvhZ7V6qtYdClCTQ3KMISfG8ZjKglZ0NAHOwU8XZOh9
%SE123KKIh3Oxf6UPb6b5i90jCGByKWGwhTgMw7YEro0wTo52XGdooz8sN7a0z1gxqT1NObObJ0im6MUns6EQTkynM45ig0XjbRKRkluR7KD0ue3cDIBlFLyIsscXesXjBJ4RK7UUu0g6s9NY8sso3fpQijxbN4QGCHfQCTQZnT0jT1i3bGWB8KR3UMmclAVx5
注: この例の暗号化キーIDは、/ENCRYPT/に続くキーワードSA123です。

この暗号化キーIDに続く最初の5行は、OptiStructがデータを暗号化するために使用する暗号化キーに対応しています。残りの行(この場合、暗号化キーの後に8行ある)は、original_include.femファイルで最初に入力された行の暗号化された形式に対応しています。

暗号化されたインクルードファイルは、ベースモデルのオリジナルのインクルードファイルと置き換えることができます。

サポートされているエントリ

現在、方法2のための暗号化では以下のエントリがサポートされています:
  • プロパティ:

    PBAR, PBARL, PBEAM, PBEAML, PBUSH, PCOMP, PDAMP, PELAS, PDUM1, PGAP, PHFSHL, PROD, PSHEAR, PSHELL, PSOLID, PVISC, PWELD, PMASS, PCOMPG, PTUBE, PAABSF, PACABS, PACBAR, PCOMPP, PFAT, PCONT, PAXI, PSEAM, PWELD, PLY, PBUSHT, PELAST, PGASK, PGAPHT, PCONTHT, PLSOLID, PCOMPLS, PJOINTG, PCOHE, PPLANE

  • 材料:

    MAT1, MAT2, MAT4, MAT5, MAT8, MAT9, MAT10, MATHF, MATT1, MATT2, MATT4, MATT5, MATT8, MATT9, MDUM1, MATFAT, MATEP, MATTEP, MATF, MATG, MATTG, MATHE, MATTHE, MATHP, BLKHDF, MATTORT, MATS1, MATTVE, MATVE, MATVORT, MATVP, MAT3, MATT3, MATHED, MGASK, MCOHE, MCOHED, DMGINI, DMGEVO

  • テーブル

    TABLES1, TABLEST, TABLEG, TABLEMD, TABLEM1, TABLEM2, TABLEM3, TABLEM4