Information processing system, information processing apparatus, and data communication method

The information processing system employs elliptic curve cryptography and the Diffie-Hellman key exchange to securely update non-volatile memory, addressing unauthorized data risks and ensuring system integrity.

JP2026036400AActive Publication Date: 2026-03-05LENOVO (SINGAPORE) PTE LTD
View PDF 6 Cites 0 Cited by

Patent Information

Application Number
JP2024138976
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-08-20
Publication Date
2026-03-05
Estimated Expiration
2044-08-20

AI Technical Summary

Technical Problem

Existing information processing systems face the risk of unauthorized data being sent to nonvolatile memory from unauthorized host devices, leading to potential unauthorized tampering with programs, which can prevent proper system startup.

Method used

An information processing system utilizing elliptic curve cryptography and the Diffie-Hellman key exchange technique to securely update data in non-volatile memory, involving a server device, a host device, and an information processing device with key pairs and shared secret keys to ensure secure data communication and program updates.

Benefits of technology

Ensures secure and appropriate updating of data in non-volatile memory while maintaining system security, preventing unauthorized tampering and ensuring proper system startup.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026036400000001_ABST
    Figure 2026036400000001_ABST
Patent Text Reader

Abstract

To appropriately update a program of a nonvolatile storage part while ensuring security.SOLUTION: In the information processing system, the information processing apparatus stores a first public key of a first key pair held by the server apparatus, transmits a second public key of a second key pair to the host apparatus, and the host apparatus transmits a third public key of a third key pair and the second public key to the server apparatus. Generating, by the server apparatus, encrypted data obtained by encrypting a third public key with the first secret key and the second public key when the validity of the higher-level apparatus is confirmed, and transmitting the encrypted data to the information processing apparatus; The host device encrypts update data by a common key for data communication based on the second public key and the third secret key, and transmits the encrypted update data to the information processing device, and the information processing device updates the program of the nonvolatile storage unit by the update data decrypted by the common key for data communication based on the second secret key and the third public key.SELECTED DRAWING: Figure 3
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] The present invention relates to an information processing system, an information processing device, and a data communication method. [Background technology]

[0002] An information processing device such as a PC (Personal Computer) has an internal nonvolatile memory (for example, a flash ROM (Read Only Memory)) that stores programs for running a system such as a BIOS (Basic Input Output System). The information processing device starts up the system by executing the programs and performs various types of information processing (for example, see Patent Document 1).

[0003] If the program data written in this nonvolatile memory becomes corrupted or if an incorrect program is written to the memory, the system will not be able to start up properly. In such cases, the data in the nonvolatile memory can be restored by connecting a host device such as a ROM writer to the nonvolatile memory via a specified interface and sending the repair data to the nonvolatile memory. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] Japanese Patent Application Laid-Open No. 2014-10492 Summary of the Invention [Problem to be solved by the invention]

[0005] However, in the above-described conventional technology, for example, there is a possibility that unauthorized data may be sent to the nonvolatile memory from an unauthorized host device, resulting in unauthorized tampering with the program.

[0006] The present invention has been made to solve the above problems, and its purpose is to provide an information processing system, an information processing device, and a data communication method that can appropriately update data in non-volatile memory while ensuring security. [Means for solving the problem]

[0007] In order to solve the above problem, one aspect of the present invention includes an information processing device having a rewritable nonvolatile storage unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; and a host device that is capable of communicating with the information processing device and the server device and that transmits update data for the program to the information processing device, wherein the information processing device includes a registered public key storage unit that stores a first key pair, which is a first public key and a first private key held by the server device, and the first public key of the first key pair corresponding to the information processing device, and the information processing device performs a first process of generating a second key pair, which is a second public key and a second private key, and transmitting the second public key of the second key pair to the host device; and a second process of generating a third key pair, which is a third public key and a third private key, and transmitting the third public key of the third key pair and the second public key to the server device. a third process in which the information processing device generates encrypted data by encrypting the third public key based on the first private key and the second public key, and transmits the encrypted data via the host device; a fourth process in which the information processing device decrypts the encrypted data based on the first public key and the second private key, and generates the third public key; a fifth process in which the host device generates a common key for data communication based on the second public key and the third private key, encrypts the update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the information processing device; and a sixth process in which the information processing device generates the common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication, and generates the update data, and updates the program stored in the non-volatile memory unit based on the update data.

[0008] Furthermore, one aspect of the present invention is that in the information processing system described above, in the third process, the server device generates a first shared secret key based on the first private key and the second public key, encrypts the third public key based on the generated first shared secret key, and generates the encrypted data; and in the fourth process, the information processing device generates a second shared secret key based on the first public key and the second private key, and decrypts the encrypted data based on the generated second shared secret key, and generates the third public key.

[0009] Furthermore, one aspect of the present invention is that in the information processing system described above, the first key pair, the second key pair, and the third key pair are key pairs of a public key and a private key in elliptic curve cryptography, the first shared secret key and the second shared secret key are equal common keys, and the common key is shared between the server device and the information processing device using an elliptic curve Diffie-Hellman key exchange technique, and the common key for data communication is shared between the higher-level device and the information processing device using the elliptic curve Diffie-Hellman key exchange technique.

[0010] In addition, one aspect of the present invention is that in the information processing system described above, the server device may encrypt the third public key using a common key cipher, and the higher-level device may encrypt the update data using a common key cipher.

[0011] In addition, one aspect of the present invention is that in the information processing system described above, the information processing device may include a main control unit that starts up the OS and executes processing based on the OS by executing the program stored in the non-volatile memory unit, and a sub-control unit that is capable of communicating with the higher-level device and operating independently of the main control unit, and that executes the first processing, the fourth processing, and the sixth processing.

[0012] Another aspect of the present invention is that, in the information processing system described above, the program includes a BIOS (Basic Input Output System) program, the non-volatile storage unit is a flash memory having an SPI (Serial Peripheral Interface) bus, and the sub-control unit may update the BIOS program in the flash memory using the SPI bus.

[0013] According to another aspect of the present invention, there is provided an information processing device of an information processing system including an information processing device having a rewritable nonvolatile storage unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; and a host device that is capable of communicating with the information processing device and the server device and that transmits update data for the program to the information processing device, the information processing device including: a registered public key storage unit that stores the first public key of a first key pair, which is a first public key and a first private key held by the server device, the first public key of the first key pair corresponding to the information processing device; a key pair generation unit that generates a second key pair, which is a second public key and a second private key; and a host device that generates the second public key of the second key pair by the server device after transmitting the second public key of the second key pair to the host device. and a public key exchange unit that acquires encrypted data generated by encrypting a third public key of a third key pair, which is a third public key and a third private key generated by the device, based on the first private key and the second public key, and decrypts the encrypted data based on the first public key and the second private key stored in the registered public key storage unit to generate the third public key; a common key generation unit that generates a common key for data communication based on the third public key and the second private key decrypted by the public key exchange unit; and an update processing unit that decrypts the encrypted update data received from the higher-level device based on the common key for data communication generated by the common key generation unit, and updates the program stored in the non-volatile storage unit based on the decrypted update data.

[0014] Another aspect of the present invention is a data communication method for an information processing system including an information processing device having a rewritable nonvolatile memory unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; and a host device that is capable of communicating with the information processing device and the server device and that transmits update data for the program to the information processing device, wherein the information processing device has a registered public key memory unit that stores a first key pair, which is a first public key and a first private key held by the server device, and the first public key of the first key pair corresponding to the information processing device, and the method includes a first processing step in which the information processing device generates a second key pair, which is a second public key and a second private key, and transmits the second public key of the second key pair to the host device; a second processing step in which the host device generates a third key pair, which is a third public key and a third private key, and transmits the third public key of the third key pair and the second public key to the server device; a third processing step in which, if the authenticity of the third public key is confirmed, the information processing device generates encrypted data by encrypting the third public key based on the first private key and the second public key, and transmits the encrypted data to the information processing device via the higher-level device; a fourth processing step in which the information processing device decrypts the encrypted data based on the first public key and the second private key, and generates the third public key; a fifth processing step in which the higher-level device generates a common key for data communication based on the second public key and the third private key, encrypts the update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the information processing device; and a sixth processing step in which the information processing device generates the common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication, and generates the update data, and updates the program stored in the non-volatile storage unit based on the update data. [Effects of the Invention]

[0015] According to the above aspects of the present invention, data in a nonvolatile memory can be updated appropriately while ensuring security. [Brief explanation of the drawings]

[0016] [Figure 1] 1 is a configuration diagram illustrating an example of an information processing system according to an embodiment of the present invention. [Figure 2] 1 is a block diagram showing an example of the main hardware configuration of a notebook PC according to the present embodiment. [Figure 3] FIG. 2 is a functional block diagram showing an example of the functional configuration of the information processing system according to the present embodiment. [Figure 4] FIG. 10 is a diagram illustrating an example of a BIOS update process of the information processing system according to the present embodiment. [Figure 5] FIG. 1 is a first diagram illustrating a state of a BIOS update process in the information processing system according to the present embodiment. [Figure 6] FIG. 2 is a second diagram illustrating the state of the BIOS update process of the information processing system according to the present embodiment. [Figure 7] FIG. 3 is a third diagram illustrating a state of the BIOS update process of the information processing system according to the present embodiment. [Figure 8] FIG. 4 is a fourth diagram illustrating a state of the BIOS update process of the information processing system according to the present embodiment. [Figure 9] FIG. 5 is a diagram illustrating a state of the BIOS update process of the information processing system according to the present embodiment. [Figure 10] FIG. 6 is a diagram illustrating a state of the BIOS update process of the information processing system according to the present embodiment. [Figure 11] FIG. 7 is a diagram illustrating a state of the BIOS update process of the information processing system according to the present embodiment. DETAILED DESCRIPTION OF THE INVENTION

[0017] An information processing system, an information processing device, and a data communication method according to an embodiment of the present invention will be described below with reference to the drawings.

[0018] FIG. 1 is a configuration diagram showing an example of an information processing system 100 according to this embodiment. As shown in FIG. 1, the information processing system 100 includes a notebook PC 1, a host device 2, and a management server 4.

[0019] The notebook PC 1 is an information processing device that has a rewritable nonvolatile storage unit that stores a program (e.g., BIOS) for starting an OS (Operating System) and executes processing based on the OS. The notebook PC 1 is a target device in the information processing system 100, and is a device whose BIOS is to be repaired and updated when, for example, the BIOS data is corrupted and the device cannot be started. The detailed configuration of the notebook PC 1 will be described later.

[0020] The host device 2 (an example of a higher-level device) is an information processing device capable of communicating with the notebook PC 1 and the management server 4, and is used, for example, to update the BIOS of the notebook PC 1 (for example, to repair a BIOS program with corrupted data). The host device 2 is, for example, a notebook PC similar to the notebook PC 1, or a desktop PC. The host device 2 is, for example, a higher-level device used by a maintenance worker when the data in the BIOS memory 32 of the notebook PC 1 becomes corrupted and the notebook PC 1 cannot be started.

[0021] The management server 4 is, for example, a server device managed by the manufacturer (manufacturer) of the notebook PC 1, and is connectable to the host device 2 via the network NW1. The management server 4 holds a private key and a public key corresponding to each notebook PC 1. The management server 4 is used for updating the BIOS program (hereinafter sometimes referred to as the BIOS program).

[0022] Next, the main hardware configuration of the notebook PC 1 will be described with reference to FIG. FIG. 2 is a diagram showing an example of the main hardware configuration of the notebook PC 1 according to this embodiment.

[0023] As shown in FIG. 2, the notebook PC 1 includes a CPU 11, a main memory 12, a video subsystem 13, a display unit 14, a chipset 21, an SSD 22, a USB connector 23, an audio system 24, a WLAN card 25, an embedded controller 31, a BIOS memory 32, an input unit 33, and a power supply circuit 34.

[0024] In this embodiment, the CPU 11 and the chipset 21 correspond to the main control unit 10. The main control unit 10 is an example of a processor (main processor) that executes a program stored in a memory (main memory 12).

[0025] A CPU (Central Processing Unit) 11 executes various arithmetic processes under program control and controls the entire notebook PC 1. The main memory 12 is a writable memory used as a read area for the execution program of the CPU 11 or as a work area for writing processing data for the execution program. The main memory 12 is composed of, for example, multiple DRAM (Dynamic Random Access Memory) chips. The execution program includes the BIOS, the OS, various drivers for operating peripheral devices, various service / utilities, application programs, etc.

[0026] The main memory 12 is an example of a system memory that stores programs and data, and is installed in the notebook PC 1 as a DIMM in which multiple DRAMs are mounted.

[0027] Video subsystem 13 is a subsystem for realizing functions related to image display, and includes a video controller. This video controller processes drawing commands from CPU 11, writes the processed drawing information to a video memory, and also reads the drawing information from the video memory and outputs it to display unit 14 as drawing data (display data).

[0028] The display unit 14 is, for example, a liquid crystal display, and displays a display screen based on the drawing data (display data) output from the video subsystem 13.

[0029] The chipset 21 includes controllers for USB, Serial ATA (AT Attachment), SPI (Serial Peripheral Interface) bus, PCI (Peripheral Component Interconnect) bus, PCI-Express bus, and LPC (Low Pin Count) bus, and multiple devices are connected to the chipset 21. In Fig. 2, an SSD 22, a USB connector 23, an audio system 24, and a WLAN card 25 are connected to the chipset 21 as examples of devices.

[0030] An SSD (Solid State Drive) 22 (an example of a nonvolatile storage device) stores an OS, various drivers, various services / utilities, application programs, and various data.

[0031] The USB connector 23 is a connector for connecting peripheral devices that use USB, and includes, for example, a USB Type-C connector. The audio system 24 records, plays back, and outputs sound data.

[0032] A WLAN (Wireless Local Area Network) card 25 connects to a network via a wireless LAN to perform data communication.

[0033] The embedded controller 31 (an example of a sub-controller) is a one-chip microcomputer that monitors and controls various devices (peripheral devices, sensors, etc.) regardless of the system state of the notebook PC 1. The embedded controller 31 also has a power management function that controls the power supply circuit 34. The embedded controller 31 is composed of a CPU, ROM, RAM, etc. (not shown), and also has A / D input terminals for multiple channels, D / A output terminals, a timer, and digital input / output terminals. The embedded controller 31 is connected to, for example, a BIOS memory 32, an input unit 33, and the power supply circuit 34 via these input / output terminals, and the embedded controller 31 controls the operations of these devices.

[0034] The embedded controller 31 has an SPI bus and is connected to the BIOS memory 32 via the SPI bus. In this embodiment, for example, the BIOS memory 32 is connected to the embedded controller 31 by a Slave Attached Flash method, and the main control unit 10 can access the BIOS memory 32 via the embedded controller 31 connected by the eSPI bus.

[0035] The embedded controller 31 can operate when power is not supplied to the main control unit 10, can communicate with the host device 2 without going through the main control unit 10, and can access the BIOS memory 32 without going through the main control unit 10.

[0036] The BIOS memory 32 is configured by an electrically rewritable non-volatile memory such as an EEPROM (Electrically Erasable Programmable Read Only Memory) or a flash ROM. The BIOS memory 32 stores a BIOS program and the like. The BIOS memory 32 is connected to the embedded controller 31 via an SPI bus.

[0037] The input unit 33 is an input device such as a keyboard, a pointing device, or a touchpad.

[0038] The power supply circuit 34 includes, for example, a DC / DC converter, a charge / discharge unit, a battery unit, an AC / DC adapter, etc., and converts the DC voltage supplied from the AC / DC adapter or the battery unit into multiple voltages required to operate the notebook PC 1. The power supply circuit 34 also supplies power to each component of the notebook PC 1 under the control of the embedded controller 31.

[0039] Next, the functional configuration of the information processing system 100 according to this embodiment will be described with reference to FIG. Fig. 3 is a functional block diagram showing an example of the functional configuration of the information processing system 100 according to this embodiment. Note that Fig. 3 shows only the configuration related to the present invention among the various functional configurations provided in the information processing system 100.

[0040] As shown in FIG. 3, the information processing system 100 includes a notebook PC 1, a host device 2, and a management server 4. The management server 4 includes a NW communication unit 41, a server storage unit 42, and a server control unit 43.

[0041] The NW (Network) communication unit 41 is, for example, a network adapter that can be connected to a network NW1 via a wired LAN or the like, and can be connected to the host device 2 via the network NW1.

[0042] The server storage unit 42 is a storage unit realized by, for example, a RAM, an SSD, an HDD, etc., and stores various information used by the management server 4. The server storage unit 42 includes a registration information storage unit 421, an authentication information storage unit 422, a public key storage unit 423, and a common key storage unit 424.

[0043] The registration information storage unit 421 stores the registration information of each notebook PC 1 manufactured and shipped by a manufacturer. For example, the registration information storage unit 421 stores the serial number of the notebook PC 1, a public key, and a private key in association with each other.

[0044] Here, the serial number is an example of identification information for identifying the notebook PC 1. The public key and private key are a key pair (public key and private key) of public key encryption assigned to the notebook PC 1. In this embodiment, one key pair is assigned to one notebook PC PO1. The public key and private key stored in the registration information storage unit 421 are referred to as a first public key and a first private key, and the key pair of the first public key and the first private key is referred to as a first key pair.

[0045] The authentication information storage unit 422 stores information for authenticating a user of the host device 2, which will be described later. The authentication information storage unit 422 stores authentication information such as a user ID and password for logging in to the management server 4, for example.

[0046] The public key storage unit 423 stores a public key (second public key) generated by the notebook PC 1 and a public key (third public key) generated by the host device 2. The second public key and the third public key are acquired from the host device 2 via the NW communication unit 41.

[0047] The shared key storage unit 424 stores a shared secret key (first shared secret key) shared between the management server 4 and the notebook PC 1. The shared secret key (first shared secret key) stored in the shared key storage unit 424 is used to distribute a third public key, which is a public key of the host device 2, to the notebook PC 1.

[0048] The server control unit 43 is a functional unit realized by, for example, causing a CPU (not shown) to execute a program stored in the server storage unit 42. The server control unit 43 executes processes such as registration of the serial number, public key, and private key stored in the registration information storage unit 421, and securely delivering the public key (third public key) of the host device 2 to the notebook PC 1 in order to update (repair) the BIOS program stored in the BIOS memory 32 of the notebook PC 1. The server control unit 43 includes a user authentication unit 431 , a public key distribution unit 432 , and a common key generation unit 433 .

[0049] The user authentication unit 431 executes authentication processing for the user who is using the host device 2, based on the authentication information stored in the authentication information storage unit 422. The user authentication unit 431 verifies the legitimacy of the user of the host device 2, for example, by checking whether the login information (user ID and password) transmitted from the host device 2 matches the user ID and password stored in the authentication information storage unit 422. If the user ID and password transmitted from the host device 2 match the user ID and password stored in the authentication information storage unit 422, the user authentication unit 431 permits processing by the public key distribution unit 432 and the symmetric key generation unit 433, which will be described later.

[0050] The public key distribution unit 432 receives the public key (second public key) of the laptop PC 1 and the public key (third public key) of the host device 2 from the host device 2 via the NW communication unit 41, and encrypts the public key (third public key) of the host device 2 based on the first private key stored in the registration information storage unit 421 and the public key (second public key) of the laptop PC 1 to generate encrypted data (encrypted third public key). The public key distribution unit 432 stores the second and third public keys received from the host device 2 in the public key storage unit 423.

[0051] The public key distribution unit 432 encrypts the third public key using, for example, a shared secret key (first shared secret key) generated by a symmetric key generation unit 433 (described later) based on the first secret key and the second public key. The public key distribution unit 432 encrypts the third public key with the first shared secret key using, for example, AES (Advanced Encryption Standard), which is a symmetric key cipher, to generate encrypted data. Note that the public key distribution unit 432 generates encrypted data when the user authentication unit 431 confirms the authenticity of the user of the host device 2. The public key distribution unit 432 distributes the encrypted data, which is the encrypted third public key, to the notebook PC 1 via the NW communication unit 41 and the host device 2.

[0052] The common key generation unit 433 generates a shared secret key (first shared secret key) based on the first secret key and the second public key when the legitimacy of the user of the host device 2 is confirmed by the user authentication unit 431. Here, the first secret key and the second public key are, for example, a private key and a public key in elliptic curve cryptography.

[0053] The first key pair of the first public key Q1(x1, y1) and the first secret key d1 is expressed by the following formula (1).

[0054] Q1(x1,y1)=d1×G(xg,yg) ···(1)

[0055] G(xg, yg) is the base point of the elliptic curve, and the first public key Q1(x1, y1), which is a point on the elliptic curve, is generated by multiplying the base point G(xg, yg) by d1 using the first private key d1. Furthermore, the second key pair of the second public key Q2(x2, y2) and the second secret key d2 is expressed by the following formula (2): Furthermore, the third key pair of the third public key Q3(x3, y3) and the third secret key d3 is expressed by the following formula (3):

[0056] Q2(x2,y2)=d2×G(xg,yg) ···(2) Q3(x3,y3)=d3×G(xg,yg) ···(3)

[0057] The common key generation unit 433 generates a common secret key K1 (first common secret key) based on the first secret key d1 and the second public key Q2(x2, y2) using, for example, the following equation (4).

[0058] K1=d1×Q2(x2,y2) = d1 × d2 × G(xg, yg) (4)

[0059] The common key generation unit 433 may use K1 in the above formula (1) as the first shared secret key as is, or may generate the first shared secret key by further processing K1 using, for example, a hash function or a key derivation function (for example, KDF, etc.). The common key generation unit 433 stores the generated first shared secret key in the common key storage unit 424.

[0060] Furthermore, the public key distribution unit 432 encrypts the third public key using the first shared secret key generated by the common key generation unit 433. That is, the public key distribution unit 432 encrypts the third public key using the first shared secret key stored in the common key storage unit 424, for example, with AES, to generate encrypted data.

[0061] The notebook PC 1 includes a main control unit 10, an embedded controller 31, and a BIOS memory 32. The BIOS memory 32 includes a BIOS program storage unit 321. The BIOS memory 32 can be accessed from the embedded controller 31 via an SPI bus using a slave attached flash method.

[0062] In the Slave Attached Flash method, the main control unit 10 acts as a master and is connected to an embedded controller 31 as a slave, and a BIOS memory 32 is further connected as a slave to the embedded controller 31. This connection enables the embedded controller 31 to access the BIOS memory 32, and also enables the main control unit 10 to access the BIOS memory 32 via the embedded controller 31.

[0063] The BIOS program storage unit 321 stores the BIOS program. If the BIOS program data stored in the BIOS program storage unit 321 is corrupted, the main control unit 10 will be unable to start the OS. In such a case, the BIOS program storage unit 321 uses the host device 2 to write updated data for the BIOS program, repairing the BIOS program data and restoring the notebook PC 1 to a state where it can start the OS.

[0064] The main control unit 10 is a functional unit realized by causing the CPU 11 to execute programs stored in the SSD 22, the BIOS memory 32, the main memory 12, etc. The main control unit 10 executes processing based on the OS and BIOS. The main control unit 10 includes, for example, a BIOS processing unit 101 and an OS processing unit 102.

[0065] The BIOS processing unit 101 is a functional unit that is realized by causing the CPU 11 to execute a BIOS program stored in the BIOS memory 32, for example, and executes processing based on the BIOS.

[0066] The OS processing unit 102 is a functional unit that is realized by causing the CPU 11 to execute an OS program stored in the SSD 22, for example, and executes processing based on the OS.

[0067] The embedded controller 31 is a control unit that can operate when power is not supplied to the main control unit 10, and executes BIOS update processing and the like when the notebook PC 1 and the host device 2 are connected. The embedded controller 31 includes a registered public key storage unit 322 , an encryption key storage unit 311 , a common key storage unit 312 , a key pair generation unit 313 , a public key exchange unit 314 , a common key generation unit 315 , and an update processing unit 316 .

[0068] The registered public key storage unit 322 stores the first public key that is registered when the notebook PC 1 is shipped. The registered public key storage unit 322 stores the first public key that is assigned to the notebook PC 1. The registered public key storage unit 322 may store the first public key in association with the serial number of the notebook PC 1.

[0069] The registered public key storage unit 322 is stored in the area of ​​the firmware of the embedded controller 31 in the BIOS memory 32, and is realized as a storage unit that can only be accessed from the firmware of the embedded controller 31.

[0070] The encryption key storage unit 311 is a storage unit realized by, for example, a RAM (not shown) provided in the embedded controller 31, and stores a second key pair (a key pair of a second private key and a second public key) and a third public key.

[0071] The common key memory unit 312 is a memory unit realized, for example, by a RAM (not shown) provided in the embedded controller 31, and stores a second shared secret key generated by the common key generation unit 315 (described later) and a common key for data communication.

[0072] The key pair generation unit 313 is a functional unit realized, for example, by causing a CPU (not shown) included in the embedded controller 31 to execute a program stored in a ROM (not shown). The key pair generation unit 313 generates a second key pair, which is a key pair of elliptic curve cryptography, as a one-time key. The key pair generation unit 313 generates a second secret key d2 based on, for example, a random number, and generates a second public key Q2(x2, y2) using the above-mentioned equation (2). The key pair generation unit 313 stores the generated second key pair in the encryption key storage unit 311.

[0073] The shared key generation unit 315 is a functional unit that is realized, for example, by causing a CPU (not shown) included in the embedded controller 31 to execute a program stored in a ROM (not shown). The shared key generation unit 315 generates a shared secret key (second shared secret key) based on the first public key stored in the registered public key storage unit 322 and the second secret key of the second key pair stored in the encryption key storage unit 311.

[0074] The common key generation unit 315 generates the second shared secret key K2 from the first public key Q1(x1, y1) and the second secret key d2, for example, using the following equation (5).

[0075] K2=d2×Q1(x1,y1) (5)

[0076] By substituting the above-mentioned formula (1), the second shared secret key K2 becomes the same value as the first shared secret key K1, as shown in the following formula (6). The common key generation unit 315 stores the generated second shared secret key K2 in the common key storage unit 312.

[0077] K2=d2×Q1(x1,y1) =d2×d1×G(xg,yg) =K1 (6)

[0078] The method for sharing this common key (shared secret key) is the Elliptic Curve Diffie-Hellman key exchange method, and in this embodiment, the common key (shared secret key) is shared between the management server 4 and the notebook PC 1 using the Elliptic Curve Diffie-Hellman key exchange method.

[0079] Furthermore, the shared key generation unit 315 generates a shared secret key for data communication (shared secret key K4), which is a shared secret key, based on the second secret key of the second key pair stored in the encryption key storage unit 311 and the public key (third public key) of the host device 2. The shared key generation unit 315 generates the fourth shared secret key K4 from the third public key Q3(x3, y3) and the second secret key d2, for example, using the following equation (7):

[0080] K4=d2×Q3(x3,y3) =d2×d3×G(xg,yg) (7)

[0081] The common key generation unit 315 may use K4 in the above equation (7) as the common key for data communication as is, or may further process K4 using, for example, a hash function or a key derivation function (for example, KDF, etc.) to generate the common key for data communication. The common key generation unit 315 stores the generated fourth shared secret key K4 in the common key storage unit 312.

[0082] The public key exchange unit 314 is a functional unit that is realized, for example, by causing a CPU (not shown) included in the embedded controller 31 to execute a program stored in a ROM (not shown). The public key exchange unit 314 transmits the second public key of the second key pair to the host device 2.

[0083] Furthermore, the public key exchange unit 314 decrypts the encrypted data generated by the management server 4 based on the first public key and second private key stored in the encryption key storage unit 311, to generate a third public key. The public key exchange unit 314 decrypts the encrypted data received from the host device 2 using the second shared secret key K2 (=first shared secret key K1) generated by the common key generation unit 315, for example, by AES, to generate a third public key. The public key exchange unit 314 stores the generated third public key in the encryption key storage unit 311.

[0084] The update processing unit 316 is a functional unit realized, for example, by causing a CPU (not shown) included in the embedded controller 31 to execute a program stored in a ROM (not shown). The update processing unit 316 generates update data by decrypting the encrypted update data received from the host device 2 based on the common key for data communication (shared secret key K4) generated by the common key generation unit 315. The update processing unit 316 decrypts the encrypted update data, for example, by AES, using the common key for data communication (shared secret key K4) stored in the common key storage unit 312, for example, to generate update data.

[0085] Based on the decrypted update data, the update processing unit 316 updates the program stored in the BIOS memory 32. That is, the update processing unit 316 updates and restores the BIOS program stored in the BIOS program storage unit 321 of the BIOS memory 32 with the update data.

[0086] The host device 2 can be connected to the embedded controller 31 of the notebook PC 1 through a predetermined interface, such as a USB or a dedicated connector on the motherboard of the notebook PC 1. The host device 2 includes a NW communication unit 210, a device storage unit 220, and a device control unit 230.

[0087] The NW communication unit 210 is a network adapter that can be connected to the network NW1 via, for example, a wired LAN or a wireless LAN, and can be connected to the management server 4 via the network NW1.

[0088] The device storage unit 220 is a storage unit realized by, for example, a RAM, an SSD, an HDD, or the like, and stores various information used by the host device 2. The device storage unit 220 includes an encryption key storage unit 221, a common key storage unit 222, and an update program storage unit 223.

[0089] The encryption key storage unit 221 is a storage unit realized by, for example, a RAM (not shown) provided in the host device 2, and stores a third key pair (a key pair of a third private key and a third public key) and a second public key.

[0090] The shared key storage unit 222 is a storage unit realized by, for example, a RAM (not shown) provided in the host device 2, and stores a shared key for data communication (third shared secret key) generated by the shared key generation unit 233 (described later).

[0091] The update program storage unit 223 is a storage unit realized by, for example, RAM, SSD, HDD, etc., and stores update data, which is image data of the BIOS program. The update data stored in the update program storage unit 223 is used to restore the data of the BIOS program.

[0092] The device control unit 230 is a functional unit that is realized, for example, by causing a CPU (not shown) to execute a program stored in the device storage unit 220. The device control unit 230 executes various processes that the host device 2 executes.

[0093] The device control unit 230 controls, for example, a BIOS update process between the device control unit 230 and the notebook PC 1. The device control unit 230 executes a BIOS update process (a BIOS program update process) for the notebook PC 1 via the embedded controller 31. The device control unit 230 includes a key pair generation unit 231 , a public key exchange unit 232 , a common key generation unit 233 , and an update processing unit 234 .

[0094] The key pair generation unit 231 generates a third key pair, which is a key pair of elliptic curve cryptography, as a one-time key. The key pair generation unit 231 generates a third secret key d3 based on, for example, a random number, and generates a third public key Q3(x3, y3) using the above-mentioned equation (3). The key pair generation unit 231 stores the generated third key pair in the encryption key storage unit 221.

[0095] The common key generation unit 233 generates a common key for data communication (shared secret key K3) based on the second public key received from the notebook PC 1 and the third secret key of the third key pair stored in the encryption key storage unit 221.

[0096] The common key generation unit 233 generates the third shared secret key K3 from the second public key Q2(x2, y2) and the third secret key d3, for example, using the following equation (8).

[0097] K3=d3×Q2(x2,y2) =d3×d2×G(xg,yg) (8)

[0098] The common key for data communication (shared secret key K4) generated by the notebook PC 1 and the common key for data communication (shared secret key K3) generated by the common key generating unit 233 have the same value.

[0099] The common key generation unit 233 may use K3 in the above equation (8) as the common key for data communication as is, or may generate the common key for data communication by further processing K3 using, for example, a hash function or a key derivation function (for example, KDF, etc.). The common key generation unit 233 stores the generated third shared secret key K3 in the common key storage unit 222.

[0100] In this manner, in this embodiment, the host device 2 and the notebook PC 1 share a common key (a common key for data communication) using the elliptic curve Diffie-Hellman key exchange technique.

[0101] The public key exchange unit 232 transmits the third public key and the second public key of the third key pair to the management server 4. The public key exchange unit 232 stores the second public key received from the notebook PC 1 in the encryption key storage unit 221, and transmits the second public key and the third public key stored in the encryption key storage unit 221 to the management server 4 via the NW communication unit 210.

[0102] Furthermore, the public key exchange unit 232 receives encrypted data (encrypted third public key) via the NW communication unit 210, and transmits the received encrypted data (encrypted third public key) to the notebook PC 1.

[0103] The update processing unit 234 generates encrypted update data by encrypting the update data based on the common key for data communication (shared secret key K3) generated by the common key generation unit 233. The update processing unit 234 uses the common key for data communication (shared secret key K3) stored in the common key storage unit 222 to decrypt the update data stored in the update program storage unit 223 by, for example, AES, to generate encrypted update data. The update processing unit 234 transmits the generated encrypted update data to the notebook PC 1 to restore the data of the BIOS program.

[0104] The key pair generation unit 231, the public key exchange unit 232, the common key generation unit 233, and the update processing unit 234 may be realized, for example, by causing a CPU (not shown) to execute a dedicated application for repairing and updating the BIOS program.

[0105] Next, the operation of the information processing system 100 according to this embodiment will be described with reference to the drawings. Fig. 4 is a diagram showing an example of the BIOS update process of the information processing system 100 according to this embodiment. Figs. 5 to 11 are diagrams for explaining each state of the BIOS update process of the information processing system according to this embodiment.

[0106] 4, the host device 2 first executes a login process to log in to the management server 4 (step S101). The device control unit 230 of the host device 2 executes the login process by transmitting a user ID and password corresponding to the user of the host device 2 to the management server 4 via the NW communication unit 210. The user ID and password are acquired from the user, for example, via an input unit (e.g., a keyboard, etc.) not shown.

[0107] In addition, the user authentication unit 431 of the management server 4 verifies the legitimacy of the user of the host device 2, for example, by checking whether the login information (user ID and password) sent from the host device 2 matches the user ID and password stored in the authentication information storage unit 422.

[0108] Next, the host device 2 executes a connection process with the notebook PC 1 (step S102). The device control unit 230 of the host device 2 activates a predetermined interface connected to the notebook PC 1, thereby enabling communication between the host device 2 and the notebook PC 1 (embedded controller 31).

[0109] Next, the host device 2 generates a third key pair (a third public key and a third secret key) (step S103). The key pair generation unit 231 of the host device 2 generates the third key pair, which is a key pair of elliptic curve cryptography, as a one-time key. The key pair generation unit 231 generates a third secret key d3 based on, for example, a random number, and generates a third public key Q3(x3, y3) using the above-mentioned equation (3). The key pair generation unit 231 stores the generated third key pair in the encryption key storage unit 221.

[0110] Next, the embedded controller 31 of the notebook PC 1 generates a second key pair (a second public key and a second secret key) (step S104). The key pair generation unit 313 of the embedded controller 31 generates the second key pair, which is a key pair of elliptic curve cryptography, as a one-time key. The key pair generation unit 313 generates a second secret key d2 based on, for example, a random number, and generates a second public key Q2(x2, y2) using the above-mentioned equation (2). The key pair generation unit 313 stores the generated second key pair in the encryption key storage unit 311.

[0111] 5 shows the state of the information processing system 100 after the processing up to step S104 has been completed. As shown in Fig. 5, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, and the second public key, and the host device 2 holds the third secret key and the third public key. Furthermore, the management server 4 holds at least the first secret key.

[0112] 4, next, the embedded controller 31 transmits the second public key to the host device 2 (step S105). The public key exchange unit 314 of the embedded controller 31 transmits the second public key stored in the encryption key storage unit 311 to the host device 2.

[0113] Next, the host device 2 transmits the second public key and the third public key to the management server 4 (step S106). The public key exchange unit 232 of the host device 2 stores the second public key received from the embedded controller 31 in the encryption key storage unit 221, and transmits the second public key and the third public key stored in the encryption key storage unit 221 to the management server 4 via the NW communication unit 210. As a result, the server control unit 43 of the management server 4 stores the received second public key and third public key in the public key storage unit 423.

[0114] 6 shows the state of the information processing system 100 after the processing up to step S106 has been completed. As shown in Fig. 6, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, and the second public key, and the host device 2 holds the third secret key, the third public key, and the second public key. In addition, the management server 4 holds the first secret key, the second public key, and the third public key.

[0115] Returning to the explanation of FIG. 4 again, next, the management server 4 determines whether the user authentication is successful (whether the user is legitimate) (step S107). The public key distribution unit 432 of the management server 4 determines whether the legitimacy of the user of the host device 2 has been confirmed by the user authentication unit 431. If the legitimacy of the user of the host device 2 has been confirmed (step S107: YES), the public key distribution unit 432 proceeds to step S108. On the other hand, if the legitimacy of the user of the host device 2 has not been confirmed (step S107: NO), the public key distribution unit 432 returns the process to step S107.

[0116] In step S108, the management server 4 generates a shared secret key from the first private key and the second public key. The common key generation unit 433 of the management server 4 generates the shared secret key K1 (first shared secret key) using the above-mentioned formula (4). The common key generation unit 433 stores the generated shared secret key K1 (first shared secret key) in the common key storage unit 424.

[0117] Next, the public key distribution unit 432 of the management server 4 encrypts the third public key with the shared secret key (step S109). The public key distribution unit 432 encrypts the third public key with the shared secret key K1 (first shared secret key) using, for example, AES, which is a common key cipher, to generate encrypted data.

[0118] 7 shows the state of the information processing system 100 after the processing up to step S109 has been completed. As shown in Fig. 7, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, and the second public key, and the host device 2 holds the third secret key, the third public key, and the second public key. In addition, the management server 4 holds encrypted data of the first secret key, the second public key, the third public key, the first shared secret key, and the third public key.

[0119] 4, next, the public key distribution unit 432 of the management server 4 transmits the encrypted data of the third public key to the host device 2 (step S110). The public key distribution unit 432 transmits the encrypted data of the third public key to the host device 2 via the NW communication unit 41.

[0120] Next, the public key exchange unit 232 of the host device 2 transmits the encrypted data of the received third public key to the embedded controller 31 via the NW communication unit 210 (step S111).

[0121] Next, the embedded controller 31 generates a shared secret key from the first public key and the second secret key (step S112). The shared key generation unit 315 of the embedded controller 31 generates the shared secret key K2 (second shared secret key) using the above-mentioned equation (5). The shared key generation unit 315 stores the generated shared secret key K2 (second shared secret key) in the shared key storage unit 312.

[0122] Next, the public key exchange unit 314 of the embedded controller 31 decrypts the encrypted data of the third public key with the shared secret key (step S113). The public key exchange unit 314 decrypts the encrypted data of the third public key with the shared secret key K2 (second shared secret key) using, for example, a common key encryption such as AES, to generate the third public key. The public key exchange unit 314 stores the generated third public key in the encryption key storage unit 311.

[0123] 8 shows the state of the information processing system 100 after the processing up to step S113 has been completed. As shown in Fig. 8, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, the second public key, the second shared secret key, encrypted data of the third public key, and the third public key, and the host device 2 holds the third secret key, the third public key, and the second public key. In addition, the management server 4 holds the first secret key, the second public key, the third public key, the first shared secret key, and encrypted data of the third public key. Furthermore, the first shared secret key and the second shared secret key have the same value, as shown in the above-mentioned equation (6).

[0124] 4, next, the common key generation unit 315 of the embedded controller 31 generates a common key for data communication from the second secret key and the third public key (step S114). The common key generation unit 315 generates a common key for data communication (fourth shared secret key) using the above-mentioned equation (7). The common key generation unit 315 stores the generated common key for data communication in the common key storage unit 312.

[0125] Next, the shared key generation unit 233 of the host device 2 generates a shared key for data communication from the second public key and the third secret key (step S115). The shared key generation unit 233 generates a shared key for data communication (third shared secret key) using the above-mentioned equation (8). The shared key generation unit 233 stores the generated shared key for data communication in the shared key storage unit 222.

[0126] 9 shows the state of the information processing system 100 after the processing up to step S115 has been completed. As shown in FIG. 9, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, the second public key, the second shared secret key, encrypted data of the third public key, the third public key, and a common key for data communication (fourth shared secret key K4), and the host device 2 holds the third secret key, the third public key, the second public key, and a common key for data communication (third shared secret key K3). In addition, the management server 4 holds the first secret key, the second public key, the third public key, the first shared secret key, and encrypted data of the third public key. Furthermore, the third shared secret key K3 and the fourth shared secret key K4 have the same value, as shown in the following equation (9).

[0127] K3=d3×Q2(x2,y2) =d3×d2×G(xg,yg) =d2×Q3(x3,y3) =K4 (9)

[0128] 4, next, the update processing unit 234 of the host device 2 encrypts the update data with a common key for data communication (step S116). The update processing unit 234 encrypts the update data stored in the update program storage unit 223 with the common key for data communication stored in the common key storage unit 222, for example, using AES, which is a common key encryption, to generate encrypted update data (encrypted data of the update data).

[0129] 10 shows the state of the information processing system 100 after the processing up to step S116 has been completed. As shown in Fig. 10, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, the second public key, the second shared secret key, encrypted data of the third public key, the third public key, and the common key for data communication, and the host device 2 holds the third secret key, the third public key, the second public key, the common key for data communication, and encrypted data of the update data. In addition, the management server 4 holds the first secret key, the second public key, the third public key, the first shared secret key, and encrypted data of the third public key.

[0130] Returning to the explanation of FIG. 4, next, the update processing unit 234 of the host device 2 transmits encrypted data of the update data to the embedded controller 31 (step S117).

[0131] Next, the update processing unit 316 of the embedded controller 31 decrypts the encrypted data of the update data with the common key for data communication (step S118). The update processing unit 316 decrypts the encrypted data of the update data received from the host device 2 with the common key for data communication stored in the common key storage unit 312, for example, using a common key encryption such as AES, to generate update data.

[0132] 11 shows the state of the information processing system 100 after the processing up to step S118 has been completed. As shown in Fig. 11, in this state, the notebook PC 1 (embedded controller 31) holds the first public key, the second secret key, the second public key, the second shared secret key, encrypted data of the third public key, the third public key, the common key for data communication, encrypted data of the update data, and the update data, while the host device 2 holds the third secret key, the third public key, the second public key, the common key for data communication, and encrypted data of the update data. Furthermore, the management server 4 holds the encrypted data of the first secret key, the second public key, the third public key, the first shared secret key, and the third public key.

[0133] 4, next, the update processing unit 316 of the embedded controller 31 stores the decrypted update data in the BIOS memory 32 (step S119). The update processing unit 316 stores the update data in the BIOS program storage unit 321, and restores the BIOS program.

[0134] 4, the processes of steps S104 and S105 correspond to a first process by the notebook PC 1, and the processes of steps S103 and S106 correspond to a second process by the host device 2. Furthermore, the processes from step S107 to step S111 correspond to a third process by the management server 4, and the process of step S112 corresponds to a fourth process by the notebook PC 1.

[0135] The processes from step S115 to step S117 correspond to a fifth process by the host device 2, and the processes from step S112 to step S114 and steps S118 and S119 correspond to a sixth process by the notebook PC 1.

[0136] As described above, the information processing system 100 according to this embodiment includes the notebook PC 1 (information processing device), the management server 4 (server device), and the host device 2 (host device). The notebook PC 1 (information processing device) has a rewritable BIOS memory 32 (non-volatile storage unit) that stores a program for booting the OS, and executes processes based on the OS. The management server 4 (server device) manages the notebook PC 1. The host device 2 (host device) is capable of communicating with the notebook PC 1 and the management server 4, and transmits program update data to the notebook PC 1. The notebook PC 1 includes a registered public key storage unit 322 that stores a first public key of a first key pair corresponding to the notebook PC 1, the first public key being a first private key held by the management server 4. The information processing system 100 also executes a first process, a second process, a third process, a fourth process, a fifth process, and a sixth process. In a first process, the laptop PC 1 generates a second key pair consisting of a second public key and a second secret key, and transmits the second public key of the second key pair to the host device 2. In a second process, the host device 2 generates a third key pair consisting of a third public key and a third secret key, and transmits the third public key and the second public key of the third key pair to the management server 4. In a third process, if the legitimacy of the user of the host device 2 is confirmed, the management server 4 generates encrypted data by encrypting the third public key based on the first secret key and the second public key, and transmits the encrypted data to the laptop PC 1 via the host device 2. In a fourth process, the laptop PC 1 decrypts the encrypted data based on the first public key and the second secret key, and generates a third public key. In a fifth process, the host device 2 generates a common key for data communication based on the second public key and the third secret key, encrypts update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the laptop PC 1. In the sixth process, the notebook PC 1 generates a common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication to generate update data, and updates the program stored in the BIOS memory 32 based on the update data.

[0137] As a result, in the information processing system 100 according to this embodiment, when the legitimacy of the user of the host device 2 is confirmed through the first to fourth processes described above, the notebook PC 1 can obtain the public key (third public key) of the host device 2, thereby preventing an unauthorized user (and the host device 2) from updating the BIOS program. Furthermore, the information processing system 100 according to this embodiment can execute the BIOS program update process more safely through the fifth and sixth processes. Therefore, the information processing system 100 according to this embodiment can appropriately update the data in the nonvolatile memory (BIOS memory 32) while ensuring security.

[0138] Furthermore, the information processing system 100 according to this embodiment can safely restore the data in the nonvolatile memory (BIOS memory 32) by appropriately updating the data in the nonvolatile memory (BIOS memory 32), even if the data in the nonvolatile memory (BIOS memory 32) is corrupted and the notebook PC 1 is unable to start up, for example.

[0139] In this embodiment, in the third process, the management server 4 generates a first shared secret key based on the first private key and the second public key, and encrypts the third public key based on the generated first shared secret key to generate encrypted data. In the fourth process, the notebook PC 1 generates a second shared secret key based on the first public key and the second private key, and decrypts the encrypted data based on the generated second shared secret key to generate the third public key.

[0140] As a result, the information processing system 100 according to this embodiment can share a common key (first shared secret key = second shared secret key) between the management server 4 and the notebook PC 1, and by encrypting the third public key using the common key, the third public key can be transmitted to the notebook PC 1 more securely.

[0141] In this embodiment, the first key pair, the second key pair, and the third key pair are key pairs of a public key and a private key in elliptic curve cryptography. The first shared secret key and the second shared secret key are identical common keys, and the common key is shared between the management server 4 and the notebook PC 1 using the elliptic curve Diffie-Hellman key exchange technique. Also, the common key for data communication is shared between the host device 2 and the notebook PC 1 using the elliptic curve Diffie-Hellman key exchange technique.

[0142] As a result, the information processing system 100 according to this embodiment can share a common key more safely between the management server 4 and the notebook PC 1, and between the management server 4 and the notebook PC 1, and can share a common key for data communication more safely between the host device 2 and the notebook PC 1. Therefore, the information processing system 100 according to this embodiment can appropriately update data in the nonvolatile memory (BIOS memory 32) while ensuring security.

[0143] Furthermore, in this embodiment, the management server 4 encrypts the third public key using a common key cipher (for example, AES), and the host device 2 encrypts the update data using a common key cipher (for example, AES).

[0144] As a result, the information processing system 100 according to this embodiment can safely transmit the third public key and update data to the notebook PC 1 while reducing the processing load of the encryption process.

[0145] In this embodiment, the notebook PC 1 includes a main control unit 10 and an embedded controller 31 (sub-control unit). The main control unit 10 starts up the OS and executes processes based on the OS by executing a program stored in a BIOS memory 32. The embedded controller 31 (sub-control unit) can communicate with the host device 2 and can operate independently of the main control unit 10, and executes first, fourth, and sixth processes.

[0146] As a result, the information processing system 100 according to this embodiment can execute the update process of the BIOS program without using the main control unit 10 by using the embedded controller 31 (sub-control unit).

[0147] In this embodiment, the programs stored in the BIOS memory 32 include a BIOS program. The BIOS memory 32 is a flash memory having an SPI bus. The embedded controller 31 updates the BIOS program in the flash memory using the SPI bus.

[0148] As a result, the information processing system 100 according to this embodiment can appropriately update (restore) the BIOS program from the embedded controller 31 using the SPI bus.

[0149] The notebook PC 1 (information processing device) according to this embodiment is the notebook PC 1 of the information processing system 100, which includes the notebook PC 1, a management server 4, and a host device 2, and includes a registered public key storage unit 322, a key pair generation unit 313, a public key exchange unit 314, a symmetric key generation unit 315, and an update processing unit 316. The management server 4 manages the notebook PC 1. The host device 2 is capable of communicating with the notebook PC 1 and the management server 4 and transmits program update data to the notebook PC 1. The notebook PC 1 has a rewritable BIOS memory 32 that stores a program for starting the OS, and executes processes based on the OS. The registered public key storage unit 322 stores the first public key of a first key pair, which is a first public key and a first private key held by the management server 4 and corresponds to the notebook PC 1. The key pair generation unit 313 generates a second key pair, which is a second public key and a second private key. After transmitting the second public key of the second key pair to the host device 2, the public key exchange unit 314 acquires encrypted data generated by the management server 4 by encrypting the third public key of the third key pair, which is the third public key and third private key generated by the host device 2, based on the first private key and second public key, and decrypts the encrypted data based on the first public key and second private key stored in the registered public key storage unit 322 to generate a third public key. The shared key generation unit 315 generates a shared key for data communication based on the third public key and second private key decrypted by the public key exchange unit 314. The update processing unit 316 decrypts the encrypted update data received from the host device 2 based on the shared key for data communication generated by the shared key generation unit 315, and updates the program stored in the BIOS memory 32 based on the decrypted update data.

[0150] As a result, the notebook PC 1 (information processing device) according to this embodiment can achieve the same effects as the information processing system 100 described above, and can appropriately update data in the nonvolatile memory (BIOS memory 32) while ensuring security.

[0151] A data communication method according to this embodiment is a data communication method for an information processing system 100 including: a notebook PC 1 having a rewritable BIOS memory 32 that stores a program for booting the OS and that executes processes based on the OS; a management server 4 that manages the notebook PC 1; and a host device 2 that can communicate with the notebook PC 1 and the management server 4 and transmits program update data to the notebook PC 1. The data communication method includes first, second, third, fourth, fifth, and sixth process steps. The notebook PC 1 includes a registered public key storage unit 322 that stores a first public key of a first key pair corresponding to the notebook PC 1, the first key pair being a first public key and a first private key held by the management server 4. In the first process step, the notebook PC 1 generates a second key pair being a second public key and a second private key, and transmits the second public key of the second key pair to the host device 2. In a second processing step, the host device 2 generates a third key pair consisting of a third public key and a third secret key, and transmits the third public key and the second public key of the third key pair to the management server 4. In a third processing step, if the legitimacy of the user of the host device 2 is confirmed, the management server 4 generates encrypted data by encrypting the third public key based on the first secret key and the second public key, and transmits the encrypted data to the notebook PC 1 via the host device 2. In a fourth processing step, the notebook PC 1 decrypts the encrypted data based on the first public key and the second secret key to generate a third public key. In a fifth processing step, the host device 2 generates a common key for data communication based on the second public key and the third secret key, encrypts update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the notebook PC 1. In the sixth processing step, the notebook PC 1 generates a common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication to generate update data, and updates the program stored in the BIOS memory 32 based on the update data.

[0152] As a result, the data communication method according to this embodiment has the same effect as the information processing system 100 described above, and can appropriately update data in the nonvolatile memory (BIOS memory 32) while ensuring security.

[0153] The present invention is not limited to the above-described embodiments, and can be modified within the scope of the present invention. For example, in the above embodiment, the information processing device is described as a notebook PC 1, but the information processing device is not limited to this and may be, for example, another information processing device such as a tablet terminal device, a desktop PC, etc. Similarly, the host device 2 may be, in addition to a notebook PC, another information processing device such as a tablet terminal device, a desktop PC, etc.

[0154] In addition, in the above embodiment, an example was described in which the key pair of a public key and a private key is a key pair of elliptic curve cryptography, but this is not limited to this and the key pair may be a key pair of other public key cryptography.

[0155] In addition, in the above embodiment, an example was described in which the encryption and decryption of the third public key and update data is performed using AES, but this is not limited to this and other common key encryption or other public key encryption may also be used.

[0156] In addition, in the above embodiment, an example was described in which encrypted encrypted data of the third public key and update data was sent to the notebook PC 1, but this is not limited to this, and authentication information such as a digital signature generated from the third public key or update data using cryptographic processing may be added to the third public key and update data and sent to the notebook PC 1.

[0157] Furthermore, in the above embodiment, an example has been described in which the management server 4 encrypts the third public key using a shared secret key and transmits it to the notebook PC 1, but the present invention is not limited to this, and the management server 4 may encrypt the third public key using, for example, public key encryption using the first private key and the second public key and transmit it to the notebook PC 1. In this case, the notebook PC 1 decrypts the encrypted data using public key encryption using the second private key and the first public key, and generates the third public key.

[0158] In the above embodiment, an example has been described in which the elliptic curve Diffie-Hellman key exchange technique is used, but the present invention is not limited to this. For example, in the case of other public key cryptography such as RSA cryptography, a common secret key may be shared using the normal Diffie-Hellman key exchange technique.

[0159] Each component of the information processing system 100 described above has an internal computer system. A program for implementing the functions of each component of the information processing system 100 described above may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read into a computer system and executed to perform processing in each component of the notebook PC 1 described above. Here, "reading a program recorded on a recording medium into a computer system and executing it" includes installing the program into a computer system. The term "computer system" here includes hardware such as an OS and peripheral devices. Furthermore, a "computer system" may include multiple computer devices connected via a network, including communication lines such as the Internet, WAN, LAN, and dedicated lines. Furthermore, a "computer-readable recording medium" refers to portable media such as flexible disks, optical magnetic disks, ROMs, and CD-ROMs, as well as storage devices such as hard disks built into a computer system. Thus, the recording medium storing the program may be a non-transitory recording medium such as a CD-ROM.

[0160] The recording medium also includes internal or external recording media accessible from a distribution server for distributing the program. The program may be divided into multiple parts, downloaded at different times, and then combined by each component of the information processing system 100, or each divided program may be distributed by a different distribution server. Furthermore, the term "computer-readable recording medium" also includes a medium that stores a program for a certain period of time, such as volatile memory (RAM) within a computer system that serves as a server or client when a program is transmitted over a network. The program may also be a medium that realizes part of the above-described functions. Furthermore, the program may be a so-called differential file (differential program) that can realize the above-described functions in combination with a program already stored in the computer system.

[0161] Furthermore, some or all of the above-described functions may be realized as an integrated circuit such as an LSI (Large Scale Integration). Each of the above-described functions may be individually implemented as a processor, or some or all of the functions may be integrated into a processor. Furthermore, the integrated circuit implementation method is not limited to LSI, and may be implemented using a dedicated circuit or a general-purpose processor. Furthermore, if an integrated circuit implementation technology that can replace LSI emerges due to advances in semiconductor technology, an integrated circuit based on that technology may be used. [Explanation of symbols]

[0162] 1 laptop 2. Host Device 4 Management Server 10 Main control unit 11 CPU 12. Main memory 13 Video Subsystem 14 Display section 21 Chipset 22 SSD 23 USB connector 24 Audio System 25 WLAN cards 31 Embedded Controller (EC) 32 BIOS memory 33 Input section 34 Power supply circuit 41, 210 Network Communications Department 42 Server storage unit 43 Server control unit 100 Information Processing Systems 101 BIOS processing unit 102 OS processing unit 220 Device storage section 221, 311 Encryption key storage unit 222, 312, 424 Common key storage 223 Update Program Storage Unit 230 Device Control Unit 231, 313 Key pair generation unit 232, 314 Public Key Exchange 233, 315, 433 Common key generation unit 234, 316 Update processing section 321 BIOS program storage section 322 Registered public key storage unit 421 Registration information storage unit 422 Authentication information storage unit 423 Public Key Storage Unit 431 User Authentication Unit 432 Public Key Distribution Department NW1 Network

Claims

1. an information processing device having a rewritable nonvolatile storage unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; a host device that can communicate with the information processing device and the server device and transmits update data for the program to the information processing device; Equipped with the information processing device includes a registered public key storage unit that stores a first key pair, which is a first public key and a first private key held by the server device, and which stores the first public key of the first key pair corresponding to the information processing device; a first process in which the information processing device generates a second key pair including a second public key and a second private key, and transmits the second public key of the second key pair to the higher-level device; a second process in which the higher-level device generates a third key pair including a third public key and a third private key, and transmits the third public key and the second public key of the third key pair to the server device; a third process in which, when the authenticity of the user of the higher-level device is confirmed, the server device generates encrypted data by encrypting the third public key based on the first private key and the second public key, and transmits the encrypted data to the information processing device via the higher-level device; a fourth process in which the information processing device decrypts the encrypted data based on the first public key and the second private key to generate the third public key; a fifth process in which the higher-level device generates a common key for data communication based on the second public key and the third private key, encrypts the update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the information processing device; a sixth process in which the information processing device generates the common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication to generate the update data, and updates the program stored in the nonvolatile storage unit based on the update data; An information processing system that executes the above.

2. In the third process, the server device generates a first shared secret key based on the first private key and the second public key, and encrypts the third public key based on the generated first shared secret key to generate the encrypted data; In the fourth process, the information processing device generates a second shared secret key based on the first public key and the second secret key, and decrypts the encrypted data based on the generated second shared secret key to generate the third public key. The information processing system according to claim 1 .

3. the first key pair, the second key pair, and the third key pair are key pairs of a public key and a private key in elliptic curve cryptography, the first shared secret key and the second shared secret key are equal common keys, and the common key is shared between the server device and the information processing device using an Elliptic Curve Diffie-Hellman key exchange technique; The elliptic curve Diffie-Hellman key exchange technique is used to share the common key for data communication between the host device and the information processing device. The information processing system according to claim 2 .

4. the server device encrypts the third public key using a common key cipher; The higher-level device encrypts the update data using a common key cipher. The information processing system according to claim 3 .

5. The information processing device includes: a main control unit that starts up the OS and executes processing based on the OS by executing the program stored in the nonvolatile storage unit; a sub-controller that can communicate with the higher-level device and can operate independently of the main controller, and that executes the first process, the fourth process, and the sixth process; The information processing system according to claim 1 , further comprising:

6. The programs include a BIOS (Basic Input Output System) program, the nonvolatile storage unit is a flash memory having an SPI (Serial Peripheral Interface) bus, The sub-controller updates the BIOS program in the flash memory using the SPI bus. The information processing system according to claim 5 .

7. An information processing device of an information processing system including: an information processing device having a rewritable nonvolatile storage unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; and a host device that is capable of communicating with the information processing device and the server device and that transmits update data for the program to the information processing device, a registered public key storage unit configured to store a first key pair, which is a first public key and a first private key held by the server device, and which stores the first public key of the first key pair corresponding to the information processing device; a key pair generation unit that generates a second key pair including a second public key and a second private key; a public key exchange unit that, after transmitting the second public key of the second key pair to the higher-level device, acquires encrypted data generated by the server device by encrypting the third public key of the third key pair, which is the third public key and third private key generated by the higher-level device, based on the first private key and the second public key, and decrypts the encrypted data based on the first public key and the second private key stored in the registered public key storage unit to generate the third public key; a common key generation unit that generates a common key for data communication based on the third public key and the second private key decrypted by the public key exchange unit; an update processing unit that decrypts the encrypted update data received from the higher-level device based on the common key for data communication generated by the common key generation unit, and updates the program stored in the non-volatile storage unit based on the decrypted update data; An information processing device comprising:

8. A data communication method for an information processing system including: an information processing device having a rewritable nonvolatile storage unit that stores a program for starting an OS (Operating System), and that executes processing based on the OS; a server device that manages the information processing device; and a host device that is capable of communicating with the information processing device and the server device and that transmits update data for the program to the information processing device, the information processing device includes a registered public key storage unit that stores a first key pair, which is a first public key and a first private key held by the server device, and which stores the first public key of the first key pair corresponding to the information processing device; a first processing step in which the information processing device generates a second key pair including a second public key and a second private key, and transmits the second public key of the second key pair to the higher-level device; a second processing step in which the higher-level device generates a third key pair including a third public key and a third private key, and transmits the third public key and the second public key of the third key pair to the server device; a third processing step in which, when the authenticity of the user of the higher-level device is confirmed, the server device generates encrypted data by encrypting the third public key based on the first private key and the second public key, and transmits the encrypted data to the information processing device via the higher-level device; a fourth processing step in which the information processing device decrypts the encrypted data based on the first public key and the second private key to generate the third public key; a fifth processing step in which the higher-level device generates a common key for data communication based on the second public key and the third private key, encrypts the update data based on the common key for data communication, generates encrypted update data, and transmits the encrypted update data to the information processing device; a sixth processing step in which the information processing device generates the common key for data communication based on the second private key and the third public key, decrypts the encrypted update data based on the common key for data communication to generate the update data, and updates the program stored in the non-volatile storage unit based on the update data; A data communication method including:

Citation Information

Patent Citations

  • Application program upgrading method and system

    CN103873440A

  • Authentication system

    JP2020198483A

  • Programming vehicle modules from remote devices and related methods and systems

    US20150121071A1

  • Data provision system, data security device, data provision method, and computer program

    WO2018029893A1

  • Data communication system, center device, master device, and secret information exchange program

    WO2023053622A1