Encryption scheme for providing software updates to update agents
An authenticated encryption function using AES GCM for secure elements addresses inefficiencies in existing update mechanisms, providing faster and more secure software updates by ensuring confidentiality and integrity, reducing latency and memory requirements.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2022-06-29
- Publication Date
- 2026-04-03
AI Technical Summary
Existing software update mechanisms for secure elements, such as eSIMs, are inefficient and lack necessary layers of protection, leading to complex and time-consuming decryption processes, which hinder timely updates and compliance with market demands.
Implementing an authenticated encryption function using a block cipher for both encryption and authentication, segmenting the software image into blocks, and applying an authentication tag to ensure confidentiality and integrity, utilizing AES GCM for efficient and secure software updates.
This approach reduces latency and memory footprint, enabling faster and more secure software updates by packing more data into each segment, thus meeting customer requirements for minimizing delays and optimizing manufacturing processes.
Smart Images

Figure 0007840349000001 
Figure 0007840349000002 
Figure 0007840349000003
Abstract
Description
[Technical Field]
[0001] The present invention relates to updating software such as an operating system on a secure element, and more particularly to a method, update agent, and system for implementing an encryption scheme for providing a software image to a secure element. [Background technology]
[0002] Background of the Invention In recent years, mobile devices have emerged that are configured to employ electronic subscriber profiles for communication over mobile networks. Such mobile devices typically include smart cards containing electronic / embedded secure elements (SEs), such as electronic / embedded general-purpose integrated circuit cards (eUICCs), smart SD cards, or smart microSD cards.
[0003] A secure element (TRE) is a tamper-resistant element that provides a secure memory and execution environment within a smart card / device, allowing for the safe storage and management of application code and application data. The secure element ensures that access to data stored on the card is only provided upon authorization.
[0004] A secure element designed for use in telecommunications products such as mobile devices is configured to store one or more electronic subscriber profiles, particularly electronic subscriber identification module (eSIM) profiles, which may enable the mobile device to connect to one or more mobile networks. Subscriber profiles (e.g., eSIM profiles) may be generated by a mobile network operator (MNO) and downloaded to the mobile network device. The subscriber profiles are then installed on the secure element of the mobile device and can be used by the mobile device to communicate over the corresponding mobile network.
[0005] Historically, the software in secure elements does not change beyond the manufacturing stage. This means that if any problem related to the software within a secure element is discovered (a new attack or vulnerability, new updates to sector specifications, or the expected lifecycle of the device using the secure element), the only possible action is to change the entire secure element. Having to change the entire secure element makes it particularly difficult to keep up with market demand in terms of manufacturing (since post-manufacturing software updates are impossible), especially when manufacturing must take place in a certified environment within a factory.
[0006] The GSMA remote provisioning architecture provides a platform for implementing procedures to load software onto secure elements (SEs) or tamper-resistant elements (TREs). The GSMA platform enables the implementation of changes to profiles stored within secure elements by providing the secure elements with bound installation packages that include profile updates.
[0007] To ensure the integrity of bound installation packages, the GSMA remote provisioning architecture implements an encryption scheme based on the SCP03t algorithm. The SCP03t algorithm includes two distinct encryption algorithms defined within the Advanced Cryptographic Standard (AES): the first algorithm, AES CBC, for ensuring confidentiality, and the second algorithm, AES CMAC, for authentication and integrity. In other words, SCP03t follows the Encrypt-the-MAC format, with separate algorithms for encryption and integrity / authenticity.
[0008] This encryption scheme, implemented within the GSMA platform, requires several exchanges between the TRE and the server before a bound profile package containing the profile used for loading can be prepared, which may not be ideal for broadcast deployments of new software.
[0009] In addition, due to the complex SPC03t-based security scheme, the bound profile packages provided to the secure element have a complex structure. When the update agent within the secure element receives a bound profile package, it must execute a time-consuming decryption algorithm to extract the necessary data from the bound profile package.
[0010] Furthermore, because the security scheme provided lacks additional layers of protection that may be necessary to deploy critical data such as new operating systems, the GSMA platform does not permit the implementation of changes to the underlying software present within SE / TRE, such as changes to the operating system.
[0011] Recently, after the end of the SE / TRE manufacturing phase, an operating system update scheme has been introduced to facilitate updating operating systems installed on SE / ITR.
[0012] Some applications of download / update security schemes require them to be as fast as possible for several reasons. Some examples include situations where the scheme needs to be applied to several targets on a production line, or where this process is constrained by being allocated within another process, such as when the secure element is updated as part of an equipment update and the equipment manufacturer sets restrictions. Therefore, when implementing an SCP03t-based security scheme to facilitate secure software downloads onto a secure element, it can be difficult to meet customer requirements for minimizing delays during software updates.
[0013] Therefore, it is desirable to provide a solution for managing the encryption of software images in a more efficient way that addresses the aforementioned shortcomings. [Overview of the Initiative] [Means for solving the problem]
[0014] Summary of the Invention The present invention addresses the above objectives as provided for in the scope of the independent claims. Preferred embodiments of the present invention are defined in the dependent claims.
[0015] According to a first aspect of the present invention, a method is provided for providing a software image to a secure element, the method comprising: converting the software image into a sequence of encrypted blocks; protecting the sequence of encrypted blocks with an authentication tag to obtain a protected sequence of blocks; and transmitting the protected sequence of blocks to an update agent on the secure element. The steps of converting the software image into a sequence of encrypted blocks and protecting the sequence of encrypted blocks with an authentication tag are implemented by an authenticated cryptographic function using the same block cipher.
[0016] The proposed method provides an efficient and secure solution for encrypting the software to be loaded onto the secure element after its manufacturing is complete. Employing an authenticated encryption function that uses the same block cipher for both encryption and authentication not only results in an efficient and secure solution, but also facilitates hardware implementation that is low-cost, low-latency, and fast. Applications requiring high data throughput can benefit from these high-speed implementations.
[0017] In some embodiments of the present invention, the method further includes segmenting a software image into a sequence of input blocks, where an authenticated cryptographic function encrypts each input block using a block cipher, thereby obtaining a sequence of encrypted blocks.
[0018] In some embodiments of the present invention, the authenticated encryption function encrypts each input block by applying the forward encryption function of a block cipher to each input block to obtain a sequence of output blocks, and then performing an exclusive OR (XOR) operation on each pair of input blocks and corresponding output blocks to obtain a sequence of encrypted blocks.
[0019] One advantage of this implementation is that the forward (encryption) direction of a block cipher can be used for both encryption and decryption. This simplifies the implementation of the security scheme because the procedure can be implemented with hardware that has a reduced footprint (e.g., less memory). Furthermore, in block ciphers such as AES (Advanced Encryption Standard), the internal coefficients are optimized for this direction, so it is often easier to implement encryption that is more efficient than decryption.
[0020] In some embodiments of the present invention, the method includes further concatenating a sequence of encrypted blocks with additional authentication data. Preferably, the additional authentication data includes certain configurable parameters outside of the encrypted text itself, such as, for example, the underlying exchange protocol, specifically the protocol version number, a message-specific nonce, the recipient's address, etc.
[0021] Since the additional authentication data can be verified together with the encrypted text by verifying the authentication tag, using the additional authentication data enables these parameters to be verified. An attacker cannot simply change these parameters, for example, by switching to a previously less secure protocol number.
[0022] In some embodiments of the present invention, the authenticated encryption function includes further applying a hash function to a sequence of encrypted blocks to obtain a hash tag, and the hash function is generated using a block cipher.
[0023] Preferably, the hash function is a GHASH function based on operations in a finite Galois field, particularly multiplication. The GHASH function is used to generate a message authentication code by the GCM (Galois / Counter Mode) algorithm implemented within AES (Advanced Encryption Standard), and also supports additional authentication data (AAD) that is authenticated using GHASH but transmitted as plaintext.
[0024] Using only one AES calculation per data block together with Galois field multiplication, without using additional MACs added to each block, both the confidentiality and authenticity of the protected blocks transmitted to the secure element are guaranteed. Thus, more data can be packed into the block, and the length of the transmitted bound instruction package can be shortened.
[0025] Preferably, the hash tag is encrypted using a nonce to obtain an authentication tag, thereby further improving confidentiality and integrity.
[0026] In some embodiments of the present invention, an authentication tag is added to the concatenated sequence of encrypted blocks in order to obtain a protected sequence of blocks.
[0027] Authentication tags support tag-based authentication mechanisms to guarantee the authenticity of encrypted data, that is, to reveal accidental errors or intentional alterations to the data.
[0028] Preferably, the authentication tag includes a cryptographic checksum for the encrypted data within the encrypted block.
[0029] In some embodiments of the present invention, transmitting a sequence of protected blocks to an update agent on a secure element includes segmenting the sequence of protected blocks, wherein each segment except the first to last carries a portion of the encrypted software image, and the last segment carries an authentication tag; and transmitting the segments to the update agent.
[0030] In this way, a compact representation of the transmitted data (i.e., software images, updates, profiles) is achieved, in which case each segment contains more data. Including more data reduces the size of the complete delivery package.
[0031] According to a second aspect of the present invention, a server is provided, specifically a subscription manager data preparation server, configured to provide protected software updates to a secure element by bound installation packages, the server being configured to generate bound installation packages from software images by implementing an authenticated cryptographic function that uses a block cipher to encrypt the software images, and to compute an authentication tag for the encrypted software images.
[0032] In some embodiments of the present invention according to a second aspect, the server is configured to perform the method according to the first aspect.
[0033] According to a third aspect of the present invention, a mobile network system is provided for providing services to a mobile device, the mobile device including a secure element, the system including a server, specifically a subscription manager data preparation server, configured to provide protected software updates to the secure element by bound installation packages, the server being configured to generate a bound installation package from a software image by performing the following: implementing an authenticated cryptographic function that uses a block cipher to encrypt the software image using a block cipher and to compute an authentication tag for the software image encrypted using the same block cipher, and transmitting a sequence of protected blocks to an update agent on the secure element.
[0034] According to a fourth aspect of the present invention, an update agent is provided for use within a secure element to install a software update on the secure element, the update agent is configured to: receive a sequence of protected segments containing a software image for performing a software update, the sequence being generated by the method of the first aspect and containing a sequence of encryption blocks and authentication tags, extract the software image from the sequence of encryption blocks, and implement an authenticated decryption function to authenticate the software image by verifying the authentication tags.
[0035] Preferably, the update agent is configured to perform a software update using the software image if the authentication tag is verified, and to return a failure message otherwise.
[0036] A fifth aspect of the present invention provides a non-temporary computer-readable medium for providing a protected software image to a secure element, which includes stored instructions that, when executed by a processor, perform the following steps: generate a bound installation package from a software image provided to a secure element by implementing an authenticated cryptographic function for encrypting the software image using a block cipher and computing an authentication tag for the encrypted software image; and transmit a sequence of protected blocks to an update agent on the secure element.
[0037] The embodiments and models described herein provide efficient and secure solutions for managing the encryption of software images updated on a secure element.
[0038] It should be noted that all devices, elements, units, and means described herein may be implemented by software or hardware elements or a combination thereof. All steps performed by the various entities described herein, as well as the functions described herein, are intended to mean that each entity is adapted or configured to perform its respective step and function.
[0039] Further aspects, features, and advantages of the present invention will become apparent to those skilled in the art when the following detailed description of preferred embodiments and modifications of the present invention is examined in conjunction with the accompanying drawings.
[0040] Brief explanation of the drawing Next, refer to the attached drawings. [Brief explanation of the drawing]
[0041] [Figure 1] A simplified representation of a remote eSIM provisioning system according to one embodiment is shown. [Figure 2]Figure 1 shows the security scheme for performing software / OS updates on the eSIM provisioning system. [Figure 3] This document presents a modified security scheme for performing software / OS updates, according to one embodiment of the present invention. [Figure 4] A flowchart of a method for providing a software image to a secure element according to one embodiment is shown. [Figure 5] The steps of the method shown in Figure 4 are shown in a preferred embodiment. [Figure 6] The steps of the method shown in Figure 4 are shown in a preferred embodiment. [Figure 7] The steps of the method shown in Figure 4 are shown in a preferred embodiment. [Modes for carrying out the invention]
[0042] Detailed explanation The present invention will now be described in detail with reference to the accompanying drawings illustrating specific embodiments of the invention. These embodiments are described in sufficient detail to enable those skilled in the art to carry out the invention. It should be understood that the various embodiments of the invention are different but not necessarily mutually exclusive. For example, certain features, structures, or characteristics described herein in relation to a certain embodiment may be implemented in other embodiments without departing from the scope of the invention. In addition, it should be understood that the position or arrangement of individual elements in each disclosed embodiment may be modified without departing from the scope of the invention. Therefore, the following detailed description should not be interpreted restrictively, and the scope of the invention is defined only by the appended claims, which should be appropriately interpreted together with the entire scope of equivalents for which the claims are granted. In the figures, similar figures refer to the same or similar functions across several drawings.
[0043] Figure 1 shows an exemplary architecture of an SM-DP+ based system 1 according to a specific embodiment of the present invention. This architecture is an adaptation of the GSMA architecture described in the SGP.22 RSP Technical Specification, Version 2.0 (hereinafter referred to as GSMA RSP22) issued by the GSM Association. The eSIM provisioning system 1 is organized around several elements: SM-DP+ (Subscription Manager - Data Preparation and Secure Routing 300), SM-DS (Subscription Manager - Discovery Server 310), LPA (Local Profile Assistance 250), and eUICC 100, the latter being part of the end user's mobile device 200.
[0044] The SM-DP+300 is responsible for creating, downloading, remotely managing (enabling, deactivating, updating, deleting), and protecting subscriber profiles provided by the MNO320. In particular, the SM-DP+300 can be configured to provide profiles within bound profile packages or bound installation packages, enabling the secure transmission of bound profile / installation packages.
[0045] The LPA (Local Profile Assistant 250) is a set of functions within device 200 that is responsible for providing the eUICC / TRE / SE100 with the ability to download (encrypted) profiles. The LPA 250 also presents the end user 330 with a local management end-user interface so that the end user 330 can manage the status of the profiles on the eUICC / TRE / SE100.
[0046] The SM-DS310 provides a means for the SM-DP+300 to communicate with the eUICC / TRE / SE100.
[0047] The external device 200 can represent an entity that controls the SE100 and communicates with the SE100. The external device 200 can be any device that is a mobile terminal or a device on which the SE is installed.
[0048] The update agent 110 is an entity within the secure element 100 (separated from the OS 130) responsible for receiving installation packages and performing software updates. The update agent is loaded onto the secure element or TRE along with the (initial) operating system (OS 130 in Figure 1) during the factory manufacturing of the secure element 100. Initially, it is assumed that the OS 130 is in control, meaning that the OS 130 is the OS that runs when the TRE 100 starts up.
[0049] Figure 2 shows a software update security scheme for providing a software image (e.g., operating system, OS, image) to the secure element 100 in Figure 1 via a bound installation package (abbreviated as installation package). The scheme for providing the software image for updates adapts the general scheme known from GSMA RSP22 to the architecture in Figure 1.
[0050] The diagram in Figure 2 illustrates the various forms a profile package (i.e., a bound installation profile) takes from the time it is generated until it is downloaded onto the secure element. Specifically, the bound installation profile is created in several stages I through V, starting with the software image, by performing several operations such as appending and segmenting.
[0051] In the initial Stage I, a manifest 502 and manifest signature 501 are attached to image 501 provided by the image publisher. The manifest 502 contains information about the new software image being uploaded and guarantees that the image is acceptable and that the publisher is trustworthy. The resulting block contains unencrypted, readable data.
[0052] In Stage II, the SM-DP+300 can generate an unprotected image package from the package obtained in Stage I, which includes a sequence of profile element TLVs (Tag Length Values) TLV1, ..., TLVn510. Preferably, the TLVs are based on the SIMalliance eUICC Profile Package: Interoperable Format Technical Specification V2.0.
[0053] In Stage III, the SM-DP+300 can generate a protected package profile from an unprotected package profile by applying TLV encryption and MACing. These operations can preferably follow the scheme described in GSMA “Remote Provisioning of Embedded UICC Technical specification” V3.1. Preferably, TLV encryption is performed by applying the private profile protection key PK-ENC generated by the SM-DP+300. The resulting data block is divided from segment 1 to X521.
[0054] In Stage IV, the SM-DP+300 can generate a bound installation profile package 500 by linking or binding the protected image package obtained in Stage III to a specific eSIM / eUICC. This is done through a key agreement between the eSIM and the SM-DP+.
[0055] Finally, in stage V, the bound installation profile package 500, having a header portion 530 and a data transport portion 520, is segmented into blocks and distributed to the update agent 110 on the eSIM or secure element 100. Preferably, the segments are transmitted by a data storage (STORE DATA) command.
[0056] The scheme in Figure 2 is based on the SCP03t algorithm (as described, for example, in SGP.02 = v4.2 section 4.1.3.3) for implementing encryption and authentication in Stage III. Specifically, the SCP03t algorithm includes two different encryption algorithms defined by the Advanced Cryptographic Standard (AES): AES CBC, the first algorithm for ensuring confidentiality, and AES CMAC, the second algorithm for authentication and integrity. In other words, SCP03t follows the Encrypt-the-MAC format, having separate algorithms for encryption and integrity / authenticity.
[0057] The software update security scheme described above, which can be implemented on the adapted GSMA remote provisioning architecture shown in Figure 1, requires several exchanges between the secure element (or TRE) 100 and the SM-DP+ server 300 before the bound profile package used for loading can be prepared, and may not be ideal for broadcast deployments of new software. This scheme also lacks additional layers of protection that may be necessary for deploying critical data such as a new OS.
[0058] In addition, the update agent within the secure element needs to execute a time-consuming decryption algorithm so that it can extract software updates from the received installation package.
[0059] Therefore, implementing the security scheme described above would not satisfy the customer's requirement to minimize delays during software updates.
[0060] To address this problem, the present invention proposes a method, apparatus, and system for managing the encryption of image segments in a more efficient manner. Specifically, it proposes a faster encryption scheme for the SM-DP+ server 300 to implement in Stage III of the security scheme shown in Figure 2.
[0061] The proposed encryption scheme is based on AES GCM (Galois / counter mode). AES GCM provides both confidentiality and authenticity by using only one AES calculation per data block along with Galois field multiplication, without the need for additional MACs.
[0062] Figure 3 shows a modified security scheme for generating a protected software package used to perform software / OS updates, according to one embodiment of the present invention. This modified security scheme is based on a novel package protection scheme implemented in Stage III, which will be further described below with respect to Figures 4 to 7.
[0063] Each of the n segments 523 carries an encrypted block 521, which is a block or segment containing an encrypted software image. The last segment 524 carries an authentication tag 522. The authentication tag may be a cryptographic checksum for the encrypted data within the encrypted block. The authentication tag may be designed to guarantee the authenticity of the encrypted data, that is, to reveal accidental errors or intentional modifications to the data.
[0064] This new scheme leverages the superior overall performance of AES CGM compared to traditional implementations that use two different algorithms. Because it's no longer necessary to send MACs within each protected image segment, more data can be packed into each segment, resulting in a smaller overall installation package size delivered to the secure element.
[0065] Figures 4 to 7 show a method for providing a software image to a secure element that implements the security scheme in Figure 3. Figure 4 shows a flowchart of the main steps, and Figures 5 to 7 show preferred implementations of the main steps from Figure 4. This method can be implemented by a server such as the SM-DP+ server 300 in Figure 1.
[0066] Referring to Figure 4, in the first step S1, the software image 501 provided to the secure element is converted into a sequence of encrypted blocks by applying an authenticated encryption function that uses a block cipher. Then, in step S2, the sequence of encrypted blocks is protected with an authentication tag by applying an authenticated encryption function that uses the same block cipher, and a sequence of protected blocks is obtained. In step S3, the obtained sequence of protected blocks can be transmitted to the update agent 110.
[0067] The same block cipher is used, and an authenticated encryption function is applied to both encryption and authentication. A block cipher can be a parameterized set of transposes for a fixed-length bit string. A key, also a bit string of a given length, is used to determine the transpose.
[0068] An example of an authenticated encryption function used herein is the Galois / counter-mode (GCM) algorithm for authenticated encryption. GCM is constructed from an approved symmetric-key block cipher with a 128-bit block size, such as the Advanced Cryptographic Standard (AES) algorithm.
[0069] Next, a preferred implementation of step S1 described above will be illustrated with reference to Figure 5.
[0070] In step S11 of Figure 5, the received software image 501 is sent to multiple input block BIs. 1, ...BI N First, we segment the data.
[0071] Next, apply the forward encryption function F to each input block, especially in step S12, and in step S13, apply the authentication encryption function to each of the input blocks by performing a block-by-block XOR operation between the resulting block and the input block to obtain the encrypted blocks. That is: - Input blocks: BI1,..., BI N - Output blocks: BO1,..., BO N , provided that BO i = F(BI i ), i = 1,..., N - Encrypted blocks: X1,..., X N , provided that X i = BO i XOR BI i , i = 1,..., N is.
[0072] The forward encryption function F can be a transposition for a fixed-length bit string such as the forward encryption function CIPH K having the symmetric key K. The key K can be generated uniformly and randomly, is secret, and should be used only for GCM with a selected block cipher.
[0073] Steps S1 in FIG. 4 and corresponding sub-steps S11 to S13 in FIG. 5 implement a confidentiality mechanism. Steps S2 in FIG. 4 and corresponding sub-steps S21 to S23 in FIG. 6 implement an authentication mechanism for the encrypted blocks obtained in step S1.
[0074] Referring to FIG. 6, the encrypted blocks X1,..., X N are subjected to an authentication operation using a hash function.
[0075] Optionally, in step S24, before applying the hash function, additional authentication data (AAD) can be appended to the cryptographic block. The AAD may include a network address, port, protocol version number, and other fields indicating how the plaintext, i.e., the software image, should be handled. The AAD data is readable, i.e., unencrypted.
[0076] In step S21, a hash function can be applied to the sequence of encrypted blocks. The hash function is generated using the same block cipher used for confidentiality protection. An example of such a hash function is the GHASH function based on finite Galois field operations, as defined in NIST Special Publication 800-38D: Recommendation for Block Cipher Modes of Operation GCM, Nov. 2007. GHASH(X1,...,X N )=Y m However, X1,...,X N This indicates the sequence of encryption blocks, Y m This shows the hash tag obtained by applying a hash function.
[0077] In a further step S22, in order to obtain the authentication tag AuthTag522 (see Figure 3), the hashtag Y m Encrypt the data. Preferably, encryption is performed using a nonce, such as an initialization vector, which has a requirement of strict uniqueness.
[0078] The obtained authentication tag is [X1||...||X N The ||AuthTag] is ultimately appended to the sequence of encrypted blocks, resulting in the protected image package 520 shown in Figure 3.
[0079] In step S3 of the flowchart in Figure 4, the protected image package 520 is transmitted to the update agent 110.
[0080] A preferred implementation of step S3 is shown in Figure 7. As shown in Figure 3, the protected image package 520 in step S31 is segmented into a sequence of protected blocks 523 and 524, and in step S32 they are transmitted to the update agent. Preferably, segments 523, from the first to the last, carry a portion of the encrypted software image, and the last segment 524 carries an authentication tag.
[0081] In a further aspect of the present invention, a server is provided which is configured to implement the method described above. This server may be the SM-DP+ server 300 shown in Figure 1. The server 300 may be configured to generate a bound installation package 500 according to the security scheme shown in Figure 3, and to provide the bound installation package 500 to the secure element 100.
[0082] Specifically, the server 300 may be configured to generate a bound installation package 500 from the software image 501 by implementing an authenticated encryption function that uses a block cipher to encrypt the software image 501 and to compute an authentication tag 522 for the encrypted software image. Furthermore, the server may be configured to perform all the steps and substeps of the method according to the embodiments shown in Figures 4 to 7.
[0083] The mobile network system 1 in Figure 1 is an exemplary system that implements the encryption scheme of Figure 3 within the SM-DP+ server 300 by the method shown in Figures 4 to 7, according to certain embodiments of the present invention.
[0084] In a further aspect of the present invention, an update agent 110 is provided for use within the secure element 100 to install a software update on the secure element 100. The update agent may be the update agent 100 shown in Figure 1. The update agent is configured to implement a security scheme, such as the security scheme shown in Figure 3.
[0085] Specifically, the update agent 110 can receive a sequence of protected segments 523 containing a software image 501 for performing a software update. This sequence may be generated by a method according to an embodiment of the present invention, as described above with respect to Figures 4 to 7. Upon receiving the sequence of protected segments, the update agent 110 can implement an authenticated decryption function to extract the software image 501.
[0086] Preferably, the update agent implements a GCM authenticated decryption function, which is the inverse of the authenticated encryption function implemented by the SM-DP+ server 300. Using this function, the ciphertext, which is a sequence of protected segments, is decrypted into plaintext, and the authenticity of the ciphertext is verified. The update agent 110 can extract a software image from the decrypted plaintext, verify the authentication tag, and if the authentication tag is verified, perform a software update using the software image. If the authentication tag verification fails, the update agent can return a failure message to the secure element and / or device.
[0087] The embodiments and models described herein provide efficient and secure solutions for managing the encryption of software images updated on a secure element.
[0088] The proposed bound package encryption leverages the superior overall performance of AES CGM compared to conventional SCP03t-based implementations. Each protected segment sent to the update agent carries only payload data without generally needing to include an 8-byte Message Authentication Code (MAC). This allows data to be packed into fewer segments for transmission to the update agent, resulting in a smaller overall delivery package size. This, in turn, allows the update agent component within the secure element to occupy a smaller footprint, enabling targeting of secure elements with limited available memory.
[0089] The proposed scheme for updating the software within the tamper-resistant element TRE or secure element SE is useful not only for providing patches, security and bug fixes at any point in the TRE's lifecycle, but also for updating the operating system within the TRE to keep pace with market evolution.
[0090] The above specification has described the present invention in relation to its specific embodiments. However, it will become clear that various modifications and changes can be made without departing from the broader scope of the invention. For example, the above process flow describes the specific order of the process actions. However, the order of many of the described process actions can be changed without affecting the scope or operation of the invention. Accordingly, this specification and the drawings should be considered illustrative rather than restrictive.
Claims
1. A method for providing a software image to a secure element, - Converting the software image into a sequence of encrypted blocks (S1), - Protect the sequence of the encrypted blocks with an authentication tag to obtain the sequence of protected blocks (S2), - Transmitting the sequence of protected blocks to the update agent (110) on the secure element (100) (S3) Includes, The steps of converting and protecting are implemented by an authenticated cryptographic function that uses the same block cipher, A sequence of protected segments (523) containing a software image (501) is generated, and the update agent (110) is configured to implement an authenticated decryption function to extract the software image (501) from the sequence of protected segments (523). The authentication encryption function further includes segmenting the software image into a sequence of input blocks (S11), wherein the authenticated encryption function encrypts each input block using the block cipher, thereby obtaining a sequence of encrypted blocks. The aforementioned authenticated encryption function is: - Applying the forward encryption function of the block cipher to each input block to obtain a sequence of output blocks (S12), and - Perform an exclusive OR operation on each pair of input blocks and corresponding output blocks to obtain the sequence of encrypted blocks (S13) Encrypt each input block by method.
2. The method according to claim 1, further comprising concatenating the sequence of encrypted blocks with additional authentication data (S24).
3. The method according to claim 1, wherein the authenticated encryption function applies a hash function to the sequence of encryption blocks to obtain a hash tag (S21), and the hash function is generated using the block cipher.
4. The method according to claim 3, wherein the hash function is a GHASH function based on operations in a finite Galois field.
5. The method according to claim 3, further comprising encrypting the hash tag using a nonce to obtain the authentication tag (S22).
6. The method according to claim 5, further comprising adding the authentication tag to the concatenated sequence of encrypted blocks in order to obtain the protected sequence of blocks (S23).
7. The method according to claim 1, wherein transmitting the sequence of protected blocks to the update agent in the secure element (S3) includes segmenting the sequence of protected blocks (S31), where each segment except the first to last carries a portion of the encrypted software image, and the last segment carries the authentication tag, and transmitting the segments to the update agent (110) (S32).
8. A server (300), specifically a subscription manager data preparation server, configured to provide protected software updates to a secure element (100) by bound installation package (500), is configured to generate the bound installation package (500) from a software image (501) by implementing an authenticated encryption function that uses a block cipher to encrypt the software image (501), and to calculate an authentication tag (522) for the encrypted software image. A sequence of protected segments (523) containing the software image (501) is generated, and the update agent (110) on the secure element (100) is configured to implement an authenticated decryption function to extract the software image (501) from the sequence of protected segments (523). Further configured to carry out the method according to any one of claims 1 to 7, Server (300).
9. A mobile network system (1) for providing services to a mobile device (200), wherein the mobile device (200) includes a secure element (100), and the system (1) includes a server (300), specifically a subscription manager data preparation server, configured to provide protected software updates to the secure element (100) by bound installation packages (500), the server (300) is - To implement an authenticated encryption function that uses a block cipher to encrypt a software image (501) using a block cipher, and to compute an authentication tag (522) for the encrypted software image using the same block cipher, and - Transmitting a sequence of protected blocks to the update agent (110) on the secure element (100). The system is configured to generate the bound installation package (500) derived from the software image (501) containing the protected software update by performing the following: A sequence of protected segments (523) containing the software image (501) is generated, and the update agent (110) extracts the software image (501) from the sequence of protected segments (523). It is configured to implement an authenticated decryption function, The server (300) is The software image is further segmented into a sequence of input blocks (S11), the authenticated encryption function encrypts each input block using the block cipher, thereby obtaining a sequence of encrypted blocks. The aforementioned authenticated encryption function is: - Applying the forward encryption function of the block cipher to each input block to obtain a sequence of output blocks (S12), and - Perform an exclusive OR operation on each pair of input blocks and corresponding output blocks to obtain the sequence of encrypted blocks (S13) Encrypt each input block by It is configured in such a way. Mobile network system (1).
10. An update agent (110) for use within the secure element (100) to install a software update on the secure element (100), - Receiving a sequence of protected segments (523) including a software image (501) for performing the software update, wherein the sequence of protected segments (523) is generated by the method of any one of claims 1 to 7 and includes a sequence of encryption blocks (521) and authentication tags (522), and - Implement an authenticated decryption function to extract the software image (501) from the sequence of encryption blocks (521) and to authenticate the software image (501) by verifying the authentication tag (522). An update agent (110) is configured to perform the following actions.
11. The update agent (110) according to claim 10, wherein the update agent (110) is configured to perform a software update using the software image (501) if the authentication tag (522) is verified, and otherwise return a failure message.
12. A non-temporary computer-readable medium for providing a protected software image to a secure element (100), which, when executed on a processor, allows for the following steps, i.e. - To generate a bound installation package (500) from the software image (501) by encrypting the software image (501) using a block cipher and implementing an authenticated encryption function for calculating an authentication tag (522) for the encrypted software image, and - Transmitting the bound installation package to the update agent (110) on the secure element (100) Includes a stored instruction that executes, A sequence of protected segments (523) containing the software image (501) is generated, and the update agent (110) is configured to implement an authenticated decryption function to extract the software image (501) from the sequence of protected segments (523). When the instruction is executed on the processor, it performs the steps described in any one of claims 1 to 7. Non-temporary computer-readable media.
Citation Information
Patent Citations
Updating operating system for secure element
JP2014029688A
Secure firmware transfer from a server to a primary platform
US20200162247A1
Multipart authenticated encryption
US9537657B1