JP2015032201A - 情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 - Google Patents
情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 Download PDFInfo
- Publication number
- JP2015032201A JP2015032201A JP2013162427A JP2013162427A JP2015032201A JP 2015032201 A JP2015032201 A JP 2015032201A JP 2013162427 A JP2013162427 A JP 2013162427A JP 2013162427 A JP2013162427 A JP 2013162427A JP 2015032201 A JP2015032201 A JP 2015032201A
- Authority
- JP
- Japan
- Prior art keywords
- value
- byte code
- random number
- random
- reversible
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】悪意のある攻撃者によりアプリケーションのバイトコードが漏洩したときの脅威を低減する。【解決手段】乱数値を用いて複数のバイトコードを可逆変換値に変換し、変換された可逆変換値を不揮発性メモリに記憶すると共に、当該可逆変換値に対応付けて、上記変換に用いられた乱数値または当該乱数値のイニシャルベクトルを不揮発性メモリに記憶しておき、アプリケーションプログラムの実行の際には、上記乱数値を用いて、上記記憶された可逆変換値をバイトコードに逆変換して解釈、実行する。【選択図】図2
Description
本発明は、バイトコードを実行する仮想マシンを備えるICカードの技術に関する。
近年のICカードでは、Java(登録商標)Cardに対応しているものが多い。Java(登録商標)といったプログラム言語は、ハードウェアの依存性を吸収するために、C言語のようにコンパイルによってソースコードからネイティブコード(機械語)に変換されるものと異なり、コンパイラによって中間言語と呼ばれる実行形式であるバイトコードに変換される。バイトコードとは、算術や分岐といった命令を含んだデータ列である。このバイトコードは、仮想マシン(Virtual Machine)により実行される。
中間言語と仮想マシンを使用した上記のような仕組みは、ハードウェア依存のプログラムを回避しているため、移植性が高い。一方で、Java(登録商標)の規格等はオープンとして誰にでも見られるものである。そのため、実行形式を解析してプログラムコードをおこすようなデコンパイル技術も発達している。このようなリバースエンジニアリング技術を悪意のある攻撃として応用された場合、アプリケーションの不正改竄といった脅威につながる問題がある。特許文献1には、仮想マシンが改ざんされていると判定された場合には、ただちにアプリケーション実行を停止することにより、仮想マシン自体が正常に動作することを保証し、アプリケーションが盗聴、改ざんされることなく安全に動作する技術が開示されている。
ところで、ICカードが外部に提供するコマンドの中には、ICカードの内部情報を外部に出力するものがある。そうしたコマンド時に、レーザーアタックによって意図しないアドレスのデータが漏洩してしまう可能性がある。その場合、悪意のある攻撃者は、漏洩したデータがバイトコードだと判断すれば、解析は可能となってしまう。上述した特許文献1の技術では、実行中のアプリケーションの改ざんを防止するための対策を設けているが、中間言語の漏洩に対しては有効とはならない。
本発明は、悪意のある攻撃者によりアプリケーションのバイトコードが漏洩したときの脅威を低減することが可能な情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法を提供することを目的とする。
上記課題を解決するために、請求項1に記載の発明は、所定のプログラムを構成する複数のバイトコードを取得する取得手段と、乱数値を生成する生成手段と、前記乱数値を用いて前記バイトコードを可逆変換値に変換する変換手段と、前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを記憶する不揮発性メモリと、前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行する実行手段と、を備えることを特徴とする。
請求項2に記載の発明は、請求項1に記載の情報記憶媒体において、前記プログラムは、複数のメソッドにより構成され、各前記メソッドは、複数のバイトコードにより構成されており、前記不揮発性メモリは、前記乱数値または当該乱数値の生成基になったイニシャルベクトルを前記メソッドごとに記憶することを特徴とする。
請求項3に記載の発明は、所定のプログラムを構成する複数のバイトコードを取得するステップと、乱数値を生成するステップと、前記乱数値を用いて前記バイトコードを可逆変換値に変換するステップと、前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを不揮発性メモリに記憶するステップと、前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行するステップと、をコンピュータに実行させることを特徴とする。
請求項4に記載の発明は、コンピュータにより実行されるバイトコード実行方法であって、所定のプログラムを構成する複数のバイトコードを取得するステップと、乱数値を生成するステップと、前記乱数値を用いて前記バイトコードを可逆変換値に変換するステップと、前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを不揮発性メモリに記憶するステップと、前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行するステップと、を含むことを特徴とする。
本発明によれば、攻撃により可逆変換値が不揮発性メモリから、仮に漏洩したとしても、悪意のある攻撃者にとって、その可逆変換値がバイトコードであるかを特定することが困難となり、悪意のある攻撃者によりアプリケーションのバイトコードが漏洩したときの脅威を低減することができる。
以下、図面を参照して本発明の実施形態について詳細に説明する。
先ず、図1等を参照して、ICカード1の概要構成及び機能について説明する。図1(A)は、ICカード1のハードウェア構成例を示す図であり、図1(B)は、ICカード1の機能ブロック例を示す図である。なお、ICカード1は、キャッシュカード、クレジットカード、社員カード等として使用される。或いは、ICカード1は、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICカード1は本発明における情報記憶媒体を構成するが、このICカード1は通信機器の回路基板上に直接組み込んで構成するようにしてもよい。
図1(A)に示すように、ICカード1には、ICチップ1aが搭載されている。ICチップ1aは、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、不揮発性メモリ13、乱数生成器14、及びI/O回路15を備えて構成される。不揮発性メモリ13は、例えば、フラッシュメモリ、またはEEPROM(登録商標)である。乱数生成器14は、本発明における生成手段の一例である。I/O回路15は、外部端末2とのインターフェイスを担う。I/O回路15には、例えばISO/IEC7816によって定められたC1〜C8の8個の端子が設けられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末2とのデータ通信を行う端子である。外部端末2の例としてはICカードを発行する発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICカード1が通信機器に組み込まれる場合、外部端末2には通信機器の機能を担うコントローラが該当する。なお、本明細書で「発行」とは、ICチップ等の情報記憶媒体に所定の情報(プログラムやデータなど)を書き込むことを意味する。
CPU10は、ROM11または不揮発性メモリ13に記憶された各種プログラムを実行する演算装置である。CPU10は、本発明における取得手段、変換手段、生成手段及び実行手段の一例である。各種プログラムには、OS(Operating System)、仮想マシン、Java(登録商標)等のプログラム言語で記述されるアプリケーションプログラムが含まれる。アプリケーションプログラムは、例えば、当該プログラムにより実現される機能ごとに区分された複数のメソッド(サブルーチン)により構成される。各メソッドには、それぞれに固有のメソッド管理番号が付与されている。各メソッドは、複数のバイトコード(バイトコード群)により構成される。バイトコードは、ソースコードとネイティブコードとの間の中間言語(実行形式)である。このようなバイトコードは、通常、アプリケーションプログラムのインストール時に、当該アプリケーションプログラムをコンパイルすることで得られ、不揮発性メモリ13に書き込まれる。図1(B)に示すように、OS上で動作する仮想マシンは、複数のバイトコードのうち、次に実行するべきバイトコードに対応する値(例えば、バイトコードのアドレス、当該バイトコードを表すオフセット、又は当該バイトコードのラベル値)を指し示すプログラムカウンタを保持している。そして、仮想マシンは、プログラムカウンタにより示された値に対応するバイトコードを解釈、実行する。
図2(A)は、本実施形態におけるバイトコードの書き込み及び実行を示す概念図である。本実施形態では、CPU10は、乱数生成器14により生成された乱数値を用いて、例えばインストール時に、コンパイルにより取得された複数のバイトコードを可逆変換値に変換する。例えば、CPU10は、図2(A)に示すように、バイトコードと乱数値とをXOR(排他的論理和)することでバイトコードを可逆変換値に変換する。ここで、乱数値はメソッドごとに生成されることが望ましい。この場合、メソッドにおけるバイトコード群(一連のバイトコードの塊)と当該メソッドに対応する乱数値とがXORされて可逆変換値が生成される。なお、乱数値の長さについては、0以外の値とする(長ければ強度が上がるが、実行速度は低下する)。
そして、CPU10は、変換された可逆変換値をバイトコードに代えて不揮発性メモリ13に記憶する。つまり、通常、バイトコードを不揮発性メモリ13に書き込むところ、このバイトコードではなくその可逆変換値を不揮発性メモリ13に書き込む。更に、CPU10は、不揮発性メモリ13に記憶された可逆変換値に対応付けて、上記変換に用いられた乱数値を不揮発性メモリ13に記憶する。ここで、乱数値がメソッドごとに生成される場合、例えば、メソッド管理番号と乱数値とがメソッドごとに対応付けられて保持される管理テーブルが不揮発性メモリ13に記憶される。
図2(B)は、あるメソッドにおけるバイトコード群と乱数値との対応関係を示す図である。図2(B)の例では、メソッドにおけるバイトコード群と、これと同じサイズ(長さ)の乱数値とがXORされることになる。なお、図2(B)に示すバイトコード群とこれと同じ長さの乱数値とが同時にXORされてもよいし、バイトコード群に含まれるバイトコードごとに、それぞれのバイトコードとこれと同じサイズに区切られた乱数値とが別々にXORされるようにしてもよい。
そして、仮想マシンは、アプリケーションプログラムの実行の際には、上記可逆変換値及びこれに対応付けられた乱数値を不揮発性メモリ13から読み出し、読み出した乱数値を用いて、読み出した可逆変換値をバイトコードに逆変換して解釈、実行することになる。例えば、読み出された乱数値と可逆変換値とがXORされることで可逆変換値がバイトコードに変換される。
ところで、上述した管理テーブルに、上記変換に用いられた乱数値全てが管理テーブルに保持されると、不揮発性メモリ13に大きい記憶領域を確保する必要があるので、乱数値のイニシャルベクトル(シード)のみを管理テーブルに保持させることが望ましい。この場合、乱数生成器14により生成されたイニシャルベクトルに基づき、例えば、ストリーム暗号により逐次生成される乱数値と各バイトコードとがXORされることで可逆変換値が生成される。或いは、ブロック暗号をストリーム暗号のように使用することにより、各乱数値と各バイトコードとがXORされることで可逆変換値が生成されてもよい。ブロック暗号をストリーム暗号のように使うアルゴリズムをOFB(Output Feed Back)モードという。
図3(A)は、OFBモードを利用して乱数値を生成し、各乱数値と各バイトコードとがXORされる例を示す概念図である。図3(A)に示すように、乱数値のイニシャルベクトルIVは、疑似乱数生成部(アルゴリズム)Ekに入力されることで乱数値Z1が生成され、当該乱数値Z1が次の疑似乱数生成部Ekに入力されることで乱数値Z2が生成されるというように、逐次、乱数値が生成されていく。このように乱数値Zm(m=1,2,・・・t)が生成されていく過程で、生成された各乱数値Zmと各バイトコードBmとがXORされて可逆変換値Cmが生成(例えば、バイトコードBt→可逆変換値Ctに変換)されることになる。
そして、生成された全ての可逆変換値C1,C2・・・Ctがメソッドごとに連結され、連結された可逆変換値が管理テーブルに対応付けられて不揮発性メモリ13に記憶される。なお、図3(A)の例では、各乱数値Zmと各バイトコードBmとが別々にXORされて可逆変換値Cmが生成される例であるが、各乱数値Zmが連結された全体の乱数値と、各バイトコードBmが連結されたバイトコード群とがXORされて可逆変換値が生成されてもよい。
図3(B)は、乱数値のイニシャルベクトルが保持される管理テーブルの一例を示す図である。図3(B)に示す管理テーブルには、メソッド管理番号と、乱数値のイニシャルベクトル(乱数値の生成基になったイニシャルベクトル)と、メソッドのバイトコード長(メソッドにおけるバイトコード群の長さ)とがメソッドごとに対応付けられて保持されている。このように構成すれば、乱数値を記憶するための領域を少なくすることができるので、不揮発性メモリ13の記憶領域を有効に活用することができる。なお、上記例では、ストリーム暗号(または、ブロック暗号をストリーム暗号のように使うアルゴリズム)の適用例を説明したが、ブロック暗号の他のモードによって、バイトコード群を固定長のブロックに区切るように適用してもよい。
次に、図4を参照して、アプリケーションプログラムのインストール時におけるバイトコードの書き込み処理について説明する。図4は、バイトコードの書き込み処理の一例を示すフローチャートである。なお、図4に示す処理は、例えば外部端末2の一つである発行機からのインストールコマンドがCPU10により受信された場合に開始される。ステップS1では、アプリケーションプログラムの実行形式の解析が開始される。次いで、ステップS2の初回では、乱数値のイニシャルベクトルに基づいて乱数値が生成され、メソッド管理番号が取得(初期値=0)される(初回の後は、前回生成された乱数値に基づいて乱数値が生成される)。次いで、ステップS3では、オフセットがメソッドの終端であるか否かが判定される。オフセットがメソッドの終端でないと判定された場合(ステップS3:NO)、ステップS4へ進む。オフセットがメソッドの終端であると判定された場合(ステップS3:YES)、ステップS6へ進む。ステップS4では、乱数値とバイトコードとがXORされることで可逆変換値が生成される。次いで、ステップS5では、メソッドにおけるバイトコード群の位置を指し示すオフセットが次のバイトコードに進められ(例えば、バイトコードB1からバイトコードB2に進められ)、ステップS3に戻る。つまり、オフセットがメソッドの終端になるまでステップS3〜S5の処理が継続される。そして、ステップS6では、メソッド管理番号が加算(例えば1インクリメント)される。次いで、ステップS7では、オフセットは実行形式の終端(つまり、最後のメソッドにけるバイトコード群の終端)であるか否かが判定される。オフセットは実行形式の終端でないと判定された場合(ステップS7:NO)、ステップS2に戻る。つまり、オフセットが実行形式の終端になるまでステップS2〜S7の処理が継続される。そして、オフセットは実行形式の終端であると判定された場合(ステップS7:YES)、ステップS5で生成された各可逆変換値が不揮発性メモリ13に書き込まれると共に、メソッド管理番号をインデックスとした管理テーブルに乱数値のイニシャルベクトルが書き込まれ(ステップS8)、図4に示す処理が終了する。
次に、図5を参照して、アプリケーションプログラムの実行時におけるバイトコードの実行処理について説明する。図5は、バイトコードの実行処理の一例を示すフローチャートである。図5に示す処理は、例えば外部端末2から所定のコマンドがCPU10により受信された場合に開始される。ステップS11では、バイトコードの解析が開始され、仮想マシンのプログラムカウンタが可逆変換値の開始位置に設定される。次いで、ステップS12では、管理テーブルから、上記受信されたコマンドにより特定される対象メソッドの乱数値が取得される。上述したように管理テーブルに乱数値のイニシャルベクトルが保持されている場合、ステップS12の初回では、管理テーブルから乱数値のイニシャルベクトルが読み出され、当該イニシャルベクトルに基づいて乱数値が生成される(初回の後は、前回生成された乱数値に基づいて乱数値が生成される)ことで取得される。次いで、仮想マシンのプログラムカウンタが指し示すアドレスに記憶されている可逆変換値が不揮発性メモリ13から読み出され、当該可逆変換値と、ステップS12で取得された乱数値とがXORされることで可逆変換値がバイトコードに変換される(ステップS13)。そして、ステップS14では、バイトコードが仮想マシンのインタプリタにより解釈、実行される。次いで、アプリケーションプログラムはメソッドの終端であるか否かが判定される(ステップS15)。当該プログラムはメソッドの終端でないと判定された場合(ステップS15:NO)、ステップS16へ進む。一方、当該プログラムはメソッドの終端であると判定された場合(ステップS15:YES)、ステップS17へ進む。ステップS16では、仮想マシンのプログラムカウンタが次のバイトコードに進められ、ステップS13に戻る。つまり、当該プログラムがメソッドの終端になるまでステップS13〜S16の処理が継続される。一方、ステップS17では、アプリケーションプログラムを終了するか否かが判定される。アプリケーションプログラムを終了しないと判定された場合(ステップS17:NO)、ステップS12へ戻る。アプリケーションプログラムを終了すると判定された場合(ステップS17:YES)、図5に示す処理が終了する。
以上説明したように、上記実施形態によれば、乱数値を用いて複数のバイトコードを可逆変換値に変換し、変換された可逆変換値を不揮発性メモリ13に記憶すると共に、当該可逆変換値に対応付けて、上記変換に用いられた乱数値または当該乱数値のイニシャルベクトルを不揮発性メモリ13に記憶しておき、アプリケーションプログラムの実行の際には、上記乱数値を用いて、上記記憶された可逆変換値をバイトコードに逆変換して解釈、実行するように構成したので、攻撃により可逆変換値が不揮発性メモリ13から、仮に漏洩したとしても、悪意のある攻撃者にとって、その可逆変換値がバイトコードであるかを特定することが困難となり、悪意のある攻撃者によりアプリケーションのバイトコードが漏洩したときの脅威を低減することができる。また、上記生成される乱数値(乱数値のイニシャルベクトル)をメソッドごとに異ならせることで、攻撃により可逆変換値が不揮発性メモリ13から、仮に漏洩したとしても、その可逆変換値がバイトコードであるかを特定することを、より一層、困難とさせることができる。
1 ICカード
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 不揮発性メモリ
14 乱数生成器
15 I/O回路
2 外部端末
1a ICチップ
10 CPU
11 ROM
12 RAM
13 不揮発性メモリ
14 乱数生成器
15 I/O回路
Claims (4)
- 所定のプログラムを構成する複数のバイトコードを取得する取得手段と、
乱数値を生成する生成手段と、
前記乱数値を用いて前記バイトコードを可逆変換値に変換する変換手段と、
前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを記憶する不揮発性メモリと、
前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行する実行手段と、
を備えることを特徴とする情報記憶媒体。 - 前記プログラムは、複数のメソッドにより構成され、各前記メソッドは、複数のバイトコードにより構成されており、
前記不揮発性メモリは、前記乱数値または当該乱数値の生成基になったイニシャルベクトルを前記メソッドごとに記憶することを特徴とする請求項1に記載の情報記憶媒体。 - 所定のプログラムを構成する複数のバイトコードを取得するステップと、
乱数値を生成するステップと、
前記乱数値を用いて前記バイトコードを可逆変換値に変換するステップと、
前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを不揮発性メモリに記憶するステップと、
前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行するステップと、
をコンピュータに実行させることを特徴とするバイトコード実行処理プログラム。 - コンピュータにより実行されるバイトコード実行方法であって、
所定のプログラムを構成する複数のバイトコードを取得するステップと、
乱数値を生成するステップと、
前記乱数値を用いて前記バイトコードを可逆変換値に変換するステップと、
前記可逆変換値を前記バイトコードに代えて記憶し、且つ、当該可逆変換値に対応付けて前記乱数値または当該乱数値の生成基になったイニシャルベクトルを不揮発性メモリに記憶するステップと、
前記プログラムの実行の際には、前記可逆変換値を前記不揮発性メモリから読み出し、前記乱数値を用いて、前記読み出した前記可逆変換値をバイトコードに変換して実行するステップと、
を含むことを特徴とするバイトコード実行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013162427A JP2015032201A (ja) | 2013-08-05 | 2013-08-05 | 情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013162427A JP2015032201A (ja) | 2013-08-05 | 2013-08-05 | 情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015032201A true JP2015032201A (ja) | 2015-02-16 |
Family
ID=52517446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013162427A Pending JP2015032201A (ja) | 2013-08-05 | 2013-08-05 | 情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2015032201A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222202A (ja) * | 1999-01-22 | 2000-08-11 | Sun Microsyst Inc | コンピュ―タ・メモリ中にコピ―されたデ―タを介したセキュリティ攻撃を制限する方法および装置 |
JP2002333984A (ja) * | 2001-01-26 | 2002-11-22 | Matsushita Electric Ind Co Ltd | インタプリタ機能を有するlsiおよびそれを用いた情報記録再生装置 |
JP2005532622A (ja) * | 2002-07-08 | 2005-10-27 | ジェムプリュス | 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化 |
JP2010114682A (ja) * | 2008-11-06 | 2010-05-20 | Japan Science & Technology Agency | ストレージノード用再暗号化システム及び方法 |
-
2013
- 2013-08-05 JP JP2013162427A patent/JP2015032201A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000222202A (ja) * | 1999-01-22 | 2000-08-11 | Sun Microsyst Inc | コンピュ―タ・メモリ中にコピ―されたデ―タを介したセキュリティ攻撃を制限する方法および装置 |
JP2002333984A (ja) * | 2001-01-26 | 2002-11-22 | Matsushita Electric Ind Co Ltd | インタプリタ機能を有するlsiおよびそれを用いた情報記録再生装置 |
JP2005532622A (ja) * | 2002-07-08 | 2005-10-27 | ジェムプリュス | 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化 |
JP2010114682A (ja) * | 2008-11-06 | 2010-05-20 | Japan Science & Technology Agency | ストレージノード用再暗号化システム及び方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853270B2 (en) | Cryptographic pointer address encoding | |
US11507671B1 (en) | Detection and healing of vulnerabilities in computer code | |
US8572386B2 (en) | Secure device, information processing terminal, integrated circuit, terminal application generation apparatus, application authentication method | |
EP2519908B1 (en) | Jcvm bytecode execution protection against fault attacks | |
EP2364481B1 (en) | Method for securing java bytecode. | |
CN101984449B (zh) | 一种智能卡cos操作系统 | |
JP5945313B2 (ja) | 構造体を生成する方法および対応する構造体 | |
CN104200137A (zh) | 一种保护java程序自身安全的方法 | |
CN104809414B (zh) | 一种防止冷启动攻击的u盘加密密钥存放方法 | |
JP4378459B2 (ja) | 特にスマートカードにおけるダウンロードしたアプリケーションの機密保護化 | |
CN116235174A (zh) | 用于执行加密算法的设备和方法 | |
JP2015032201A (ja) | 情報記憶媒体、バイトコード実行処理プログラム、及びバイトコード実行方法 | |
US20110022852A1 (en) | Cryptographic computation apparatus, cryptographic computation program, and storage medium | |
CN111881485B (zh) | 一种基于arm指针验证的内核敏感数据完整性保护方法 | |
CN105610582B (zh) | 单片机与远程服务器加密通讯方法 | |
JP2009015651A (ja) | 情報記憶媒体 | |
JP6175882B2 (ja) | 情報記憶媒体、icカード、バイトコード実行方法 | |
CN113591040B (zh) | 加密方法及其装置、解密方法及其装置、电子设备和介质 | |
CN105790953A (zh) | 双接口认证设备及其工作方法 | |
Torr et al. | Multos and multos application development | |
JP2024081306A (ja) | 乱数列の生成方法およびトークン発行装置 | |
JP6287284B2 (ja) | Icチップ及びプログラム暗号化方法 | |
Asgari et al. | Secure file management system for Java cards | |
JP2009251818A (ja) | Icチップ用データ書き込み装置及びデータ書き込み方法 | |
JP2011192207A (ja) | 携帯可能電子装置及びicカード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160624 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170418 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20171121 |