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

Information processing device and information processing method Download PDF

Info

Publication number
WO2023127314A1
WO2023127314A1 PCT/JP2022/041434 JP2022041434W WO2023127314A1 WO 2023127314 A1 WO2023127314 A1 WO 2023127314A1 JP 2022041434 W JP2022041434 W JP 2022041434W WO 2023127314 A1 WO2023127314 A1 WO 2023127314A1
Authority
WO
WIPO (PCT)
Prior art keywords
authentication code
internal register
additional information
stack area
read
Prior art date
Application number
PCT/JP2022/041434
Other languages
French (fr)
Japanese (ja)
Inventor
一峰 立花
哲生 吉田
玄良 樋渡
陽輝 佐藤
朗 野口
拓史 岩崎
Original Assignee
ソニーセミコンダクタソリューションズ株式会社
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 ソニーセミコンダクタソリューションズ株式会社 filed Critical ソニーセミコンダクタソリューションズ株式会社
Publication of WO2023127314A1 publication Critical patent/WO2023127314A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data

Definitions

  • the present disclosure relates to an information processing device and an information processing method.
  • Patent Literatures 1 and 2 disclose conventional techniques for protecting a return address using an authentication code.
  • an authentication code is generated using a stack pointer or the like, which is additional information related to the return address.
  • the additional information matches, the same authentication code is generated, so authentication code reuse attacks are possible. Therefore, it is sufficiently secure against authentication code reuse attacks.
  • the return address history stored in the stack is encrypted, and the value is used as additional information for authentication code generation.
  • this method increases the circuit scale and operation time.
  • An information processing device includes an internal register, an encryption processing block, and a memory section including a stack area.
  • the encryption processing block stores an authentication code obtained by generating an authentication code in an internal register, and uses the authentication code read from the internal register as additional information when generating a new authentication code.
  • An information processing method is an information processing method performed by an information processing apparatus having an internal register and a stack area, and includes the following processes. ⁇ In the encryption process, the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the authentication code read from the internal register is used as additional information.
  • the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the internal register
  • the authentication code read from is used as additional information.
  • FIG. 1 is a diagram illustrating a schematic configuration example of an information processing device according to an embodiment of the present disclosure
  • FIG. FIG. 4 is a diagram conceptually showing an example of a procedure for generating and verifying an authentication code
  • 2 is a diagram showing an example of functional blocks of an authentication code generation/verification unit included in the CPU of FIG. 1
  • FIG. 2 is a diagram showing an example of functional blocks of an authentication code generation/verification unit included in the CPU of FIG. 1
  • FIG. 2 is a diagram showing an example of a function call/return processing procedure executed in the information processing apparatus of FIG. 1
  • FIG. 1 shows a schematic configuration example of an information processing apparatus 1.
  • FIG. 2 conceptually represents an example of an information processing procedure in the information processing apparatus 1 .
  • the information processing apparatus 1 includes a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 20, a RAM (Random Access Memory) 30, an NVRAM (Non Volatile RAM) 40, and various peripherals. It has 50.
  • CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • NVRAM Non Volatile RAM
  • the ROM 20 is a read-only memory.
  • the ROM 20 stores, for example, programs for executing various processes in the CPU 10 and basically fixed data among parameters for calculation.
  • the RAM 30 is a rewritable volatile memory.
  • the RAM 30 stores, for example, parameters that change as appropriate during execution of processing by the CPU 10 .
  • RAM 30 has a stack area 31 .
  • the stack area 31 temporarily stores, for example, data required when calling a function in a program used in execution of processing by the CPU 10 .
  • the NVRAM 40 is a rewritable nonvolatile memory.
  • the NVRAM 40 stores, for example, data acquired via the communication unit 20, programs for executing various processes in the CPU 10 (for example, programs including functions), and the like.
  • the various peripherals 50 are various devices used in combination with the CPU 10.
  • the various peripherals 50 include, for example, an interrupt controller, a general-purpose timer, a watchdog timer, a communication interface such as I2C/SPI/UART, an encryption processing block, a random number generator, and the like.
  • the CPU 10 executes programs read from the NVRAM 40 or the ROM 20, for example.
  • the CPU 10 includes, for example, a bus interface 11, an instruction fetch unit 12, an instruction decode unit 13, an instruction processing section 14 and a data register section 15, for example.
  • the bus interface 11 outputs data received from the ROM 20, RAM 30, NVRAM 40 or various peripherals 50 via the bus 60 to the instruction fetch unit 12.
  • the bus interface 11 transmits data output from the instruction processing unit 14 to the ROM 20 , RAM 30 , NVRAM 40 or various peripherals 50 via the bus 60 .
  • the instruction fetch unit 12 acquires instructions from the ROM 20 , RAM 30 , NVRAM 40 or various peripherals 50 from the bus interface 11 and outputs them to the instruction decode unit 13 .
  • the instruction decode unit 13 decodes the content of the instruction obtained from the instruction fetch unit 12 and outputs it to the instruction processing section 14 .
  • the data register unit 15 outputs data acquired from the instruction processing unit 14 to the bus interface 11 .
  • the instruction processing unit 14 executes the content of the instruction obtained from the instruction decode unit 13.
  • the instruction processing unit 14 includes, for example, an arithmetic logic operation unit 14a and an authentication code generation/verification unit 14b.
  • the authentication code generation/verification unit 14b executes the authentication code generation instruction.
  • the authentication code generation/verification unit 14b executes, for example, the authentication code generation instruction placed at the branch destination address specified by the function call instruction.
  • the instruction processing unit 14 outputs the return address specified by the function call instruction to the authentication code generation/verification unit 14b, for example, according to the authentication code generation instruction.
  • the authentication code generation/verification unit 14b uses the acquired return address to generate an authentication code.
  • the authentication code generation/verification unit 14b for example, as shown in the upper part of FIG. input data).
  • the authentication code generation/verification unit 14b generates a 64-bit authentication code by, for example, encoding the generated 64-bit input data using a 128-bit encryption key.
  • the authentication code generation/verification unit 14 b outputs the generated 64-bit authentication code to a register inside the instruction processing unit 14 .
  • the instruction processing unit 14 After executing the authentication code generation instruction, the instruction processing unit 14 saves (stores) the return address and the authentication code (for example, a 64-bit authentication code) in the stack area 31 by executing the push instruction. After executing a series of instructions described in the function called by the function call instruction, the instruction processing unit 14 executes the pop instruction to retrieve the return address and the authentication code saved (stored) in the stack area 31. (for example, a 64-bit authentication code).
  • the instruction processing unit 14 After reading the return address and the authentication code from the stack area 31, the instruction processing unit 14 executes the return instruction.
  • the instruction processing unit 14 uses the return address read from the stack area 31 to execute the return instruction.
  • the instruction processing unit 14 executes the authentication code verification instruction.
  • the instruction processing unit 14 executes, for example, an authentication code verification instruction arranged at the return address read from the stack area 31 .
  • the instruction processing unit 14 outputs the authentication code read from the stack area 31 and the address of the authentication code verification instruction to the authentication code generation/verification unit 14b in accordance with the authentication code verification instruction.
  • the authentication code generation/verification unit 14b acquires the authentication code read from the stack area 31 and the address of the authentication code verification instruction from the instruction processing unit 14, the authentication code generation/verification unit 14b acquires the authentication code and the address of the authentication code verification instruction.
  • the authentication code generation method using the address of the authentication code verification instruction is, for example, as shown in the lower part of FIG. 2, the same method as the authentication code generation method described above.
  • the instruction processing unit 14 executes the instruction arranged at the address next to the authentication code verification instruction.
  • the instruction processing unit 14 determines that the return address in the stack area 31 has been tampered with, and suspends subsequent processing.
  • the authentication code generation/verification unit 14b has internal registers 111, 112, 113 and an encryption processing block 114, for example, as shown in FIG.
  • the internal register 112 stores the return address (addr) specified by the function call instruction.
  • the return address (addr) is the address (pointer) next to the address where the function call instruction is placed.
  • the internal register 111 stores an authentication code (pacreg) generated using the return address (addr) read from the internal register 112 .
  • the internal register 113 stores an encryption key (pac_key) used when generating an authentication code.
  • the authentication code generation/verification unit 14b executes the authentication code generation instruction.
  • the encryption processing block 114 uses information (authentication code (pacreg)) read from the internal register 111 as additional information (modifier) when executing the authentication code generation command. Specifically, the encryption processing block 114 adds the authentication code (pacreg) read from the internal register 111 to the return address (addr) read from the internal register 112 as additional information (modifier) in accordance with the authentication code generation instruction. By concatenating as , data before encoding (input data) is generated. Next, the encryption processing block 114 generates an authentication code (pac) by, for example, encoding the generated input data using an encryption key (pac_key). The encryption processing block 114 stores the generated authentication code (pac) in the internal register 111 .
  • the encryption processing block 114 After storing the generated authentication code (pac) in the internal register 111, the encryption processing block 114 returns the updated return address (addr) stored in the internal register 112 when executing a new authentication code generation command. to generate a new authorization code (pac).
  • the encryption processing block 114 executes an authentication code generation instruction, the authentication code (pacreg) read from the internal register 111 and obtained by executing the previous authentication code generation instruction is newly added as additional information (modifier). Generate an authorization code (pac).
  • the encryption processing block 114 stores (overwrites) the newly generated authentication code (pac) thus generated in the internal register 111 . In this way, the encryption processing block 114 stores the authentication code (pac), which is also the history information of the return address (addr), in the internal register 111 .
  • the instruction processing unit 14 saves the return address (addr) and the authentication code (pacreg) as additional information (mod) in the stack area 31 by executing the save instruction. to (store).
  • the internal register 113 stores an encryption key (pac_key) used when generating an authentication code.
  • the encryption processing block 114 uses the information (authentication code (pacreg)) read from the stack area 31 as additional information (modifier) when generating the authentication code. Specifically, for example, the encryption processing block 114 concatenates the authentication code (pacreg) read from the stack area 31 to the return address (addr) read from the stack area 31 as additional information (modifier), Generate data before encoding (input data). Next, the encryption processing block 114 generates an authentication code (pac) by, for example, encoding the generated input data using an encryption key (pac_key).
  • pac_key an encryption key
  • mod authentication code
  • the encryption processing block 114 executes an authentication code verification instruction, the authentication code (pacreg) read out from the stack area 31 and obtained by previous authentication code generation is used as additional information (modifier) to create a new authentication code ( pac).
  • the encryption processing block 114 stores (overwrites) the newly generated authentication code (pac) thus generated in the internal register 111 . In this way, the encryption processing block 114 stores the authentication code (pac), which is also the history information of the return address (addr), in the internal register 111 .
  • FIG. 5 shows an example of a function call/return processing flow in the information processing device 1.
  • the authentication code generation/verification unit 14b stores the generated authentication code in the internal register 111, and stores the additional information (mod1) used for the generation and the return address (LR1). They are saved in the stack area 31 in association with each other.
  • the authentication code generation/verification unit 14b uses the authentication code generated by the function 1 (func1) stored in the internal register 111 as additional information (mod2) for new authentication. Generate code.
  • the authentication code generation/verification unit 14b stores the generated new authentication code in the internal register 111, associates the additional information (mod2) used for the generation with the return address (LR2), and stores it in the stack area 31. evacuate to
  • the authentication code generation/verification unit 14b compares the authentication code generated from the additional information (mod2) and the return address (LR2) with the authentication code read from the internal register 111. to verify the authentication code and confirm that the return address (LR2) is correct. If the authentication code verification result is OK, it can be said that the additional information (mod2) is also correct. back to The value of the authentication code (pacreg) becomes the reference value for authentication code verification when returning from function 1 (func1).
  • Patent Literatures 1 and 2 disclose conventional techniques for protecting a return address using an authentication code.
  • an authentication code is generated using a stack pointer or the like, which is additional information related to the return address.
  • this method is not sufficiently secure against authentication code reuse attacks because authentication code reuse attacks are possible when the additional information matches.
  • the return address history stored in the stack is encrypted, and the value is used as additional information for authentication code generation.
  • Return address history encryption is generated by encrypting a value called CSH (Call Stack Hash) when a function is called and the return address together, and creating a new CSH (CSH') as the result. be. Also, by decoding CSH' at the time of return, processing to return to the CSH before the function call is performed.
  • this method since the cryptographic circuit for generating the authentication code and the circuit used for calculating the CSH are different from each other, this method requires a total of three types of cryptographic circuits. In addition, since the CSH calculation needs to be performed separately from the generation of the authentication code, the time required for the processing also increases. Therefore, this method increases the circuit scale and the operation time.
  • the authentication code obtained by generating the authentication code is stored in the internal register 111, and the authentication code read from the internal register 111 is used as additional information when generating a new authentication code.
  • the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
  • the authentication code read from the internal register 111 is used as additional information when generating a new authentication code for a certain return address.
  • the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
  • each time an authentication code generation command is executed a new authentication code is generated using the authentication code obtained by executing the previous authentication code generation command read from the internal register 111 as additional information. , the newly generated authentication code is overwritten in the internal register 111 .
  • the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
  • the stack area 31 when the authentication code obtained by the authentication code generation is stored in the stack area 31 and the new authentication code is generated along with the execution of the authentication code verification, the stack area The authentication code read from 31 is used as additional information.
  • the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
  • the authentication code read from the stack area 31 is used as additional information when generating a new authentication code for a certain return address, which is performed along with the execution of authentication code verification.
  • the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
  • each time authentication code verification is executed a new authentication code is generated using the authentication code obtained in the previous authentication code generation read from the stack area 31 as additional information.
  • the received authentication code is overwritten in the internal register 111 .
  • the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above embodiments, and various modifications are possible.
  • the software is written in the C language, but the software may be written in other languages than the C language.
  • the present disclosure can have the following configurations.
  • an internal register a cryptographic processing block; a memory portion containing a stack area; and
  • the encryption processing block stores an authentication code obtained by authentication code generation in the internal register, and uses the authentication code read from the internal register as additional information when generating a new authentication code. .
  • the information processing apparatus according to (1) wherein the encryption processing block uses the authentication code read from the internal register as additional information when generating the new authentication code for a certain return address.
  • the encryption processing block generates a new second authentication code using the first authentication code obtained by executing the previous authentication code generation instruction read from the internal register as additional information.
  • the encryption processing block when generating a new authentication code along with execution of authentication code verification when the authentication code obtained by generating the authentication code is stored in the stack area, The information processing apparatus according to any one of (1) to (3), wherein the authentication code read from the stack area is used as additional information.
  • the encryption processing block uses the authentication code read from the stack area as additional information when generating the new authentication code for a certain return address along with the execution of the authentication code verification. ).
  • Each time the encryption processing block executes the authentication code verification the encryption processing block generates a new second authentication code using the first authentication code read out from the stack area and obtained in the previous authentication code generation as additional information.
  • An information processing method performed by an information processing device having an internal register and a stack area, An information processing method comprising storing an authentication code obtained by generating an authentication code in the internal register in encryption processing, and using the authentication code read from the internal register as additional information when generating a new authentication code.
  • the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the internal register
  • the authentication code read from is used as additional information.
  • the authentication code is also the history information of the return address
  • the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained. Therefore, it is possible to increase resistance to authentication code reuse attacks while suppressing an increase in circuit scale and calculation time.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

An information processing device according to an embodiment of the present disclosure comprises an internal register and a cryptographic processing block. The cryptographic processing block stores an authentication code obtained from authentication code generation in the internal register and, when generating a new authentication code, uses the authentication code read out from the internal register as additional information.

Description

情報処理装置および情報処理方法Information processing device and information processing method
 本開示は情報処理装置および情報処理方法に関する。 The present disclosure relates to an information processing device and an information processing method.
 近年、通信ネットワークの普及に伴い情報処理装置に対するサイバー攻撃が高度化・多様化しており、不適切なソフトウェア実装を狙ったマルウェア等により多くの脆弱性が報告されている。代表的な攻撃手法としてReturn-Oriented Programming(ROP)、Jump-Oriented Programming(JOP)が知られており、情報処理装置ではソフトウェアが意図通りに動作することを保証するための対策が求められている。認証コードを用いてリターンアドレスを保護する従来の手法として、例えば、特許文献1,2が開示されている。 In recent years, with the spread of communication networks, cyber-attacks on information processing equipment have become more sophisticated and diversified, and many vulnerabilities have been reported due to malware that targets inappropriate software implementation. Return-Oriented Programming (ROP) and Jump-Oriented Programming (JOP) are known as representative attack methods, and measures are required to ensure that software operates as intended in information processing equipment. . For example, Patent Literatures 1 and 2 disclose conventional techniques for protecting a return address using an authentication code.
米国特許第10409600号公報U.S. Pat. No. 1,040,9600 米国特許第10740452号公報U.S. Pat. No. 1,074,0452
 しかし、特許文献1に記載の方法では、リターンアドレスに関連した付加情報であるスタックポインタ等を使用して認証コードが生成される。しかし、この方法では、付加情報が一致する場合には、同一の認証コードが生成されるため、認証コードの再利用攻撃が可能であることから、認証コード再利用攻撃に対して十分に安全とは言えない。また、特許文献2に記載の方法では、スタックに格納されたリターンアドレスの履歴が暗号化され、その値が認証コード生成の付加情報として用いられる。しかし、この方法では、回路規模や演算時間が増大する。 However, in the method described in Patent Document 1, an authentication code is generated using a stack pointer or the like, which is additional information related to the return address. However, in this method, if the additional information matches, the same authentication code is generated, so authentication code reuse attacks are possible. Therefore, it is sufficiently secure against authentication code reuse attacks. I can't say Further, in the method described in Patent Document 2, the return address history stored in the stack is encrypted, and the value is used as additional information for authentication code generation. However, this method increases the circuit scale and operation time.
 従って、回路規模や演算時間の増大を抑えつつ、認証コード再利用攻撃への耐性を高めることの可能な情報処理装置および情報処理方法を提供することが望ましい。 Therefore, it is desirable to provide an information processing apparatus and an information processing method capable of increasing resistance to authentication code reuse attacks while suppressing increases in circuit scale and computation time.
 本開示の一実施の形態に係る情報処理装置は、内部レジスタと、暗号化処理ブロックと、スタック領域を含むメモリ部とを備えている。暗号化処理ブロックは、認証コード生成で得られた認証コードを内部レジスタに格納し、新たな認証コード生成の際に、内部レジスタから読み出した認証コードを付加情報として用いる。 An information processing device according to an embodiment of the present disclosure includes an internal register, an encryption processing block, and a memory section including a stack area. The encryption processing block stores an authentication code obtained by generating an authentication code in an internal register, and uses the authentication code read from the internal register as additional information when generating a new authentication code.
 本開示の一実施の形態に係る情報処理方法は、内部レジスタとスタック領域を備えた情報処理装置で行われる情報処理方法であって、以下の処理を含む。
・暗号化処理において、認証コード生成で得られた認証コードを内部レジスタに格納し、新たな認証コード生成の際に、内部レジスタから読み出した認証コードを付加情報として用いること
An information processing method according to an embodiment of the present disclosure is an information processing method performed by an information processing apparatus having an internal register and a stack area, and includes the following processes.
・In the encryption process, the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the authentication code read from the internal register is used as additional information.
 本開示の一実施の形態に係る情報処理装置および情報処理方法では、暗号化処理において、認証コード生成で得られた認証コードが内部レジスタに格納され、新たな認証コード生成の際に、内部レジスタから読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 In the information processing device and information processing method according to the embodiment of the present disclosure, in the encryption process, the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the internal register The authentication code read from is used as additional information. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
本開示の一実施の形態に係る情報処理装置の概略構成例を表す図である。1 is a diagram illustrating a schematic configuration example of an information processing device according to an embodiment of the present disclosure; FIG. 認証コードの生成および検証の手順例を概念で表す図である。FIG. 4 is a diagram conceptually showing an example of a procedure for generating and verifying an authentication code; 図1のCPUに含まれる認証コード生成・検証部の機能ブロック例を表す図である。2 is a diagram showing an example of functional blocks of an authentication code generation/verification unit included in the CPU of FIG. 1; FIG. 図1のCPUに含まれる認証コード生成・検証部の機能ブロック例を表す図である。2 is a diagram showing an example of functional blocks of an authentication code generation/verification unit included in the CPU of FIG. 1; FIG. 図1の情報処理装置において実行される関数呼び出し・リターンの処理手順例を表す図である。2 is a diagram showing an example of a function call/return processing procedure executed in the information processing apparatus of FIG. 1; FIG.
 以下、本開示を実施するための形態について、図面を参照して詳細に説明する。 Hereinafter, embodiments for implementing the present disclosure will be described in detail with reference to the drawings.
[構成]
 本開示の一実施の形態に係る情報処理装置1について説明する。図1は、情報処理装置1の概略構成例を表したものである。図2は、情報処理装置1における情報処理手順例を概念で表したものである。情報処理装置1は、例えば、図1に示したように、CPU(Central Processing Unit)10、ROM(Read Only Memory)20、RAM(Random Access Memory)30、NVRAM(Non Volatile RAM)40および各種ペリフェラル50を備えている。
[composition]
An information processing device 1 according to an embodiment of the present disclosure will be described. FIG. 1 shows a schematic configuration example of an information processing apparatus 1. As shown in FIG. FIG. 2 conceptually represents an example of an information processing procedure in the information processing apparatus 1 . For example, as shown in FIG. 1, the information processing apparatus 1 includes a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 20, a RAM (Random Access Memory) 30, an NVRAM (Non Volatile RAM) 40, and various peripherals. It has 50.
 ROM20は、読み取り専用のメモリである。ROM20は、例えば、CPU10において各種処理を実行するためのプログラムや、演算用のパラメータのうち、基本的に固定のデータ等を格納する。 The ROM 20 is a read-only memory. The ROM 20 stores, for example, programs for executing various processes in the CPU 10 and basically fixed data among parameters for calculation.
 RAM30は、書き換え可能な揮発性メモリである。RAM30は、例えば、CPU10の処理の実行において適宜変化するパラメータ等を格納する。RAM30は、スタック領域31を有する。スタック領域31は、例えば、CPU10の処理の実行において使用されるプログラムにおける関数の呼び出し時に必要なデータを一時記憶する。 The RAM 30 is a rewritable volatile memory. The RAM 30 stores, for example, parameters that change as appropriate during execution of processing by the CPU 10 . RAM 30 has a stack area 31 . The stack area 31 temporarily stores, for example, data required when calling a function in a program used in execution of processing by the CPU 10 .
 NVRAM40は、書き換え可能な不揮発性メモリである。NVRAM40は、例えば、通信部20を介して取得したデータや、CPU10において各種処理を実行するためのプログラム(例えば関数などを含むプログラム)等を格納する。 The NVRAM 40 is a rewritable nonvolatile memory. The NVRAM 40 stores, for example, data acquired via the communication unit 20, programs for executing various processes in the CPU 10 (for example, programs including functions), and the like.
 各種ペリフェラル50は、CPU10と組み合わせて利用される各種デバイスである。各種ペリフェラル50は、例えば、割り込みコントローラー、汎用タイマー、ウォッチドッグタイマー、I2C・SPI・UART等の通信用インターフェース、暗号処理ブロック、乱数発生器などを含んで構成されている。 The various peripherals 50 are various devices used in combination with the CPU 10. The various peripherals 50 include, for example, an interrupt controller, a general-purpose timer, a watchdog timer, a communication interface such as I2C/SPI/UART, an encryption processing block, a random number generator, and the like.
 CPU10は、例えば、NVRAM40やROM20から読み出したプログラムを実行する。CPU10は、例えば、例えば、バスインターフェース11、命令フェッチユニット12、命令デコードユニット13、命令処理部14およびデータレジスタ部15を含む。 The CPU 10 executes programs read from the NVRAM 40 or the ROM 20, for example. The CPU 10 includes, for example, a bus interface 11, an instruction fetch unit 12, an instruction decode unit 13, an instruction processing section 14 and a data register section 15, for example.
 バスインターフェース11は、バス60を介してROM20、RAM30、NVRAM40または各種ペリフェラル50から受信したデータを命令フェッチユニット12へ出力する。バスインターフェース11は、命令処理部14から出力されたデータを、バス60を介してROM20、RAM30、NVRAM40または各種ペリフェラル50へ送信する。 The bus interface 11 outputs data received from the ROM 20, RAM 30, NVRAM 40 or various peripherals 50 via the bus 60 to the instruction fetch unit 12. The bus interface 11 transmits data output from the instruction processing unit 14 to the ROM 20 , RAM 30 , NVRAM 40 or various peripherals 50 via the bus 60 .
 命令フェッチユニット12は、ROM20、RAM30、NVRAM40または各種ペリフェラル50からの命令をバスインターフェース11から取得し、命令デコードユニット13へ出力する。命令デコードユニット13は、命令フェッチユニット12から取得した命令の内容を解読し、命令処理部14へ出力する。データレジスタ部15は、命令処理部14から取得したデータをバスインターフェース11に出力する。 The instruction fetch unit 12 acquires instructions from the ROM 20 , RAM 30 , NVRAM 40 or various peripherals 50 from the bus interface 11 and outputs them to the instruction decode unit 13 . The instruction decode unit 13 decodes the content of the instruction obtained from the instruction fetch unit 12 and outputs it to the instruction processing section 14 . The data register unit 15 outputs data acquired from the instruction processing unit 14 to the bus interface 11 .
 命令処理部14は、命令デコードユニット13から取得した命令の内容を実行する。命令処理部14は、例えば、算術論理演算部14aおよび認証コード生成・検証部14bを含む。 The instruction processing unit 14 executes the content of the instruction obtained from the instruction decode unit 13. The instruction processing unit 14 includes, for example, an arithmetic logic operation unit 14a and an authentication code generation/verification unit 14b.
 認証コード生成・検証部14bは、認証コード生成命令を実行する。認証コード生成・検証部14bは、例えば、関数呼び出し命令で指定された分岐先アドレスに配置された認証コード生成命令を実行する。命令処理部14は、例えば、認証コード生成命令に従って、関数呼び出し命令で指定されたリターンアドレスを認証コード生成・検証部14bに出力する。認証コード生成・検証部14bは、命令処理部14からリターンアドレスを取得すると、取得したリターンアドレスを用いて認証コードを生成する。認証コード生成・検証部14bは、例えば、図2の上段に示したように、24bitsのリターンアドレス(Pointer)に、40bitsのモディファイヤを上位bitsとして連結することにより、エンコード前のデータ(64bitsの入力データ)を生成する。次に、認証コード生成・検証部14bは、例えば、生成した64bitsの入力データに対して、128bitsの暗号鍵を用いたエンコードを行うことにより、64bitsの認証コードを生成する。認証コード生成・検証部14bは、生成した64bitsの認証コードを命令処理部14内部のレジスタに出力する。 The authentication code generation/verification unit 14b executes the authentication code generation instruction. The authentication code generation/verification unit 14b executes, for example, the authentication code generation instruction placed at the branch destination address specified by the function call instruction. The instruction processing unit 14 outputs the return address specified by the function call instruction to the authentication code generation/verification unit 14b, for example, according to the authentication code generation instruction. Upon acquiring the return address from the command processing unit 14, the authentication code generation/verification unit 14b uses the acquired return address to generate an authentication code. The authentication code generation/verification unit 14b, for example, as shown in the upper part of FIG. input data). Next, the authentication code generation/verification unit 14b generates a 64-bit authentication code by, for example, encoding the generated 64-bit input data using a 128-bit encryption key. The authentication code generation/verification unit 14 b outputs the generated 64-bit authentication code to a register inside the instruction processing unit 14 .
 命令処理部14は、認証コード生成命令を実行した後に、プッシュ命令を実行することにより、スタック領域31にリターンアドレスおよび認証コード(例えば64bitsの認証コード)を退避する(格納する)。命令処理部14は、関数呼び出し命令で呼び出した関数内に記述された一連の命令を実行した後、ポップ命令を実行することにより、スタック領域31に退避させた(格納した)リターンアドレスおよび認証コード(例えば64bitsの認証コード)を読み出す。 After executing the authentication code generation instruction, the instruction processing unit 14 saves (stores) the return address and the authentication code (for example, a 64-bit authentication code) in the stack area 31 by executing the push instruction. After executing a series of instructions described in the function called by the function call instruction, the instruction processing unit 14 executes the pop instruction to retrieve the return address and the authentication code saved (stored) in the stack area 31. (for example, a 64-bit authentication code).
 命令処理部14は、スタック領域31からリターンアドレスおよび認証コードを読み出した後、リターン命令を実行する。命令処理部14は、スタック領域31から読み出したリターンアドレスを用いてリターン命令を実行する。 After reading the return address and the authentication code from the stack area 31, the instruction processing unit 14 executes the return instruction. The instruction processing unit 14 uses the return address read from the stack area 31 to execute the return instruction.
 命令処理部14は、リターン命令実行後、認証コード検証命令を実行する。命令処理部14は、例えば、スタック領域31から読み出したリターンアドレスに配置された認証コード検証命令を実行する。命令処理部14は、認証コード検証命令に従って、スタック領域31から読み出した認証コードと、認証コード検証命令のアドレスとを認証コード生成・検証部14bに出力する。認証コード生成・検証部14bは、命令処理部14から、スタック領域31から読み出した認証コードと、認証コード検証命令のアドレスとを取得すると、取得した認証コードと、取得した認証コード検証命令のアドレスから生成した認証コードとの一致・不一致を検証する。認証コード検証命令のアドレスを用いた認証コード生成方法は、例えば、図2の下段に示したように、上述の認証コード生成方法と同様の方法となっている。検証の結果、一致の場合には、命令処理部14は、認証コード検証命令の次のアドレスに配置された命令を実行する。一方、検証の結果、不一致の場合には、命令処理部14は、スタック領域31のリターンアドレスが改ざんされていると判断し、その後の処理を中断する。 After executing the return instruction, the instruction processing unit 14 executes the authentication code verification instruction. The instruction processing unit 14 executes, for example, an authentication code verification instruction arranged at the return address read from the stack area 31 . The instruction processing unit 14 outputs the authentication code read from the stack area 31 and the address of the authentication code verification instruction to the authentication code generation/verification unit 14b in accordance with the authentication code verification instruction. When the authentication code generation/verification unit 14b acquires the authentication code read from the stack area 31 and the address of the authentication code verification instruction from the instruction processing unit 14, the authentication code generation/verification unit 14b acquires the authentication code and the address of the authentication code verification instruction. Verifies whether it matches or does not match the authentication code generated from The authentication code generation method using the address of the authentication code verification instruction is, for example, as shown in the lower part of FIG. 2, the same method as the authentication code generation method described above. As a result of the verification, if there is a match, the instruction processing unit 14 executes the instruction arranged at the address next to the authentication code verification instruction. On the other hand, if the result of the verification is that they do not match, the instruction processing unit 14 determines that the return address in the stack area 31 has been tampered with, and suspends subsequent processing.
 認証コード生成・検証部14bは、例えば、図3に示したように、内部レジスタ111,112,113と、暗号化処理ブロック114とを有している。内部レジスタ112には、関数呼び出し命令で指定されたリターンアドレス(addr)が格納される。リターンアドレス(addr)は、関数呼び出し命令が配置されたアドレスの次のアドレス(ポインタ)である。内部レジスタ111には、内部レジスタ112から読み出したリターンアドレス(addr)を用いて生成された認証コード(pacreg)が格納される。内部レジスタ113には、認証コード生成の際に用いられる暗号鍵(pac_key)が格納される。 The authentication code generation/verification unit 14b has internal registers 111, 112, 113 and an encryption processing block 114, for example, as shown in FIG. The internal register 112 stores the return address (addr) specified by the function call instruction. The return address (addr) is the address (pointer) next to the address where the function call instruction is placed. The internal register 111 stores an authentication code (pacreg) generated using the return address (addr) read from the internal register 112 . The internal register 113 stores an encryption key (pac_key) used when generating an authentication code.
 認証コード生成・検証部14bは、認証コード生成命令を実行する。暗号化処理ブロック114は、認証コード生成命令を実行する際に、内部レジスタ111から読み出した情報(認証コード(pacreg))を付加情報(modifier)として用いる。具体的には、暗号化処理ブロック114は、認証コード生成命令に従って、例えば、内部レジスタ112から読み出したリターンアドレス(addr)に、内部レジスタ111から読み出した認証コード(pacreg)を付加情報(modifier)として連結することにより、エンコード前のデータ(入力データ)を生成する。次に、暗号化処理ブロック114は、例えば、生成した入力データに対して、暗号鍵(pac_key)を用いたエンコードを行うことにより、認証コード(pac)を生成する。暗号化処理ブロック114は、生成した認証コード(pac)を内部レジスタ111に格納する。 The authentication code generation/verification unit 14b executes the authentication code generation instruction. The encryption processing block 114 uses information (authentication code (pacreg)) read from the internal register 111 as additional information (modifier) when executing the authentication code generation command. Specifically, the encryption processing block 114 adds the authentication code (pacreg) read from the internal register 111 to the return address (addr) read from the internal register 112 as additional information (modifier) in accordance with the authentication code generation instruction. By concatenating as , data before encoding (input data) is generated. Next, the encryption processing block 114 generates an authentication code (pac) by, for example, encoding the generated input data using an encryption key (pac_key). The encryption processing block 114 stores the generated authentication code (pac) in the internal register 111 .
 暗号化処理ブロック114は、生成した認証コード(pac)を内部レジスタ111に格納した後、新たに認証コード生成命令を実行したとき、内部レジスタ112に格納された、更新されたリターンアドレス(addr)を用いて新たな認証コード(pac)を生成する。暗号化処理ブロック114は、認証コード生成命令を実行するたびに、内部レジスタ111から読み出した、前回の認証コード生成命令の実行により得られた認証コード(pacreg)を付加情報(modifier)として新たな認証コード(pac)を生成する。暗号化処理ブロック114は、このようにして生成した新たに生成した認証コード(pac)を内部レジスタ111に格納(上書き)する。このようにして、暗号化処理ブロック114は、リターンアドレス(addr)の履歴情報でもある認証コード(pac)を内部レジスタ111に格納する。 After storing the generated authentication code (pac) in the internal register 111, the encryption processing block 114 returns the updated return address (addr) stored in the internal register 112 when executing a new authentication code generation command. to generate a new authorization code (pac). Each time the encryption processing block 114 executes an authentication code generation instruction, the authentication code (pacreg) read from the internal register 111 and obtained by executing the previous authentication code generation instruction is newly added as additional information (modifier). Generate an authorization code (pac). The encryption processing block 114 stores (overwrites) the newly generated authentication code (pac) thus generated in the internal register 111 . In this way, the encryption processing block 114 stores the authentication code (pac), which is also the history information of the return address (addr), in the internal register 111 .
 命令処理部14は、認証コード生成命令が実行された後、退避命令を実行することにより、スタック領域31にリターンアドレス(addr)と、付加情報(mod)としての認証コード(pacreg)とを退避する(格納する)。 After the authentication code generation instruction is executed, the instruction processing unit 14 saves the return address (addr) and the authentication code (pacreg) as additional information (mod) in the stack area 31 by executing the save instruction. to (store).
 認証コード生成・検証部14bは、例えば、図4に示したように、内部レジスタ111,113と、演算部114と、検証部115とを有している。内部レジスタ111には、スタック領域31から読み出した付加情報(mod)(=認証コード(pacreg))が格納される。内部レジスタ113には、認証コード生成の際に用いられる暗号鍵(pac_key)が格納される。 The authentication code generation/verification unit 14b has internal registers 111 and 113, a calculation unit 114, and a verification unit 115, for example, as shown in FIG. Additional information (mod) (=authentication code (pacreg)) read from the stack area 31 is stored in the internal register 111 . The internal register 113 stores an encryption key (pac_key) used when generating an authentication code.
 認証コード生成・検証部14bは、認証コード検証命令を実行する。検証部115は、暗号化処理ブロック114によってスタック領域31からリターンアドレス(addr)および付加情報(mod)が読み出された後、認証コード検証命令を実行する。検証部115は、認証コード検証命令に従って、スタック領域31から読み出した付加情報(mod)(=認証コード(pacreg))と、スタック領域31から読み出したリターンアドレス(addr)を用いて暗号化処理ブロック114によって生成された認証コードとの一致・不一致を検証する。 The authentication code generation/verification unit 14b executes the authentication code verification command. After the return address (addr) and additional information (mod) are read from the stack area 31 by the encryption processing block 114, the verification unit 115 executes the authentication code verification instruction. The verification unit 115 uses the additional information (mod) (=authentication code (pacreg)) read from the stack area 31 and the return address (addr) read from the stack area 31 according to the authentication code verification instruction to generate the encryption processing block. Verify match/mismatch with the authorization code generated by 114 .
 このとき、暗号化処理ブロック114は、認証コードを生成する際に、スタック領域31から読み出した情報(認証コード(pacreg))を付加情報(modifier)として用いる。具体的には、暗号化処理ブロック114は、例えば、スタック領域31から読み出したリターンアドレス(addr)に、スタック領域31から読み出した認証コード(pacreg)を付加情報(modifier)として連結することにより、エンコード前のデータ(入力データ)を生成する。次に、暗号化処理ブロック114は、例えば、生成した入力データに対して、暗号鍵(pac_key)を用いたエンコードを行うことにより、認証コード(pac)を生成する。 At this time, the encryption processing block 114 uses the information (authentication code (pacreg)) read from the stack area 31 as additional information (modifier) when generating the authentication code. Specifically, for example, the encryption processing block 114 concatenates the authentication code (pacreg) read from the stack area 31 to the return address (addr) read from the stack area 31 as additional information (modifier), Generate data before encoding (input data). Next, the encryption processing block 114 generates an authentication code (pac) by, for example, encoding the generated input data using an encryption key (pac_key).
 検証の結果、一致の場合には、検証部115は、スタック領域31から読み出した付加情報(mod)(=認証コード(pacreg))を内部レジスタ111に格納(上書き)する。つまり、検証部115は、検証の結果、一致の場合には、リターンアドレス(addr)の履歴情報を、その関数が呼び出される前の値に戻す。一方、検証の結果、不一致の場合には、検証部115は、スタック領域31のリターンアドレス(addr)が改ざんされていると判断し、エラー処理を実行する。 As a result of the verification, if there is a match, the verification unit 115 stores (overwrites) the additional information (mod) (=authentication code (pacreg)) read from the stack area 31 in the internal register 111 . In other words, if the verification result shows a match, the verification unit 115 restores the history information of the return address (addr) to the value before the function was called. On the other hand, if the result of the verification is that they do not match, the verification unit 115 determines that the return address (addr) of the stack area 31 has been tampered with, and executes error processing.
 暗号化処理ブロック114は、認証コード検証命令を実行するたびに、スタック領域31から読み出した、前回の認証コード生成により得られた認証コード(pacreg)を付加情報(modifier)として新たな認証コード(pac)を生成する。暗号化処理ブロック114は、このようにして生成した新たに生成した認証コード(pac)を内部レジスタ111に格納(上書き)する。このようにして、暗号化処理ブロック114は、リターンアドレス(addr)の履歴情報でもある認証コード(pac)を内部レジスタ111に格納する。 Each time the encryption processing block 114 executes an authentication code verification instruction, the authentication code (pacreg) read out from the stack area 31 and obtained by previous authentication code generation is used as additional information (modifier) to create a new authentication code ( pac). The encryption processing block 114 stores (overwrites) the newly generated authentication code (pac) thus generated in the internal register 111 . In this way, the encryption processing block 114 stores the authentication code (pac), which is also the history information of the return address (addr), in the internal register 111 .
 図5は、情報処理装置1における関数呼び出し・リターンの処理フローの一例を表したものである。 FIG. 5 shows an example of a function call/return processing flow in the information processing device 1. FIG.
 関数1(func1)が呼び出されたとき、認証コード生成・検証部14bは、生成した認証コードを内部レジスタ111に格納し、その生成に用いた付加情報(mod1)とリターンアドレス(LR1)とを互いに関連付けてスタック領域31に退避する。関数2(func2)が呼び出されたとき、認証コード生成・検証部14bは、内部レジスタ111に格納されている、関数1(func1)で生成された認証コードを付加情報(mod2)として新たな認証コードを生成する。認証コード生成・検証部14bは、このとき、生成した新たな認証コードを内部レジスタ111に格納し、その生成に用いた付加情報(mod2)とリターンアドレス(LR2)とを互いに関連付けてスタック領域31に退避する。 When the function 1 (func1) is called, the authentication code generation/verification unit 14b stores the generated authentication code in the internal register 111, and stores the additional information (mod1) used for the generation and the return address (LR1). They are saved in the stack area 31 in association with each other. When the function 2 (func2) is called, the authentication code generation/verification unit 14b uses the authentication code generated by the function 1 (func1) stored in the internal register 111 as additional information (mod2) for new authentication. Generate code. At this time, the authentication code generation/verification unit 14b stores the generated new authentication code in the internal register 111, associates the additional information (mod2) used for the generation with the return address (LR2), and stores it in the stack area 31. evacuate to
 認証コード生成・検証部14bは、関数2(func2)からリターンする時、付加情報(mod2)とリターンアドレス(LR2)から生成した認証コードと、内部レジスタ111から読み出した認証コードとを比較することで認証コード検証を行い、リターンアドレス(LR2)が正しいことを確認する。この認証コード検証結果がOKであれば付加情報(mod2)も正しいと言え、認証コード生成・検証部14bは、その値を内部レジスタ111に格納することで関数2(func2)の呼び出し前の状態に戻す。その認証コード(pacreg)の値が関数1(func1)からリターンする際の認証コード検証のリファレンス値となる。 When returning from function 2 (func2), the authentication code generation/verification unit 14b compares the authentication code generated from the additional information (mod2) and the return address (LR2) with the authentication code read from the internal register 111. to verify the authentication code and confirm that the return address (LR2) is correct. If the authentication code verification result is OK, it can be said that the additional information (mod2) is also correct. back to The value of the authentication code (pacreg) becomes the reference value for authentication code verification when returning from function 1 (func1).
[効果]
 次に、情報処理装置1の効果について説明する。
[effect]
Next, effects of the information processing device 1 will be described.
 近年、通信ネットワークの普及に伴い情報処理装置に対するサイバー攻撃が高度化・多様化しており、不適切なソフトウェア実装を狙ったマルウェア等により多くの脆弱性が報告されている。代表的な攻撃手法としてReturn-Oriented Programming(ROP)、Jump-Oriented Programming(JOP)が知られており、情報処理装置ではソフトウェアが意図通りに動作することを保証するための対策が求められている。認証コードを用いてリターンアドレスを保護する従来の手法として、例えば、特許文献1,2が開示されている。 In recent years, with the spread of communication networks, cyber-attacks on information processing equipment have become more sophisticated and diversified, and many vulnerabilities have been reported due to malware that targets inappropriate software implementation. Return-Oriented Programming (ROP) and Jump-Oriented Programming (JOP) are known as representative attack methods, and measures are required to ensure that software operates as intended in information processing equipment. . For example, Patent Literatures 1 and 2 disclose conventional techniques for protecting a return address using an authentication code.
 しかし、特許文献1に記載の方法では、リターンアドレスに関連した付加情報であるスタックポインタ等を使用して認証コードが生成される。しかし、この方法では、付加情報が一致する場合には、認証コード再利用攻撃が可能であることから、認証コード再利用攻撃に対して十分に安全とは言えない。また、特許文献2に記載の方法では、スタックに格納されたリターンアドレスの履歴が暗号化され、その値が認証コード生成の付加情報として用いられる。リターンアドレスの履歴の暗号化は、関数の呼び出し時にCSH(Call Stack Hash)と呼ばれる値と、リターンアドレスとを合わせたものを暗号化し、その結果を新しいCSH(CSH’)とすることによって生成される。また、リターン時にCSH’を復号することで、その関数呼び出し前のCSHに戻す処理が行われる。ここで、認証コード生成を行う暗号回路と、CSHの演算に用いる回路とは互いに異なるので、この手法では、合計3種類の暗号回路が必要となる。また、CSHの演算は、認証コード生成とは別に行う必要があるので、その処理にかかる時間も増加する。従って、この手法では、回路規模や演算時間が増大する。 However, in the method described in Patent Document 1, an authentication code is generated using a stack pointer or the like, which is additional information related to the return address. However, this method is not sufficiently secure against authentication code reuse attacks because authentication code reuse attacks are possible when the additional information matches. Further, in the method described in Patent Document 2, the return address history stored in the stack is encrypted, and the value is used as additional information for authentication code generation. Return address history encryption is generated by encrypting a value called CSH (Call Stack Hash) when a function is called and the return address together, and creating a new CSH (CSH') as the result. be. Also, by decoding CSH' at the time of return, processing to return to the CSH before the function call is performed. Here, since the cryptographic circuit for generating the authentication code and the circuit used for calculating the CSH are different from each other, this method requires a total of three types of cryptographic circuits. In addition, since the CSH calculation needs to be performed separately from the generation of the authentication code, the time required for the processing also increases. Therefore, this method increases the circuit scale and the operation time.
 一方、本実施の形態では、認証コード生成で得られた認証コードが内部レジスタ111に格納され、新たな認証コード生成の際に、内部レジスタ111から読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 On the other hand, in the present embodiment, the authentication code obtained by generating the authentication code is stored in the internal register 111, and the authentication code read from the internal register 111 is used as additional information when generating a new authentication code. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 また、本実施の形態では、あるリターンアドレスについての新たな認証コード生成の際に、内部レジスタ111から読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 Also, in the present embodiment, the authentication code read from the internal register 111 is used as additional information when generating a new authentication code for a certain return address. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 また、本実施の形態では、認証コード生成命令を実行するたびに、内部レジスタ111から読み出した、前回の認証コード生成命令の実行により得られた認証コードを付加情報として新たな認証コードが生成され、新たに生成された認証コードが内部レジスタ111に上書きされる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 Further, in the present embodiment, each time an authentication code generation command is executed, a new authentication code is generated using the authentication code obtained by executing the previous authentication code generation command read from the internal register 111 as additional information. , the newly generated authentication code is overwritten in the internal register 111 . By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 また、本実施の形態では、スタック領域31に、認証コード生成で得られた認証コードが格納されているときに認証コード検証の実行に伴って行われる新たな認証コード生成の際に、スタック領域31から読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 Further, in the present embodiment, when the authentication code obtained by the authentication code generation is stored in the stack area 31 and the new authentication code is generated along with the execution of the authentication code verification, the stack area The authentication code read from 31 is used as additional information. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 また、本実施の形態では、認証コード検証の実行に伴って行われる、あるリターンアドレスについての新たな認証コード生成の際に、スタック領域31から読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 In addition, in the present embodiment, the authentication code read from the stack area 31 is used as additional information when generating a new authentication code for a certain return address, which is performed along with the execution of authentication code verification. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 また、本実施の形態では、認証コード検証を実行するたびに、スタック領域31から読み出した、前回の認証コード生成で得られた認証コードを付加情報として新たな認証コードが生成され、新たに生成された認証コードが内部レジスタ111に上書きされる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。 In addition, in the present embodiment, each time authentication code verification is executed, a new authentication code is generated using the authentication code obtained in the previous authentication code generation read from the stack area 31 as additional information. The received authentication code is overwritten in the internal register 111 . By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained.
 以上、実施の形態を挙げて本開示を説明したが、本開示は上記実施の形態に限定されるものではなく、種々変形が可能である。例えば、上記実施の形態では、ソフトウエアがC言語で記述されている場合が想定されているが、ソフトウエアがC言語以外の他の言語で記述されていてもよい。 Although the present disclosure has been described above with reference to the embodiments, the present disclosure is not limited to the above embodiments, and various modifications are possible. For example, in the above embodiments, the software is written in the C language, but the software may be written in other languages than the C language.
 なお、本明細書中に記載された効果は、あくまで例示である。本開示の効果は、本明細書中に記載された効果に限定されるものではない。本開示が、本明細書中に記載された効果以外の効果を持っていてもよい。 It should be noted that the effects described in this specification are merely examples. The effects of the present disclosure are not limited to the effects described herein. The disclosure may have advantages other than those described herein.
 また、例えば、本開示は以下のような構成を取ることができる。
(1)
 内部レジスタと、
 暗号化処理ブロックと、
 スタック領域を含むメモリ部と
 を備え、
 前記暗号化処理ブロックは、認証コード生成で得られた認証コードを前記内部レジスタに格納し、新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いる
 情報処理装置。
(2)
 前記暗号化処理ブロックは、あるリターンアドレスについての前記新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いる
 (1)に記載の情報処理装置。
(3)
 前記暗号化処理ブロックは、認証コード生成命令を実行するたびに、前記内部レジスタから読み出した、前回の認証コード生成命令の実行により得られた第1認証コードを付加情報として新たな第2認証コードを生成し、生成した前記第2認証コードを前記内部レジスタに上書きし、前記第1認証コードを前記スタック領域に格納する
する
 (1)または(2)に記載の情報処理装置。
(4)
 前記暗号化処理ブロックは、前記スタック領域に、前記認証コード生成で得られた前記認証コードが格納されているときに認証コード検証の実行に伴って行われる新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いる
 (1)ないし(3)のいずれか1つに記載の情報処理装置。
(5)
 前記暗号化処理ブロックは、前記認証コード検証の実行に伴って行われる、あるリターンアドレスについての前記新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いる
 (4)に記載の情報処理装置。
(6)
 前記暗号化処理ブロックは、前記認証コード検証を実行するたびに、前記スタック領域から読み出した、前回の認証コード生成で得られた第1認証コードを付加情報として新たな第2認証コードを生成し、前記内部レジスタに格納されている認証コードとの一致・不一致を検証し、一致した場合には、前記第1認証コードを前記内部レジスタに上書きする
 (4)または(5)に記載の情報処理装置。
(7)
 内部レジスタとスタック領域を備えた情報処理装置で行われる情報処理方法であって、
 暗号化処理において、認証コード生成で得られた認証コードを前記内部レジスタに格納し、新たな認証コード生成の際に、内部レジスタから読み出した認証コードを付加情報として用いること
 を含む
 情報処理方法。
(8)
 暗号化処理において、あるリターンアドレスについての前記新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いること
 を含む
 (7)に記載の情報処理方法。
(9)
 暗号化処理において、認証コード生成命令を実行するたびに、前記内部レジスタから読み出した、前回の認証コード生成命令の実行により得られた第1認証コードを付加情報として新たな第2認証コードを生成し、生成した前記第2認証コードを前記内部レジスタに上書きし、前記第1認証コードを前記スタック領域に格納すること
 を含む
 (7)または(8)に記載の情報処理方法。
(10)
 当該情報処理方法は、暗号化処理において、スタック領域に、前記認証コード生成で得られた前記認証コードが格納されているときに認証コード検証の実行に伴って行われる新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いること
 を含む
 (7)ないし(9)のいずれか1つに記載の情報処理方法。
(11)
 暗号化処理において、前記認証コード検証の実行に伴って行われる、あるリターンアドレスについての前記新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いること
 を含む
 (10)に記載の情報処理方法。
(12)
 暗号化処理において、認証コード検証を実行するたびに、前記スタック領域から読み出した、前回の認証コード生成で得られた第1認証コードを付加情報として新たな第2認証コードを生成し、前記内部レジスタに格納されている認証コードとの一致・不一致を検証し、一致した場合には、前記第1認証コードを前記内部レジスタに上書きすること
 を含む
 (10)または(11)に記載の情報処理方法。
Further, for example, the present disclosure can have the following configurations.
(1)
an internal register;
a cryptographic processing block;
a memory portion containing a stack area; and
The encryption processing block stores an authentication code obtained by authentication code generation in the internal register, and uses the authentication code read from the internal register as additional information when generating a new authentication code. .
(2)
The information processing apparatus according to (1), wherein the encryption processing block uses the authentication code read from the internal register as additional information when generating the new authentication code for a certain return address.
(3)
Each time an authentication code generation instruction is executed, the encryption processing block generates a new second authentication code using the first authentication code obtained by executing the previous authentication code generation instruction read from the internal register as additional information. , overwrites the generated second authentication code in the internal register, and stores the first authentication code in the stack area.
(4)
The encryption processing block, when generating a new authentication code along with execution of authentication code verification when the authentication code obtained by generating the authentication code is stored in the stack area, The information processing apparatus according to any one of (1) to (3), wherein the authentication code read from the stack area is used as additional information.
(5)
The encryption processing block uses the authentication code read from the stack area as additional information when generating the new authentication code for a certain return address along with the execution of the authentication code verification. ).
(6)
Each time the encryption processing block executes the authentication code verification, the encryption processing block generates a new second authentication code using the first authentication code read out from the stack area and obtained in the previous authentication code generation as additional information. , verifying whether it matches or disagrees with the authentication code stored in the internal register, and overwriting the internal register with the first authentication code if they match. Device.
(7)
An information processing method performed by an information processing device having an internal register and a stack area,
An information processing method comprising storing an authentication code obtained by generating an authentication code in the internal register in encryption processing, and using the authentication code read from the internal register as additional information when generating a new authentication code.
(8)
The information processing method according to (7), further comprising using the authentication code read from the internal register as additional information when generating the new authentication code for a certain return address in encryption processing.
(9)
In the encryption process, each time an authentication code generation command is executed, a new second authentication code is generated using the first authentication code obtained by executing the previous authentication code generation command read from the internal register as additional information. and overwriting the generated second authentication code in the internal register, and storing the first authentication code in the stack area.
(10)
In the encryption process, when the authentication code obtained by the authentication code generation is stored in the stack area, the information processing method generates a new authentication code along with the execution of the authentication code verification. and using the authentication code read from the stack area as additional information.
(11)
( 10) The information processing method described in 10).
(12)
In the encryption process, each time authentication code verification is executed, a new second authentication code is generated using the first authentication code obtained in the previous authentication code generation read from the stack area as additional information, and the internal The information processing according to (10) or (11), including verifying whether it matches or disagrees with the authentication code stored in the register, and overwriting the internal register with the first authentication code if they match. Method.
 本開示の一実施の形態に係る情報処理装置および情報処理方法では、暗号化処理において、認証コード生成で得られた認証コードが内部レジスタに格納され、新たな認証コード生成の際に、内部レジスタから読み出した認証コードが付加情報として用いられる。このように、認証コードを付加情報として用いることで、付加情報を生成するための追加の暗号回路が不要となり、さらに、付加情報を生成するためだけに要する演算時間が抑えられる。また、認証コードはリターンアドレスの履歴情報でもあることから、認証コードを生成するたびに、用いられる付加情報が異なることになる。従って、認証コード再利用攻撃に対して高い耐性が得られる。従って、回路規模や演算時間の増大を抑えつつ、認証コード再利用攻撃への耐性を高めることができる。 In the information processing device and information processing method according to the embodiment of the present disclosure, in the encryption process, the authentication code obtained by generating the authentication code is stored in the internal register, and when generating a new authentication code, the internal register The authentication code read from is used as additional information. By using the authentication code as the additional information in this way, an additional cryptographic circuit for generating the additional information is not required, and the computation time required only for generating the additional information can be reduced. In addition, since the authentication code is also the history information of the return address, the additional information used is different each time the authentication code is generated. Therefore, high resistance to authentication code reuse attacks can be obtained. Therefore, it is possible to increase resistance to authentication code reuse attacks while suppressing an increase in circuit scale and calculation time.
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。 It should be noted that the present embodiment is not limited to the embodiment described above, and various modifications are possible without departing from the gist of the present disclosure. Moreover, the effects described in this specification are merely examples and are not limited, and other effects may be provided.
 本出願は、日本国特許庁において2021年12月28日に出願された日本特許出願番号第2021-214888号を基礎として優先権を主張するものであり、この出願のすべての内容を参照によって本出願に援用する。 This application claims priority based on Japanese Patent Application No. 2021-214888 filed at the Japan Patent Office on December 28, 2021, and the entire contents of this application are incorporated herein by reference. incorporated into the application.
 当業者であれば、設計上の要件や他の要因に応じて、種々の修正、コンビネーション、サブコンビネーション、および変更を想到し得るが、それらは添付の請求の範囲やその均等物の範囲に含まれるものであることが理解される Depending on design requirements and other factors, those skilled in the art may conceive various modifications, combinations, subcombinations, and modifications that fall within the scope of the appended claims and their equivalents. It is understood that

Claims (12)

  1.  内部レジスタと、
     暗号化処理ブロックと、
     スタック領域を含むメモリ部と
     を備え、
     前記暗号化処理ブロックは、認証コード生成で得られた認証コードを前記内部レジスタに格納し、新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いる
     情報処理装置。
    an internal register;
    a cryptographic processing block;
    a memory portion containing a stack area; and
    The encryption processing block stores an authentication code obtained by authentication code generation in the internal register, and uses the authentication code read from the internal register as additional information when generating a new authentication code. .
  2.  前記暗号化処理ブロックは、あるリターンアドレスについての前記新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いる
     請求項1に記載の情報処理装置。
    The information processing apparatus according to claim 1, wherein the encryption processing block uses the authentication code read from the internal register as additional information when generating the new authentication code for a certain return address.
  3.  前記暗号化処理ブロックは、認証コード生成命令を実行するたびに、前記内部レジスタから読み出した、前回の認証コード生成命令の実行により得られた第1認証コードを付加情報として新たな第2認証コードを生成し、生成した前記第2認証コードを前記内部レジスタに上書きし、前記第1認証コードを前記スタック領域に格納する
     請求項1に記載の情報処理装置。
    Each time an authentication code generation instruction is executed, the encryption processing block generates a new second authentication code using the first authentication code obtained by executing the previous authentication code generation instruction read from the internal register as additional information. , overwrites the generated second authentication code in the internal register, and stores the first authentication code in the stack area.
  4.  前記暗号化処理ブロックは、前記スタック領域に、前記認証コード生成で得られた前記認証コードが格納されているときに認証コード検証の実行に伴って行われる新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いる
     請求項1に記載の情報処理装置。
    The encryption processing block, when generating a new authentication code along with execution of authentication code verification when the authentication code obtained by generating the authentication code is stored in the stack area, The information processing apparatus according to claim 1, wherein the authentication code read from the stack area is used as additional information.
  5.  前記暗号化処理ブロックは、前記認証コード検証の実行に伴って行われる、あるリターンアドレスについての前記新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いる
     請求項4に記載の情報処理装置。
    3. The encryption processing block uses the authentication code read out from the stack area as additional information when generating the new authentication code for a certain return address in accordance with the execution of the authentication code verification. 5. The information processing device according to 4.
  6.  前記暗号化処理ブロックは、前記認証コード検証を実行するたびに、前記スタック領域から読み出した、前回の認証コード生成で得られた第1認証コードを付加情報として新たな第2認証コードを生成し、前記内部レジスタに格納されている認証コードとの一致・不一致を検証し、一致した場合には、前記第1認証コードを前記内部レジスタに上書きする
     請求項4に記載の情報処理装置。
    Each time the encryption processing block executes the authentication code verification, the encryption processing block generates a new second authentication code using the first authentication code read out from the stack area and obtained in the previous authentication code generation as additional information. 5. The information processing apparatus according to claim 4, wherein a match/mismatch with the authentication code stored in said internal register is verified, and if they match, said internal register is overwritten with said first authentication code.
  7.  内部レジスタとスタック領域を備えた情報処理装置で行われる情報処理方法であって、
     暗号化処理において、認証コード生成で得られた認証コードを前記内部レジスタに格納し、新たな認証コード生成の際に、前記内部レジスタから読み出した認証コードを付加情報として用いること
     を含む
     情報処理方法。
    An information processing method performed by an information processing device having an internal register and a stack area,
    storing an authentication code obtained by authentication code generation in the internal register in encryption processing, and using the authentication code read from the internal register as additional information when generating a new authentication code. .
  8.  暗号化処理において、あるリターンアドレスについての前記新たな認証コード生成の際に、前記内部レジスタから読み出した前記認証コードを付加情報として用いること
     を含む
     請求項7に記載の情報処理方法。
    8. The information processing method according to claim 7, comprising using the authentication code read from the internal register as additional information when generating the new authentication code for a certain return address in encryption processing.
  9.  暗号化処理において、認証コード生成命令を実行するたびに、前記内部レジスタから読み出した、前回の認証コード生成命令の実行により得られた第1認証コードを付加情報として新たな第2認証コードを生成し、生成した前記第2認証コードを前記内部レジスタに上書きし、前記第1認証コードを前記スタック領域に格納すること
     を含む
     請求項7に記載の情報処理方法。
    In the encryption process, each time an authentication code generation command is executed, a new second authentication code is generated using the first authentication code obtained by executing the previous authentication code generation command read from the internal register as additional information. and overwriting the generated second authentication code in the internal register, and storing the first authentication code in the stack area.
  10.  当該情報処理方法は、暗号化処理において、スタック領域に、前記認証コード生成で得られた前記認証コードが格納されているときに認証コード検証の実行に伴って行われる新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いること
     を含む
     請求項7に記載の情報処理方法。
    In the encryption process, when the authentication code obtained by the authentication code generation is stored in the stack area, the information processing method generates a new authentication code along with the execution of the authentication code verification. and using the authentication code read from the stack area as additional information.
  11.  暗号化処理において、前記認証コード検証の実行に伴って行われる、あるリターンアドレスについての前記新たな認証コード生成の際に、前記スタック領域から読み出した前記認証コードを付加情報として用いること
     を含む
     請求項10に記載の情報処理方法。
    using the authentication code read from the stack area as additional information when generating the new authentication code for a certain return address, which is performed along with the execution of the authentication code verification in encryption processing. Item 11. The information processing method according to item 10.
  12.  暗号化処理において、認証コード検証を実行するたびに、前記スタック領域から読み出した、前回の認証コード生成で得られた第1認証コードを付加情報として新たな第2認証コードを生成し、前記内部レジスタに格納されている認証コードとの一致・不一致を検証し、一致した場合には、前記第1認証コードを前記内部レジスタに上書きすること
     を含む
     請求項10に記載の情報処理方法。
    In the encryption process, each time authentication code verification is executed, a new second authentication code is generated using the first authentication code obtained in the previous authentication code generation read from the stack area as additional information, and the internal 11. The information processing method according to claim 10, comprising verifying whether it matches or disagrees with an authentication code stored in a register, and overwriting said internal register with said first authentication code when they match.
PCT/JP2022/041434 2021-12-28 2022-11-07 Information processing device and information processing method WO2023127314A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021-214888 2021-12-28
JP2021214888 2021-12-28

Publications (1)

Publication Number Publication Date
WO2023127314A1 true WO2023127314A1 (en) 2023-07-06

Family

ID=86998815

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/041434 WO2023127314A1 (en) 2021-12-28 2022-11-07 Information processing device and information processing method

Country Status (1)

Country Link
WO (1) WO2023127314A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005859A (en) * 2001-04-16 2003-01-08 Yuichi Sumiya Method for managing program and data, and computer
JP2009015434A (en) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd Portable information processor and information processing program
JP2020533683A (en) * 2017-09-15 2020-11-19 エイアールエム リミテッド Call path dependent authentication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003005859A (en) * 2001-04-16 2003-01-08 Yuichi Sumiya Method for managing program and data, and computer
JP2009015434A (en) * 2007-07-02 2009-01-22 Dainippon Printing Co Ltd Portable information processor and information processing program
JP2020533683A (en) * 2017-09-15 2020-11-19 エイアールエム リミテッド Call path dependent authentication

Similar Documents

Publication Publication Date Title
EP3682362B1 (en) Call path dependent authentication
US7853803B2 (en) System and method for thwarting buffer overflow attacks using encrypted process pointers
US8656146B2 (en) Computer system comprising a secure boot mechanism
CA2531363C (en) Method and apparatus for incremental code signing
US8464037B2 (en) Computer system comprising a secure boot mechanism on the basis of symmetric key encryption
US7720220B2 (en) Cipher message assist instruction
CN107077562B (en) Computer-implemented method and system for dynamically controlling code execution
US20080301440A1 (en) Updateable Secure Kernel Extensions
US11341282B2 (en) Method for the execution of a binary code of a secure function by a microprocessor
US20080133858A1 (en) Secure Bit
US11232194B2 (en) Method for executing a binary code of a secure function with a microprocessor
US20170046280A1 (en) Data processing device and method for protecting a data processing device against attacks
WO2023127314A1 (en) Information processing device and information processing method
WO2023132210A1 (en) Information processing device and information processing method
WO2022106229A1 (en) Code flow protection with error propagation
US11651086B2 (en) Method for executing a computer program by means of an electronic apparatus
US20220294634A1 (en) Method for executing a computer program by means of an electronic apparatus
WO2023169654A1 (en) Control flow integrity
JP2004246637A (en) Information computerization processor, processing device and storage device with the same, related program execution method, and computer program

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22915546

Country of ref document: EP

Kind code of ref document: A1