JP2015162115A - Information processing device and information processing method - Google Patents

Information processing device and information processing method Download PDF

Info

Publication number
JP2015162115A
JP2015162115A JP2014037261A JP2014037261A JP2015162115A JP 2015162115 A JP2015162115 A JP 2015162115A JP 2014037261 A JP2014037261 A JP 2014037261A JP 2014037261 A JP2014037261 A JP 2014037261A JP 2015162115 A JP2015162115 A JP 2015162115A
Authority
JP
Japan
Prior art keywords
program
random number
processing
instructions
instruction
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.)
Granted
Application number
JP2014037261A
Other languages
Japanese (ja)
Other versions
JP6201812B2 (en
Inventor
山田 真生
Masanari Yamada
真生 山田
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co Ltd
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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP2014037261A priority Critical patent/JP6201812B2/en
Publication of JP2015162115A publication Critical patent/JP2015162115A/en
Application granted granted Critical
Publication of JP6201812B2 publication Critical patent/JP6201812B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an information processing device and information processing method capable of achieving high speed and security.SOLUTION: An information processing device includes: a memory that stores a first program composed of a plurality of instructions and a second program composed of a plurality of instructions; a processor that has a pipeline processing function for starting processing of one or more instructions of the second program before processing of one or more instructions of the first program ends; and a random number generator that generates a random number. The processor checks the random number generated by the random number generator before or after the processing of the one or more instructions of the second program is started; and if the random number is a predetermined value, performs the processing of the one or more instructions of the first program.

Description

1つのプロセッサ上にセキュリティ性が要求されるOSと、高速性が要求されるOSとが並存可能な装置等の技術分野に関する。   The present invention relates to a technical field such as an apparatus in which an OS requiring security and a OS requiring high speed can coexist on one processor.

近年、携帯電話機やスマートフォン等の携帯端末中に搭載されたプロセッサ上で認証処理や暗号処理等を行うOS(Operating System)としてTEE(Trusted Execution Environment)が知られている。TEEは、セキュリティ性が要求される。一方で、従来から、暗号処理に対する攻撃として、処理時間を解析することにより秘密情報を推定するタイミングアタック(Timing Attack)や、暗号処理時の消費電力の観測により秘密情報を推定する電力解析攻撃(Power Analysis Attack)などのSCA(Side Channel Analysis)が知られている。このような攻撃に対する対策として、特許文献1には、乱数に基づく信号に従って、変調クロック信号を生成して、該変調クロック信号に基づいてデータ処理タイミングを決定してデータ処理を実行する技術が開示されている。   In recent years, a TEE (Trusted Execution Environment) is known as an OS (Operating System) that performs authentication processing, encryption processing, and the like on a processor installed in a mobile terminal such as a mobile phone or a smartphone. TEE requires security. On the other hand, traditionally, as attacks against cryptographic processing, timing attacks that estimate secret information by analyzing processing time (Timing Attack) and power analysis attacks that estimate secret information by observing power consumption during cryptographic processing ( SCA (Side Channel Analysis) such as Power Analysis Attack) is known. As a countermeasure against such an attack, Patent Document 1 discloses a technique for generating a modulated clock signal according to a signal based on a random number, determining data processing timing based on the modulated clock signal, and executing data processing. Has been.

上述したTEEにおいては、乱数生成器(乱数発生器)により生成された乱数に従って、ダミー処理(例えば、何もしないNOP処理)を実行することでセキュリティ性を保っている。このようなTEEと比較して、高速性(つまり、高速動作)が要求されるOSとして、iOS(登録商標)やANDROID(登録商標)等のREE(Rich Execution Environment)が知られている。   In the TEE described above, security is maintained by executing dummy processing (for example, NOP processing that does nothing) in accordance with a random number generated by a random number generator (random number generator). As an OS requiring high speed (that is, high speed operation) compared to such TEE, RIE (Rich Execution Environment) such as iOS (registered trademark) and ANDROID (registered trademark) is known.

特開2005−45752号公報JP 2005-45752 A

ところで、例えば携帯端末に備えられる1つのCPUの上にTEEとREEが並存し、TEEの一つの命令の処理の終了前にREEの一つの命令の処理を開始するパイプライン処理(並列処理ともいう)が行われる場合、高速性、かつセキュリティ性を実現することが要求される。   By the way, for example, TEE and REE coexist on one CPU provided in a portable terminal, and pipeline processing (also referred to as parallel processing) for starting processing of one instruction of REE before the processing of one instruction of TEE is completed. ) Is required to achieve high speed and security.

本発明は、高速性、かつセキュリティ性を実現することが可能な情報処理装置、及び情報処理方法を提供することを課題とする。   It is an object of the present invention to provide an information processing apparatus and an information processing method capable of realizing high speed and security.

上記課題を解決するために、請求項1に記載の発明は、複数の命令により構成される第1のプログラムと、複数の命令により構成される第2のプログラムとを記憶するメモリと、前記第1のプログラムの一つ以上の命令の処理の終了前に前記第2のプログラムの一つ以上の命令の処理を開始するパイプライン処理機能を有するプロセッサと、乱数を生成する乱数生成器と、を備える情報処理装置であって、前記プロセッサは、前記第2のプログラムの一つ以上の命令の処理を開始する前又は開始した後に前記乱数生成器により生成された乱数を確認し当該乱数が所定値である場合、前記第1のプログラムの一つ以上の命令の処理を行うことを特徴とする。   In order to solve the above-mentioned problem, the invention described in claim 1 is directed to a memory for storing a first program composed of a plurality of instructions and a second program composed of a plurality of instructions, A processor having a pipeline processing function for starting processing of one or more instructions of the second program before completion of processing of one or more instructions of one program, and a random number generator for generating random numbers An information processing apparatus comprising: the processor confirms a random number generated by the random number generator before or after starting processing of one or more instructions of the second program, and the random number is a predetermined value In this case, one or more instructions of the first program are processed.

請求項2に記載の発明は、請求項1に記載の情報処理装置において、前記プロセッサは、前記第1のプログラムの命令を記憶する前記メモリのアドレスを格納する第1のプログラムカウンタと、前記第2のプログラムの命令を記憶する前記メモリのアドレスを格納する第2のプログラムカウンタと、を有し、前記第2のプログラムカウンタが示すアドレスの命令を前記メモリから読み込む直前に前記乱数生成器により生成された乱数を確認し当該乱数が所定値である場合、前記第2のプログラムカウンタが示すアドレスの命令の代わりに、前記第1のプログラムカウンタが示すアドレスの命令を読み込み、解釈及び実行する処理を行うことを特徴とする。   According to a second aspect of the present invention, in the information processing apparatus according to the first aspect, the processor includes a first program counter that stores an address of the memory that stores an instruction of the first program, and the first program counter. A second program counter for storing an address of the memory for storing instructions of the second program, and generated by the random number generator immediately before reading the instruction at the address indicated by the second program counter from the memory If the random number is a predetermined value and the random number is a predetermined value, the instruction at the address indicated by the first program counter is read, interpreted and executed instead of the instruction at the address indicated by the second program counter. It is characterized by performing.

請求項3に記載の発明は、請求項1または2に記載の情報処理装置において、前記第1のプログラムは処理の高速性が要求されるオペレーティングシステムであり、前記第2のプログラムは処理のセキュリティ性が要求されるオペレーティングシステムであることを特徴とする。   According to a third aspect of the present invention, in the information processing apparatus according to the first or second aspect, the first program is an operating system that requires high-speed processing, and the second program is processing security. It is an operating system that requires high performance.

請求項4に記載の発明は、複数の命令により構成される第1のプログラムと、複数の命令により構成される第2のプログラムとを記憶するメモリと、前記第1のプログラムの一つ以上の命令の処理の終了前に前記第2のプログラムの一つ以上の命令の処理を開始するパイプライン処理機能を有するプロセッサと、乱数を生成する乱数生成器と、を備える情報処理装置により行われる情報処理方法であって、前記プロセッサが、前記第2のプログラムの一つ以上の命令の処理を開始する前又は開始した後に前記乱数生成器により生成された乱数を確認し当該乱数が所定値であるか否かを判定するステップと、前記プロセッサが、前記確認した乱数が所定値であると判定した場合、前記第1のプログラムの一つ以上の命令の処理を行うステップと、を含むことを特徴とする。   According to a fourth aspect of the present invention, there is provided a memory for storing a first program composed of a plurality of instructions and a second program composed of a plurality of instructions, and one or more of the first programs Information performed by an information processing apparatus including a processor having a pipeline processing function for starting processing of one or more instructions of the second program before completion of instruction processing and a random number generator for generating random numbers A processing method, wherein the processor confirms a random number generated by the random number generator before or after starting processing of one or more instructions of the second program, and the random number is a predetermined value. Determining whether or not the processor determines that the confirmed random number is a predetermined value, processing one or more instructions of the first program; Characterized in that it comprises a.

本発明によれば、プロセッサは、第2のプログラムの一つの命令の処理を開始する前に乱数生成器により生成された乱数を確認し当該乱数が所定値である場合、第1のプログラムの一つの命令の処理を行うように構成したので、高速性、かつセキュリティ性を実現することができる。   According to the present invention, the processor checks the random number generated by the random number generator before starting the processing of one instruction of the second program, and if the random number is a predetermined value, the processor Since it is configured to process one instruction, high speed and security can be realized.

本実施形態に係る通信システムSの概要構成例を示す図である。It is a figure showing an example of outline composition of communications system S concerning this embodiment. (A)は、本実施形態に係る携帯端末1の概要構成例を示すブロック図であり、(B)は、CPUの概要構成例を示す図であり、(C)は、CPUで実行されるソフトウェアの概要構成例を示す図である。(A) is a block diagram which shows the example of a schematic structure of the portable terminal 1 which concerns on this embodiment, (B) is a figure which shows the example of a schematic structure of CPU, (C) is performed by CPU. It is a figure showing an example of outline composition of software. (A)は、通常のパイプライン処理の一例を示す図であり、(B)は、乱数を確認する場合のパイプライン処理の一例を示す図である。(A) is a figure which shows an example of a normal pipeline process, (B) is a figure which shows an example of the pipeline process in the case of confirming a random number.

以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、通信システムに対して本発明を適用した場合の実施の形態である。   Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The embodiment described below is an embodiment when the present invention is applied to a communication system.

先ず、図1等を参照して、本実施形態に係る通信システムSの構成及び機能概要を説明する。   First, with reference to FIG. 1 etc., the structure and functional outline | summary of the communication system S which concern on this embodiment are demonstrated.

図1は、本実施形態に係る通信システムSの概要構成例を示す図である。図1に示すように、通信システムSは、携帯端末1、決済処理端末2、決済処理ホスト3、及び情報提供サーバ4等を備えて構成される。情報提供サーバ4は、インターネットにより構成される通信ネットワークNWに接続されている。携帯端末1は、無線通信回線(例えば、3G(3rd Generation)回線又はWi−Fi(Wireless Fidelity)回線)、及び通信ネットワークNWを介して情報提供サーバ4へアクセスし、情報を取得可能になっている。決済処理端末2は、例えば店舗に設置され、専用線を介して決済処理ホスト3に接続可能になっている。また、決済処理端末2は、当該決済処理端末2に接続された読取器(例えば、ICカードリーダライタ)により発せられる電波により携帯端末1との間で無線通信(例えばNFC(Near Field Communication)の規格で規定される非接触通信)を行いつつ取引の決済処理を行うことが可能になっている。このような決済処理の方式には、オンライン決済方式とオフライン決済方式とがある。オンライン決済方式は、決済処理端末2が決済処理ホスト3とオンラインで接続して上記決済処理を行う。オフライン決済方式は、決済処理端末2が決済処理ホスト3と接続せずに決済処理を行う。   FIG. 1 is a diagram illustrating a schematic configuration example of a communication system S according to the present embodiment. As shown in FIG. 1, the communication system S includes a mobile terminal 1, a payment processing terminal 2, a payment processing host 3, an information providing server 4, and the like. The information providing server 4 is connected to a communication network NW configured by the Internet. The mobile terminal 1 can access the information providing server 4 via a wireless communication line (for example, a 3G (3rd Generation) line or a Wi-Fi (Wireless Fidelity) line) and the communication network NW to acquire information. Yes. The payment processing terminal 2 is installed in a store, for example, and can be connected to the payment processing host 3 via a dedicated line. Further, the payment processing terminal 2 performs wireless communication (for example, NFC (Near Field Communication)) with the portable terminal 1 by radio waves emitted by a reader (for example, an IC card reader / writer) connected to the payment processing terminal 2. It is possible to perform transaction settlement processing while performing non-contact communication) defined in the standard. Such payment processing methods include an online payment method and an offline payment method. In the online payment method, the payment processing terminal 2 connects to the payment processing host 3 online to perform the payment processing. In the offline payment method, the payment processing terminal 2 performs payment processing without connecting to the payment processing host 3.

携帯端末1には、SIMカード18(小型ICカード)、及びCLF(Contactless Front End)19が搭載される。携帯端末1は、本発明の情報処理装置の一例である。なお、携帯端末1には、例えば携帯電話機やスマートフォン等が適用可能である。SIMカード18は、UICC(Universal Integrated Circuit Card)の一つであり、例えば、従来のSIM(Subscriber Identity Module)をベースに機能を拡張された接触型ICチップを搭載する。SIMカード18は、図示しないが、公知のC1〜C8の8個の端子を有する。CLF19は、決済処理端末2に接続された読取器と電波により無線通信(例えばNFCの規格で規定される非接触通信)するための非接触型ICチップ(例えばNFCモジュール)である。CLF19には、非接触通信のフィールド内で当該通信を行うためのアンテナが接続されている。なお、CLF19は、携帯端末1のOSにより操作可能になっている。   The mobile terminal 1 is equipped with a SIM card 18 (small IC card) and a CLF (Contactless Front End) 19. The mobile terminal 1 is an example of an information processing apparatus of the present invention. For example, a mobile phone or a smartphone can be applied to the mobile terminal 1. The SIM card 18 is one of UICCs (Universal Integrated Circuit Cards). For example, the SIM card 18 is equipped with a contact IC chip whose function is expanded based on a conventional SIM (Subscriber Identity Module). Although not shown, the SIM card 18 has eight terminals of known C1 to C8. The CLF 19 is a non-contact type IC chip (for example, an NFC module) for wireless communication (for example, non-contact communication defined by the NFC standard) with a reader connected to the payment processing terminal 2 by radio waves. An antenna for performing the communication in the field of non-contact communication is connected to the CLF 19. The CLF 19 can be operated by the OS of the mobile terminal 1.

図2(A)は、本実施形態に係る携帯端末1の概要構成例を示すブロック図である。図2(A)に示すように、携帯端末1は、処理部11、記憶部12、無線通信部13、乱数生成器14、入力部15、ICカードプロトコル処理部16、及びICカードコネクタ16a等を備えて構成され、これらの構成要素はバス17を介して相互に接続される。   FIG. 2A is a block diagram illustrating a schematic configuration example of the mobile terminal 1 according to the present embodiment. As shown in FIG. 2A, the mobile terminal 1 includes a processing unit 11, a storage unit 12, a wireless communication unit 13, a random number generator 14, an input unit 15, an IC card protocol processing unit 16, an IC card connector 16a, and the like. These components are connected to each other via a bus 17.

処理部11は、CPU(Central Processing Unit)等により構成される。CPUは、本発明におけるプロセッサの一例である。記憶部12は、例えばRAM、ROM、及び不揮発性メモリ(例えばフラッシュメモリ)により構成される。記憶部12におけるROMまたは不揮発性メモリには、OS(オペレーティングシステム)、API(Application Program Interface)、及びアプリケーションソフトウェア(アプリケーションプログラム言語から構成されるソフトウェア)等が記憶される。APIは、アプリケーションソフトウェアからOSの機能を利用するためのインターフェースである。アプリケーションソフトウェア(単に、「アプリ」ともいう)は、例えば所定のサーバからダウンロード可能なプログラムである。アプリケーションソフトウェアには、ユーザからの指示入力機能や表示機能を担うアプリケーションプログラム、無線通信部13を介した通信機能を担うアプリケーションプログラム、決済処理端末2による決済処理時にCLF19とのデータ通信を担うアプリケーションプログラムが含まれる。   The processing unit 11 is configured by a CPU (Central Processing Unit) or the like. The CPU is an example of a processor in the present invention. The storage unit 12 includes, for example, a RAM, a ROM, and a nonvolatile memory (for example, a flash memory). The ROM or nonvolatile memory in the storage unit 12 stores an OS (Operating System), an API (Application Program Interface), application software (software configured from an application program language), and the like. The API is an interface for using the function of the OS from the application software. Application software (also simply referred to as “application”) is a program that can be downloaded from a predetermined server, for example. The application software includes an application program responsible for an instruction input function and a display function from a user, an application program responsible for a communication function via the wireless communication unit 13, and an application program responsible for data communication with the CLF 19 at the time of payment processing by the payment processing terminal 2. Is included.

また、OSには、TEE及びREEが含まれる。つまり、本実施形態では、1つのCPUの上にTEEとREEが並存するように構成される。ここで、REEのプログラムは、本発明における第1のプログラムの一例であり、処理の高速性が要求される。一方、TEEのプログラムは、本発明における第2のプログラムの一例であり、処理のセキュリティ性が要求される。CPUは、REEのプログラムの一つ以上の命令の処理の終了前にTEEのプログラムの一つ以上の命令の処理を開始するパイプライン処理機能(例えば、論理回路により構成)を有する。   The OS includes TEE and REE. That is, in this embodiment, TEE and REE are configured to coexist on one CPU. Here, the REE program is an example of the first program in the present invention, and high-speed processing is required. On the other hand, the TEE program is an example of the second program in the present invention, and processing security is required. The CPU has a pipeline processing function (for example, configured by a logic circuit) that starts processing of one or more instructions of the TEE program before the end of processing of one or more instructions of the REE program.

図2(B)は、CPUの概要構成例及び不揮発性メモリに格納されたREE及びTEEのプログラム例を示す図であり、図2(C)は、CPUで実行されるソフトウェアの概要構成例を示す図である。図2(B)に示すように、CPUは、プログラムカウンタ111(第1のプログラムカウンタ)、プログラムカウンタ112(第2のプログラムカウンタ)、及び命令レジスタを有する命令処理部113等を有する。ここで、プログラムカウンタ(REE用)111は、REEのプログラムの命令(以下、REEの命令」という)を記憶するメモリ(RAM、ROM、または不揮発性メモリ)のアドレスを格納する。プログラムカウンタ(TEE用)112は、TEEのプログラムの命令(以下、TEEの命令」という)を記憶する上記メモリのアドレスを格納する。プログラムカウンタ111及びプログラムカウンタ112は、所定ビット長からなるレジスタであり、OSの命令を先頭アドレスから順次実行するために一つ以上の命令が実行された後、その次に実行される命令が格納されているアドレスを示す役割がある。命令処理部113は、プログラムカウンタ111またはプログラムカウンタ112が示す命令をメモリから読み込み(フェッチして)、解釈(デコード)、実行、及び実行結果の書き込みなどの処理を行う。命令処理部113は、パイプライン処理機能により、REEの一つ以上の命令の処理の終了前(つまり、当該命令に係る命令サイクル(フェッチサイクル)の途中で)TEEの一つ以上の命令の処理を開始するようになっている。また、命令処理部113は、TEEの一つ以上の命令の処理の終了前(つまり、当該命令に係る命令サイクル(フェッチサイクル)の途中で)REEの一つ以上の命令の処理を開始するようになっている。なお、REEの命令の処理と、TEEの命令との処理の切り替えは、例えば、図2(C)に示すスイッチングドライバーにより行われる。また、図2(C)に示すように、REE上で実行されるAPI及びアプリと、TEE上で実行されるAPI及びアプリとは、独立分離している。   FIG. 2B is a diagram showing a schematic configuration example of the CPU and a program example of REE and TEE stored in the nonvolatile memory. FIG. 2C is a schematic configuration example of software executed by the CPU. FIG. As shown in FIG. 2B, the CPU includes a program counter 111 (first program counter), a program counter 112 (second program counter), an instruction processing unit 113 having an instruction register, and the like. Here, the program counter (for REE) 111 stores an address of a memory (RAM, ROM, or non-volatile memory) that stores a REE program instruction (hereinafter referred to as a REE instruction). The program counter (for TEE) 112 stores the address of the memory for storing TEE program instructions (hereinafter referred to as TEE instructions). The program counter 111 and the program counter 112 are registers each having a predetermined bit length, and after one or more instructions are executed in order to sequentially execute instructions of the OS from the top address, an instruction to be executed next is stored. There is a role to indicate the address that is being used. The instruction processing unit 113 performs processing such as reading (fetching) an instruction indicated by the program counter 111 or the program counter 112 from the memory, interpretation (decoding), execution, and writing of an execution result. The instruction processing unit 113 uses the pipeline processing function to process one or more instructions in the TEE before the end of processing of one or more instructions in the REE (that is, in the middle of the instruction cycle (fetch cycle) related to the instruction). Is supposed to start. Further, the instruction processing unit 113 starts processing one or more instructions in the REE before the end of processing of one or more instructions in the TEE (that is, in the middle of the instruction cycle (fetch cycle) related to the instruction). It has become. Note that switching between processing of the REE command and processing of the TEE command is performed by, for example, a switching driver shown in FIG. Further, as shown in FIG. 2C, the API and application executed on the REE and the API and application executed on the TEE are independently separated.

無線通信部13は、アンテナを有し、無線通信回線との間で行われる無線通信を制御する。乱数生成器14は、乱数を生成し処理部11へ出力する。入力部15は、例えばタッチパネル式の入力インターフェースであり、ユーザからの操作指示を受け付け、操作指示に応じた信号を処理部11に出力する。   The wireless communication unit 13 includes an antenna and controls wireless communication performed with the wireless communication line. The random number generator 14 generates a random number and outputs it to the processing unit 11. The input unit 15 is, for example, a touch panel type input interface, receives an operation instruction from the user, and outputs a signal corresponding to the operation instruction to the processing unit 11.

ICカードコネクタ16aは、ICカードプロトコル処理部16と、SIMカード18のC7端子とを接続する。ICカードプロトコル処理部16と、ICカードプロトコル処理部16は、SIMカード18との間の通信を制御する。ICカードプロトコル処理部16とSIMカード18との間では、ISO/IEC7816規格で規定されるT=0プロトコル通信が行われる。T=0プロトコル通信は、半二重通信方式であり、電圧レベル変化で通信データを認識し、二者間通信の一方が送信の場合は他方は受信となる。また、ICカードコネクタ16aは、CLF19と、SIMカード18のC6端子とを接続する。CLF19とSIMカード18との間では、SWP(Single Wire Protocol)通信が行われる。SWP通信は、同時に双方向に送信可能な全二重通信方式である。   The IC card connector 16 a connects the IC card protocol processing unit 16 and the C7 terminal of the SIM card 18. The IC card protocol processing unit 16 and the IC card protocol processing unit 16 control communication with the SIM card 18. Between the IC card protocol processing unit 16 and the SIM card 18, T = 0 protocol communication defined by the ISO / IEC7816 standard is performed. The T = 0 protocol communication is a half-duplex communication method, which recognizes communication data by changing the voltage level. When one of the two-party communication is transmission, the other is reception. The IC card connector 16a connects the CLF 19 and the C6 terminal of the SIM card 18. SWP (Single Wire Protocol) communication is performed between the CLF 19 and the SIM card 18. SWP communication is a full-duplex communication method that can simultaneously transmit in both directions.

CPUは、TEEの一つ以上の命令の処理を開始する前又は開始した後に、乱数生成器14により生成された乱数(乱数値)を確認し当該乱数が所定値である場合、REEの命令の処理を行う。ここで、所定値は、どのような値であってもよい。例えば、所定値は“1111”(以下、「ON」という)にセットされる。“1111”をONと称し、これ以外はOFFと称する。   The CPU confirms the random number (random number value) generated by the random number generator 14 before or after starting the processing of one or more instructions of the TEE, and if the random number is a predetermined value, Process. Here, the predetermined value may be any value. For example, the predetermined value is set to “1111” (hereinafter referred to as “ON”). “1111” is referred to as ON, and the others are referred to as OFF.

図3(A)は、通常のパイプライン処理の一例を示す図であり、図3(B)は、乱数を確認する場合のパイプライン処理の一例を示す図である。なお、図3において、T1〜T9はタイミング(時間)を示す。図3(A)の例では、命令処理部113は、プログラムカウンタ111が示すアドレスの「REEの命令1」を例えば不揮発性メモリから読み込み、解釈、実行、及び書き込みの処理を行うが、その命令サイクル中に、プログラムカウンタ112が示すアドレスの「TEEの命令1」を上記メモリから読み込み、解釈、実行、及び書き込みの処理を行うようになっている。なお、図3(B)の例では、REEの命令とTEEの命令とは交互に行われているが、必ずしも交互に行われなくてもよい。   FIG. 3A is a diagram illustrating an example of normal pipeline processing, and FIG. 3B is a diagram illustrating an example of pipeline processing when a random number is confirmed. In FIG. 3, T1 to T9 indicate timing (time). In the example of FIG. 3A, the instruction processing unit 113 reads “REE instruction 1” at the address indicated by the program counter 111 from, for example, a non-volatile memory, and performs processing of interpretation, execution, and writing. During the cycle, the “TEE instruction 1” at the address indicated by the program counter 112 is read from the memory and interpreted, executed, and written. In the example of FIG. 3B, the REE instruction and the TEE instruction are alternately performed, but they are not necessarily performed alternately.

一方、図3(B)の例では、命令処理部113は、プログラムカウンタ111が示すアドレスの「REEの命令1」を上記メモリから読み込み、解釈、実行等する処理を行うが、その命令サイクル中に、乱数生成器14により生成された乱数を確認、つまり、プログラムカウンタ112が示すアドレスの「TEEの命令1」を上記メモリから読み込む直前に乱数を確認しており、当該乱数がOFFであったため(if;OFF)、当該「TEEの命令1」を上記メモリから読み込んでいる。その後、命令処理部113は、プログラムカウンタ111が示すアドレスの「REEの命令2」を上記メモリから読み込み、解釈、実行等する処理を行うが、その命令サイクル中に、乱数生成器14により生成された乱数を確認、つまり、プログラムカウンタ112が示すアドレスの「TEEの命令2」を上記メモリから読み込む直前に乱数を確認しており、当該乱数がONであったため(if;ON)、当該「TEEの命令2」の代わりに、プログラムカウンタ112が示すアドレスの「REEの命令3」を読み込み、解釈及び実行等する処理を行っている。このようにTEEの命令の処理タイミングは、乱数生成器14により生成された乱数に従って変化(つまり、処理周期が変化)するので、SCAに対抗しセキュリティを保つことができる。一方、REEの命令の処理タイミングは、乱数生成器14により生成された乱数に従って短縮されるので、高速化を実現することができる。   On the other hand, in the example of FIG. 3B, the instruction processing unit 113 performs processing for reading, interpreting, and executing “REE instruction 1” at the address indicated by the program counter 111 from the memory, but during the instruction cycle. Furthermore, the random number generated by the random number generator 14 is confirmed, that is, the random number is confirmed immediately before the “TEE instruction 1” at the address indicated by the program counter 112 is read from the memory, and the random number is OFF. (If; OFF), the “TEE instruction 1” is read from the memory. Thereafter, the instruction processing unit 113 reads the “REE instruction 2” at the address indicated by the program counter 111 from the memory and performs processing such as interpretation and execution. The instruction processing unit 113 generates the random number generator 14 during the instruction cycle. In other words, the random number is confirmed immediately before reading “TEE instruction 2” at the address indicated by the program counter 112 from the memory, and the random number is ON (if; ON). Instead of the “command 2”, the “REE command 3” at the address indicated by the program counter 112 is read, interpreted, and executed. As described above, the processing timing of the TEE instruction changes according to the random number generated by the random number generator 14 (that is, the processing cycle changes), so that security can be maintained against the SCA. On the other hand, since the processing timing of the REE instruction is shortened according to the random number generated by the random number generator 14, high speed can be realized.

以上説明したように、上記実施形態によれば、CPUは、TEEの一つ以上の命令の処理を開始する前又は開始した後に、乱数生成器14により生成された乱数を確認し当該乱数が所定値である場合、REEの命令の処理を行うように構成したので、高速性、かつセキュリティ性を実現することできる。   As described above, according to the embodiment, the CPU confirms the random number generated by the random number generator 14 before or after starting the processing of one or more instructions of the TEE, and the random number is predetermined. If the value is a value, the processing is performed so that the REE instruction is processed, so that high speed and security can be realized.

なお、上記実施形態においては、本発明におけるプログラムとしてOSを例にとって説明したが、アプリケーションソフトウェアに対しても適用することができる。また、上記実施形態においては、2つのプログラムカウンタ111及び112が用いられて命令の処理が行われる場合を例にとって説明したが、他の例として、TEEのタスクの状態(例えば、レジスタの値)とREEのタスクの状態を管理することで、命令の処理が行われるものであってもよい。   In the above embodiment, the OS is described as an example of the program in the present invention, but the present invention can also be applied to application software. In the above embodiment, the case where the instruction processing is performed using the two program counters 111 and 112 has been described as an example. However, as another example, the state of the TEE task (for example, the value of the register) And REE task status may be managed to process instructions.

1 携帯端末
11 処理部
12 記憶部
13 無線通信部
14 乱数生成器
15 入力部
16 ICカードプロトコル処理部
16a ICカードコネクタ
18 SIMカード
19 CLF
DESCRIPTION OF SYMBOLS 1 Portable terminal 11 Processing part 12 Storage part 13 Wireless communication part 14 Random number generator 15 Input part 16 IC card protocol processing part 16a IC card connector 18 SIM card 19 CLF

Claims (4)

複数の命令により構成される第1のプログラムと、複数の命令により構成される第2のプログラムとを記憶するメモリと、
前記第1のプログラムの一つ以上の命令の処理の終了前に前記第2のプログラムの一つ以上の命令の処理を開始するパイプライン処理機能を有するプロセッサと、
乱数を生成する乱数生成器と、
を備える情報処理装置であって、
前記プロセッサは、前記第2のプログラムの一つ以上の命令の処理を開始する前又は開始した後に前記乱数生成器により生成された乱数を確認し当該乱数が所定値である場合、前記第1のプログラムの一つ以上の命令の処理を行うことを特徴とする情報処理装置。
A memory for storing a first program composed of a plurality of instructions and a second program composed of a plurality of instructions;
A processor having a pipeline processing function for starting processing of one or more instructions of the second program before completion of processing of one or more instructions of the first program;
A random number generator for generating random numbers;
An information processing apparatus comprising:
The processor confirms the random number generated by the random number generator before or after starting processing of one or more instructions of the second program, and if the random number is a predetermined value, An information processing apparatus that processes one or more instructions of a program.
前記プロセッサは、前記第1のプログラムの命令を記憶する前記メモリのアドレスを格納する第1のプログラムカウンタと、前記第2のプログラムの命令を記憶する前記メモリのアドレスを格納する第2のプログラムカウンタと、を有し、
前記第2のプログラムカウンタが示すアドレスの命令を前記メモリから読み込む直前に前記乱数生成器により生成された乱数を確認し当該乱数が所定値である場合、前記第2のプログラムカウンタが示すアドレスの命令の代わりに、前記第1のプログラムカウンタが示すアドレスの命令を読み込み、解釈及び実行する処理を行うことを特徴とする請求項1に記載の情報処理装置。
The processor includes a first program counter that stores an address of the memory that stores an instruction of the first program, and a second program counter that stores an address of the memory that stores an instruction of the second program And having
If the random number generated by the random number generator is checked immediately before reading the instruction at the address indicated by the second program counter from the memory, and the random number is a predetermined value, the instruction at the address indicated by the second program counter The information processing apparatus according to claim 1, wherein instead of, an instruction at an address indicated by the first program counter is read, interpreted, and executed.
前記第1のプログラムは処理の高速性が要求されるオペレーティングシステムであり、前記第2のプログラムは処理のセキュリティ性が要求されるオペレーティングシステムであることを特徴とする請求項1または2に記載の情報処理装置。   3. The first program according to claim 1, wherein the first program is an operating system that requires high-speed processing, and the second program is an operating system that requires processing security. Information processing device. 複数の命令により構成される第1のプログラムと、複数の命令により構成される第2のプログラムとを記憶するメモリと、
前記第1のプログラムの一つ以上の命令の処理の終了前に前記第2のプログラムの一つ以上の命令の処理を開始するパイプライン処理機能を有するプロセッサと、
乱数を生成する乱数生成器と、
を備える情報処理装置により行われる情報処理方法であって、
前記プロセッサが、前記第2のプログラムの一つ以上の命令の処理を開始する前又は開始した後に前記乱数生成器により生成された乱数を確認し当該乱数が所定値であるか否かを判定するステップと、
前記プロセッサが、前記確認した乱数が所定値であると判定した場合、前記第1のプログラムの一つ以上の命令の処理を行うステップと、
を含むことを特徴とする情報処理方法。
A memory for storing a first program composed of a plurality of instructions and a second program composed of a plurality of instructions;
A processor having a pipeline processing function for starting processing of one or more instructions of the second program before completion of processing of one or more instructions of the first program;
A random number generator for generating random numbers;
An information processing method performed by an information processing apparatus comprising:
The processor checks the random number generated by the random number generator before or after starting the processing of one or more instructions of the second program, and determines whether the random number is a predetermined value. Steps,
If the processor determines that the confirmed random number is a predetermined value, processing one or more instructions of the first program;
An information processing method comprising:
JP2014037261A 2014-02-27 2014-02-27 Information processing apparatus and information processing method Expired - Fee Related JP6201812B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014037261A JP6201812B2 (en) 2014-02-27 2014-02-27 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014037261A JP6201812B2 (en) 2014-02-27 2014-02-27 Information processing apparatus and information processing method

Publications (2)

Publication Number Publication Date
JP2015162115A true JP2015162115A (en) 2015-09-07
JP6201812B2 JP6201812B2 (en) 2017-09-27

Family

ID=54185164

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014037261A Expired - Fee Related JP6201812B2 (en) 2014-02-27 2014-02-27 Information processing apparatus and information processing method

Country Status (1)

Country Link
JP (1) JP6201812B2 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326767A (en) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> Method and device for making interleaving of instruction thread random in multithread processor
WO2007099613A1 (en) * 2006-02-28 2007-09-07 Fujitsu Limited Command selecting method and device, and command inputting method and device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004326767A (en) * 2003-04-25 2004-11-18 Internatl Business Mach Corp <Ibm> Method and device for making interleaving of instruction thread random in multithread processor
WO2007099613A1 (en) * 2006-02-28 2007-09-07 Fujitsu Limited Command selecting method and device, and command inputting method and device

Also Published As

Publication number Publication date
JP6201812B2 (en) 2017-09-27

Similar Documents

Publication Publication Date Title
US9432087B2 (en) Communication system and method for near field communication
US9734091B2 (en) Remote load and update card emulation support
US20180075436A1 (en) Systems and methods for providing near field communications
RU2014138935A (en) METHOD, DEVICE AND PROTECTED ELEMENT FOR PERFORMING A SAFE FINANCIAL TRANSACTION IN A DEVICE
JP6573672B2 (en) NFC communication apparatus and method
CN107425957B (en) Password attack method and device and heterogeneous acceleration platform
EP3007066A1 (en) Method for using shared device in apparatus capable of operating two operating systems
EP3160165A1 (en) Nfc &#34;split stack&#34; architecture
US10810591B2 (en) Virtual reality headset device and payment method
de Koning Gans et al. The smartlogic tool: Analysing and testing smart card protocols
JP6201812B2 (en) Information processing apparatus and information processing method
EP3493134A1 (en) Electronic device and method for processing remote payment
JP2006252079A (en) Information recording medium, information communication system, information communication method, and information communication program
US20100250962A1 (en) Electronic token comprising several microprocessors and method of managing command execution on several microprocessors
Silberschneider et al. Access without permission: a practical RFID relay attack
JP2012093857A (en) Ic chip, memory initialization method for ic chip, processing program for ic chip, and portable terminal
JP2012008888A (en) Communication system, communication method, and portable electronic equipment
US11159521B2 (en) Information processing apparatus and information processing method
EP2985724B1 (en) Remote load and update card emulation support
EP2996368B1 (en) Mobile electronic device
JP6801448B2 (en) Electronic information storage media, authentication systems, authentication methods, and authentication application programs
CN111027082B (en) Extraction method, device and medium of personalized data applied to IC card
JP6465102B2 (en) Information processing apparatus, information processing method, and program
US20150334512A1 (en) Near field communication system
JP6111742B2 (en) Proximity IC card system and proximity IC card

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161222

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170814

R150 Certificate of patent or registration of utility model

Ref document number: 6201812

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees