Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5407585B2 - プログラムコード暗号化装置及びプログラム - Google Patents
[go: Go Back, main page]

JP5407585B2 - プログラムコード暗号化装置及びプログラム - Google Patents

プログラムコード暗号化装置及びプログラム Download PDF

Info

Publication number
JP5407585B2
JP5407585B2 JP2009150279A JP2009150279A JP5407585B2 JP 5407585 B2 JP5407585 B2 JP 5407585B2 JP 2009150279 A JP2009150279 A JP 2009150279A JP 2009150279 A JP2009150279 A JP 2009150279A JP 5407585 B2 JP5407585 B2 JP 5407585B2
Authority
JP
Japan
Prior art keywords
encryption
unit
decryption
program code
block
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.)
Expired - Fee Related
Application number
JP2009150279A
Other languages
English (en)
Other versions
JP2011007962A (ja
Inventor
光久 亀井
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation 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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2009150279A priority Critical patent/JP5407585B2/ja
Publication of JP2011007962A publication Critical patent/JP2011007962A/ja
Application granted granted Critical
Publication of JP5407585B2 publication Critical patent/JP5407585B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、プログラムコード暗号化装置及びプログラムに関する。
プログラムコード内に含まれる秘密を秘匿するため、または、プログラムコードを改竄されないようにするために、ハードディスクやROM(リード・オンリー・メモリ)などに保存されるプログラムコードの一部分を暗号化しておくことが行われている。この方式では、プログラムコードを起動してからその暗号化された部分を実行するまでの間にその部分を復号し、復号した部分を実行する方法がとられる。
特開昭58−116571号公報 特開昭61−94146号公報 特開昭61−278934号公報 特開昭62−66328号公報 特開昭63−240629号公報 特開平5−333776号公報 特開平8−305558号公報 特開2000−148939号公報 特開2000−347852号公報
本発明は、暗号化済みのプログラムコードの一部分を破壊して実行するという攻撃により暗号化対象のプログラムコードが復元されることを防止することを目的とする。
請求項1に係る発明は、暗号化対象のプログラムコードの各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第1の暗号方式を用いて、第1の方向に暗号化する第1の暗号化手段と、前記第1の暗号化手段による前記プログラムコードの暗号化結果の各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第2の暗号方式を用いて、前記第1の方向とは逆向きの第2の方向に暗号化する第2の暗号化手段と、を備え、前記第2の暗号化手段は、前記第1の暗号化手段の暗号化に用いられた暗号化パラメータを前記第1の暗号化手段による前記プログラムコードの暗号化結果と共に暗号化する、ことを特徴とするプログラムコード暗号化装置である。
請求項に係る発明は、前記第1の暗号方式と前記第2の暗号方式とは同一の暗号方式であることを特徴とする請求項に記載のプログラムコード暗号化装置である。
請求項に係る発明は、コンピュータを、暗号化対象のプログラムコードの各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第1の暗号方式を用いて、第1の方向に暗号化する第1の暗号化手段、前記第1の暗号化手段による前記プログラムコードの暗号化結果の各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第2の暗号方式を用いて、前記第1の方向とは逆向きの第2の方向に暗号化する第2の暗号化手段、として機能させるためのプログラムであって、前記第2の暗号化手段は、前記第1の暗号化手段の暗号化に用いられた暗号化パラメータを前記第1の暗号化手段による前記プログラムコードの暗号化結果と共に暗号化する、ことを特徴とするプログラムである
参考例の構成は、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第1の暗号方式を用いて第1の方向に暗号化を施され、その暗号化の結果に対して暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第2の暗号方式を用いて前記第1の方向とは逆向きの第2の方向に暗号化を施された暗号化済みプログラムコードと、前記暗号化済みプログラムコードを、前記第2の暗号方式を用いて前記第2の方向に復号するための処理を前記コンピュータに実行させるための第1の復号プログラムコードと、前記第1の復号プログラムコードを前記コンピュータに実行させることにより得られた前記暗号化済みプログラムコードの復号化結果を、前記第1の暗号方式を用いて前記第1の方向に復号するための処理を前記コンピュータに実行させるための第2の復号プログラムコードと、を備え、前記第2の復号プログラムコードを前記コンピュータに実行させることにより得られた前記暗号化済みプログラムコードの復号化結果が、前記コンピュータにより実行されることを特徴とするプログラムである。
参考例の構成は、暗号文中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる暗号方式を用いて、平文をあらかじめ定められた単位ずつ順に暗号化する暗号化手段と、暗号化対象のプログラムコードの各単位が順方向及び逆方向にそれぞれ少なくとも1回以上暗号化されるよう、前記暗号化手段に前記プログラムコードの暗号化を行わせる制御を行う暗号化制御手段と、を備えるプログラムコード暗号化装置である。
参考例の構成は、コンピュータを、暗号文中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる暗号方式を用いて、平文をあらかじめ定められた単位ずつ順に暗号化する暗号化手段、暗号化対象のプログラムコードの各単位が順方向及び逆方向にそれぞれ少なくとも1回以上暗号化されるよう、前記暗号化手段に前記プログラムコードの暗号化を行わせる制御を行う暗号化制御手段、として機能させるためのプログラムである。
請求項1又はに係る発明によれば、暗号化済みのプログラムコードの一部分を破壊して実行するという攻撃により暗号化対象のプログラムコードが復元されることを防止できる暗号化装置を提供することができる。
また、暗号化パラメータを暗号化するという特別のステップを設けることなく、第1の暗号化手段の暗号化に用いられる暗号化パラメータを平文のままとするよりも秘匿性を高めることができる。
請求項に係る発明によれば、第1の暗号化手段と第2の暗号化手段とで別々の暗号方式を用いる場合よりも、装置の実装サイズ(例えば回路数又はプログラムコード数)を小さくすることができる。
参考例の構成によれば、暗号化済みのプログラムコードの一部分を破壊して実行するという攻撃により暗号化対象のプログラムコードが復元されることが防止される。
参考例の構成によれば、暗号化済みのプログラムコードの一部分を破壊して実行するという攻撃により暗号化対象のプログラムコードが復元されることを防止することができる。
従来のブロック暗号又はストリーム暗号方式では平文のプログラムコードが解読される可能性があることを説明するための図である。 実施形態の暗号化装置の概略構成の一例を示す図である。 実施形態の暗号化の概念を説明するための図である。 実施形態の暗号化を施されたプログラムコードを復号するとコード全体が破壊されるメカニズムを説明するための図である。 PCBCモードの暗号化処理を説明するための図である。 PCBCモードの復号処理を説明するための図である。 実施形態の暗号化装置により暗号化されるプログラムコードと、それを復号するためのコードとを含んだプログラムファイルのデータ構造の例を示す図である。 一方向についての暗号化のパラメータを、他方向についての暗号化により秘匿する例を説明するための図である。 実施形態の暗号化装置の概略構成の別の一例を示す図である。
一般に、暗号化のアルゴリズムは、様々な大きさのデータを対象とするため、その設計および実装のしやすさから、ブロック暗号や、ストリーム暗号が用いられることが多い。しかしコードを暗号化して保護していても、暗号化して保護されたプログラムコードの一部を破壊しておき実行すると、ブロック暗号では破壊したブロックだけについて、ストリーム暗号では破壊したビットだけについては復号が失敗するが、その他の部分については復号が成功してしまう。
例えば、ブロック暗号方式のCBC(Cipher Block Chaining)モードでは、暗号化されたコード10の一部を意図的に破壊した場合(図1の(a))、破壊されたブロック12とその次に復号されるブロックは正しく復号できないが、復号の進む方向に関して破壊されたブロックの前のブロック群14や、後ろのブロック群16は正しい平文が復号されてしまう(図1の(b))。これは、CBCモードでは、周知のように、復号対象の暗号文ブロックが、当該ブロックとその次のブロックにしか影響を与えないためである。
このように部分的に復号が失敗した復号結果のコードを実行した場合、正しく復号されたブロック群14が正しく実行された後、破壊された部分12の所でプログラムが暴走し、一時停止する。この一時停止したときにメモリを見ると、復号されたコードが、破壊された部分12を除いて、読むことが可能である(図1の(c))。このような処理を、破壊する場所を変化させて複数回行うと、正しい平文のコードをすべて取得することも可能である。
なお、以上の流れにおけるプログラムの暴走と一時停止は、オペレーティングシステムの機能によるものである。したがって、上述の性質を用いた攻撃は、デバッガ検出技術を用いてデバッガ上でのプログラム実行を阻止する構成をとったとしても、阻止し得ない。
このような攻撃に対し、本実施形態では、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる暗号方式(暗号アルゴリズム)により、平文のプログラムコードを順逆両方向に暗号化することで対処する。ここでいう「単位」とは、ブロック暗号方式を用いる場合はブロックであり、ストリーム暗号方式を用いる場合はビット又はバイトである。
実施形態の暗号化装置の一例を図2に示す。この例では、暗号化装置は逆方向暗号化部20及び順方向暗号化部22を含む。逆方向暗号化部20は、暗号化対象のプログラムを、そのプログラム内でのコードの並びとは逆順に、すなわちそのプログラムの末尾から先頭に向かって、暗号化する(以下、この暗号化の方向を逆方向と呼ぶ)。一方、順方向暗号化部22は、暗号化対象のプログラムを、そのプログラム内でのコードの並びと同じ順(以下、順方向と呼ぶ)に暗号化する。ここで、逆方向暗号化部20及び順方向暗号化部22は、いずれも、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じるような暗号方式を用いて暗号化する。
この暗号化装置による暗号化処理の流れを、図3を参照して説明する。この実施形態では、一例として、まず(a)暗号化対象である平文のプログラムコード(以下、平文コードと略す)30を、(b)逆方向暗号化部20により、当該コード30を逆方向に暗号化する。次に、(c)この逆方向の暗号化処理の結果得られた逆方向に暗号化済みのコード32を、(d)順方向暗号化部22により順方向に暗号化する。このような処理により、(e)順逆両方向に暗号化済みのコード34が得られる。
なお、逆方向暗号化部20が用いる暗号方式と、順方向暗号化部22が用いる暗号化方式は、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じるという性質を持つものであれば、同じ方式であっても異なる方式であってもよい。また、逆方向暗号化部20と順方向暗号化部22とが同じ暗号化方式を用いる場合、暗号化に用いる鍵(或いは鍵の種(シード))又は初期ベクトルなどといったパラメータとしては、両者が同じものを用いてもよいし、異なるものを用いてもよい。
上述のような暗号化装置により作成された両方向に暗号化済みのコード34をコンピュータ上で実行しようとする場合、暗号化時とは逆のプロセスで復号すればよい。すなわち、まず暗号化済みのコード34を、順方向暗号化部22の暗号方式で(より厳密には、順方向暗号化部22の暗号処理手順に対応した復号処理手順で)順方向に復号したのち、その復号結果を逆方向暗号化部20の暗号方式で逆方向に復号すればよい。
このように両方向に暗号化済みのコード34の一部を破壊すると、プログラムコード全体が正しく復号できなくなることを、図4を参照して説明する。
(a)両方向に暗号化済みのコード34の一部を破壊して順方向暗号化部22の暗号方式で順方向に復号すると、コード34の先頭から破壊された箇所までの部分36は正しく復号されるが、(b)順方向に関して破壊された箇所以後の部分38は、正しく復号されず、破壊された状態となる。なぜなら、順方向の暗号化に用いられた暗号方式は、復号誤りが生じた単位以降のすべての単位に復号誤りが生じる方式だからである。そして、このような順方向の復号結果を逆方向暗号化部20の暗号方式で逆方向に復号すると、順方向の復号化で正しく復号化された部分36は、逆方向の復号でその部分より前に位置する破壊された部分39の影響により、破壊される(すなわち誤った復号結果となる)。このように、プログラムコード全体39の復号結果が破壊されたものとなる。
以上の例では、まず逆方向に暗号化し、次に順方向に暗号化したが、これはあくまで一例に過ぎない。この代わりに、まず順方向に暗号化し、次に逆方向に暗号化してもよい。この場合、復号側では、まず逆方向に復号し、次に順方向に復号するようにすればよい。
さて、以上の例において、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる暗号方式としては、例えばブロック暗号方式のPCBC(Propagating CBC)モードを用いればよい。PCBCモードでは、図5に示すように、暗号化対象の平文の先頭ブロックPB1と初期ベクトルIVとの排他的論理和(XOR)を計算し、その計算結果に対して鍵Kによる暗号化演算Eを施す。これにより先頭の平文ブロックPB1の暗号化結果である暗号文ブロックCB1が得られる。次に、その暗号文ブロックCB1と元の平文ブロックPB1との排他的論理和と、次の平文ブロックPB2との排他的論理和を求め、その結果に対して鍵Kによる暗号化演算Eを施すことで、2番目の平文ブロックPB2に対する暗号化結果CB2を得る。以降、ブロックPB2の場合と同様、あるブロックの平文と暗号化結果とを次のブロックの平文に反映させた上で暗号化演算を行うという処理を繰り返す。
PCBCモードの復号処理は、上記暗号化の逆の処理である。すなわち、図6に示すように、暗号文の先頭ブロックCB1に対し、鍵Kを用いて、暗号化演算Eの逆演算である復号演算Dを施し、その復号演算の結果と初期ベクトルIVとの排他的論理和をとることで、平文ブロックPB1を得る。次に、暗号文ブロックCB1と復号結果の平文ブロックPB1との排他的論理和を、2番目の暗号文ブロックCB2の復号結果と排他的論理和演算することで、2番目の平文ブロックPB2を復元する。以降、同様の処理を行うことで、各ブロックの復号結果を順に得ていく。
以上の説明から分かるように、PCBCモードを用いた場合、暗号文のあるブロックが破壊された場合、そのブロックの復号結果の平文が誤ったものとなり、その誤りが後続の各ブロックの復号結果へと次々に伝搬することになる。したがって、PCBCモードでは、暗号文ブロックのあるブロックに誤りがあると、そのブロック以降の復号結果は原理上すべて誤りとなる。
なお、PCBCモードは、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる暗号方式のあくまで一例に過ぎない。PCBCモードでは、ある暗号文ブロックの復号結果の平文ブロックを次のブロックの復号演算Dの結果に作用させたが、この代わりに、復号において復号結果の平文ブロックを次のブロックの暗号文ブロックに作用(例えば両者の排他的論理和をとるなど)させるような暗号方式を用いてもよい。この暗号方式では、暗号化の際には、対象の平文ブロックと前ブロックの暗号化結果との演算結果(例えば排他的論理和)に暗号演算を施し、その演算結果と前ブロックの平文との演算(例えば排他的論理和演算)を施すことで、暗号文ブロックを求める。
また、この実施形態の暗号方式としては、あるブロックに用いる暗号鍵が、直前のブロックの平文ブロックの影響を受ける暗号方式を用いてもよい。この方式では、あるブロックを復号する際に用いる鍵は、前のブロックの復号結果の平文の影響を受ける。したがって、前のブロックの暗号文が破壊されていれば、その復号結果の平文も誤った値となり、その誤った平文の影響を受ける今のブロックの鍵も誤った値となる。したがって、今のブロックの復号結果は誤りとなる。このように、暗号文のいずれかのブロックが破壊されていると、それ以降のブロックの復号結果及び鍵の両方が共に誤ったものとなるので、以降のブロックの暗号文が破壊されていなくても、それらブロックの復号結果は誤りとなる。
実施形態の暗号化装置に用いる暗号化方式として以上に例示したのは、ブロックの暗号化及び復号が前のブロックの平文の影響を受けるようにする、いわば平文を連鎖させる暗号化方式であった。しかし、本実施形態に使用される暗号化方式は、このような平文連鎖の方式に限るものではない。この他にも、例えばあるブロックの暗号化及び復号に用いられる鍵が、前のブロック用の鍵と当該前のブロックの暗号文又は平文との演算結果として求められる暗号方式を用いてもよい。この方式でも、あるブロックの暗号文に誤りがあれば、次のブロックの復号のための鍵が誤った値となり、その誤りが以降の各ブロックのための鍵に伝搬していくため、以降の各ブロックの復号結果は原理上誤りとなる。
次に、図7を参照して、暗号化対象のプログラムコードを含んだ、プログラムファイル100の一例を説明する。このプログラムファイル100は、実行するとまずその中に含まれる暗号化されたプログラムを復号し、その復号結果のプログラムを実行する。
このプログラムファイル100は、例えばオブジェクトファイル形式のファイルであり、オブジェクトヘッダ110、コードセクション120及びデータセクション130を含んでいる。
オブジェクトヘッダ110は、当該プログラムファイル100のヘッダ情報を記述したセクションである。また、コードセクション120は、コンピュータが実行するプログラムコードが含まれるセクションである。このセクションは、書き込み、読み出し及び実行が可能なセクションである。暗号化対象のプログラムコード126もコードセクション120に含まれる。データセクション130はプログラムコードの実行において用いられるデータが含まれるセクションである。
この例において、コードセクション120は、復号範囲取得コード121、順方向復号鍵生成コード122、順方向復号コード123、逆方向復号鍵生成コード124、逆方向復号コード125、及び暗号化対象のプログラムコード126を含んでいる。復号範囲取得コード121は、コードセクション120のうち復号すべき範囲を特定する情報を取得する。順方向復号鍵生成コード122は、順方向の復号に用いる鍵を生成する。順方向復号コード123は、暗号化されたプログラムコードを、上述の暗号化装置における順方向の暗号化に用いられた暗号方式で、順方向に復号する。逆方向復号鍵生成コード124は、逆方向の復号に用いる鍵を生成する。逆方向復号コード125は、順方向復号コード123による復号結果を、上述の暗号化装置における逆方向の暗号化に用いられた暗号方式で、逆方向に復号する。
また、データセクション130には、コードセクション120内で暗号化対象のプログラムコード126が含まれる範囲を示す暗号化範囲情報と、暗号化演算に用いられるパラメータ(例えば初期ベクトルIV及び鍵の種(シード))、及び暗号化対象のプログラムコード126のデータサイズをブロックのサイズの整数倍にするために追加したパディング情報が含まれる。これらの値は、暗号化対象のプログラムコード126をこの実施形態の暗号化装置で暗号化する際に求めればよい。
プログラム作成者は、図7に例示した構造を持つプログラムファイル100を作成し、このうちの暗号化対象のプログラムコード126の部分を、この実施形態の暗号化装置を用いて、順逆両方向に暗号化する。そして、このように暗号化されたプログラムコード126を含んだプログラムファイル100が、ユーザに提供される。
ユーザのコンピュータ上でこのプログラムファイル100が呼び出されると、コンピュータは、コードセクション120に含まれる各コード121〜126をその並び順に従って先頭から順番に実行する。すなわち、コンピュータは、まず復号範囲取得コード121を実行して、データセクション130の暗号化範囲情報に基づきコードセクション120中で復号すべき範囲を特定する。次に順方向復号鍵生成コード122を実行して、データセクション130の鍵の種を用いて順方向の復号鍵を生成する。次にコンピュータは、順方向復号コード123を実行することで、その復号鍵を用いて、暗号化されたプログラムコード126を先頭から順に順方向に復号する。この復号の結果は、コードセクション120内の当該暗号化されたプログラムコード126に上書きされる。次にコンピュータは、逆方向復号鍵生成コード124を実行して、データセクション130の鍵の種を用いて逆方向の復号鍵を生成し、更に逆方向復号コード125を実行することで、その復号鍵を用いて、順方向の復号結果を末尾から先頭へと逆方向に復号する。この復号の結果、すなわち平文のプログラムコードは、コードセクション120内の当該暗号化されたプログラムコード126の領域に上書きされる。
このようにして逆方向の復号コード125の実行が完了すると、コンピュータは、次の暗号化対象のプログラムコード126の領域にある平文のプログラムコードを実行する。これにより、暗号化対象のプログラムコード126に記述された処理が実行されることとなる。
なお、プログラムファイル100には、復号結果の平文のプログラムコードの実行完了後、その平文のプログラムコードをメモリから削除する処理を指示するコードが含まれていてもよい。
図7を用いて説明した例では、逆方向及び順方向の暗号化で同じパラメータ(例えば鍵の種、初期ベクトル)を用いたが、これらパラメータを方向ごとに異なる値としてもよい。また、この場合、順方向及び逆方向の暗号化のうち先に実行する方向の暗号化に用いたパラメータを、後で実行する方向の暗号化処理により暗号化してもよい。この場合、図8に例示するように、逆方向の暗号化のためのパラメータ40を、コードセクション120内に、暗号化対象のプログラムコード126(すなわち平文コード30)の例えば次に配置する。そして、暗号化装置は、逆方向の暗号化を行う際、そのパラメータ40を参照して暗号化を実行する。そして、データセクション130には、順方向暗号化のパラメータ45を置く。暗号化装置は、逆方向に暗号化済みのコード32を順方向に暗号化する際、そのコード32の後ろに続く逆方向暗号化のパラメータ40の範囲も暗号化する。このようにして生成される両方向に暗号化済みのコード36には、逆方向暗号化のパラメータ40が含まれている。このように、本実施形態では、暗号化する範囲が方向ごとに異なっていてもよい。
以上に例示した暗号化装置は、図1に示したように逆方向暗号化部20と順方向暗号化部22とを備えていたが、逆方向と順方向とで同一の暗号方式を用いる場合は、両者の暗号化演算部分を共通化させてもよい。この場合の暗号化装置の構成の例を、図9に示す。この例では、暗号化装置は、暗号化部24と暗号化制御部26とを含む。暗号化部24は、暗号化制御部26から入力される暗号化対象のデータを、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じるような暗号方式により暗号化する。暗号化制御部26は、暗号化対象の平文のプログラムコードの各ブロックを、まず順方向及び逆方向のうちの一方の方向(第1の方向と呼ぶ)に沿って順に暗号化部24に供給し、暗号化を行わせる。次に、暗号化制御部26は、第1の方向の暗号化結果の各ブロックを、第1の方向とは逆向きの第2の方向に沿って順に暗号化部24に供給し、暗号化させる。このような構成でも、図1の例と同様の両方向についての暗号化結果が生成される。
以上では、順逆各方向にそれぞれ1回ずつ暗号化を行ったが、1回ずつに限られるわけではない。図4を用いて説明したような復号結果の破壊が実現されるためには、暗号化対象のブロックがそれぞれ順逆各方向に1回以上暗号化されていればよい。
また、以上では、ブロック暗号方式を例にとって説明したが、ストリーム暗号方式に同様の方式を適用してもよい。ブロック暗号方式では、暗号化の単位がブロックであったが、ストリーム暗号方式では暗号化の単位がビット又はバイトになる。
以上に例示した暗号化装置は、一つの例では、汎用のコンピュータに上述の処理を表すプログラムを実行させることにより実現される。ここで、コンピュータは、例えば、ハードウエアとして、CPU等のマイクロプロセッサ、ランダムアクセスメモリ(RAM)およびリード・オンリー・メモリ(ROM)等のメモリ(一次記憶)、HDD(ハードディスクドライブ)コントローラを経由して接続されたHDD、各種I/O(入出力)インタフェース等が、バスを介して接続された回路構成を有する。バスには、ローカルエリアネットワーク等のネットワークに接続するためのネットワークインタフェースが接続されていてもよい。また、そのバスに対し、例えばI/Oインタフェース経由で、CDやDVDなどの可搬型ディスク記録媒体に対する読み取り及び/又は書き込みのためのディスクドライブ、フラッシュメモリなどの各種規格の可搬型の不揮発性記録媒体に対する読み取り及び/又は書き込みのためのメモリリーダライタなどが接続されてもよい。上に例示した各機能モジュールの処理内容が記述されたプログラムがCDやDVD等の記録媒体を経由して、又はネットワーク等の通信手段経由で、ハードディスクドライブ等の固定記憶装置に保存され、コンピュータにインストールされる。インストールされたプログラムがRAMに読み出されCPU等のマイクロプロセッサにより実行されることにより、上に例示した装置の機能が実現される。
20 逆方向暗号化部、22 順方向暗号化部、30 平文コード、32 逆方向に暗号化済みのコード、34 両方向に暗号化済みのコード。

Claims (3)

  1. 暗号化対象のプログラムコードの各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第1の暗号方式を用いて、第1の方向に暗号化する第1の暗号化手段と、
    前記第1の暗号化手段による前記プログラムコードの暗号化結果の各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第2の暗号方式を用いて、前記第1の方向とは逆向きの第2の方向に暗号化する第2の暗号化手段と、
    を備え
    前記第2の暗号化手段は、前記第1の暗号化手段の暗号化に用いられた暗号化パラメータを前記第1の暗号化手段による前記プログラムコードの暗号化結果と共に暗号化する、ことを特徴とするプログラムコード暗号化装置。
  2. 前記第1の暗号方式と前記第2の暗号方式とは同一の暗号方式であることを特徴とする請求項に記載のプログラムコード暗号化装置。
  3. コンピュータを、
    暗号化対象のプログラムコードの各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第1の暗号方式を用いて、第1の方向に暗号化する第1の暗号化手段、
    前記第1の暗号化手段による前記プログラムコードの暗号化結果の各単位を、暗号化結果の中のある単位に復号誤りが生じるとその単位以降のすべての単位に復号誤りが生じる第2の暗号方式を用いて、前記第1の方向とは逆向きの第2の方向に暗号化する第2の暗号化手段、
    として機能させるためのプログラムであって、
    前記第2の暗号化手段は、前記第1の暗号化手段の暗号化に用いられた暗号化パラメータを前記第1の暗号化手段による前記プログラムコードの暗号化結果と共に暗号化する、ことを特徴とするプログラム
JP2009150279A 2009-06-24 2009-06-24 プログラムコード暗号化装置及びプログラム Expired - Fee Related JP5407585B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009150279A JP5407585B2 (ja) 2009-06-24 2009-06-24 プログラムコード暗号化装置及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009150279A JP5407585B2 (ja) 2009-06-24 2009-06-24 プログラムコード暗号化装置及びプログラム

Publications (2)

Publication Number Publication Date
JP2011007962A JP2011007962A (ja) 2011-01-13
JP5407585B2 true JP5407585B2 (ja) 2014-02-05

Family

ID=43564717

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009150279A Expired - Fee Related JP5407585B2 (ja) 2009-06-24 2009-06-24 プログラムコード暗号化装置及びプログラム

Country Status (1)

Country Link
JP (1) JP5407585B2 (ja)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10303883A (ja) * 1997-04-24 1998-11-13 Fuji Xerox Co Ltd 暗号化方法
JP4606808B2 (ja) * 2004-08-11 2011-01-05 京セラミタ株式会社 データ消去装置、画像形成装置、データ消去方法及びデータ消去プログラム
JP4470982B2 (ja) * 2007-09-19 2010-06-02 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム

Also Published As

Publication number Publication date
JP2011007962A (ja) 2011-01-13

Similar Documents

Publication Publication Date Title
US7472285B2 (en) Apparatus and method for memory encryption with reduced decryption latency
TWI469609B (zh) 密碼編譯系統之金鑰恢復機制
KR101302799B1 (ko) 단일 명령어를 이용한 다수 모드에서의 aes 암호화 또는 암호 해독 수행
CN109845182B (zh) 密码消息与认证指令
US20090316899A1 (en) Encryption/decryption device and security storage device
CN101311942A (zh) 对软件进行加密、解密的方法及加密、解密的装置
GB2443244A (en) Authenticated Encryption Method and Apparatus
WO2007118829A1 (en) Encryption apparatus and method for providing an encrypted file system
JP2008085986A (ja) データ変換装置と電子装置とデータ変換方法
JP2018515815A (ja) データ暗号化装置及び方法、並びにデータ復号化装置及び方法
CN112416243B (zh) 用于执行安全命令的存储器装置及方法
KR101117588B1 (ko) 암호화 표시정보를 갖는 기록매체
US10223249B2 (en) Test methodology for detection of unwanted cryptographic key destruction
JP4758904B2 (ja) 機密情報処理方法
JP5407585B2 (ja) プログラムコード暗号化装置及びプログラム
JP2011123229A (ja) プログラムコード暗号化装置及びプログラム
KR100782614B1 (ko) 데이터 워드 처리 장치 및 방법, 암호화 데이터 워드 처리장치 및 방법, 데이터세트의 안전 처리 시스템 및 컴퓨터프로그램을 구비한 컴퓨터 판독가능한 기억 매체
JP2009169489A (ja) 暗号化方法、復号化方法、暗号化装置、復号化装置
JP2011053749A (ja) デバッグ方法、デバッグ装置、及びトランスレータプログラム
JP2007336446A (ja) データ暗号化装置
JP2010268149A (ja) 復号装置及び復号方法及びプログラム
CN119728084B (zh) 一种基于eFlash-XIP模式的在线数据加解密方法、装置、设备及存储介质
US20250038951A1 (en) Encryption device, decryption device, cryptographic system, encryption method, and decryption method
JP4853026B2 (ja) 情報処理装置及びプログラム
JP7063628B2 (ja) 暗号化装置、暗号化方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120518

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130906

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: 20131008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131021

R150 Certificate of patent or registration of utility model

Ref document number: 5407585

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees