JP6899308B2 - 情報処理装置および情報処理装置のデータ処理方法 - Google Patents
情報処理装置および情報処理装置のデータ処理方法 Download PDFInfo
- Publication number
- JP6899308B2 JP6899308B2 JP2017200362A JP2017200362A JP6899308B2 JP 6899308 B2 JP6899308 B2 JP 6899308B2 JP 2017200362 A JP2017200362 A JP 2017200362A JP 2017200362 A JP2017200362 A JP 2017200362A JP 6899308 B2 JP6899308 B2 JP 6899308B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- processing
- data
- encryption
- program
- 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.)
- Active
Links
Images
Description
このようなサービスを利用する際には、専用のアプリケーションソフトウェア(以下、単に「アプリ」という)をインストールし、そのアプリを介してサービスを利用するのが一般的である。
以下、本発明に係る実施形態1を、図1ないし図9を用いて説明する。
実施形態1の情報処理装置は、シングルCPUで構成された装置の例について説明する。
ユーザが情報処理装置を用いるシステムにおける情報処理端末は、スマートフォンなどのネットワーク端末であり、システムは、ユーザ101が携帯するネットワーク端末102と、アプリ配信サーバ103、サービス提供者104における認証サーバ110、アプリケーションサーバ111で構成されている。
ネットワーク端末(以下、単に「端末」という)102は、ネットワークインターフェース210、センサ220、ストレージ230、CPU240、処理中の中間データやプログラムを保持するRAM(Random Access Memory)250(主記憶装置)などで構成される。
これらの機能はデータバスで互いにつながれており、RAM250を介してデータのやり取りをする。
本実施形態のアプリは、RAM上のデータを暗号化する機能(RAM暗号化機能)を有しており、端末102にアプリをインストールするためのプログラム(インストーラ)は、特有の機能を有する。
先ず、端末102は、ネットワーク201を介して図1に示したアプリ配信サーバ103に接続して、TLS(Transport layer Security)等の暗号通信を確立する(S401)。
次に、アプリ配信サーバ103は、受信したアプリダウンロード要求にしたがい、アプリのインストーラ340を端末102に送信する(S403)。
次に、端末102は、受信したインストーラ340をストレージ230またはRAM250に置き、インストーラを実行する(S404)。
最後に、端末102は、作成されたアプリイメージをストレージ230に格納する(S407)。
図5(a)は、処理を分割する前のアプリの処理構造の例、図5(b)は、処理を分割した後のアプリの処理構造の例を示している。
以下、図6にしたがって、定期的なソフトウェア割り込みに伴う処理の中断および復帰と、中断時に退避されるデータの暗号化プロセスについて説明する。
アプリの分割した処理ブロック610は、暗号処理1(611)と復号処理1(612)、暗号処理および復号処理に用いる鍵1(613)、そしてアプリが本来行うべきサブルーチン614で構成される。
次に、アプリは、復号文P(616)に対して、サブルーチン614の処理を実行し、処理の結果として平文P′(617)を出力する(ステップ3)。
次に、アプリは、鍵1(613)をパラメータとして、平文P′(617)を暗号化し、暗号文C′(621)を出力する(ステップ4:暗号処理1(611))。
次に、アプリは、暗号文C・(621)をRAM250上に書き出す(ステップ5:618)。
同様にして、レジスタ上のデータも暗号化してRAMに書き出す(ステップ6:暗号処理1(611))。
最後に、OSは割り込み処理を実行し、アプリのプロセスを退避する(ステップ8:602)。
この構成により、割り込みが発生しても、退避されたデータはすべて暗号化されているため、マルウェアは秘密情報を取り出すことができない。
(I)短期鍵の生成
先ず、実行を中断されたアプリが割り込みから復帰すると、エントロピー発生源243からエントロピー源710を取得し、鍵2(711)を生成し、レジスタ上に配置する(ステップ1:鍵生成処理701)。
(II)復号文P616の暗号化
次に、鍵2(711)をパラメータとして復号文616を暗号化する(ステップ2:暗号処理2703)。
次に、は暗号文CT712をRAM250に書き込む(ステップ3:RAMへのデータ書き込み機能706)。
(III)処理中のRAMアクセスと暗号処理
次に、暗号文CT712をレジスタ上に読み込む(ステップ4:RAMからのデータ読み込み処理707))。
次に、鍵2(711)をパラメータとして暗号文CT712を復号する(ステップ5:復号処理2704)。
以下、必要に応じてステップ4〜ステップ6を繰り返す。
(IV)サブルーチン完了後の処理
最後に、サブルーチン614は、鍵2711を配置したレジスタをゼロリセットするまたは乱数を書き込むことで、鍵を廃棄し、処理を終了する(ステップ7:鍵廃棄処理702)。
ここで、復号文P616は、図4におけるステップ2で復号されたデータであるが、アプリの外側から入力された暗号化されていないデータでもよい。
CPUは、32ビットレジスタをm本有しているものとする。このうち2本のレジスタR[m−1]811、R[m]812に、鍵2(711)を配置する。また、暗号化されるデータ暗号化対象データ1801、暗号化対象データ2802はレジスタR[2]813、R[k]814に配置されているものとする。暗号処理2(703)では、暗号化対象データおよび鍵2を入力として、暗号文を生成する。暗号文は、レジスタ長に等しい二つのデータブロック暗号文データC1(803)と暗号文データC2(804)を生成し、レジスタR[2]、R[k]の値を書き換える。
32ビットARMアーキテクチャは、16本の汎用レジスタを有する。このうち、実際に利用可能なのはR0からR12の13本のレジスタである。図9の例では、鍵維持用レジスタにR0,R1を割り当てている。また、レジスタR2,R3に配置しているデータを暗号化対象とする。
R2,R3に配置されている暗号化対象データP1,P2と、R0,R1に配置されている鍵K0,K1と、それぞれ排他的論理和をとる(ステップ1)。
以下の処理を定められた回数繰り返す(ステップ2)。
R3←ADDR3,R2
R2←ROTL32R2,s1
R2←XORR2,R3
R3←ROTL32R3,s2
R3←ADDR3,R2
R2←ROTL32R2,s3
R2←XORR2,R3
R3←ROTL32R3,s4
この構成により、暗号処理対象データを配置したレジスタと、鍵を配置したレジスタのみで暗号処理を実行できる。復号処理は、暗号処理を逆順に行えばよい。
以下、本発明に係る実施形態2を、図10および図11を用いて説明する。
実施形態1では、シングルCPUでRAM上のデータを暗号化する処理について説明したが、本実施形態2の情報処理装置は、マルチCPU、マルチコアで構成された装置であり、マルチCPUで暗号処理を分割実行するものである。
本実施形態では、CPUはマルチコアであり、アプリが同時に複数のサブルーチンを実行している場合を考える。アプリは処理ブロック1(1010)、処理ブロック2(1020)を、それぞれCPU1(1001)、CPU2(1002)上で実行しているものとする。実施形態1の場合と同様に、アプリ231は単位時間で実行可能な処理ブロックに分割されているものとする。
以上、本実施形態では、RAM上のデータをマルチコアによって、多重に暗号化するため、セキュリティの強度を高めることが可能になる。
300…記憶部、310…演算部、320…通信部、330…端末固有の情報、340…インストーラ、341…保護対象プログラム、342…鍵生成部、343暗号化部、344…復号部、345…割り込み頻度取得部、346…処理分割部、351…処理ブロック1、352…処理ブロックk′、353…鍵を埋め込んだ暗号化部、354…鍵を埋め込んだ復号部
Claims (8)
- 主記憶装置に格納されたデータとプログラムをCPU(Central Processing Unit)が参照して演算することにより処理をおこなう情報処理装置であって、
前記プログラムのインストーラは、
CPU情報に基づいて、インストールするプログラムの処理を分割して、前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理と、平文データを暗号化する暗号処理と、サブルーチンとを合わせた実行単位の実行時間が、所定の単位時間を越えないようなコードを生成してインストールをおこない、
所定の単位時間の間に、
前記CPUが、前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理と、
前記CPUが、前記プログラムのサブルーチンの実行をする処理と、
前記CPUが、平文データを暗号化する暗号処理と、
前記CPUが、暗号化されたデータを前記主記憶装置に書き込む処理とを実行することを特徴とする情報処理装置。 - 前記所定の単位時間は、ソフトウェア割込みの時間であることを特徴とする請求項1記載の情報処理装置。
- 前記プログラムのインストーラは、
前記プログラムをインストールする際に、前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理のコードと、平文データを暗号化する暗号処理のコードとをインストールし、
前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理のコードと、平文データを暗号化する暗号処理のコードとに共通の秘密鍵を埋め込むことを特徴とする請求項1記載の情報処理装置。 - 前記プログラムのサブルーチンは、
前記主記憶装置に格納された暗号化されたデータを読み出して、前記CPUのレジスタ上に復号する復号処理と、
前記CPUのレジスタ上にある平文データを暗号化する暗号処理とをおこない、
前記情報処理装置は、エントロピー発生源を有し、
前記エントロピー発生源の発生したエントロピー源に基づいて、
前記復号処理と前記暗号処理のそれぞれに共通する秘密鍵を生成することを特徴とする請求項1記載の情報処理装置。 - 前記情報処理装置は、複数のCPUを有し、
各々のCPUがプロセスを並行に実行し、
第一のCPUが実行する復号処理と暗号処理の共通の秘密鍵と、
第二のCPUが実行する復号処理と暗号処理の共通の秘密鍵とは異なることを特徴とする請求項1記載の情報処理装置。 - 第一のCPUは、第一のCPUが実行する復号処理と暗号処理の共通の秘密鍵により、平文を暗号化して、前記主記憶装置に暗号文として書込み、
前記第二のCPUは、前記第一のCPUが前記主記憶装置に書き込んだ暗号文を読み出して、さらに、第二のCPUが実行する復号処理と暗号処理の共通の秘密鍵によりその暗号文を暗号化して、前記主記憶装置に暗号文として書き込むことを特徴とする請求項5記載の情報処理装置。 - 主記憶装置に格納されたデータとプログラムをCPU(Central Processing Unit)が参照して演算することにより処理を行う情報処理装置のデータ処理方法であって、
前記プログラムをインストールする際に、前記プログラムのサブルーチンの実行前に、前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理のコードをインストールし、前記プログラムのサブルーチンの実行後に、平文を暗号化する暗号処理のコードとをインストールするステップとを有し、
前記復号処理のコードと、前記暗号処理のコードとに共通の秘密鍵埋め込まれ、
ソフトウェア割込みの復帰時に、前記主記憶装置に格納された暗号化されたデータを読み出して復号する復号処理を実行するステップと、
前記復号処理を実行するステップの後に、前記プログラムのサブルーチンの実行するステップと、
前記プログラムのサブルーチンの実行するステップの後に、平文を前記暗号処理により暗号化して、暗号文として、主記憶装置に書き込むステップとを有し、
前記プログラムをインストールする際に、前記復号処理を実行するコードと、前記プログラムのサブルーチンを実行するコードと、前記平文を暗号化する暗号処理のコードが、合わせて所定の単位時間内に実行するようなコードを生成することを特徴とする情報処理装置のデータ処理方法。 - 主記憶装置に格納されたデータとプログラムをCPU(Central Processing Unit)が参照して演算することにより処理を行う情報処理装置のデータ処理方法であって、
エントロピー発生源が、エントロピー源を発生するステップと、
前記CPUが、暗号鍵を前記エントロピー源に基づいて、暗号鍵を生成するステップと、
前記CPUが、前記プログラムのサブルーチンの実行において、レジスタ上のデータを前記暗号鍵により暗号処理をして暗号文を生成するステップと、
前記CPUが、前記プログラムのサブルーチンの実行において、前記生成した暗号文を主記憶装置に書き込むステップと、
前記CPUが、前記プログラムのサブルーチンの実行において、前記主記憶装置に書き込まれた暗号文を読み出すステップと、
前記CPUが、前記プログラムのサブルーチンの実行において、読み出された暗号文を、前記暗号鍵よりレジスタ上のデータとして復号化するステップと、
前記CPUが、前記復号化の後は、前記暗号鍵を廃棄するステップとを有することを特徴とする請求項7記載の情報処理装置のデータ処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017200362A JP6899308B2 (ja) | 2017-10-16 | 2017-10-16 | 情報処理装置および情報処理装置のデータ処理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017200362A JP6899308B2 (ja) | 2017-10-16 | 2017-10-16 | 情報処理装置および情報処理装置のデータ処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019074913A JP2019074913A (ja) | 2019-05-16 |
JP6899308B2 true JP6899308B2 (ja) | 2021-07-07 |
Family
ID=66544774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017200362A Active JP6899308B2 (ja) | 2017-10-16 | 2017-10-16 | 情報処理装置および情報処理装置のデータ処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6899308B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7295761B2 (ja) | 2019-09-25 | 2023-06-21 | 株式会社日立製作所 | 情報処理装置 |
JP2021092951A (ja) * | 2019-12-10 | 2021-06-17 | 株式会社日立製作所 | 実行ファイル生成装置、方法、およびプログラム |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4375980B2 (ja) * | 2003-03-11 | 2009-12-02 | 株式会社エヌ・ティ・ティ・ドコモ | マルチタスク実行システム及びマルチタスク実行方法 |
JP4614239B2 (ja) * | 2006-07-28 | 2011-01-19 | Kddi株式会社 | マルチタスクスケジューリング機能搭載装置及びプログラム |
JP2009278491A (ja) * | 2008-05-16 | 2009-11-26 | Casio Comput Co Ltd | マイクロプロセッサ及びマイクロプロセッサ応用装置 |
US10615967B2 (en) * | 2014-03-20 | 2020-04-07 | Microsoft Technology Licensing, Llc | Rapid data protection for storage devices |
-
2017
- 2017-10-16 JP JP2017200362A patent/JP6899308B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2019074913A (ja) | 2019-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10853270B2 (en) | Cryptographic pointer address encoding | |
KR102217501B1 (ko) | 신뢰 실행 환경을 갖는 모바일 디바이스 | |
CN100388245C (zh) | 多重任务执行系统 | |
US8190917B2 (en) | System and method for securely saving and restoring a context of a secure program loader | |
US9054865B2 (en) | Cryptographic system and methodology for securing software cryptography | |
US20160253485A1 (en) | Support for secure objects in a computer system | |
CN105450620A (zh) | 一种信息处理方法及装置 | |
WO2016109558A1 (en) | System and method for secure code entry point control | |
US9256756B2 (en) | Method of encryption and decryption for shared library in open operating system | |
US20170046280A1 (en) | Data processing device and method for protecting a data processing device against attacks | |
CN108959129B (zh) | 一种基于硬件的嵌入式系统机密性保护方法 | |
JP6899308B2 (ja) | 情報処理装置および情報処理装置のデータ処理方法 | |
CN113569248A (zh) | 数据处理的方法以及计算设备 | |
US9166783B2 (en) | Protection method, decryption method, player, storage medium, and encryption apparatus of digital content | |
Fu et al. | RegKey: a register-based implementation of ECC signature algorithms against one-shot memory disclosure | |
WO2021117524A1 (ja) | 実行ファイル生成装置、方法、およびプログラムが記録された非一時的記憶媒体 | |
WO2020226054A1 (ja) | 情報処理方法、情報処理装置及び記憶媒体 | |
EP3009952A1 (en) | System and method for protecting a device against attacks on procedure calls by encrypting arguments | |
Vaslin | ‘Hardware Core for Off-Chip Memory Security Management in Embedded Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200325 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210129 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210427 |
|
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: 20210518 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6899308 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |