WO2023053621A1 - データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム - Google Patents

データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム Download PDF

Info

Publication number
WO2023053621A1
WO2023053621A1 PCT/JP2022/024875 JP2022024875W WO2023053621A1 WO 2023053621 A1 WO2023053621 A1 WO 2023053621A1 JP 2022024875 W JP2022024875 W JP 2022024875W WO 2023053621 A1 WO2023053621 A1 WO 2023053621A1
Authority
WO
WIPO (PCT)
Prior art keywords
ota
key
cdn
encrypted
common key
Prior art date
Application number
PCT/JP2022/024875
Other languages
English (en)
French (fr)
Inventor
英朗 吉見
真晃 安部
古都 東松
Original Assignee
株式会社デンソー
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社デンソー filed Critical 株式会社デンソー
Priority to CN202280065002.1A priority Critical patent/CN118140454A/zh
Priority to JP2023550370A priority patent/JPWO2023053621A1/ja
Priority to DE112022004670.8T priority patent/DE112022004670T5/de
Publication of WO2023053621A1 publication Critical patent/WO2023053621A1/ja
Priority to US18/618,840 priority patent/US20240267221A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/84Vehicles

Definitions

  • the present disclosure relates to a data communication system, center device, master device, encryption program and decryption program.
  • Patent Document 1 discloses a technique for distributing an update package in which update data is packaged from a center device to a master device on the vehicle side by OTA (Over The Air) technology.
  • the master device is a device that manages the reprogramming of application programs in the ECU.
  • the update data delivered from the center device to the master device includes, for example, application programs and data such as automatic driving, advanced driver-assistance systems (ADAS), and multimedia.
  • ADAS advanced driver-assistance systems
  • the decryption process of the advanced encryption standard (hereinafter abbreviated as AES (Advanced Encryption Standard)) has become a bottleneck. Therefore, if a cipher block chaining mode of a general block cipher (hereinafter referred to as CBC mode (Cipher Block Chaining Mode)) is adopted as the encryption method and decryption method, the throughput is expected to be about 10 Mbps.
  • CBC mode Cipher Block Chaining Mode
  • the data size is 20 GB, it takes a little less than 5 hours to download the update package. If the time required to download the update package becomes longer like this, depending on the usage scene, the driver may be forced to wait longer than necessary while the update package is being downloaded, which may adversely affect the UX of the driver.
  • the present disclosure aims to appropriately increase the throughput when the master device downloads update data from the center device.
  • a center device that distributes update data to a master device and a master device that installs the update data downloaded from the center device in an electronic control device to be reprogrammed are provided.
  • a counter (CTR) mode was adopted as an encryption method and a decryption method for update data.
  • a configuration that uses the CBC mode as an encryption method and decryption method has disadvantages such as the inability to prepare for encryption and decryption, and the inability to perform encryption parallel processing.
  • the configuration employing the CTR mode as the encryption method and the decryption method has merits of improving throughput, such as being able to prepare for encryption and decryption and parallel processing of encryption and decryption.
  • the CTR mode which has the merit of contributing to the above-described throughput improvement, is adopted. Throughput can be appropriately increased when the master device downloads update data from the center device.
  • a center device that distributes update data to a master device and a master device that installs the update data downloaded from the center device in an electronic control device to be reprogrammed are provided.
  • An output feedback (OFB) mode was adopted as an encryption method and a decryption method for update data.
  • a configuration that uses the CBC mode as an encryption method and decryption method has disadvantages such as the inability to prepare for encryption and decryption, and the inability to perform encryption parallel processing.
  • the configuration employing the OFB mode as the encryption method and the decryption method has the merit of contributing to an improvement in throughput, such as being able to prepare in advance for encryption and decryption.
  • the OFB mode which has the merit of contributing to the above-described improvement in throughput, is adopted as opposed to the conventional one that adopts the CBC mode. Throughput can be appropriately increased when the master device downloads update data from the center device.
  • FIG. 1 is a diagram showing the flow of processing in the entire system of the first embodiment
  • FIG. 2 is a functional block diagram of the OTA Center and OTA Master
  • FIG. 3 is a diagram for explaining encryption processing in CTR mode.
  • FIG. 4 is a diagram for explaining decoding processing in CTR mode.
  • FIG. 5 is a diagram showing a comparison of the merits and demerits of the CBC mode and the CTR mode
  • FIG. 6 is a diagram showing a comparison of throughput between CBC mode and CTR mode
  • FIG. 7 is a diagram for explaining decoding processing in CBC mode
  • FIG. 1 is a diagram showing the flow of processing in the entire system of the first embodiment
  • FIG. 2 is a functional block diagram of the OTA Center and OTA Master
  • FIG. 3 is a diagram for explaining encryption processing in CTR mode.
  • FIG. 4 is a diagram for explaining decoding processing in CTR mode.
  • FIG. 5 is a diagram showing a comparison of the merits and demerits of the CBC
  • FIG. 8 is a diagram for explaining decoding processing in CTR mode;
  • FIG. 9 is a diagram showing the processing of the OTA center,
  • FIG. 10 is a diagram showing the processing of the center,
  • FIG. 11 is a diagram showing the processing of the OTA center,
  • FIG. 12 is a diagram showing the processing of the OTA master,
  • FIG. 13 is a diagram showing the processing of the OTA master,
  • FIG. 14 is a diagram showing the processing of the OTA master,
  • FIG. 15 is a diagram for explaining OFB mode encryption processing according to the second embodiment.
  • FIG. 16 is a diagram for explaining OFB mode decoding processing.
  • FIG. 17 is a diagram showing a comparison of the merits and demerits of the CBC mode and the OFB mode, FIG.
  • FIG. 18 is a diagram showing a comparison of throughput between CBC mode and OFB mode
  • FIG. 19 is a diagram for explaining decoding processing in CTR mode
  • FIG. 20 is a diagram for explaining OFB mode decoding processing.
  • FIG. 21 is a diagram showing the processing of the OTA center
  • FIG. 22 is a diagram showing the processing of the OTA center
  • FIG. 23 is a diagram showing the processing of the OTA center
  • FIG. 24 is a diagram showing the processing of the OTA master
  • FIG. 25 is a diagram showing the processing of the OTA master
  • FIG. 26 is a diagram showing the processing of the OTA master
  • FIG. 27 is a diagram showing the flow of processing in the overall system of the third embodiment
  • FIG. 28 is a diagram showing the processing of the OTA center
  • FIG. 29 is a diagram showing the processing of the OTA center
  • FIG. 30 is a diagram showing the processing of the OTA center
  • FIG. 31 is a diagram showing the processing of the OTA master
  • FIG. 32 is a diagram showing the processing of the OTA master
  • FIG. 33 is a diagram showing the processing of the OTA master
  • FIG. 34 is a diagram showing the flow of processing in the entire system of the fourth embodiment
  • FIG. 35 is a functional block diagram of the OTA Center and OTA Master
  • FIG. 36 is a diagram showing the processing of the OTA master
  • FIG. 37 is a diagram showing the processing of the OTA master
  • FIG. 38 is a diagram showing the processing of the OTA master
  • FIG. 39 is a diagram showing the processing of the OTA master of the fifth embodiment
  • FIG. 40 is a diagram showing the processing of the OTA master
  • FIG. 41 is a diagram showing the processing of the OTA master
  • FIG. 42 is a diagram showing the relationship between memory capacity and access speed
  • FIG. 43 is a diagram showing the flow of processing in the entire system of the sixth embodiment
  • FIG. 44 is a functional block diagram of the OTA Center and OTA Master
  • FIG. 45 is a diagram showing how RP metadata is transmitted
  • FIG. 46 is a diagram showing the structure of RP metadata
  • FIG. 47 is a diagram showing the structure of RP metadata
  • FIG. 48 is a diagram showing the processing of the OTA center
  • FIG. 49 is a diagram showing the processing of the OTA center
  • FIG. 50 is a diagram showing the processing of the OTA center
  • FIG. 51 is a diagram showing the processing of the OTA center
  • FIG. 52 is a diagram showing the processing of the OTA master
  • FIG. 53 is a diagram showing the processing of the OTA master
  • FIG. 54 is a diagram showing the processing of the OTA master
  • FIG. 55 is a diagram showing the flow of processing in the entire system of the seventh embodiment
  • Figure 56 is the function of the CCMP mode
  • FIG. 57 is a diagram for explaining throughput estimation in CCMP mode
  • FIG. 58 is a functional block diagram of a conventional method
  • FIG. 59 is a diagram for explaining throughput estimation by the conventional method
  • FIG. 60 is a diagram showing a comparison of throughput between the CCMP mode and the conventional method
  • FIG. 61 is a functional block diagram of the OTA Center and OTA Master;
  • FIG. 62 is a diagram showing the processing of the OTA center,
  • FIG. 63 is a diagram showing the processing of the OTA center,
  • FIG. 64 is a diagram showing the processing of the OTA center,
  • FIG. 65 is a diagram showing the processing of the OTA master,
  • FIG. 66 is a diagram showing the processing of the OTA master,
  • FIG. 67 is a diagram showing the processing of the OTA master,
  • FIG. 68 is a diagram showing the flow of processing in the entire system of the eighth embodiment,
  • FIG. 69 is a functional block diagram of GCMP mode,
  • FIG. 70 is a diagram for explaining throughput estimation in GCMP mode;
  • FIG. 71 is a diagram showing a comparison of the throughput of the GCMP mode and the conventional method
  • FIG. 72 is a diagram showing the processing of the OTA center
  • FIG. 73 is a diagram showing the processing of the OTA center
  • FIG. 74 is a diagram showing the processing of the OTA center
  • FIG. 75 is a diagram showing the processing of the OTA master
  • FIG. 76 is a diagram showing the processing of the OTA master
  • FIG. 77 is a diagram showing the processing of the OTA master
  • FIG. 78 is a diagram showing the flow of processing in the entire system of the ninth embodiment
  • FIG. 79 is a diagram showing the processing of the OTA center
  • FIG. 80 is a diagram showing the processing of the OTA center
  • FIG. 81 is a diagram showing the processing of the OTA center
  • FIG. 82 is a diagram showing the processing of the OTA center
  • FIG. 83 is a diagram showing the processing of the OTA master
  • FIG. 84 is a diagram showing the processing of the OTA master
  • FIG. 85 is a diagram showing the processing of the OTA master
  • FIG. 86 is a diagram showing the processing of the OTA master
  • FIG. 87 is a diagram showing the flow of processing in the entire system of the tenth embodiment
  • FIG. 88 is a diagram showing a CDN cost comparison
  • FIG. 89 is a diagram showing a CDN cost comparison
  • FIG. 90 is a diagram showing a CDN price table for each cloud service;
  • FIG. 91 is a diagram showing a price table of the storage method of each cloud service provider
  • FIG. 92 is a diagram showing a price table for each streaming size in the streaming method of the cloud service provider
  • FIG. 93 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 94 is a functional block diagram of the OTA Center and OTA Master
  • FIG. 95 is a diagram showing the processing of the OTA center
  • FIG. 96 is a diagram showing the processing of the OTA center
  • FIG. 97 is a diagram showing the processing of the OTA center
  • FIG. 98 is a diagram showing the processing of the OTA center
  • FIG. 99 is a diagram showing the flow of processing in the entire system of the eleventh embodiment
  • FIG. 95 is a diagram showing the processing of the OTA center
  • FIG. 96 is a diagram showing the processing of the OTA center
  • FIG. 97 is a diagram showing the processing of the OTA center
  • FIG. 98 is
  • FIG. 100 is a diagram showing a common key that can be shared by DHE or ECDHE;
  • FIG. 101 is a diagram showing the processing of the OTA center,
  • FIG. 102 is a diagram showing the processing of the OTA center,
  • FIG. 103 is a diagram showing the processing of the OTA center,
  • FIG. 104 is a diagram showing the processing of the OTA center,
  • FIG. 105 is a diagram showing the processing of the OTA master,
  • FIG. 106 is a diagram showing the processing of the OTA master,
  • FIG. 107 is a diagram showing the processing of the OTA master,
  • FIG. 108 is a diagram showing the processing of the OTA master,
  • FIG. 109 is a diagram showing the flow of processing in the entire system of the twelfth embodiment, FIG.
  • FIG. 110 is a diagram showing the processing of the OTA center
  • FIG. 111 is a diagram showing the processing of the OTA center
  • FIG. 112 is a diagram showing the processing of the OTA center
  • FIG. 113 is a diagram showing the processing of the OTA master
  • FIG. 114 is a diagram showing the processing of the OTA master
  • FIG. 115 is a diagram showing the processing of the OTA master
  • FIG. 116 is a diagram showing the flow of processing in the entire system of the thirteenth embodiment
  • FIG. 117 is a diagram for explaining encryption processing in CTR mode
  • FIG. 118 is a diagram for explaining decoding processing in CTR mode
  • FIG. 119 is a diagram showing the processing of the OTA center
  • FIG. 120 is a diagram showing the processing of the OTA center
  • FIG. 120 is a diagram showing the processing of the OTA center
  • FIG. 120 is a diagram showing the processing of the OTA center
  • FIG. 120 is a diagram showing the processing of the OTA center
  • FIG. 121 is a diagram showing the processing of the OTA center
  • FIG. 122 is a diagram showing the processing of the OTA master
  • FIG. 123 is a diagram showing the processing of the OTA master
  • FIG. 124 is a diagram showing the processing of the OTA master
  • FIG. 125 is a diagram showing the flow of processing in the entire system of the fourteenth embodiment
  • FIG. 126 is a diagram explaining the AES individual key
  • FIG. 127 is a diagram showing the processing of the OTA center
  • FIG. 128 is a diagram showing the processing of the OTA center
  • FIG. 129 is a diagram showing the processing of the OTA center
  • FIG. 130 is a diagram showing the processing of the OTA master
  • FIG. 131 is a diagram showing the processing of the OTA master
  • FIG. 132 is a diagram showing the processing of the OTA master
  • FIG. 133 is a diagram showing the flow of processing in the entire system of the fifteenth embodiment
  • FIG. 134 is a diagram showing the processing of the OTA center
  • FIG. 135 is a diagram showing the processing of the OTA center
  • FIG. 136 is a diagram showing the processing of the OTA master
  • FIG. 137 is a diagram showing the processing of the OTA master
  • FIG. 138 is a diagram showing the flow of processing in the entire system of the sixteenth embodiment
  • FIG. 139 is a diagram showing an attack from an intermediary attacker
  • FIG. 140 is a diagram showing a mode of adding a digital signature
  • FIG. 141 is a diagram showing the processing of the OTA center
  • FIG. 142 is a diagram showing the processing of the OTA center
  • FIG. 143 is a diagram showing the processing of the OTA center
  • FIG. 144 is a diagram showing the processing of the OTA master
  • FIG. 145 is a diagram showing the processing of the OTA master
  • FIG. 146 is a diagram showing the flow of processing in the entire system of the seventeenth embodiment
  • FIG. 147 is a diagram showing the processing of the OTA center
  • FIG. 148 is a diagram showing the processing of the OTA center
  • FIG. 149 is a diagram showing the processing of the OTA master
  • FIG. 150 is a diagram showing the processing of the OTA master
  • FIG. 151 is a diagram showing the processing of the OTA master
  • FIG. 152 is a diagram showing the flow of processing in the entire system of the eighteenth embodiment
  • FIG. 153 is a diagram showing a CDN price table for each cloud service
  • FIG. 154 is a diagram showing a CDN price table for each cloud service
  • FIG. 155 is a diagram showing a price table of the storage method of each cloud service provider
  • FIG. 156 is a diagram showing the price table of the storage method of each cloud service provider
  • FIG. 157 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 158 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 159 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 159 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 160 is a diagram showing a price table for each streaming size in the streaming method of each cloud service provider
  • FIG. 161 is a diagram showing quality information of each cloud service provider
  • FIG. 162 is a diagram for explaining the selection of CDN vendors
  • FIG. 163 is a diagram showing the processing of the OTA center
  • FIG. 164 is a diagram showing the processing of the OTA center
  • FIG. 165 is a diagram showing the processing of the OTA center
  • FIG. 166 shows a modification of the eleventh embodiment, and is a diagram showing part of the flow of processing in the entire system
  • FIG. 167 is a diagram showing part of the flow of processing in the entire system
  • FIG. 168 is a diagram showing part of the flow of processing in the entire system
  • FIG. 169 is a diagram showing part of the flow of processing in the entire system
  • FIG. 170 is a diagram showing the processing of the OTA master
  • FIG. 171 is a diagram showing the processing of the PC
  • FIG. 172 is a diagram showing the processing of the OTA center
  • FIG. 173 is a diagram showing the processing of the OTA master
  • FIG. 174 shows a modification of the twelfth embodiment, and is a diagram showing part of the flow of processing in the entire system
  • FIG. 175 is a diagram showing part of the flow of processing in the entire system
  • FIG. 176 is a diagram showing part of the flow of processing in the entire system
  • FIG. 177 is a diagram showing part of the flow of processing in the entire system
  • FIG. 177 is a diagram showing part of the flow of processing in the entire system
  • FIG. 178 is a diagram showing the processing of the OTA master
  • FIG. 179 is a diagram showing the processing of the PC
  • FIG. 180 is a diagram showing the processing of the OTA center
  • FIG. 181 is a diagram showing the processing of the OTA master
  • FIG. 182 shows a modification of the sixteenth embodiment, and is a diagram showing part of the flow of processing in the entire system
  • FIG. 183 is a diagram showing part of the flow of processing in the entire system
  • FIG. 184 is a diagram showing part of the flow of processing in the entire system
  • FIG. 185 is a diagram showing part of the flow of processing in the entire system
  • FIG. 186 is a diagram showing the processing of the OTA master
  • FIG. 187 is a diagram showing the processing of the PC
  • FIG. 188 is a diagram showing the processing of the OTA center
  • FIG. 189 is a diagram showing the processing of the OTA master
  • FIG. 190 is a diagram showing the flow of processing in the entire system of the nineteenth embodiment
  • FIG. 191 is a diagram showing the processing of the campaign notification generation unit
  • FIG. 192 is a diagram showing the processing of the CDN vendor selection unit
  • FIG. 193 is a diagram showing the processing of the CDN vendor selection unit
  • FIG. 194 is a diagram showing the flow of processing in the entire system of the first modification of the nineteenth embodiment
  • FIG. 195 is a diagram showing the processing of the CDN vendor selection unit
  • FIG. 196 is a diagram showing the flow of processing in the entire system of the second modification of the nineteenth embodiment, FIG.
  • FIG. 197 is a diagram showing a selection table
  • FIG. 198 is a diagram showing the processing of the CDN vendor selection unit
  • FIG. 199 is a diagram showing the processing of the CDN vendor selection unit
  • FIG. 200 is a diagram showing the processing of the performance measurement unit
  • FIG. 201 is a diagram showing the processing of the CDN server confirmation unit
  • FIG. 202 is a diagram showing the flow of processing in the entire system of the third modification of the nineteenth embodiment
  • FIG. 203 is a diagram showing processing of the log transmission unit 3a.
  • FIG. 204 is a diagram showing the processing of the performance measurement unit
  • FIG. 205 is a diagram showing the processing of the performance measurement unit
  • FIG. 206 shows the fourth modification of the nineteenth embodiment, and shows the processing of the CDN vendor selection unit 7a.
  • FIG. 207 is a diagram showing the processing of the campaign notification generation unit;
  • FIG. 208 is a diagram showing the flow of processing in the entire system of the fifth modification of the nineteenth embodiment,
  • FIG. 209 is a diagram showing a round robin record;
  • FIG. 210 is a diagram showing the processing of the CDN vendor selection unit 7a,
  • FIG. 211 is a diagram showing the processing of the switching unit;
  • FIG. 212 is a diagram showing the flow of processing in the entire system of the twentieth embodiment;
  • FIG. 213 is a diagram showing a calculation method,
  • FIG. 214 is a diagram showing the processing of the campaign notification generation unit;
  • FIG. 215 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 216 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 217 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 218 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 219 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 220 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 221 is a diagram showing the processing of the CDN vendor selection unit;
  • FIG. 222 is a diagram showing the processing of the progress information management unit;
  • FIG. 223 is a diagram showing the processing of the CDN vendor selection unit;
  • 224 is a diagram depicting processing of a campaign notification generation unit;
  • a data communication system 1 includes an OTA center 2 and a vehicle-side system 3 mounted on a vehicle, and the OTA center 2 and the vehicle-side system 3 are configured to be able to communicate data.
  • the OTA center 2 corresponds to a center device.
  • the OTA center 2 and the vehicle-side system 3 have a one-to-many relationship, and the OTA center 2 can perform data communication with an unspecified number of vehicle-side systems 3 .
  • the vehicle-side system 3 includes an OTA master 4 and a target ECU 5.
  • the OTA master 4 corresponds to a master device.
  • the OTA master 4 and the target ECU 5 are connected to an in-vehicle network such as CAN (Controller Area Network) (registered trademark), and are connected so as to be able to communicate data via the in-vehicle network.
  • the in-vehicle network may be LIN (Local Interconnect Network), FlexRay (registered trademark), CAN FD (CAN Flexible Data rate) (registered trademark), Ethernet (registered trademark), or the like.
  • the target ECU 5 is an ECU to be reprogrammed by the application program.
  • An application program is a program related to execution of an application, and includes, for example, an application program, a firmware program, and an operating system program.
  • the OTA center 2 comprises a package generation server 6 and a distribution server 7.
  • the package generation server 6 is a server having a function of packaging update data and generating an update package.
  • An update package is, for example, a zip file in which multiple files containing update data are compressed and stored.
  • the distribution server 7 is a server having a function of distributing the update package generated by the package generation server 6 to the vehicle-side system 3 .
  • the OTA center 2 delivers a campaign notification to the vehicle-side system 3 or a mobile information terminal such as a smartphone owned by the user when a reprogramming request for the ECU application program occurs due to, for example, a version upgrade due to functional improvement, etc.
  • the OTA center 2 places the update package on a content delivery network (hereinafter referred to as CDN (Content Delivery Network)) 8 on the condition that the download consent is obtained from the user, and distributes the update package via the CDN 8. to the OTA master 4.
  • CDN Content Delivery Network
  • the OTA center 2 causes the CDN 8 to distribute the update package to the OTA master 4 on condition that the download approval from the user is obtained.
  • the OTA master 4 transfers the update package to the target ECU 5 and installs the update package on the target ECU 5 on the condition that the installation consent is obtained from the user.
  • a company that provides CDN8 as a service is called a CDN vendor.
  • the OTA master 4 acquires the update package by accessing the CDN server of the CDN 8 .
  • the OTA center 2 encrypts the update package with an AES key in CTR mode.
  • the vehicle-side system 3 encrypts the update package in CTR mode with an AES key.
  • the OTA center 2 has an RSA (Rivest-Shamir-Adleman cryptosystem) public key for each vehicle.
  • the OTA master 4 is written with an RSA private key at the vehicle manufacturing stage.
  • the OTA center 2 includes, as functional blocks related to encryption, a common key generation unit 2a, an update package encryption unit 2b, a common key encryption unit 2c, a common key storage unit 2d, An encrypted package placement unit 2e and a campaign notification transmission unit 2f are provided.
  • the update package encryption unit 2b corresponds to update data encryption.
  • the encrypted package placement section 2e corresponds to an encrypted data placement section.
  • Each part 2a to 2f is realized by cooperation of microcomputer hardware and software, which has CPU (Central Processing Unit), RAM (Random Access Memory), ROM (Read Only Memory), I/O (Input/Output), etc. It is The CPU implements the functions of the OTA center 2 by executing various programs stored in the ROM, including an encryption program, an update data placement program, a secret information sharing program, and the like.
  • the common key generation unit 2a generates an AES key as a common key for encrypting the update package.
  • the package encryption unit 2b encrypts the update package in CTR mode using the generated AES key.
  • the package encryption unit 2b encrypts the counter value by executing AES block encryption processing on the counter value using an AES key.
  • the package encryption unit 2b performs an exclusive OR (XOR) operation on the encrypted counter value and the update package, combines a plurality of encrypted fragments, and generates an update package encrypted with an AES key. Generate.
  • the counter value is, for example, an eight-digit number, and is incremented by "1" for each AES block.
  • the common key encryption unit 2c encrypts the AES key with the RSA public key.
  • the common key storage unit 2d stores the AES key encrypted with the RSA public key in the campaign notification.
  • the encrypted package placement unit 2e places the update package encrypted with the AES key in the CDN8.
  • the campaign notification transmission unit 2f transmits a campaign notification in which the encrypted AES key is stored to the vehicle-side system 3 to be reprogrammed.
  • the campaign notification transmission unit 2f may deliver the campaign notification to a mobile information terminal such as a smartphone owned by the user.
  • the OTA master 4 includes, as functional blocks related to decryption, a common key acquisition unit 4a, a common key decryption unit 4b, an encrypted package acquisition unit 4c, a block cipher processing unit 4d, and an encrypted package decryption unit 4e. and an installation processing unit 4f.
  • the encrypted package acquisition unit 4c corresponds to an encrypted data acquisition unit.
  • the encrypted package decryption section 4e corresponds to an encrypted data decryption section.
  • Each of the units 4a to 4f is realized by cooperation of hardware and software of a microcomputer having a CPU, RAM, ROM, I/O, and the like.
  • the CPU implements the functions of the OTA master 4 by executing various programs stored in the ROM, including a decryption program, an update data acquisition program, a secret information sharing program, and the like.
  • the common key acquisition unit 4a acquires the encrypted AES key from the acquired campaign notification.
  • the common key decryption unit 4b decrypts the encrypted AES key with the RSA private key to extract the AES key.
  • the encrypted package acquisition unit 4c downloads and acquires the encrypted update package from the CDN8.
  • the block cipher processing unit 4d executes the AES block cipher processing of the counter value using the AES key. Encrypt the counter value.
  • the encrypted package decryption unit 4e decrypts the encrypted counter value and the encrypted update package downloaded from the CDN 8 by XOR (Exclusively-OR) operation.
  • the install processing unit 4f transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5.
  • the encryption processing in CTR mode is as shown in FIG. 3, and the decryption processing in CTR mode is as shown in FIG.
  • the disadvantages of the CBC mode are that "preparations for encryption and decryption cannot be performed” and that "parallel processing of encryption cannot be performed”
  • the advantage of the CTR mode is that "preparations before encryption and decryption cannot be performed”. Since preparation is possible, high speed is possible” and "parallel processing of encryption and decryption is possible”. That is, as an advantage of adopting the CTR mode as the encryption mode, as shown in FIG. 6, the throughput is reduced by about 40% compared to the case of adopting the CBC mode of a general block cipher. can be improved.
  • FIG. (1-1) Processing of OTA Center 2 (see FIGS. 9 to 11)
  • the OTA center 2 generates an AES key for encrypting the update package (A011, corresponding to common key generation procedure).
  • the OTA center 2 encrypts the update package in CTR mode with the generated AES key (A012, corresponding to update data encryption procedure).
  • the OTA center 2 encrypts the AES key with the RSA public key (A013, corresponding to common key encryption procedure).
  • the OTA center 2 stores the AES key encrypted with the RSA public key in the campaign notification (A014, corresponding to common key storage procedure).
  • the OTA center 2 places the update package encrypted with the AES key in the CDN 8 (A015, corresponding to the encrypted data placement procedure).
  • Arranging the update package on the CDN8 indicates that the update package is arranged on the origin server of the CDN8.
  • the OTA center 2 transmits the campaign notification in which the encrypted AES key is stored to the vehicle-side system 3 to be reprogrammed (corresponding to A016, campaign notification transmission procedure).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B014, block cipher procedure).
  • the OTA master 4 decrypts the encrypted counter value and the encrypted update package downloaded from the CDN 8 by performing an XOR operation (B015, corresponding to the encrypted data decryption procedure).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B016, corresponding to the installation procedure).
  • the decryption process in the target ECU 5 can also be improved in throughput by about 40%. can be done.
  • the configuration adopts the CTR mode as the encryption method and decryption method of the update package.
  • the CTR mode preparation for encryption and decryption can be performed, and parallel processing of encryption and decryption can be performed, as opposed to the conventional one that employs the CBC mode.
  • the OTA master 4 downloads the update package from the OTA center 2, it is possible to enjoy the benefits of the CTR mode and appropriately increase the throughput.
  • FIG. 15 to 26 A second embodiment will be described with reference to FIGS. 15 to 26.
  • OFB mode an output feedback mode
  • the package encryption unit 2b encrypts the update package in OFB mode using the generated AES key.
  • the block encryption processing unit 4d executes IV (Initialization Vector) value-based AES stream encryption processing using the AES key. to encrypt the IV value.
  • An IV value is an initialization vector value, and indicates, for example, a randomly generated bit string.
  • the encrypted package decryption unit 4e decrypts the encrypted IV value and the encrypted update package downloaded from the CDN 8 by performing an XOR operation.
  • the OFB mode encryption process is as shown in FIG. 15, and the OFB mode decryption process is as shown in FIG.
  • the disadvantage of the CBC mode is that "preparations for encryption and decryption cannot be performed” and “parallel processing of encryption cannot be performed”
  • the advantage of the OFB mode is that "preparation before encryption and decryption cannot be performed”. Because it is ready, it can be speeded up.” That is, as an advantage of adopting the OFB mode as the encryption mode, as shown in FIG. 18, the throughput is reduced by about 25% compared to the case of adopting the CBC mode of a general block cipher. can be improved.
  • the decryption process in CTR mode since the input is the counter value, the decryption process can be started before receiving the update package, which is the ciphertext. Also, since there is no mutual dependency, multiple cryptographic operations can be executed in parallel at the same time. On the other hand, as shown in FIG. 20, in OFB mode decryption processing, multiple cryptographic operations cannot be executed in parallel at the same time because of mutual dependencies. However, the process of XORing the encrypted IV value and the encrypted update package and decrypting them can be executed in parallel. Therefore, in decoding processing in OFB mode, the throughput cannot be improved as much as in decoding processing in CTR mode described in the first embodiment. can be done.
  • FIG. (2-1) Processing of OTA Center 2 (See FIGS. 21 to 23)
  • the OTA center 2 generates an AES key for encrypting the update package (A021, corresponding to common key generation procedure).
  • the OTA center 2 encrypts the update package in OFB mode with the generated AES key (A022, corresponding to update data encryption procedure).
  • the OTA center 2 encrypts the AES key with the RSA public key (A023, corresponding to common key encryption procedure).
  • the OTA center 2 stores the AES key encrypted with the RSA public key in the campaign notification (A024, corresponding to common key storage procedure).
  • the OTA center 2 places the update package encrypted with the AES key in the CDN 8 (A025, corresponding to the encrypted data placement procedure).
  • the OTA center 2 transmits the campaign notification in which the encrypted AES key is stored to the vehicle-side system 3 to be reprogrammed (corresponding to A026, campaign notification transmission procedure).
  • the OTA master 4 executes IV value-based AES stream encryption processing using the AES key to encrypt the IV value in parallel with downloading and acquiring the encrypted update package CDN 8 (B024, block cipher procedure).
  • the OTA master 4 decrypts the encrypted IV value and the encrypted update package downloaded from the CDN 8 by performing an XOR operation (B025, corresponding to the encrypted data decryption procedure).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B026, corresponding to the installation procedure).
  • the configuration adopts the OFB mode as the encryption method and the decryption method of the update package.
  • the OFB mode preparation for encryption and decryption can be performed in contrast to the conventional one that adopts the CBC mode.
  • the OTA master 4 downloads the update package from the OTA center 2, it is possible to enjoy the benefits of the OFB mode, and the throughput can be increased appropriately.
  • FIG. The third embodiment adopts a hypertext transfer protocol (hereinafter referred to as HTTP (Hypertext Transfer Protocol)) as a communication protocol between the CDN 8 and the OTA master 4, transmits a range request to the CDN 8, and updates the update package. is downloaded in a streaming manner, the distribution cost is suppressed more than when hypertext transfer protocol secure (hereafter referred to as HTTPS (Hypertext Transfer Protocol Secure)) is adopted.
  • HTTP Hypertext Transfer Protocol Secure
  • the CDN 8 delivery fee is differentiated between when HTTP is used as the communication protocol to the CDN 8 and when HTTPS is used.
  • HTTPS Transaction Layer Security
  • the CDN 8 When using HTTPS, the CDN 8 must perform handshake processing, encryption key exchange processing, and encryption operation processing stipulated by transport layer security (hereinafter referred to as TLS (Transport Layer Security)). Since the processing load on the CPU increases, the delivery charge for HTTPS is approximately 30% higher than that for HTTP. For this reason, the distribution cost can be suppressed by using HTTP for downloading the update package.
  • HTTPS is not used when distributing update packages from the CDN 8 to the vehicle-side system 3 .
  • the campaign notification transmission unit 2f establishes TLS communication between the OTA center 4 and the OTA master 4, and then transmits the campaign notification containing the encrypted AES key to the vehicle-side system 3 to be reprogrammed.
  • the common key acquisition unit 4a acquires the campaign notification from the OTA master 4 when the campaign notification transmitted from the OTA center 2 is received. get the key.
  • the encrypted package acquisition unit 4c transmits a range request to the CDN 8, designates a data range to be downloaded, and downloads and acquires the encrypted update package from the CDN 8 by streaming.
  • the installation processing unit 4f transfers the decrypted update package to the target ECU 5 by streaming, and installs the update package in the target ECU 5.
  • the OTA master 4 acquires the encrypted update package from the CDN 8 by the streaming method. good.
  • the streaming method since header information is included at the time of communication, distribution costs can be further reduced by using HTTP.
  • FIG. (3-1) Processing of OTA Center 2 (see FIGS. 28 to 30)
  • the OTA center 2 generates an AES key for encrypting the update package (A031).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key (A032).
  • the OTA center 2 encrypts the AES key with the RSA public key (A033).
  • the OTA Center 2 stores the AES key encrypted with the RSA public key in the campaign notification (A034).
  • the OTA center 2 places the update package encrypted with the AES key on the CDN 8 (A035).
  • the OTA center 2 transmits a campaign notification containing an encrypted AES key to the vehicle system 3 to be reprogrammed (A036). .
  • the OTA master 4 executes the AES block encryption processing of the counter value using the AES key to obtain the counter value. is encrypted (B034).
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 and decrypts them (B035).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 by streaming, and installs the update package in the target ECU 5 (B036).
  • HTTP is adopted as a communication protocol between the CDN 8 and the OTA master 4, and the OTA master 4 transmits a range request to the CDN 8, thereby downloading the update package from the CDN 8 by streaming.
  • the distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be appropriately reduced compared to the conventional system that employs HTTPS as a communication protocol.
  • FIG. 34 A fourth embodiment will be described with reference to FIGS. 34 to 38.
  • FIG. The fourth embodiment attempts to speed up the decryption process when downloading an update package by performing all keystream calculations in advance in the background before obtaining download consent from the user.
  • the OTA master 4 includes a common key acquisition unit 4a, a common key decryption unit 4b, an encrypted package acquisition unit 4c, a block cipher processing unit 4d, and an encrypted package decryption unit.
  • the key stream calculation unit 4g is provided.
  • the keystream calculation unit 4g performs all keystream calculations in advance in the background before the download consent is obtained from the user.
  • the encrypted package acquisition unit 4c downloads and acquires the encrypted update package from the CDN 8 on condition that the download approval from the user is obtained.
  • the encrypted package decryption unit 4e decrypts the calculated key stream and the encrypted update package downloaded from the CDN 8 by performing an XOR operation.
  • FIG. (4-1) Processing of OTA Center 2 The processing of the OTA center 2 is the same as the processing of the OTA center 2 described in the first embodiment (FIGS. 9 to 11).
  • the OTA master 4 displays the download approval screen on the HMI (Human Machine Interface) by distributing the campaign notification to the vehicle side system 3 and the portable information terminal such as a smartphone owned by the user (B044).
  • the OTA master 4 downloads and acquires the encrypted update package from the CDN 8 on the condition that the download consent is obtained from the user (B045).
  • the OTA master 4 XORs the pre-calculated keystream and the encrypted update package downloaded from the CDN 8 to decrypt (B046).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B047).
  • the following effects can be obtained. All keystream calculations are pre-performed in the background before the user's consent to download is obtained. As a result, it is possible to speed up the decoding process of the update package in the OTA master 4 and increase the throughput when the OTA master 4 downloads the update package from the OTA center 2 .
  • FIG. 39 to 42 A fifth embodiment will be described with reference to FIGS. 39 to 42.
  • FIG. 39 to 42 the fourth embodiment pre-performs all keystream computation in the background before download acceptance is obtained from the user
  • the fifth embodiment performs Perform some keystream computations in advance in the background.
  • a part of the key stream to be calculated is determined in consideration of the memory capacity of the cache memory of the CPU and the throughput of the AES encryption operation, and has a size that can be stored in the cache memory.
  • the keystream calculation unit 4g performs part of the keystream calculation in the background in advance before obtaining the download consent from the user.
  • the keystream calculation unit 4g generates a keystream and adds it to the cache memory in parallel with the encrypted package acquisition unit 4c downloading and acquiring the encrypted update package from the CDN8.
  • FIG. (5-1) Processing of OTA Center 2
  • the processing of the OTA center 2 is the same as the processing of the OTA center 2 described in the first embodiment (FIGS. 9 to 11).
  • the OTA master 4 displays a download approval screen on the HMI by distributing the campaign notification to the vehicle-side system 3 and a portable information terminal such as a smartphone owned by the user (B054).
  • the OTA master 4 downloads and acquires the encrypted update package from the CDN 8 on the condition that the download consent is obtained from the user (B055).
  • the OTA master 4 XORs the pre-calculated keystream and the encrypted update package downloaded from the CDN 8 to decrypt (B056).
  • the OTA master 4 At this time, the OTA master 4 generates a keystream and adds it to the cache memory (B057) in parallel with downloading and acquiring from the encrypted update package CDN8, and calculates the rest of the keystream.
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B058). Note that the relationship between memory capacity and access speed is as shown in FIG. 42, and the size of the cache memory may be determined according to the required access speed.
  • the following effects can be obtained. It is configured so that some keystream calculations are performed in the background in advance before the download consent is obtained from the user. As a result, it is possible to speed up the decoding process of the update package in the OTA master 4 while saving the memory usage of the OTA master 4, and increase the throughput when the OTA master 4 downloads the update package from the OTA center 2. can be enhanced.
  • the OTA master 4 specifies the encryption method by including the encryption method in repro policy metadata (hereinafter referred to as RP metadata) or the like and transmitting it from the OTA center 2 to the OTA master 4.
  • the encryption method transmitted from the OTA center 2 to the OTA master 4 includes encryption algorithm, encryption key length, encryption mode, message authentication code (hereinafter referred to as MAC (Message Authentication Code)) algorithm, and the like.
  • RP metadata includes configuration information of the update package, that is, information representing the configuration type of the update package, and is data for the OTA master 4 to check the data content to prevent delivery errors of the update package.
  • the OTA master 4 may specify the encryption method by including the encryption method in download metadata (hereinafter referred to as DL metadata) or the like and transmitting it from the OTA center 2 to the OTA master 4 .
  • the DL metadata is data that includes information for downloading update packages for each of a plurality of target ECUs 5 and defines the content that the OTA master 4 should grasp.
  • the OTA center 2 includes a common key generation unit 2a, an update package encryption unit 2b, a common key encryption unit 2c, a common key storage unit 2d, an encrypted package placement unit 2e,
  • the RP metadata generation unit 2g and the RP metadata encryption unit 2h are provided.
  • the RP metadata generation unit 2g generates RP metadata including the common key cryptosystem.
  • the RP metadata encryption unit 2h encrypts RP metadata with an RSA public key.
  • the OTA master 4 includes a common key acquisition unit 4a, a common key decryption unit 4b, an encrypted package acquisition unit 4c, a block cipher processing unit 4d, an encrypted package decryption unit 4e, and an installation processing unit 4f.
  • it includes an RP metadata acquisition unit 4h, an RP metadata decryption unit 4i, and a common key cryptosystem specification unit 4j.
  • the RP metadata acquisition unit 4h downloads and acquires the encrypted RP metadata from the CDN8.
  • the RP metadata decryption unit 4i decrypts the encrypted RP metadata with the RSA private key and extracts the RP metadata.
  • the common key cryptosystem identification unit 4j interprets the content of the RP metadata and identifies the common key cryptosystem.
  • the flow from the CDN 8 to the distribution of the update package to the OTA center 2 is as follows.
  • a campaign notification is transmitted from the OTA center 2 to the OTA master 4 or the portable information terminal owned by the user.
  • the OTA master 4 accesses the CDN 8 to transmit the RP metadata and the DL metadata from the CDN 8 to the OTA master 4 and distribute the update package from the CDN 8 to the OTA center 2 .
  • the RP metadata and DL metadata are transmitted from the OTA center 2 to the OTA master 4 prior to downloading the update package.
  • the RP metadata includes information of RP metadata version, distribution layer, master layer, and target layer. Each information is as follows.
  • RP metadata version This is the version of the RP metadata, and is version information such as "1.0.0” or "2.0.0".
  • Distribution layer (b-1) Communication protocol A protocol used for communication with the OTA center 2, for example, information indicating Uptane (registered trademark), OMA-DM (Open Mobile Alliance-Device Management), etc. .
  • (b-2) Communication Means This is the distribution route of the update package, and is information indicating the OTA master 4, such as cellular, smart phone, USB memory, and the like.
  • PF Master layer Information about OTA master 4 (c-1) PF
  • AP AUTOSAR Adaptive Platform
  • CP AUTOSAR Classic Platform
  • AGL Automotive Grade Linux
  • Android registered trademark
  • JASPAR's specifications stipulate the data requirements applicable to the classic platform (CP) that runs on the static OS of the standardization organization AUTOSAR.
  • AUTOSAR also specifies data requirements applicable to a new type of adaptive platform (AP) running on a dynamic OS.
  • AGL is in-vehicle Linux (registered trademark)
  • Android is Android Automotive OS.
  • AP and CP indicate software platforms.
  • a software platform is also referred to as a software architecture.
  • the AP and CP use different operating systems and development languages.
  • the structures of receivable update packages differ between an ECU that operates in accordance with the CP specifications and an ECU that operates in accordance with the AP specifications.
  • the difference in the structure of these update packages is mainly due to the difference in processing performance of the ECU.
  • the processing performance of ECUs that operate according to CP specifications is relatively low, so the specification data included in the update package is also written in binary data, so even ECUs with low processing performance can interpret and process it. It has an easy-to-use data structure.
  • Control method Information such as parameters processed according to parameters set according to a specific format, and scripts processed in a more free description format without a specific format.
  • Encryption method Includes encryption algorithm, encryption key length, encryption mode, padding method, encryption key ID, signature algorithm, signature key ID, signature mode, hash algorithm, presence/absence of area specification, offset size, and protected data size Information.
  • Target layer This is information about the target ECU 5 .
  • (d ⁇ 1) PF Similar to the master layer.
  • (d-2) Transfer method Storage method or streaming
  • (d-3) Control method Same as master layer.
  • (d-5) Encryption method Same as the master layer.
  • FIG. (6-1) Processing of OTA Center 2 (see FIGS. 48 to 51)
  • the OTA center 2 generates a common key for encrypting the update package (A061).
  • the OTA center 2 encrypts the update package in a specific encryption mode using the generated common key (A062).
  • the OTA center 2 encrypts the common key with the RSA public key (A063).
  • the OTA center 2 stores the common key encrypted with the RSA public key in the campaign notification (A064).
  • the OTA center 2 generates RP metadata including the common key cryptosystem (A065).
  • the OTA center 2 encrypts the RP metadata with the RSA public key (A066).
  • the OTA center 2 places the update package encrypted with the common key and the RP metadata encrypted with the RSA public key in the CDN 8 (A067).
  • the OTA center 2 transmits the campaign notification in which the encrypted common key is stored to the vehicle-side system 3 to be reprogrammed (A068).
  • the OTA master 4 downloads and acquires the encrypted update package from the CDN 8 (B066). From this point on, the OTA master 4 performs the processing from step B014 onward described in the first embodiment if the CTR mode is adopted as the specific encryption mode, and if the OFB mode is adopted as the specific encryption mode. If so, the processes after step B024 described in the second embodiment are performed. Similarly, in other encryption modes, the update package is decrypted and the data is transferred to the target ECU according to the procedure corresponding to the encryption mode.
  • the encryption method is included in RP metadata or DL metadata and transmitted from the OTA center 2 to the OTA master 4 . This allows the OTA master 4 to specify the encryption method.
  • FIG. 7 embodiment A seventh embodiment will be described with reference to FIGS. 55 to 67.
  • FIG. The seventh embodiment employs a CCMP mode (Counter mode with Cipher-block chaining Message authentication code Protocol) as a measure against communication path encryption and data tampering.
  • CCMP mode Counter Mode with Cipher-block chaining Message authentication code Protocol
  • the configuration adopting CCMP mode and the conventional method of AES CBC-HMAC (Hashed Message Authentication Mode Code) SHA (Secure Hash Algorithm) 2 decryption and signature verification are adopted.
  • AES CBC-HMAC Hashed Message Authentication Mode Code
  • SHA Secure Hash Algorithm 2 decryption and signature verification
  • the OTA center 2 includes a common key generation unit 2a, an update package encryption unit 2b, a common key encryption unit 2c, a common key storage unit 2d, an encrypted package placement unit 2e,
  • the MAC key generation unit 2i is provided.
  • the MAC key generator 2i generates a MAC for preventing tampering with the update package.
  • the OTA master 4 includes a common key acquisition unit 4a, a common key decryption unit 4b, an encrypted package acquisition unit 4c, a block cipher processing unit 4d, an encrypted package decryption unit 4e, and an installation processing unit 4f.
  • a MAC key acquisition unit 4k is provided.
  • the MAC key acquisition unit 4k acquires the MAC key from the acquired campaign notification.
  • FIG. (7-1) Processing of OTA Center 2 (see FIGS. 62 to 64)
  • the OTA center 2 generates an AES key for encrypting the update package and a MAC key for preventing tampering with the update package (A071).
  • the OTA center 2 encrypts the update package in CCMP mode with the generated AES key and MAC key, and assigns a MAC (A072).
  • the OTA center 2 encrypts the AES key and MAC key with the RSA public key (A073).
  • the OTA Center 2 stores the AES key and MAC key encrypted with the RSA public key in the campaign notification (A074).
  • the OTA center 2 places the update package encrypted with the AES key and MAC key on the CDN 8 (A075).
  • the OTA center 2 transmits a campaign notification in which the encrypted AES key and MAC key are stored to the reprogramming target vehicle-side system 3 (A076).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B074). .
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 to decrypt (B075).
  • the OTA master 4 generates and verifies a MAC in AES-CBC mode using the MAC key from the plaintext of the decrypted update package (B076). When the MACs match, the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B077).
  • the OTA master 4 terminates the process if the MACs do not match.
  • the OTA master 4 may record a log indicating that the processing has terminated due to the MAC mismatch, and display an error on the HMI (not shown).
  • the OTA master 4 may decrypt the encrypted update package by XOR operation and transfer the decrypted update package to the target ECU 5 at the same time.
  • the OTA master 4 generates and verifies the MAC in the AES-CBC mode using the MAC key from the plain text of the decrypted update package, and if it determines that the MACs do not match, installs the update package to the target ECU 5. It may be configured to notify the cancellation.
  • the configuration adopts the CCMP mode as a communication path encryption between the OTA center 2 and the OTA master 4 and as a countermeasure against data falsification.
  • the CCMP mode By adopting the CCMP mode, when the OTA master 4 downloads the update package from the OTA center 2, in addition to communication channel encryption, data falsification countermeasures can be provided. As a result, security can be enhanced, and more secure OTA distribution can be realized.
  • FIG. 8 (Eighth embodiment) An eighth embodiment will be described with reference to FIGS. 68 to 77.
  • FIG. The eighth embodiment employs a GCMP mode (Galois/Counter Mode Protocol) as communication path encryption and data falsification countermeasures.
  • GCMP mode Galois/Counter Mode Protocol
  • the processing time of the hardware accelerator is more dominant than the processing time of the main core, but the throughput can be further improved by adopting the GCMP mode.
  • FIG. (8-1) Processing of OTA Center 2 (see FIGS. 72 to 74)
  • the OTA center 2 generates an AES key for encrypting the update package and a MAC key for preventing tampering with the update package (A081).
  • the OTA center 2 encrypts the update package in GCMP mode with the generated AES key and MAC key, and gives it a MAC (A082).
  • the OTA center 2 encrypts the AES key and MAC key with the RSA public key (A083).
  • the OTA Center 2 stores the AES key and MAC key encrypted with the RSA public key in the campaign notification (A084).
  • the OTA center 2 places the update package encrypted with the AES key and MAC key on the CDN 8 (A085).
  • the OTA center 2 transmits a campaign notification in which the encrypted AES key and MAC key are stored to the reprogramming target vehicle-side system 3 (A086).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B084). .
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 and decrypts them (B085).
  • the OTA master 4 generates and verifies a MAC in GMAC mode using the MAC key from the decrypted plaintext of the update package (B086). When the MACs match, the OTA master transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B087).
  • the GCMP mode is adopted as a communication channel encryption between the OTA center 2 and the OTA master 4 and as a countermeasure against data falsification.
  • the GCMP mode when the OTA master 4 downloads the update package from the OTA center 2, in addition to communication channel encryption, data falsification countermeasures can be provided. As a result, security can be enhanced, and more secure OTA distribution can be realized.
  • FIG. 8 A ninth embodiment will be described with reference to FIGS. 78 to 86.
  • FIG. The ninth embodiment adopts not only the CDN 8 but also a smartphone, a USB memory, etc. as the distribution route of the update data, and by supporting the diversity of the distribution routes, increases the flexibility of the OTA update method for the user.
  • a smart phone or a USB memory corresponds to a recording medium.
  • a smart phone and a USB memory will be exemplified as storage media, but an SD card, a micro SD card, a compact flash, or the like may be used as the storage media.
  • FIG. (9-1) Processing of OTA Center 2 (see FIGS. 79 to 82)
  • the OTA center 2 generates a common key for encrypting the update package (A091).
  • the OTA center 2 encrypts the update package in a specific encryption mode using the generated common key (A092).
  • the OTA center 2 encrypts the common key with the RSA public key (A093).
  • the OTA center 2 stores the common key encrypted with the RSA public key in the campaign notification (A094).
  • the OTA center 2 generates RP metadata including the common key cryptosystem and distribution route (A095).
  • the OTA Center 2 encrypts the RP metadata with the RSA public key (A096).
  • the OTA center 2 places the update package encrypted with the common key and the RP metadata encrypted with the RSA public key on the CDN 8 (A097).
  • the OTA center 2 transmits a campaign notification in which the encrypted common key is stored to the vehicle-side system 3 to be reprogrammed (A098).
  • the OTA master 4 acquires the encrypted update package through the identified distribution route (B096). That is, when the OTA master 4 specifies the smartphone as the distribution route, the OTA master 4 downloads the encrypted update package from the CDN 8 via the smartphone in a batch storage method. When the OTA master 4 specifies the USB memory as the distribution route, the OTA master 4 downloads the encrypted update package from the CDN 8 via the USB memory in a batch storage method. From this point on, the OTA master 4 performs the processing from step B014 onward described in the first embodiment if the CTR mode is adopted as the specific encryption mode, and if the OFB mode is adopted as the specific encryption mode. If so, the processes after step B024 described in the second embodiment are performed.
  • the update package is obtained from the CDN 8 via a recording medium such as a smartphone or a USB memory. It is possible to diversify the distribution routes of update packages, and to select distribution routes that are superior in distribution cost and usability. As a result, the distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be appropriately suppressed, and the user experience value can be improved.
  • the OTA master 4 interprets the contents of the RP metadata in step B095 to specify the common key encryption method and distribution route, but the RP metadata describes a plurality of distribution routes. In some cases, it may be possible to select one of a plurality of delivery routes.
  • FIG. 87 A tenth embodiment will be described with reference to FIGS. 87 to 98.
  • FIG. 87 a plurality of CDN vendors are dynamically selected as destinations of the update package in the CDN 8 according to the distribution method, the OTA target area, which is the distribution area, and the distribution data size, thereby suppressing the distribution cost.
  • CDN cost comparisons are shown in FIGS. 88-89.
  • the price tables are as shown in FIGS. 90-93.
  • Each CDN vendor has different price advantages and disadvantages depending on the distribution area such as Japan and North America, the distribution data size, etc. For example, referring to FIG. However, CDN1 is the cheapest in North America and the EU. Based on this fact, the CDN vendor with the lowest distribution cost is selected according to the distribution method, OTA target area, and distribution data size.
  • the OTA center 2 includes a common key generation unit 2a, an update package encryption unit 2b, a common key encryption unit 2c, a common key storage unit 2d, an encrypted package placement unit 2e,
  • the CDN vendor selection unit 2j is provided.
  • the CDN vendor selection unit 2j selects a CDN vendor by referring to the CDN vendor management database.
  • FIG. (10-1) Processing of OTA Center 2 (see FIGS. 95 to 98)
  • the OTA center 2 generates an AES key for encrypting the update package (A101).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key (A102).
  • the OTA center 2 encrypts the AES key with the RSA public key (A103).
  • the OTA Center 2 stores the AES key encrypted with the RSA public key in the campaign notification (A104).
  • the OTA center 2 identifies the distribution method (A105), identifies the OTA target area (A106), identifies the distribution data size (A107), and selects the distribution method, OTA target area, and distribution data size from the CDN vendor management database.
  • the price table is referred to as a key (A108).
  • the OTA center 2 uses at least one of the distribution method such as the storage method and the streaming method, the OTA target area such as Japan, North America, and the EU (European Union), and the distribution data size such as GB, TB, and PB as a key.
  • the OTA center 2 selects a CDN vendor with the lowest distribution cost for each area, and places the update package encrypted with the AES key on the selected CDN 8 (A109, corresponding to CDN vendor selection procedure). Alternatively, the OTA center 2 may place update packages encrypted with an AES key on each CDN 8 . The OTA center 2 sends an encrypted AES key and a campaign notification containing the update package data storage location and URI information so that the selected CDN vendor can be accessed, to the reprogramming target vehicle-side system 3 ( A110).
  • a CDN 8 with a superior distribution cost is selected from multiple CDNs 8 with different distribution costs according to the distribution method, OTA target area, and distribution data size, and the update package is placed on the selected CDN 8. It was configured to The distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be suppressed appropriately.
  • the update package at the OTA center 2 in principle, even if the intermediate route is zero trust, there is no security problem. For this reason, there is no need to encrypt the update data on the edge side of the CDN 8, and the processing load and security functions of the CDN 8 can be reduced.
  • the OTA system Until the update package reaches the OTA master 4 from the OTA center 2, even if the data is falsified or the CDN 8 is attacked by DDoS on the way, the OTA system will not be affected, and the system intervening on the way will have intelligent security. Countermeasures such as a web application firewall, TLS communication, and signed URLs that limit the OTA masters 4 to be distributed can be made unnecessary. As a result, the running cost of the OTA system can be reduced on a cost basis, and the distribution cost can be suppressed in any system configuration.
  • FIG. The eleventh embodiment uses Diffie-Hellman key exchange (hereinafter referred to as DHE (Diffie-Hellman key exchange) or elliptic curve Diffie-Hellman key exchange (hereinafter referred to as DHE) for key distribution between the OTA center 2 and the OTA master 4.
  • DHE Diffie-Hellman key exchange
  • DHE elliptic curve Diffie-Hellman key exchange
  • ECDHE Elliptic curve Diffie-Hellman key exchange
  • An update package applicable to each vehicle model or specific vehicle group applicable to the CDN 8 is delivered while enjoying the advantage of being able to ensure forward secrecy.
  • the private key and public key pair (a/A, b/B) can be destroyed after sharing the secret information (S), and both the OTA center 2 and the OTA master 4 are HSM (Hardware Security Module).
  • secret information (S) can be shared very securely because it does not need to be stored in the This shared secret information (S) can be used as a key for common key cryptography or the like.
  • FIG. (11-1) Processing of OTA Center 2 (see FIGS. 101 to 104)
  • the OTA center 2 generates an AES key for encrypting the update package (A111).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key (A112).
  • the OTA center 2 generates an ECDHE key pair from the random number (A113).
  • the OTA center 2 shares a secret key with the OTA master 4 using the ECDHE algorithm (A114, corresponding to secret information sharing procedure).
  • the OTA center 2 encrypts the AES key with the secret key (A115).
  • the OTA Center 2 stores the AES key encrypted with the private key in the campaign notification (A116).
  • the OTA center 2 places the update package encrypted with the AES key on the CDN 8 (A117).
  • the OTA center 2 transmits a campaign notification in which the encrypted AES key is stored to the vehicle-side system 3 to be reprogrammed (A118, corresponding to encryption key distribution procedure).
  • step A114 will be explained.
  • the OTA master 4 inquires the program version of the ECU installed in the vehicle and collects the vehicle configuration information.
  • the OTA master 4 receives a push notification regarding the campaign from the OTA center 2, it inquires the ECU about the program version and collects the vehicle configuration information.
  • the OTA master 4 establishes TLS communication with the OTA center 2 and transmits the vehicle configuration information to the OTA center 2 .
  • the OTA master 4 collects vehicle configuration information and generates an ECDHE key pair. Send to OTA Center 2.
  • the process of collecting vehicle configuration information by the OTA master 4 is also applied to other embodiments. Based on the public key of the OTA master 4 obtained from the OTA master 4 and the secret key of the OTA center 2, the OTA center 2 obtains a secret key in the ECDHE algorithm.
  • the OTA master 4 (11-2) Processing of OTA master 4 (see FIGS. 105 to 108)
  • the OTA master 4 generates an ECDHE key pair from random numbers (B111).
  • the OTA master 4 shares a secret key with the OTA center 2 using the ECDHE algorithm (B112, corresponding to secret information sharing procedure).
  • the OTA master 4 receives the campaign notification sent from the OTA center 2 and acquires the campaign notification, the OTA master 4 acquires the AES key from the acquired campaign notification (B113).
  • the OTA master 4 decrypts the encrypted AES key with the private key and extracts the AES key (B114).
  • the OTA master 4 downloads and acquires the encrypted update package from the CDN 8 (B115).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B116). .
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 and decrypts them (B117).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B118).
  • DHE or ECDHE is adopted for key distribution between the OTA center 2 and the OTA master 4, and the OTA center 2 encrypts the AES key based on secret information shared by each vehicle and distributes it to the OTA master 4. and As a result, the forward secrecy of ECDHE can be appropriately ensured, and efficient distribution of update data by the CDN 8 can be appropriately realized.
  • FIG. 11th embodiment A modification of the eleventh embodiment will be described with reference to FIGS. 166 to 173.
  • FIG. The eleventh embodiment has been described on the assumption that the vehicle is equipped with a wireless communication device and the OTA master 4 can transmit and receive data to and from the OTA center 2 and the CDN 8 via a wireless communication line. However, there are cases where the vehicle is not equipped with a wireless communication device or the user does not like to use the wireless communication line.
  • the OTA master 4 does not transmit/receive data to/from the OTA center 2 or the CDN 8 via a wireless communication line, but instead uses a storage medium such as an SD card to update the program. explain.
  • the OTA master 4 and OTA center 2 use storage media for data transfer with the outside.
  • Data transfer between the OTA master 4 and the storage medium uses the port for the storage medium installed in the vehicle.
  • the ports installed in the vehicle are, for example, ports installed in a car navigation device, a center display device, and other vehicle control devices.
  • Data transfer between the OTA center 2 and the storage medium is performed by connecting the storage medium to a personal computer (hereinafter referred to as PC).
  • PC personal computer
  • the stored data is downloaded to the storage medium by operating the PC.
  • a smart phone, tablet terminal, or the like that supports storage media can be used instead of the PC.
  • PCs, smartphones, tablet terminals, etc. that support storage media are also referred to as operation terminals.
  • FIG. 1 A case where an SD card is used as a storage medium will be described with reference to FIGS. 166 to 169.
  • FIG. 1 data is transferred from the OTA master 4 to the SD card 11, data is uploaded from the SD card 11 to the OTA center 2, data is downloaded from the OTA center 2 to the SD card 11, and from the SD card 11 to the OTA master 4. are processed in the order of data transfer.
  • the transfer of data from the OTA master 4 to the SD card 11 will be described with reference to FIG.
  • the OTA master 4 acquires software version information and the like from the target ECU 5 and transfers and stores the acquired software version information and the like to the SD card 11 as vehicle configuration information.
  • the OTA master 4 generates an ECDHE key pair from random numbers, transfers the ECDHE public key to the SD card 11, and stores it.
  • the SD card 11 stores the vehicle configuration information transferred from the OTA master 4 and the ECDHE public key of the OTA master 4 .
  • the uploading of data from the PC to which the SD card 11 is connected to the OTA center 2 will be described with reference to FIG.
  • the PC reads the vehicle configuration information stored in the SD card 11 and the ECDHE public key of the OTA master 4, and transmits the read vehicle configuration information and the ECDHE public key of the OTA master 4 to the OTA.
  • the vehicle configuration information uploaded to the OTA center 2 is used by the PKG generation server 6 to determine whether there is a campaign.
  • the ECDHE public key of the OTA master 4 uploaded to the OTA center 2 shares a secret key in the distribution server 7 based on the ECDHE algorithm.
  • the secret key in this case is a different secret key for each vehicle.
  • the OTA center 2 downloads the update package encrypted with the AES key to the SD card 11 and stores it.
  • the OTA center 2 generates an ECDHE key pair from random numbers, downloads a key to be shared with the OTA master 4 (ECDHE public key of the OTA center 2 ) to the SD card 11 , and stores it.
  • the OTA center 2 downloads and saves the campaign notification storing the encrypted AES key to the SD card 11.
  • the SD card 11 stores the update package downloaded from the OTA center 2, the ECDHE public key of the OTA center 2 and the encrypted AES key.
  • the transfer of data from the SD card 11 to the OTA master 4 will be described with reference to FIG.
  • the OTA master 4 reads the encrypted update package stored in the SD card 11, the ECDHE public key of the OTA center 2, and the encrypted AES key from the SD card 11 to acquire them.
  • FIG. (11-3) OTA master 4 processing (see FIG. 170)
  • the OTA master 4 requests the target ECU 5 to transmit configuration information such as software version information.
  • Configuration information such as information is acquired as vehicle configuration information (B1111).
  • the OTA master 4 transfers and stores the acquired vehicle configuration information to the SD card 11 (B1112).
  • the OTA master 4 generates an ECDHE key pair from the random number (B1113).
  • the key pair includes the ECDHE public key and the ECDHE private key of the OTA master 4 .
  • the OTA master 4 transfers and stores the ECDHE public key of the OTA master 4 to the SD card 11 (B1114).
  • the SD card 11 is disconnected from the vehicle-side system 3 and connected to the PC.
  • the OTA center 2 (11-5) Processing of OTA Center 2 (see FIG. 172)
  • the OTA center 2 generates an AES key for encrypting the update package, and encrypts the update package with the AES key in CTR mode.
  • the OTA center 2 acquires the vehicle configuration information uploaded from the PC to which the SD card 11 is connected and the ECDHE public key of the OTA master 4 (A1111).
  • the OTA center 2 determines whether there is a campaign based on the vehicle configuration information (A1112). When the OTA center 2 determines that there is no campaign (A1112: NO), it transmits a no-campaign notification to the PC (A1113) and terminates the process.
  • the OTA center 2 determines that there is a campaign (A1112: YES), it generates an ECDHE key pair from random numbers (A1114).
  • the key pair is the OTA Center 2's ECDHE public key and ECDHE private key.
  • the OTA center 2 downloads and stores the ECDHE public key of the OTA center 2 to the SD card 11 (A1115).
  • the OTA center 2 generates an ECDHE common key (secret key) from the ECDHE secret key of the OTA center 2 and the ECDHE public key of the OTA master 4 (A1116), and encrypts the AES key with the generated ECDHE common key (secret key). (A1117).
  • the OTA center 2 stores the encrypted AES key in the campaign notification, and downloads and saves the campaign notification containing the encrypted AES key to the SD card 11 (A1118).
  • the OTA center 2 downloads and stores the encrypted update package in the SD card 11 (A1119).
  • OTA master 4 processing (see FIG. 173)
  • the OTA master 4 acquires the ECDHE public key of the OTA center 2, the campaign notification, and the update package from the SD card 11 (B1121).
  • the OTA master 4 generates an ECDHE common key (secret key) from the ECDHE secret key of the OTA master 4 and the ECDHE public key of the OTA center 2 (B1122).
  • the OTA master 4 extracts the encrypted AES key from the campaign notification and decrypts it using the ECDHE common key (secret key) (B1123).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B1124).
  • the OTA master 4 decrypts the encrypted counter value and the encrypted update package by XOR operation (B1125).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B1126).
  • the random number a generated by the OTA center 2 is a random number for each vehicle model (random number according to a specific rule), and the random number b generated by the OTA master 4 is a vehicle model.
  • the secret key shared by the ECDHE is made common to each vehicle model by using either one of the fixed value, the count-up value, or the hash value of the software version of the OTA master 4, or a combination thereof, and the ECDHE While enjoying the advantage of ensuring forward secrecy, the process of distributing the key is omitted, and the encrypted package applicable to each vehicle model or specific vehicle group is distributed by CDN.
  • FIG. (12-1) Processing of OTA Center 2 (See FIGS. 110 to 112)
  • the OTA center 2 generates an ECDHE key pair from random numbers common to each vehicle model or each vehicle group (A121).
  • the OTA center 2 shares a secret key with the OTA master 4 using the ECDHE algorithm (A122, corresponding to secret information sharing procedure).
  • A122 corresponding to secret information sharing procedure
  • a secret key shared with the OTA master 4 by the ECDHE algorithm is used as an AES key for encrypting the update package.
  • the OTA Master 4 uses the private key shared with the OTA Center 2 as an AES key to decrypt the encrypted update package.
  • the OTA Center 2 generates an AES key for encrypting the update package (A123).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key (A124).
  • the OTA center 2 places the update package encrypted with the AES key on the CDN 8 (A125).
  • the OTA center 2 transmits a campaign notification in which the encrypted AES key is stored to the vehicle-side system 3 to be reprogrammed (A126, corresponding to encryption key distribution procedure).
  • the OTA master 4 (12-2) Processing of OTA master 4 (see FIGS. 113 to 115)
  • the OTA master 4 generates an ECDHE key pair from random numbers generated according to the specific rules described above (B121).
  • the OTA center 2 shares the secret key with the OTA center 2 using the ECDHE algorithm (B122, corresponding to secret information sharing procedure).
  • the OTA master 4 downloads and acquires the encrypted update package from the CDN 8 (B123).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B124). .
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 to decrypt (B125).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B126).
  • DHE or ECDHE is adopted for key distribution between the OTA center 2 and the OTA master 4, and the secret key shared by ECDHE is made common for each vehicle model.
  • the forward secrecy of ECDHE can be appropriately ensured, and the efficient distribution of update data by the CDN 8 can be appropriately realized while simplifying the time and effort of key distribution compared to the eleventh embodiment.
  • the transfer of data from the OTA master 4 to the SD card 11 will be described with reference to FIG.
  • the OTA master 4 acquires software version information and the like from the target ECU 5 and transfers and stores the acquired software version information and the like to the SD card 11 as vehicle configuration information.
  • the OTA master 4 uses either one of a fixed value for each vehicle model, a count-up value, or a hash value of the software version of the OTA master 4, or a combination thereof to create an ECDHE key pair common to each vehicle model. , and a key to be shared with the OTA center 2 (ECDHE public key of the OTA master 4) is transferred to the SD card 11 and stored.
  • the SD card 11 stores the vehicle configuration information transferred from the OTA master 4 and the ECDHE public key of the OTA master 4 .
  • the uploading of data from the PC to which the SD card 11 is connected to the OTA center 2 will be described with reference to FIG.
  • the PC reads the vehicle configuration information stored in the SD card 11 and the ECDHE public key of the OTA master 4, and transmits the read vehicle configuration information and the ECDHE public key of the OTA master 4 to the OTA.
  • the vehicle configuration information uploaded to the OTA center 2 is used by the PKG generation server 6 to determine whether there is a campaign.
  • the ECDHE public key of the OTA master 4 uploaded to the OTA center 2 shares a secret key in the distribution server 7 based on the ECDHE algorithm.
  • the secret key in this case is a secret key common to each vehicle model.
  • the OTA center 2 generates an ECDHE key pair from random numbers common to each vehicle model or vehicle group, and downloads the key to be shared with the OTA master 4 (ECDHE public key of the OTA center 2) to the SD card 11. to save.
  • the OTA center 2 encrypts the update package by using the secret key shared by ECDHE as an AES key, downloads the encrypted update package to the SD card 11, and stores it.
  • the SD card 11 stores the ECDHE public key of the OTA center 2 downloaded from the OTA center 2 and the update package.
  • the transfer of data from the SD card 11 to the OTA master 4 will be described with reference to FIG.
  • the OTA master 4 reads and obtains the encrypted update package stored in the SD card 11 and the ECDHE public key of the OTA center 2 .
  • the OTA masters 4 share a secret key based on the ECDHE algorithm.
  • the OTA master 4 uses the secret key shared by ECDHE as an AES key to decrypt the encrypted update package.
  • FIG. (12-3) OTA master 4 processing (see FIG. 178)
  • the OTA master 4 requests the target ECU 5 to transmit configuration information such as software version information.
  • Configuration information such as information is acquired as vehicle configuration information (B1211).
  • the OTA master 4 transfers and stores the acquired vehicle configuration information to the SD card 11 (B1212).
  • the OTA master 4 generates an ECDHE key pair from random numbers generated according to specific rules (B1213).
  • the key pair includes the ECDHE public key and the ECDHE private key of the OTA master 4 .
  • the OTA master 4 transfers and stores the ECDHE public key of the OTA master 4 to the SD card 11 (B1214).
  • the ECDHE key pair is a random number generated according to a specific rule as in the twelfth embodiment, and is common to each vehicle model.
  • the SD card 11 is disconnected from the vehicle-side system 3 and connected to the PC.
  • the OTA center 2 acquires the vehicle configuration information uploaded from the PC to which the SD card 11 is connected and the ECDHE public key of the OTA master 4 (A1211). The OTA center 2 determines whether there is a campaign based on the vehicle configuration information (A1212). When the OTA center 2 determines that there is no campaign (A1212: NO), the OTA center 2 transmits a no-campaign notification to the PC (A1213) and terminates the process.
  • the OTA center 2 determines that there is a campaign (A1212: YES), it generates an ECDHE key pair from random numbers common to each vehicle model or each vehicle group (A1214).
  • the key pair is the OTA Center 2's ECDHE public key and ECDHE private key.
  • the OTA center 2 downloads and stores the ECDHE public key of the OTA center 2 to the SD card 11 (A1215).
  • the OTA center 2 generates an ECDHE common key (secret key) from the ECDHE secret key of the OTA center 2 and the ECDHE public key of the OTA master 4 (A1216), and encrypts the update package with the generated ECDHE common key (secret key). (A1217).
  • the OTA center 2 downloads and stores the encrypted update package to the SD card 11 (A1218).
  • the OTA master 4 acquires the ECDHE public key and update package of the OTA center 2 from the SD card 11 (B1221).
  • the OTA master 4 generates an ECDHE common key (private key) from the ECDHE private key of the OTA master 4 and the ECDHE public key of the OTA center 2 (B1222).
  • the OTA master 4 encrypts the counter value by executing AES block encryption processing on the counter value using the AES key (B1223).
  • the OTA master 4 decrypts the encrypted counter value and the encrypted update package by XOR operation (B1224).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B1225).
  • FIG. 13th embodiment The thirteenth embodiment will be described with reference to FIGS. 116 to 124.
  • FIG. The thirteenth embodiment does not simply apply the CTR mode, but makes it more secure by devising counter values. Specifically, the CTR mode is made safer by inserting a nonce into the campaign notification first communicated between the OTA center 2 and the OTA master 4 and inserting the nonce into the counter value.
  • FIG. 117 shows the encryption process that inserts the CTR mode nonce
  • FIG. 118 shows the decryption process that inserts the CTR mode nonce.
  • FIG. (13-1) Processing of OTA Center 2 (see FIGS. 119 to 121)
  • the OTA center 2 generates an AES key for encrypting the update package (A131).
  • the OTA center 2 generates a nonce with random numbers (A132).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key and nonce (A133).
  • the OTA center 2 encrypts the AES key with the RSA public key (A134).
  • the OTA center 2 may encrypt the AES key with the RSA public key and at the same time encrypt the nonce with the RSA public key.
  • the OTA Center 2 stores the AES key and nonce encrypted with the RSA public key in the campaign notification (A135).
  • the OTA center 2 places the update package encrypted with the AES key on the CDN 8 (A136).
  • the OTA center 2 transmits the campaign notification in which the encrypted AES key and nonce are stored to the reprogramming target vehicle-side system 3 (A137).
  • a configuration is adopted in which a nonce is included in the campaign notification first communicated between the OTA center 2 and the OTA master 4, and the nonce is included in the counter value.
  • the CTR mode can be made safer by incorporating the nonce into the counter value.
  • the fourteenth embodiment will be described with reference to FIGS. 125 to 132.
  • the key used for encryption is not a common key for all vehicles in order to narrow the range of influence when the key is compromised, but a derivative that is individualized for each specific vehicle group unit.
  • the use of keys localizes the loss in the event of key compromise while maintaining CDN 8 distribution cache efficiency, resulting in more secure OTA distribution.
  • the VIN number is divided into a plurality of divisions for the same vehicle model and model year, and a different AES individual key is used for each division.
  • VIN numbers AAA to CCC, VIN numbers DDD to KKK, and VIN numbers SSS to ZZZ are used, and different AES individual keys are used.
  • the individual key database contains, for example, AES individual keys separated by OEM code, vehicle model, year, AES master key, seed value, and VIN number.
  • FIG. (14-1) Processing of OTA Center 2 (see FIGS. 127 to 129)
  • the OTA center 2 generates an AES individual key for encrypting the update package from the AES master key and seed value (A141).
  • a seed value is, for example, a random number, a counter value, a time stamp, or the like.
  • the OTA Center 2 encrypts the update package in CTR mode with one of the generated AES individual keys and the nonce (A142).
  • the OTA center 2 encrypts the AES individual key with the RSA public key (A143).
  • the OTA Center 2 stores the AES individual key and nonce encrypted with the RSA public key in the campaign notification (A144).
  • the OTA center 2 places the update package encrypted with one of the AES individual keys and the nonce on the CDN 8 (A145).
  • the OTA center 2 transmits the campaign notification containing the encrypted AES individual key and nonce to the reprogramming target vehicle system 3 (A146).
  • the fourteenth embodiment the following effects can be obtained.
  • the key used for encryption instead of using a common key for all vehicles, a configuration is adopted in which a derived key that is individualized for each specific vehicle group is used. Loss during key compromise can be localized while maintaining CDN 8 delivery cache efficiency. As a result, it is possible to improve security when the OTA master 4 downloads the update package from the OTA center 2, thereby realizing more secure OTA distribution.
  • FIG. 15th embodiment The fifteenth embodiment will be described with reference to FIGS. 133 to 137.
  • FIG. 1 in preparation for the worst case of leakage of the private key, a key version is assigned so that the key can be updated OTA, and the OTA center 2 manages the key update key.
  • the OTA center 2 manages version information of the RSA public key used to encrypt the AES key and the RSA private key used to decrypt it. By managing the version information, downgrading is prevented when updating the RSA private key and the RSA public key.
  • the OTA center 2 and the OTA master 4 each have a key update key used for updating the secret key.
  • a new private key pair is generated, a key update package is generated using the key update key, and the key update package is transmitted to the OTA master 4, so that the secret Implement key rekeying.
  • FIG. 15-1) Processing of OTA Center 2 (see FIGS. 134 to 135)
  • the OTA center 2 generates a new key pair of a new RSA private key and a new RSA public key (A151).
  • the OTA center 2 encrypts the generated new RSA private key with the key update key in CTR mode and performs MAC operation to generate a key update package (A152).
  • the OTA center 2 switches the old RSA public key to the new RSA public key (A153).
  • the OTA center 2 transmits the key update package to the vehicle-side system 3 to be reprogrammed (A154).
  • the OTA master 4 acquires the key update package, decrypts the new RSA private key with the key update key in CTR mode, and performs MAC verification (B151).
  • the OTA master 4 switches the old RSA private key to the decrypted new RSA private key (B152).
  • a new private key pair is generated when the private key is leaked or at regular intervals, and a key update package is generated using the key for key update, and the key update package is transmitted to the OTA master 4 .
  • security can be improved when the OTA master 4 downloads the update package from the OTA center 2, and more secure OTA distribution can be realized.
  • FIG. 139 to 140 DHE is vulnerable to attacks from intermediary attackers, but by adding a digital signature, it is counteracted by attacks from intermediary attackers.
  • a digital signature a digital signature using an encryption algorithm of RSA or elliptic curve DSA is used.
  • FIG. (16-1) Processing of OTA Center 2 (see FIGS. 141 to 143)
  • the OTA center 2 generates an ECDHE key pair from random numbers generated for each vehicle model or each vehicle group (A161).
  • the OTA center 2 gives a digital signature to the ECDHE key with the RSA private key (A162).
  • the RSA private key is used here, it is not limited to the RSA private key, and any public key cryptosystem can be used as an alternative, such as an ECDSA (Elliptic Curve Digital Signature Algorithm) private key.
  • ECDSA Elliptic Curve Digital Signature Algorithm
  • the OTA center 2 shares a secret key with the OTA master 4 using the ECDHE algorithm (A164).
  • the OTA Center 2 generates an AES key for encrypting the update package (A165).
  • the OTA Center 2 encrypts the update package in CTR mode with the generated AES key (A166).
  • the OTA center 2 places the update package encrypted with the AES key on the CDN 8 (A167).
  • the OTA center 2 transmits the campaign notification in which the encrypted AES key is stored to the reprogramming target vehicle-side system 3 (A168).
  • the OTA master 4 (16-2) Processing of OTA master 4 (see FIGS. 144 to 145)
  • the OTA master 4 generates an ECDHE key pair from random numbers generated according to specific rules (B161).
  • the OTA master 4 verifies the digital signature of the ECDHE public key received from the OTA center 2 with the RSA public key (B162). Also here, as in the OTA center 2, it is not limited to the RSA public key, and any public key cryptosystem can be used as an alternative. For example, the ECDSA public key may be used. If the verification result is positive, the OTA master 4 shares the secret key with the OTA center 2 using the ECDHE algorithm (B163). After that, the OTA master 4 performs the processes after step B113 described in the eleventh embodiment.
  • a digital signature is added in ECDHE key sharing.
  • attacks from intermediate attackers can be countered, and more secure OTA distribution can be realized.
  • FIG. 16th embodiment A modification of the sixteenth embodiment will be described with reference to FIGS. 182 to 189.
  • FIG. In the modified example of the sixteenth embodiment, similarly to the modified examples of the eleventh and twelfth embodiments, the OTA master 4 does not transmit/receive data to/from the OTA center 2 or the CDN 8 via a wireless communication line. A situation in which program update is performed using a storage medium such as an SD card will be described.
  • the main difference between the modified example of the 16th embodiment and the modified example of the 12th embodiment is that the ECDHE public key of the OTA center 2 is given a digital signature with the key of the public key cryptosystem to prevent an attack from an intermediary attacker. It is in the point of opposing to.
  • data is transferred from the OTA master 4 to the SD card 11
  • data is uploaded from the PC connected to the SD card 11 to the OTA center 2
  • data is transferred from the OTA center 2 to the SD card 11.
  • Downloading and transfer of data from the SD card 11 to the OTA master 4 are shown.
  • the main difference from the modified example of the twelfth embodiment is that, as shown in FIG. , for example, a digital signature is given with an RSA private key or an ECDSA private key.
  • the OTA center 2 transfers the signed ECDHE public key to the SD card 11 and stores it.
  • the OTA master 4 reads the signed ECDHE public key from the SD card 11 and verifies it using the RSA public key stored in the vehicle-side system 3 .
  • FIG. (16-3) OTA master 4 processing (see FIG. 186)
  • the OTA master 4 requests the target ECU 5 to transmit configuration information such as software version information.
  • Configuration information such as information is acquired as vehicle configuration information (B1611).
  • the OTA master 4 transfers and stores the acquired vehicle configuration information to the SD card 11 (B1612).
  • the OTA master 4 generates an ECDHE key pair from random numbers generated according to specific rules (B1613). In this case, the key pair includes the ECDHE public key and the ECDHE private key of the OTA master 4 .
  • the OTA master 4 transfers and stores the ECDHE public key of the OTA master 4 to the SD card 11 (B1614).
  • the ECDHE key pair is a random number generated according to a specific rule as in the twelfth embodiment, and is common to each vehicle model.
  • the SD card 11 is disconnected from the vehicle system 3 and connected to the PC.
  • the process ends.
  • the OTA center 2 acquires the vehicle configuration information uploaded from the PC to which the SD card 11 is connected and the ECDHE public key of the OTA master 4 (A1611). The OTA center 2 determines whether there is a campaign based on the vehicle configuration information (A1612). When the OTA center 2 determines that there is no campaign (A1612: NO), it sends a no-campaign notification to the PC (A1613) and terminates the process.
  • the OTA center 2 determines that there is a campaign (A1612: YES), it generates an ECDHE key pair from random numbers common to each vehicle model or vehicle group (A1614).
  • the key pair is the OTA Center 2's ECDHE public key and ECDHE private key.
  • the OTA center 2 signs the ECDHE public key of the OTA center 2 with the RSA private key (A1615), and downloads and stores the signed ECDHE public key of the OTA center 2 to the SD card 11 (A1616).
  • the OTA center 2 generates an ECDHE common key (secret key) from the ECDHE secret key of the OTA center 2 and the ECDHE public key of the OTA master 4 (A1617), and encrypts the update package with the generated ECDHE common key (secret key). (A1618).
  • the OTA center 2 downloads and stores the encrypted update package to the SD card 11 (A1619).
  • the OTA master 4 acquires the signed ECDHE public key of the OTA center 2 and the update package from the SD card 11 (B1621).
  • the OTA master 4 verifies the signed ECDHE public key of the OTA center 2 with the RSA public key (B1622).
  • the OTA master 4 determines whether or not the verification result is normal (B1623), and if it determines that the verification result is abnormal (B1623: NO), it notifies an error (B1624).
  • the OTA master 4 determines that the verification result is normal (B1623: YES), it generates an ECDHE common key (private key) from the ECDHE private key of the OTA master 4 and the ECDHE public key of the OTA center 2 (B1625).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B1626).
  • the OTA master 4 decrypts the encrypted counter value and the encrypted update package by XOR operation (B1627).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B1628).
  • FIG. 17th embodiment The seventeenth embodiment will be described with reference to FIGS. 146 to 151.
  • FIG. in the tenth embodiment a CDN vendor with the lowest distribution cost is selected for each area from among a plurality of CDN vendors. This configuration is statically selected. Specifically, the tenth embodiment encrypts the update package at the OTA center 2 and minimizes the distribution cost according to the distribution method, OTA target area, and distribution data size. , the update package is not encrypted at the OTA center 2, and the communication between the CDN 8 and the OTA master 4 is protected by TLS communication, and the distribution cost is minimized according to the distribution method, OTA target area, and distribution data size.
  • FIG. (17-1) Processing of OTA Center 2 (see FIGS. 147 to 148)
  • the OTA center 2 identifies the distribution method (A171), identifies the OTA target area (A172), identifies whether TLS is used as the communication protocol for the vehicle (A173), and identifies the distribution data size (A174).
  • the price table is referred to from the CDN vendor management database using the delivery method, OTA target area, communication protocol and delivery data size as keys (A175).
  • the OTA center 2 may refer to the price table using at least one of the distribution method, OTA target area, communication protocol, and distribution data size as a key.
  • the OTA center 2 selects a CDN vendor with the lowest distribution cost for each area, and places the update package on the selected CDN 8 (A176).
  • the OTA center 2 transmits the campaign notification to the reprogramming target vehicle system 3 (A177).
  • the OTA master 4 acquires the campaign notification by receiving the campaign notification transmitted from the OTA center 2 (B171).
  • the OTA master 4 establishes TLS communication with the CDN vendor listed in the campaign notification to obtain the update package (B172). It should be noted that the information of the CDN vendor may not be described as long as the URI information is described in the campaign notification.
  • the OTA master 4 exchanges the AES common key using the TLS communication protocol. It negotiates to select the AES-CTR mode as the encryption mode.
  • the OTA master 4 downloads and acquires the update package encrypted with the TLS AES common key from the CDN 8 based on the URI information (B173, corresponding to update data acquisition procedure).
  • the OTA master 4 encrypts the counter value by executing AES block cipher processing on the counter value using the AES key (B174). .
  • the OTA master 4 XORs the encrypted counter value and the encrypted update package downloaded from the CDN 8 and decrypts them (B175).
  • the OTA master 4 transfers the decrypted update package to the target ECU 5 and installs the update package in the target ECU 5 (B176).
  • the update package is not encrypted at the OTA center 2, and the communication between the CDN 8 and the OTA master 4 is protected by TLS communication, and the distribution cost is minimized according to the distribution method, OTA target area, communication protocol, and distribution data size. It was configured to As a result, the distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be suppressed appropriately.
  • FIG. The 18th embodiment selects the optimal CDN vendor based on comprehensive consideration of not only the distribution cost but also the throughput and response delay time of the CDN vendor, and periodically updates the price table and quality characteristics of the CDN vendor. check, keep the CDN vendor management database up-to-date, and always select the CDN vendor with the most competitive advantage in the market.
  • the price tables are as shown in FIGS. 153 to 160, and the quality information of each cloud service provider is as shown in FIG. As shown in FIG.
  • CDN vendor B when comparing CDN vendor A and CDN vendor B, CDN vendor B is superior to CDN vendor A in terms of distribution cost, but in terms of throughput weighting and response delay time weighting CDN Vendor A dominates CDN Vendor B.
  • CDN Vendor A dominates CDN Vendor B.
  • the throughput and response delay time of the CDN vendor should be comprehensively considered, not CDN vendor B, which is superior only in terms of distribution cost. It is possible to draw the conclusion that the superior CDN vendor A should be selected.
  • FIG. (18-1) Processing of OTA Center 2 (see FIGS. 163 to 165)
  • the OTA center 2 identifies the distribution method (A181), identifies the OTA target area (A182), and refers to the price table from the CDN vendor management database using the distribution method and OTA target area as keys (A183).
  • the OTA center 2 may refer to the price table using at least one of the distribution method and the OTA target area as a key.
  • the OTA Center 2 identifies the quality characteristics of each CDN vendor from the CDN vendor management database (A184).
  • the OTA center 2 selects the optimal CDN vendor for each area from the CDN vendor selection logic registered in the CDN vendor selection logic database based on the distribution cost and quality characteristics of the CDN vendor for each area, and encrypts with the AES key.
  • the selected update package is placed in the selected CDN8 (A185).
  • the OTA center 2 transmits a campaign notification in which the encrypted AES key is stored to the reprogramming target vehicle-side system 3 (A186).
  • the OTA Center 2 automatically acquires the price table of each CDN vendor from the website and updates the CDN vendor management database (A187).
  • the OTA center 2 measures the throughput and response delay time of each CDN vendor and updates the CDN vendor management database (A188).
  • the distribution server 7 periodically visits each CDN vendor's website and downloads the latest price table.
  • the distribution server 7 downloads the latest price table by registering with the distribution service.
  • the following effects can be obtained.
  • We select the most suitable CDN vendor by comprehensively considering not only the distribution cost but also the throughput and response delay time of the CDN vendor, regularly check the price table and quality characteristics of the CDN vendor, and always We kept our administrative database up-to-date and always chose the most competitive CDN vendors in the market. As a result, the distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be suppressed appropriately.
  • CDN quality characteristics are not limited to throughput and response delay time, but content cache hit ratios and past trouble records can also be considered, and these can be included in the CDN vendor management database. It is possible. It is also possible to regularly review the addition or deletion of CDN vendors to which the OTA center 2 is connected, and to connect with CDN vendors that are competitive in the market.
  • FIG. 90 The nineteenth embodiment will be described with reference to FIGS. 90 and 190 to 193.
  • FIG. The tenth embodiment described above has a configuration in which a CDN vendor with the lowest distribution cost is selected for each area from a plurality of CDN vendors.
  • selection of a CDN vendor will be specifically described.
  • the distribution cost is determined according to the distribution data size, the OTA target area (sometimes referred to as a region) that is a distribution area, and the distribution method from among a plurality of CDN vendors as the location of the update package on the CDN 8. Dynamically select the smallest CDN vendor.
  • the nineteenth embodiment will be described with reference to the price table illustrated in FIG. 90 described above.
  • the price table may have a format different from that of FIG.
  • the distribution server 7 includes a CDN vendor management DB, a CDN vendor selection unit 7a, a data storage unit 7b, a campaign notification generation unit 7c, and a CDN distribution unit 7d.
  • the CDN vendor selection unit 7a selects a CDN vendor based on selection information and update package information that are necessary for selecting a CDN vendor.
  • the selection information includes information on the data size of the target campaign, the number of vehicles targeted for distribution of the target campaign, the region, the distribution method, and the like.
  • the data storage unit 7b stores campaign information as well as identification information that can identify the CDN vendor selected by the CDN vendor selection unit 7a.
  • the identification information includes, for example, the name of the CDN vendor, an identification number identifying the CDN vendor, or a URL indicating the CDN vendor.
  • the campaign notification generation unit 7c acquires information from the data storage unit 7b and generates campaign notifications to be distributed to vehicles and the like.
  • the CDN distribution unit 7d has a storage area corresponding to each CDN vendor.
  • the storage areas comprise storage area A, storage area B, and storage area C.
  • Each storage area of the CDN distribution unit 7d and the CDN server are synchronized. That is, the CDN distribution unit 7d arranges the data in the storage area A and transfers the data to the CDN server A, for example, when distributing the data from the CDN server A to the vehicle-side system 3 .
  • the CDN server A distributes the transferred data to the vehicle-side system 3 when the data is transferred from the CDN distribution unit 7d.
  • Each storage area of the CDN distribution unit 7d may be called an origin server of each CDN server.
  • FIG. 19 Note that processing such as encryption of the update package by the OTA center 2 is the same as in the tenth embodiment or other embodiments. Also, the processing of the OTA master 4 is the same as in the first embodiment or other embodiments. In the nineteenth embodiment, selection of a CDN vendor will be mainly described.
  • the campaign notification generator 7c acquires campaign information from an external source such as an OEM server (A191).
  • the campaign information includes information on the data size of the target campaign, the number of vehicles targeted for distribution of the target campaign, the region, and the distribution method.
  • the campaign notification generation unit 7c stores the acquired campaign information in the data storage unit 7b (A192). Storing the campaign information may be referred to as deploying the campaign information.
  • the campaign notification generation unit 7c notifies the CDN vendor selection unit 7a of the CDN vendor selection request (A193), and waits for acquisition of the selection notification from the CDN vendor selection unit 7a.
  • the campaign notification generation unit 7c acquires the selection notification from the CDN vendor selection unit 7a (A194)
  • the campaign notification generation unit 7c accesses the data storage unit 7b and acquires the identification information of the CDN vendor selected by the CDN vendor selection unit 7a (A195 ).
  • the campaign notification generation unit 7c generates a parameter file containing the URL of the selected CDN based on the identification information of the CDN vendor as a campaign notification (A196).
  • the campaign notification generator 7c distributes the generated campaign notification to the vehicle system 3 (A197).
  • the CDN vendor selection unit 7a When the CDN vendor selection unit 7a starts the first CDN selection process, it calculates the distribution data size indicating the data size distributed from the CDN server to the update target vehicle (A1921). Specifically, the CDN vendor selection unit 7a multiplies the data size of the target campaign by the number of vehicles targeted for delivery of the target campaign, and calculates the distribution data size scheduled to be distributed from the CDN server.
  • the CDN vendor selection unit 7a repeats the subsequent processing for each CDN vendor (A1922 to A1929).
  • the CDN vendor selection unit 7a acquires fee information from the CDN vendor management DB based on the previously calculated distribution data size and region information regarding the region (A1923). For example, in the case of a 30 TB campaign targeting North America, the CDN vendor selection unit 7a acquires charge information for " ⁇ 10 TB" and " ⁇ 40 TB" in the "North America" region. Charge information may be acquired for all data sizes.
  • the CDN vendor selection unit 7a refers to the charge information based on the distribution data size and calculates the distribution billing amount (A1924).
  • the calculation of the distribution charge amount may differ for each CDN vendor, and is determined by the distribution charge amount calculation method of the CDN vendor. For example, when calculating the distribution billing amount for CDN1 in the price table of FIG. 90, if the region is "North America" and the distribution data size is 30 TB, the price tables for " ⁇ 10 TB" and " ⁇ 40 TB" are referenced.
  • the CDN vendor selection unit 7a determines whether the CDN vendor under consideration is a CDN vendor that charges according to the number of requests (A1925). When the CDN vendor selection unit 7a determines that the CDN vendor does not charge according to the number of requests (A1925: NO), the CDN vendor selection unit 7a determines the distribution charge amount as the charge amount of the CDN vendor (A1928). After completing the billing amount calculation, calculate the billing amount of the next CDN vendor.
  • the CDN vendor selection unit 7a determines that the CDN vendor charges according to the number of requests (A1925: YES), it calculates the number of requests (A1926).
  • the number of requests varies depending on the delivery method. If the delivery method is the storage method, the number of requests is the number of vehicles targeted for campaign delivery. If the distribution method is the streaming method, divide the data size of the target campaign by the chunk size at the time of streaming and multiply by the number of vehicles targeted for distribution of the campaign to calculate the number of requests.
  • the CDN vendor selection unit 7a calculates a billing amount (sometimes referred to as request billing amount) based on the calculated number of requests (A1927).
  • the request charge amount is the charge amount per request multiplied by the number of requests.
  • the CDN vendor selection unit 7a determines the sum of the distribution charge amount and the request charge amount as the charge amount of the CDN vendor (A1928), finishes calculating the charge amount for the CDN vendor under consideration, and proceeds to the next step. Calculate the billing amount of the CDN vendor.
  • the CDN vendor selection unit 7a calculates the billing amount for all CDN vendors, The CDN vendor with the lowest distribution cost, that is, the CDN vendor with the lowest billing amount is selected (A1930), and the first CDN selection process ends. After completing the first CDN selection process, the CDN vendor selection unit 7a stores the selection result, that is, the identification information of the selected CDN vendor in the data storage unit 7b (A1914), and notifies the campaign notification generation unit 7c of the selection result. (A1915).
  • the distribution server 7 refers to the CDN vendor management DB, selects a CDN 8 with a superior distribution cost from a plurality of CDNs 8 with different distribution costs according to the distribution method, OTA target area, and distribution data size, and distributes the update package to the relevant CDN 8. It was configured to be placed in the selected CDN8. As a result, the distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be suppressed appropriately.
  • FIG. A first modification of the nineteenth embodiment uses a DNS (Domain Name System) server so that the URL of the CDN server included in the campaign notification delivered to the vehicle-side system 3 is not changed.
  • the CDN vendor with the lowest distribution cost is selected for each campaign.
  • the campaign notification includes the URL of the CDN server. Therefore, when the CDN vendor with the lowest distribution cost is changed, the URL described in the campaign notification is changed.
  • the campaign notification generation unit 7c needs to access the data storage unit 7b and acquire information on the CDN vendor each time a campaign notification is generated.
  • the DNS setting unit 7e updates the conversion information between the URL and the IP address registered in the DNS, so that the campaign notification generation unit 7c always describes the same URL in the campaign notification. can be done.
  • the vehicle-side system 3 can access the selected CDN server by changing the information of the DNS server 12 .
  • each CDN server has a unique IP address and a unique URL.
  • each CDN server has a unique IP address, but the CDN servers have a common URL.
  • the distribution server 7 includes a CDN vendor management DB, a CDN vendor selection unit 7a, a data storage unit 7b, a campaign notification generation unit 7c, and a CDN distribution unit 7d. , and a DNS setting unit 7e. Differences from the nineteenth embodiment will be mainly described below.
  • the DNS server 12 is a server that provides a mechanism for converting domain names and IP addresses.
  • the campaign notification received by the vehicle-side system 3 includes the URL of the CDN server accessed to download the data.
  • the vehicle-side system 3 inquires of the DNS server 12 about the URL indicated in the received campaign notification.
  • the DNS server 12 transmits the IP address corresponding to the URL for which the inquiry was obtained to the vehicle-side system 3, or transfers the connection destination to the address specified by the IP address.
  • the DNS setting unit 7e stores identification information and IP addresses of CDN vendors.
  • the DNS setting unit 7e transmits an IP address setting request to the DNS server 12 and sets registration information in DNS.
  • the DNS setting unit 7e acquires the information of the DNS server 12 or saves the previous setting information to the DNS server 12, and the CDN server registered in the DNS server 12 and the CDN vendor selection unit 7a select The IP address update request may be sent to the DNS server 12 if the DNS server is different from the CDN server.
  • the campaign notification generation unit 7c generates a campaign notification including the fixed URL when receiving the selection notification from the CDN vendor selection unit 7a.
  • the CDN URL information included in the campaign notification can always be the same, and security can be enhanced.
  • the DNS server 12 checks the delivery status of the CDN server, If it is determined that the distribution is not possible, the IP address of the CDN server with the next lowest distribution cost is answered to the vehicle side system 3 .
  • the distribution server 7 includes a CDN vendor management DB, a CDN vendor selection unit 7a, a data storage unit 7b, a campaign notification generation unit 7c, a CDN distribution unit 7d, a DNS
  • a performance measurement unit 7f is provided in addition to the setting unit 7e.
  • the DNS server 12 has a CDN server confirmation unit 12a.
  • a test file for measuring the performance of the CDN server is arranged in the storage area of the CDN distribution unit 7d.
  • the performance measurement unit 7f transmits a test file distribution request to the CDN server, causes the CDN server to distribute the test file, and measures the time required to distribute the test file as the distribution time.
  • the delivery time is, for example, the time from when the delivery of the test file is started to when the completion of reception of the test file is specified.
  • the CDN vendor management DB has a CDN server selection table, as shown in FIG.
  • the selection table includes cost rankings determined by the CDN vendor selection unit 7a and distribution flags determined by the performance measurement unit 7f.
  • the performance measurement unit 7f calculates the response speed from the time required to distribute the test file for each CDN server, and inputs the determination result based on the calculated response speed into the selection table.
  • the performance measuring unit 7f sets the distribution flag of the CDN server to ON (TRUE) when the response speed is equal to or higher than the specified value, and turns off (TRUE) the distribution flag of the CDN server when the response speed is less than the specified value. FALSE).
  • the CDN server confirmation unit 12a determines whether or not the CDN server designated by the URL is ready for distribution when receiving an inquiry about the IP address corresponding to the URL from the vehicle-side system 3, and determines whether the distribution is possible. When determined, the IP address of another CDN server is answered.
  • FIG. (19-4) Processing of CDN vendor selection unit 7a (see FIGS. 198 to 199)
  • the CDN vendor selection unit 7a calculates the billing amount for each CDN vendor (A1921 to A1929), and determines the cost order of the CDN vendors (A1951). That is, the CDN vendor selection unit 7a determines the CDN vendor with the lowest distribution cost as the first rank, and the CDN vendor with the next lowest distribution cost as the second rank.
  • the CDN vendor selection unit 7a saves the selection result in the data storage unit 7b (A1914), it saves the cost ranking in the selection table of the CDN vendor management DB (A1941).
  • the performance measuring unit 7f repeats the subsequent processing for each CDN vendor (A1961 to A1966).
  • the performance measuring unit 7f executes the following processes at regular intervals while the distribution server 7 is running or at arbitrary timing by the administrator of the distribution server 7. FIG.
  • the performance measurement unit 7f accesses the CDN server (A1962) and transmits a test file distribution request to the CDN server.
  • the performance measuring unit 7f calculates the response speed based on the time required to distribute the test file, and determines whether or not the calculated response speed is equal to or higher than a prescribed value (A1963).
  • the time required for distribution may be compared with a specified value without calculating the response speed, or the distribution data size per unit time may be compared with a specified value.
  • the performance measurement unit 7f determines that the response speed is equal to or higher than the specified value (A1963: YES), it determines that the CDN server is a server that can be used for distribution, and sets the distribution flag to ON (A1964). When the performance measurement unit 7f determines that the calculated response speed is less than the specified value (A1963: NO), it determines that the CDN server is a server that cannot be used for distribution, and sets the distribution flag to OFF. (A1965).
  • the campaign notification indicates the URL to access to download the update data.
  • the vehicle-side system 3 inquires of the DNS server 12 about the IP address to access to download the update package.
  • the CDN server confirmation unit 12a obtains an inquiry about the IP address of the URL indicated in the campaign notification from the vehicle system 3 (A1971).
  • the CDN server confirmation unit 12a inquires the CDN vendor management DB of the distribution server 7 about the distribution status of the CDN server indicated by the campaign notification (A1972).
  • the CDN server corresponds to the CDN vendor scheduled to acquire the data
  • the distribution status corresponds to the distribution flag.
  • the CDN server confirmation unit 12a acquires the distribution flag of the CDN vendor scheduled for data acquisition from the delivery server, it determines whether the CDN vendor scheduled for data acquisition is available (A1973). That is, the CDN server confirmation unit 12a determines whether the acquired distribution flag is ON or OFF.
  • the CDN server confirmation unit 12a determines that the distribution flag is on (A1973: YES)
  • the CDN server confirmation unit 12a determines that the distribution flag is off (A1973: NO)
  • the CDN vendor with the next highest cost order is set as the CDN vendor with the next highest priority
  • the CDN vendor with the next highest priority is set as the CDN vendor with the next highest priority. It is set as the CDN vendor scheduled to be acquired (A1975), and the process returns to step A1973.
  • the CDN server confirmation unit 12a may access the CDN vendor management DB and request transmission of the selection table every time a certain period of time elapses.
  • the selection table held by the CDN server confirmation unit 12a is referred to and used by the CDN vendor scheduled to acquire data. It may be determined whether or not it is possible.
  • communication between the DNS server 12 and the distribution server 7 can be reduced while suppressing the distribution cost as much as possible.
  • FIG. 7 In the third modification, in the distribution server 7, the performance measurement unit 7f measures and evaluates the performance of the CDN server based on the log information from the vehicle-side system 3.
  • FIG. The operation when the DNS server 12 receives an IP address inquiry for a URL from the vehicle-side system 3 is the same as in the second modification.
  • the CDN vendor management DB in the third modification also has a selection table.
  • the vehicle-side system 3 includes a log transmission unit 3a. After completing the download of the update data from the CDN server, the log transmission unit 3a transmits the log information related to the download, including the download time indicating the time required for the download, to the performance measurement unit 7f of the distribution server 7.
  • the log information related to the download may include information such as identification information of the downloaded package, data size, maximum throughput during download, etc., in addition to the download time.
  • the performance measurement unit 7f When the performance measurement unit 7f receives the log information about the download from the log transmission unit 3a, it calculates the throughput from the download time, and inputs the determination result based on the calculated throughput into the selection table.
  • the performance measuring unit 7f sets the distribution flag of the CDN server to ON (TRUE) when the throughput is equal to or higher than the specified value, and turns off (FALSE) the distribution flag of the CDN server when the throughput is less than the specified value. set to
  • FIG. (19-8) Processing of log transmission unit 3a (see FIG. 203) After completing the download of the update package from the CDN server (A1981), the log transmission unit 3a transmits log information related to the download including the download time indicating the time required for the download to the distribution server 7 (A1982).
  • the performance measurement unit 7f determines that the calculated throughput is equal to or greater than the specified value (A1993: YES), it determines that the CDN server is a server that can be used for distribution, and sets the distribution flag to ON (A1994 ). When the performance measurement unit 7f determines that the calculated throughput is less than the specified value (A1993: NO), it determines that the CDN server is a server that cannot be used for distribution, and sets the distribution flag to OFF ( A1995).
  • the performance determination unit 7f periodically performs restoration processing of the CDN server whose distribution flag is turned off.
  • the performance measurement unit 7f notifies the CDN vendor management DB of the information request of the CDN server whose distribution flag is set to OFF, identifies the CDN server whose distribution flag is set to OFF (A19101),
  • the subsequent processing is repeated (A19102 to A19107).
  • the performance measuring unit 7f executes the subsequent processes at regular intervals or at arbitrary timings by the administrator of the distribution server 7 while the distribution server 7 is running.
  • the performance measuring unit 7f notifies the CDN server of the test file distribution request, calculates the throughput from the download time of the file distributed from the CDN server (A19103), and determines whether the calculated throughput is equal to or greater than the specified value. Judge (A19104).
  • the performance measurement unit 7f determines that the calculated throughput is equal to or greater than the specified value (A19104: YES), it changes the distribution flag from off to on (A19105). When the performance measurement unit 7f determines that the calculated throughput is less than the specified value (A19104: NO), it keeps the distribution flag off (A19106). Note that the performance measuring unit 7f may turn on the distribution flag that is set to off in the CDN vendor management DB when the system of the distribution server is started or at predetermined intervals.
  • the campaign notification distributed from the distribution server 7 may include the URL of a backup CDN server to be connected when the throughput of this CDN server is low.
  • the spare CDN server is, for example, a CDN server with the next lowest distribution cost or a pre-determined spare CDN server.
  • the vehicle-side system 3 measures the throughput and checks whether or not a throughput equal to or higher than the specified value is obtained.
  • the vehicle and both sides system 3 determines that a throughput equal to or higher than the specified value is not obtained, it inquires the DNS server 12 about the IP address of the backup CDN server indicated in the campaign notification, change the connection to a different CDN server. Since identification information is added to each packet of the distributed data, even if the CDN server is changed during the download of the update package, the update package can be continuously downloaded.
  • FIG. 207 A fourth modification of the nineteenth embodiment will be described with reference to FIGS. 206 to 207.
  • a round robin system is adopted to designate different CDN servers.
  • the campaign notification generation unit 7c acquires the CDN vendor information (A195), it generates a campaign notification for each CDN vendor (A19111). That is, the campaign notification generation unit 7c generates two or more campaign notifications for one campaign.
  • the campaign notification generation unit 7c distributes the campaign notification so that the CDN server changes in the round robin method (A19112). For example, when two CDN servers CDN11 and CDN12 are selected, the campaign notification generation unit 7c distributes the campaign notification including the URL of the CDN11 to the first vehicle when distributing the campaign notification, and distributes the campaign notification to the next vehicle.
  • a campaign notification including the URL of the CDN 12 is delivered to the next vehicle, and a campaign notification including the URL of the CDN 11 is delivered to the next vehicle.
  • the CDN vendor selection unit 7a selects the CDN vendor with the lowest distribution cost in the nineteenth embodiment, but selects a plurality of CDN vendors in descending order of distribution cost in the fourth modification (A19121).
  • FIG. A fourth modification selects a plurality of CDN vendors to suppress distribution costs, generates a plurality of campaign notifications with different CDN server information, and sends campaign notifications to the vehicle side so that the CDN server is changed in a round-robin manner. It is distributed to system 3.
  • the fifth modification selects a plurality of CDN vendors that suppress distribution costs, generates one campaign notification, and distributes it to the vehicle-side system 3 .
  • the DNS server 12 acquires an inquiry about the IP address corresponding to the URL indicated in the campaign notice from the vehicle side system 3, the CDN server that responds to the vehicle side system 3 is changed for each vehicle side system 3. In other words, the DNS server 12 selects CDN servers in a round-robin fashion.
  • the DNS server 12 has a switching unit 12b. Upon receiving an IP address inquiry from the vehicle system 3, the switching unit 12b sequentially changes the IP address to be answered to the vehicle system 3 in a round-robin manner.
  • the distribution server has a DNS setting unit 7e.
  • the DNS setting unit 7e of the fifth modification transmits the round robin records shown in FIG. 209 to the DNS server 12.
  • the CDN vendor selection unit 7a selects a plurality of CDN vendors in descending order of distribution cost (A19121) and sets a round robin record (A19131) as in the fourth modification.
  • FIG. 212 to 224 A twentieth embodiment will be described with reference to FIGS. 212 to 224.
  • FIG. 212 to 224 A twentieth embodiment will be described with reference to FIGS. 212 to 224.
  • FIG. 212 to 224 A twentieth embodiment will be described with reference to FIGS. 212 to 224.
  • FIG. 212 to 224 A twentieth embodiment will be described with reference to FIGS. 212 to 224.
  • FIG. 212 to 224 when information about multiple campaigns in a predetermined period can be acquired, multiple CDN vendors are selected as locations to place update packages in the CDN 8 according to the distribution method, the OTA target area, which is the distribution area, and the distribution data size. to control distribution costs.
  • the predetermined period is, for example, the next month.
  • the CDN vendor with the lowest distribution cost is selected for one campaign.
  • campaigns may be registered from the OEM server for a given period of time, for example, multiple campaigns scheduled to start distribution in the next month.
  • a CDN vendor is selected for each campaign as in the 19th embodiment.
  • a different CDN vendor may be the CDN vendor with the lowest delivery costs.
  • the OTA center 2 includes a CDN vendor management DB, a CDN vendor selection unit 7a, a data storage unit 7b, a campaign notification generation unit 7c, a CDN distribution unit 7d, and a progress information management unit 7g.
  • the progress information management unit 7g holds a predicted value indicating how much of the campaign will be distributed to the vehicle-side system 3 within a predetermined period. Even if the campaign is registered in the OTA center 2 and the campaign notification is delivered to the vehicle-side system 3, not all vehicles immediately apply the campaign and download the update package from the CDN server.
  • the progress information management unit 7g saves a predicted value in order to more accurately predict the distribution data size of the update package from the CDN server to the vehicle-side system 3.
  • the predetermined period is described as one month, but other periods may be used.
  • the billing amount of the CDN vendor is calculated by three calculation methods as described later.
  • the first calculation method selects the CDN vendor with the lowest delivery cost for each campaign. In this case, different CDN vendors may be selected for each campaign.
  • FIG. 213 illustrates a case where CDN1 is selected for campaign 1, CDN2 is selected for campaign 2, and CDN3 is selected for campaign 3.
  • FIG. 213 illustrates a case where CDN1 is selected for campaign 1, CDN2 is selected for campaign 2, and CDN3 is selected for campaign 3.
  • the total distribution data size of all campaigns is calculated, and the CDN vendor with the lowest distribution cost is selected based on the calculated total distribution data size of all campaigns. In this case, select the same CDN vendor for all campaigns.
  • FIG. 213 illustrates a case where CDN1 is selected for campaigns 1-3.
  • the distribution total data size of the campaign for each distribution method is calculated, and the CDN vendor with the lowest distribution cost is selected based on the calculated total distribution data size of the campaign for each distribution method.
  • CDN vendors are selected for each of the streaming method and the storage method for each distribution method.
  • FIG. 213 illustrates a case where campaign 1 and campaigns 2 and 3 have different distribution methods, CDN1 is selected for campaign 1 and CDN2 is selected for campaigns 2 and 3.
  • FIG. (20-1) Processing of Campaign Notification Generation Unit 7c (See FIG. 214)
  • the campaign notification generation unit 7c acquires campaign information scheduled to be distributed from outside such as an OEM server, for example, from an OEM server (A201).
  • the campaign information to be distributed includes information on the distribution start date, the data size of the target campaign, the number of vehicles targeted for distribution of the target campaign, the region, and the distribution method.
  • the campaign notification generation unit 7c stores the acquired campaign information in the data storage unit 7b (A202).
  • the campaign notification generation unit 7c notifies the CDN vendor selection unit 7a of the CDN vendor selection request (A203), and waits for acquisition of the selection notification from the CDN vendor selection unit 7a.
  • the campaign notification generation unit 7c acquires the selection notification from the CDN vendor selection unit 7a (A204)
  • the campaign notification generation unit 7c accesses the data storage unit 7b and acquires the identification information of the CDN vendor selected by the CDN vendor selection unit 7a (A205 ).
  • the campaign notification generation unit 7c generates a parameter file containing the URL of the selected CDN based on the identification information of the CDN vendor as a campaign notification to be distributed (A206).
  • the campaign notification generation unit 7c distributes the generated campaign notification scheduled to be distributed to the vehicle-side system 3 (A207).
  • the selection information is acquired (A2012).
  • the selection information includes information on the data size of all target campaigns to be distributed, the number of target vehicles for distribution, the region, the distribution method, and the distribution start date of each campaign.
  • the CDN vendor selection unit 7a acquires the predicted delivery value from the progress information management unit 7g (A2013).
  • the CDN vendor selection unit 7a calculates the distribution data size for each campaign (A2014). Specifically, the CDN vendor selection unit 7a multiplies the data size of the campaign, the number of vehicles targeted for distribution of the campaign, and the predicted distribution value, and further multiplies by a correction value according to the distribution period.
  • the distribution period may be short, such as when the distribution start date is set at the end of next month. Therefore, the correction value is adjusted according to the distribution period. For example, if the delivery start date is delayed and the delivery period is only 10 days, 0.3 or the like is set as the correction value because 10 days out of 30 days are the delivery period.
  • the CDN vendor selection unit 7a shifts to the second CDN selection process (A2015).
  • the CDN vendor selection unit 7a sequentially shifts to the charge amount calculation process by the first calculation method, the charge amount calculation process by the second calculation method, and the charge amount calculation process by the third calculation method. (A2021 to A2023).
  • the CDN vendor selection unit 7a selects the CDN vendor with the lowest distribution cost for each campaign in the process of calculating the billing amount by the first calculation method.
  • the subsequent processing is repeated for each campaign (A2031 to A2041), and further repeated for each CDN vendor (A2032 to A2039).
  • the CDN vendor selection unit 7a acquires fee information from the CDN vendor management DB based on the distribution data size and region information (A2033).
  • the CDN vendor selection unit 7a refers to the charge information based on the distribution data size, and calculates the distribution billing amount (A2034).
  • the CDN vendor selection unit 7a determines whether the CDN vendor under consideration is a CDN vendor that charges according to the number of requests, and determines the charge amount of the CDN vendor (A2035 ⁇ A2038). The CDN vendor selection unit 7a repeats the calculation of the distribution billing amount for each CDN vendor and each campaign. After calculating the billing amounts of all CDN vendors for one campaign, the CDN vendor selection unit 7a selects the CDN vendor with the lowest distribution cost for that campaign (A2040).
  • the CDN vendor selection unit 7a When the CDN vendor selection unit 7a completes the calculation of the distribution charge amount and the selection of the CDN vendor for all campaigns, it totals the distribution charge amount of all the campaigns, calculates the total amount (A2042), and uses the first calculation method. , and shifts to the calculation process of the charge amount by the second calculation method.
  • the CDN vendor selection unit 7a selects one CDN vendor based on the total distribution data size of all campaigns scheduled to be distributed in the process of calculating the billing amount by the second calculation method.
  • the CDN vendor selection unit 7a starts the billing amount calculation processing by the second calculation method, it totals the distribution data size of each campaign to calculate the distribution total data size (A2051), and performs the subsequent processing for each CDN vendor. (A2052 to A2059).
  • the CDN vendor selection unit 7a acquires charge information from the CDN vendor management DB based on the distribution total data size and region information (A2053).
  • the CDN vendor selection unit 7a refers to the charge information based on the total distribution data size, and calculates the charge for distribution (A2054).
  • the CDN vendor selection unit 7a determines whether the CDN vendor under consideration is a CDN vendor that charges according to the number of requests, and determines the charge amount of the CDN vendor (A2055 ⁇ A2058).
  • the CDN vendor selection unit 7a repeats the calculation of the delivery billing amount for each CDN vendor.
  • the CDN vendor selection unit 7a selects a CDN vendor with the lowest distribution cost (A2060). Add up the distribution billing amounts of all campaigns to be distributed, calculate the total amount (A2061), end the billing amount calculation processing by the second calculation method, and shift to the billing amount calculation processing by the third calculation method. .
  • the CDN vendor selection unit 7a selects a CDN vendor after summarizing campaigns for each distribution method in the process of calculating the billing amount by the third calculation method.
  • the CDN vendor selection unit 7a starts the process of calculating the billing amount by the third calculation method, it determines whether or not the distribution methods of the campaigns to be distributed are all the same (A2071).
  • the CDN vendor selection unit 7a determines that all the campaigns to be distributed have the same distribution method, that is, all the campaigns to be distributed are of the streaming method or all of them are the storage method (A2071: YES), the above-mentioned Since it is the same as the billing amount calculation processing by the second calculation method, the billing amount calculation processing by the third calculation method ends.
  • the campaigns to be distributed include both the streaming method and the storage method (A2071: NO)
  • the campaigns are grouped according to the distribution method. (A2072), the streaming method group is shifted to the streaming method billing amount calculation process (A2073), and the storage method group is shifted to the storage method billing amount calculation process (A2074).
  • the CDN vendor selection unit 7a When the CDN vendor selection unit 7a starts the charging amount calculation processing in the streaming method, it calculates the total value of the distribution data size of each campaign distributed in the streaming method (A2081), and repeats the subsequent processing for each CDN vendor. (A2082-A2089).
  • the CDN vendor selection unit 7a acquires fee information from the CDN vendor management DB based on the total distribution data size and the region information (A2083).
  • the CDN vendor selection unit 7a refers to the fee information based on the total value of the distribution data size, and calculates the distribution billing amount (A2084).
  • the CDN vendor selection unit 7a determines whether the CDN vendor under consideration is a CDN vendor that charges according to the number of requests, and determines the charge amount of the CDN vendor (A2085 ⁇ A2088). The CDN vendor selection unit 7a repeats the calculation of the delivery billing amount for each CDN vendor. The CDN vendor selection unit 7a selects a CDN vendor that minimizes the delivery cost in the streaming method (A2090), and terminates the billing amount calculation processing in the streaming method.
  • the CDN vendor selection unit 7a when the CDN vendor selection unit 7a starts the billing amount calculation processing in the storage method, it calculates the total value of the distribution data size of each campaign distributed in the storage method (A2091), and performs the subsequent processing for each CDN vendor. (A2092 to A2099).
  • the CDN vendor selection unit 7a acquires fee information from the CDN vendor management DB based on the total distribution data size and the region information (A2093).
  • the CDN vendor selection unit 7a refers to the fee information based on the total value of the distribution data size, and calculates the distribution billing amount (A2094).
  • the CDN vendor selection unit 7a determines whether the CDN vendor under consideration is a CDN vendor that charges according to the number of requests, and determines the charge amount of the CDN vendor (A2095 ⁇ A2098). The CDN vendor selection unit 7a repeats the calculation of the delivery billing amount for each CDN vendor. The CDN vendor selection unit 7a selects a CDN vendor that minimizes the distribution cost in the storage method (A20100), and terminates the billing amount calculation processing in the storage method.
  • the CDN vendor selection unit 7a calculates the minimum delivery cost.
  • a method is determined (A2024), a CDN vendor for each campaign is selected (A2025), and the second CDN selection process ends.
  • the CDN vendor selection unit 7a saves the selection result, that is, the identification information for identifying the selected CDN vendor in the data storage unit 7b (A2016).
  • the CDN vendor selection unit 7a stores the identification information for identifying the CDN vendor of the campaign to be distributed in the data storage unit 7b.
  • the CDN vendor selection unit 7a notifies the campaign notification generation unit 7c of the selection notification (A2017).
  • the progress information management unit 7g stores a predicted value indicating how many campaigns will be delivered to the vehicle system 3 in a predetermined period. It is assumed that this predicted value is updated according to the actual distribution status transmitted from the OEM server.
  • the progress information management unit 7g acquires the distribution status from the OEM server (A20111). The progress information management unit 7g determines whether or not the difference between the distribution status and the stored predicted value is equal to or greater than a predetermined value (A20112). When the progress information management unit 7g determines that the difference between the delivery status and the stored predicted value is not equal to or greater than the predetermined value (A20112: NO), the process ends.
  • the progress information management unit 7g determines that the difference between the distribution status and the stored predicted value is equal to or greater than the predetermined value (A20112: YES)
  • the progress information management unit 7g updates the saved predicted value (A20113), is updated to the CDN vendor selection unit 7a (A20114).
  • the progress information management unit 7g may have one prediction value common to all campaigns, or may have different prediction values for each campaign, each vehicle to be updated, or each type of campaign.
  • the CDN vendor selection unit 7a shifts to the second CDN selection process (A20125), and upon completion of the second CDN selection process, determines whether or not there is a change in the CDN vendor (A20126).
  • the CDN vendor selection unit 7a determines that there is no change in the CDN vendor (A20126: NO)
  • the process ends. If there is a change in the CDN vendor, the selection result in the data storage unit 7b is updated.
  • the CDN vendor selection unit 7a determines that there is a change in the CDN vendor (A20126: YES)
  • the CDN vendor selection unit 7a may check at predetermined intervals whether or not the predicted value stored in the progress information management unit 7g has been changed.
  • a CDN 8 with a superior distribution cost is selected from multiple CDNs 8 with different distribution costs according to the distribution method, OTA target area, and distribution data size, and the update package is placed on the selected CDN 8. It was configured to The distribution cost when the OTA master 4 downloads the update package from the OTA center 2 can be suppressed appropriately.
  • the campaign notification is transmitted from the OTA center 2 to the OTA master 4 after TLS communication is established.
  • the campaign notification may be sent from the OTA center 2 to the OTA master 4 after TLS communication is established. Security can be further enhanced by establishing TLS communication.
  • the campaign notification may be sent from the OTA center 2 to the OTA master 4 without establishing TLS communication.
  • the vehicle-side system 3 of this embodiment may have the following configuration.
  • the vehicle-side system 3 may include a DCM (Data Communication Module) and a CGW (Central Gateway), and the DCM and CGW may be connected via a bus so as to be capable of data communication.
  • CGW is also called central ECU.
  • the bus may be, for example, Ethernet or CAN (registered trademark) bus.
  • a part or all of the functions of the OTA master 4 may be implemented in the CGW.
  • the DCM may perform data communication with the outside such as the CDN 8 or the OTA center 2, and all the functions of the OTA master 4 may be implemented in the CGW. In this case, the DCM forwards all data received by wireless communication with the outside to the CGW.
  • the DCM may function as a downloader for the OTA master 4 in addition to data communication with the outside.
  • the functions of the downloader are, for example, vehicle configuration information generation, metadata verification, package verification, and campaign information verification.
  • the functionality of the OTA master 4 may be implemented in the DCM.
  • the CGW implements functions other than the OTA master 4 .
  • the DCM and CGW may be integrated.
  • a configuration in which the CGW has part or all of the functions of the DCM, or a configuration in which the DCM has part or all of the functions of the CGW may be used. That is, in the OTA master 4, the DCM and the CGW may be configured in any way to share the functions.
  • the OTA master 4 may be composed of two ECUs, DCM and CGW, or may be composed of one integrated ECU having the functions of DCM and CGW.
  • each device can be provided by software recorded in a physical memory device and a computer that executes it, software only, hardware only, or a combination thereof.
  • the control unit is provided by an electronic circuit, which is hardware, it can be provided by a digital circuit containing a number of logic circuits, or an analog circuit.
  • the controller and techniques described in this disclosure may be implemented by a dedicated computer provided by configuring a processor and memory programmed to perform one or more functions embodied by the computer program.
  • the controller and techniques described in this disclosure may be implemented by a dedicated computer provided by configuring the processor with one or more dedicated hardware logic circuits.
  • the control units and techniques described in this disclosure may be implemented by a combination of a processor and memory programmed to perform one or more functions and a processor configured with one or more hardware logic circuits. It may also be implemented by one or more dedicated computers configured.
  • the computer program may also be stored as computer-executable instructions on a computer-readable non-transitional tangible storage medium.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Mechanical Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Exhaust Gas After Treatment (AREA)

Abstract

データ通信システム(1)は、更新データをマスタ装置へ配信するセンター装置(2)と、センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)と、を備える。更新データの暗号方式及び復号方式としてカウンター(CTR)モードを採用した。

Description

データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム 関連出願の相互参照
 本出願は、2021年9月30日に出願された日本出願番号2021-161212号に基づくもので、ここにその記載内容を援用する。
 本開示は、データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラムに関する。
 近年、運転支援機能や自動運転機能等の車両制御の多様化に伴い、電子制御装置(以下、ECU(Electronic Control Unit)と称する)に搭載される車両制御や診断等のアプリプログラムの規模が増大している。又、機能改善等によるバージョンアップに伴い、ECUのアプリプログラムをリプログする機会も増えつつある。リプログは、プログラム更新と称される場合もある。一方、通信ネットワークの進展等に伴い、コネクテッドカーの技術も普及している。このような事情から、例えば特許文献1には、更新データがパッケージ化された更新パッケージをOTA(Over The Air)の技術によりセンター装置から車両側のマスタ装置へ配信する技術が開示されている。マスタ装置は、ECUのアプリプログラムのリプログを統括する装置である。センター装置からマスタ装置へ配信される更新データは、例えば自動運転、先進運転支援システム(ADAS(Advanced Driver-Assistance Systems))、マルチメディア等のアプリプログラムやデータを含む。
特開2020-276424号公報
 近年では、車両のユーザエクスペリエンス(以下、UX(User Experience)と称する)を高めるべく、センター装置からマスタ装置へ配信される更新パッケージのデータサイズが大容量化して数GBオーダー以上となっている。又、アプリプログラムの更新を頻繁に行うことで更新頻度を高めることも検討されている。
 しかしながら、マスタ装置に搭載されているマイコンのハードウェアの制約を考慮すると、先進的暗号化標準(以下、AES(Advanced Encryption Standard)と略称する)の復号化処理がボトルネックとなっている。そのため、暗号方式及び復号方式として一般的なブロック暗号の暗号ブロック連鎖モード(以下、CBCモード(Cipher Block Chaining Mode)と称する)を採用した場合に、スループットが10Mbps程度となってしまう見込みである。マスタ装置においては、スループットが10Mbps程度では、データサイズが数GBオーダー以上の更新パッケージをセンター装置からダウンロードする場合に、例えばデータサイズが2GBでは更新パッケージをダウンロードするのに30分弱の時間を要し、データサイズが20GBでは更新パッケージをダウンロードするのに5時間弱の時間を要することになる。このように更新パッケージをダウンロードするのに要する時間が長くなると、利用シーンによっては更新パッケージのダウンロード中にドライバーを必要以上に待たせてしまう事態になり、ドライバーのUXを逆に損ねてしまう可能性がある。
 本開示は、マスタ装置が更新データをセンター装置からダウンロードする際のスループットを適切に高めることを目的とする。
 本開示の一態様によれば、更新データをマスタ装置へ配信するセンター装置と、センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置と、を備える。更新データの暗号方式及び復号方式としてカウンター(CTR)モードを採用した。
 暗号方式及び復号方式としてCBCモードを採用した構成では、暗号化及び復号化の前準備ができない、暗号化の並列処理ができない等のデメリットがある。一方、暗号方式及び復号方式としてCTRモードを採用した構成では、暗号化及び復号化の前準備ができる、暗号化及び復号化の並列処理ができる等のスループットの向上に寄与するメリットがある。CBCモードを採用した従来に対し、上記したスループットの向上に寄与するメリットを有するCTRモードを採用した。マスタ装置が更新データをセンター装置からダウンロードする際のスループットを適切に高めることができる。
 本開示の一態様によれば、更新データをマスタ装置へ配信するセンター装置と、センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置と、を備える。更新データの暗号方式及び復号方式として出力フィードバック(OFB)モードを採用した。
 暗号方式及び復号方式としてCBCモードを採用した構成では、暗号化及び復号化の前準備ができない、暗号化の並列処理ができない等のデメリットがある。一方、暗号方式及び復号方式としてOFBモードを採用した構成では、暗号化及び復号化の前準備ができる等のスループットの向上に寄与するメリットがある。CBCモードを採用した従来に対し、上記したスループットの向上に寄与するメリットを有するOFBモードを採用した。マスタ装置が更新データをセンター装置からダウンロードする際のスループットを適切に高めることができる。
 本開示についての上記目的及びその他の目的、特徴や利点は、添付の図面を参照しながら下記の詳細な記述により、より明確になる。その図面は、
図1は、第1実施形態のシステム全体における処理の流れを示す図であり、 図2は、OTAセンター及びOTAマスタの機能ブロック図であり、 図3は、CTRモードの暗号化処理を説明する図であり、 図4は、CTRモードの復号化処理を説明する図であり、 図5は、CBCモードとCTRモードのメリット及びデメリットの比較を示す図であり、 図6は、CBCモードとCTRモードのスループットの比較を示す図であり、 図7は、CBCモードの復号化処理を説明する図であり、 図8は、CTRモードの復号化処理を説明する図であり、 図9は、OTAセンターの処理を示す図であり、 図10は、センターの処理を示す図であり、 図11は、OTAセンターの処理を示す図であり、 図12は、OTAマスタの処理を示す図であり、 図13は、OTAマスタの処理を示す図であり、 図14は、OTAマスタの処理を示す図であり、 図15は、第2実施形態のOFBモードの暗号化処理を説明する図であり、 図16は、OFBモードの復号化処理を説明する図であり、 図17は、CBCモードとOFBモードのメリット及びデメリットの比較を示す図であり、 図18は、CBCモードとOFBモードのスループットの比較を示す図であり、 図19は、CTRモードの復号化処理を説明する図であり、 図20は、OFBモードの復号化処理を説明する図であり、 図21は、OTAセンターの処理を示す図であり、 図22は、OTAセンターの処理を示す図であり、 図23は、OTAセンターの処理を示す図であり、 図24は、OTAマスタの処理を示す図であり、 図25は、OTAマスタの処理を示す図であり、 図26は、OTAマスタの処理を示す図であり、 図27は、第3実施形態のシステム全体における処理の流れを示す図であり、 図28は、OTAセンターの処理を示す図であり、 図29は、OTAセンターの処理を示す図であり、 図30は、OTAセンターの処理を示す図であり、 図31は、OTAマスタの処理を示す図であり、 図32は、OTAマスタの処理を示す図であり、 図33は、OTAマスタの処理を示す図であり、 図34は、第4実施形態のシステム全体における処理の流れを示す図であり、 図35は、OTAセンター及びOTAマスタの機能ブロック図であり、 図36は、OTAマスタの処理を示す図であり、 図37は、OTAマスタの処理を示す図であり、 図38は、OTAマスタの処理を示す図であり、 図39は、第5実施形態のOTAマスタの処理を示す図であり、 図40は、OTAマスタの処理を示す図であり、 図41は、OTAマスタの処理を示す図であり、 図42は、メモリ容量とアクセス速度との関係を示す図であり、 図43は、第6実施形態のシステム全体における処理の流れを示す図であり、 図44は、OTAセンター及びOTAマスタの機能ブロック図であり、 図45は、RPメタデータが送信される態様を示す図であり、 図46は、RPメタデータの構成を示す図であり、 図47は、RPメタデータの構成を示す図であり、 図48は、OTAセンターの処理を示す図であり、 図49は、OTAセンターの処理を示す図であり、 図50は、OTAセンターの処理を示す図であり、 図51は、OTAセンターの処理を示す図であり、 図52は、OTAマスタの処理を示す図であり、 図53は、OTAマスタの処理を示す図であり、 図54は、OTAマスタの処理を示す図であり、 図55は、第7実施形態のシステム全体における処理の流れを示す図であり、 図56は、CCMPモードの機能であり、 図57は、CCMPモードによるスループットの見積もりを説明する図であり、 図58は、従来方式の機能ブロック図であり、 図59は、従来方式によるスループットの見積もりを説明する図であり、 図60は、CCMPモードと従来方式のスループットの比較を示す図であり、 図61は、OTAセンター及びOTAマスタの機能ブロック図であり、 図62は、OTAセンターの処理を示す図であり、 図63は、OTAセンターの処理を示す図であり、 図64は、OTAセンターの処理を示す図であり、 図65は、OTAマスタの処理を示す図であり、 図66は、OTAマスタの処理を示す図であり、 図67は、OTAマスタの処理を示す図であり、 図68は、第8実施形態のシステム全体における処理の流れを示す図であり、 図69は、GCMPモードの機能ブロック図であり、 図70は、GCMPモードによるスループットの見積もりを説明する図であり、 図71は、GCMPモードと従来方式のスループットの比較を示す図であり、 図72は、OTAセンターの処理を示す図であり、 図73は、OTAセンターの処理を示す図であり、 図74は、OTAセンターの処理を示す図であり、 図75は、OTAマスタの処理を示す図であり、 図76は、OTAマスタの処理を示す図であり、 図77は、OTAマスタの処理を示す図であり、 図78は、第9実施形態のシステム全体における処理の流れを示す図であり、 図79は、OTAセンターの処理を示す図であり、 図80は、OTAセンターの処理を示す図であり、 図81は、OTAセンターの処理を示す図であり、 図82は、OTAセンターの処理を示す図であり、 図83は、OTAマスタの処理を示す図であり、 図84は、OTAマスタの処理を示す図であり、 図85は、OTAマスタの処理を示す図であり、 図86は、OTAマスタの処理を示す図であり、 図87は、第10実施形態のシステム全体における処理の流れを示す図であり、 図88は、CDNのコスト比較を示す図であり、 図89は、CDNのコスト比較を示す図であり、 図90は、各クラウドサービスのCDN価格テーブルを示す図であり、 図91は、各クラウドサービス事業者のストレージ方式の価格テーブルを示す図であり、 図92は、クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図93は、各クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図94は、OTAセンター及びOTAマスタの機能ブロック図であり、 図95は、OTAセンターの処理を示す図であり、 図96は、OTAセンターの処理を示す図であり、 図97は、OTAセンターの処理を示す図であり、 図98は、OTAセンターの処理を示す図であり、 図99は、第11実施形態のシステム全体における処理の流れを示す図であり、 図100は、DHE又はECDHEで鍵共有可能な共通鍵を示す図であり、 図101は、OTAセンターの処理を示す図であり、 図102は、OTAセンターの処理を示す図であり、 図103は、OTAセンターの処理を示す図であり、 図104は、OTAセンターの処理を示す図であり、 図105は、OTAマスタの処理を示す図であり、 図106は、OTAマスタの処理を示す図であり、 図107は、OTAマスタの処理を示す図であり、 図108は、OTAマスタの処理を示す図であり、 図109は、第12実施形態のシステム全体における処理の流れを示す図であり、 図110は、OTAセンターの処理を示す図であり、 図111は、OTAセンターの処理を示す図であり、 図112は、OTAセンターの処理を示す図であり、 図113は、OTAマスタの処理を示す図であり、 図114は、OTAマスタの処理を示す図であり、 図115は、OTAマスタの処理を示す図であり、 図116は、第13実施形態のシステム全体における処理の流れを示す図であり、 図117は、CTRモードの暗号化処理を説明する図であり、 図118は、CTRモードの復号化処理を説明する図であり、 図119は、OTAセンターの処理を示す図であり、 図120は、OTAセンターの処理を示す図であり、 図121は、OTAセンターの処理を示す図であり、 図122は、OTAマスタの処理を示す図であり、 図123は、OTAマスタの処理を示す図であり、 図124は、OTAマスタの処理を示す図であり、 図125は、第14実施形態のシステム全体における処理の流れを示す図であり、 図126は、AES個別鍵を説明する図であり、 図127は、OTAセンターの処理を示す図であり、 図128は、OTAセンターの処理を示す図であり、 図129は、OTAセンターの処理を示す図であり、 図130は、OTAマスタの処理を示す図であり、 図131は、OTAマスタの処理を示す図であり、 図132は、OTAマスタの処理を示す図であり、 図133は、第15実施形態のシステム全体における処理の流れを示す図であり、 図134は、OTAセンターの処理を示す図であり、 図135は、OTAセンターの処理を示す図であり、 図136は、OTAマスタの処理を示す図であり、 図137は、OTAマスタの処理を示す図であり、 図138は、第16実施形態のシステム全体における処理の流れを示す図であり、 図139は、中間攻撃者からの攻撃を示す図であり、 図140は、デジタル署名を付与する態様を示す図であり、 図141は、OTAセンターの処理を示す図であり、 図142は、OTAセンターの処理を示す図であり、 図143は、OTAセンターの処理を示す図であり、 図144は、OTAマスタの処理を示す図であり、 図145は、OTAマスタの処理を示す図であり、 図146は、第17実施形態のシステム全体における処理の流れを示す図であり、 図147は、OTAセンターの処理を示す図であり、 図148は、OTAセンターの処理を示す図であり、 図149は、OTAマスタの処理を示す図であり、 図150は、OTAマスタの処理を示す図であり、 図151は、OTAマスタの処理を示す図であり、 図152は、第18実施形態のシステム全体における処理の流れを示す図であり、 図153は、各クラウドサービスのCDN価格テーブルを示す図であり、 図154は、各クラウドサービスのCDN価格テーブルを示す図であり、 図155は、各クラウドサービス事業者のストレージ方式の価格テーブルを示す図であり、 図156は、各クラウドサービス事業者のストレージ方式の価格テーブルを示す図であり、 図157は、各クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図158は、各クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図159は、各クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図160は、各クラウドサービス事業者のストリーミング方式における、ストリーミングサイズ毎の価格テーブルを示す図であり、 図161は、各クラウドサービス事業者の品質情報を示す図であり、 図162は、CDNベンダの選定を説明する図であり、 図163は、OTAセンターの処理を示す図であり、 図164は、OTAセンターの処理を示す図であり、 図165は、OTAセンターの処理を示す図であり、 図166は、第11実施形態の変形例を示し、システム全体における処理の流れの一部を示す図であり、 図167は、システム全体における処理の流れの一部を示す図であり、 図168は、システム全体における処理の流れの一部を示す図であり、 図169は、システム全体における処理の流れの一部を示す図であり、 図170は、OTAマスタの処理を示す図であり、 図171は、PCの処理を示す図であり、 図172は、OTAセンターの処理を示す図であり、 図173は、OTAマスタの処理を示す図であり、 図174は、第12実施形態の変形例を示し、システム全体における処理の流れの一部を示す図であり、 図175は、システム全体における処理の流れの一部を示す図であり、 図176は、システム全体における処理の流れの一部を示す図であり、 図177は、システム全体における処理の流れの一部を示す図であり、 図178は、OTAマスタの処理を示す図であり、 図179は、PCの処理を示す図であり、 図180は、OTAセンターの処理を示す図であり、 図181は、OTAマスタの処理を示す図であり、 図182は、第16実施形態の変形例を示し、システム全体における処理の流れの一部を示す図であり、 図183は、システム全体における処理の流れの一部を示す図であり、 図184は、システム全体における処理の流れの一部を示す図であり、 図185は、システム全体における処理の流れの一部を示す図であり、 図186は、OTAマスタの処理を示す図であり、 図187は、PCの処理を示す図であり、 図188は、OTAセンターの処理を示す図であり、 図189は、OTAマスタの処理を示す図であり、 図190は、第19実施形態のシステム全体における処理の流れを示す図であり、 図191は、キャンペーン通知生成部の処理を示す図であり、 図192は、CDNベンダ選定部の処理を示す図であり、 図193は、CDNベンダ選定部の処理を示す図であり、 図194は、第19実施形態の第1変形例のシステム全体における処理の流れを示す図であり、 図195は、CDNベンダ選定部の処理を示す図であり、 図196は、第19実施形態の第2変形例のシステム全体における処理の流れを示す図であり、 図197は、選択テーブルを示す図であり、 図198は、CDNベンダ選定部の処理を示す図であり、 図199は、CDNベンダ選定部の処理を示す図であり、 図200は、性能測定部の処理を示す図であり、 図201は、CDNサーバ確認部の処理を示す図であり、 図202は、第19実施形態の第3変形例のシステム全体における処理の流れを示す図であり、 図203は、ログ送信部3aの処理を示す図 図204は、性能測定部の処理を示す図であり、 図205は、性能測定部の処理を示す図であり、 図206は、第19実施形態の第4変形例を示し、CDNベンダ選定部7aの処理を示す図 図207は、キャンペーン通知生成部の処理を示す図 図208は、第19実施形態の第5変形例のシステム全体における処理の流れを示す図であり、 図209は、ラウンドロビンレコードを示す図であり、 図210は、CDNベンダ選定部7aの処理を示す図であり、 図211は、切替部の処理を示す図であり、 図212は、第20実施形態のシステム全体における処理の流れを示す図であり、 図213は、計算方法を示す図であり、 図214は、キャンペーン通知生成部の処理を示す図であり、 図215は、CDNベンダ選定部の処理を示す図であり、 図216は、CDNベンダ選定部の処理を示す図であり、 図217は、CDNベンダ選定部の処理を示す図であり、 図218は、CDNベンダ選定部の処理を示す図であり、 図219は、CDNベンダ選定部の処理を示す図であり、 図220は、CDNベンダ選定部の処理を示す図であり、 図221は、CDNベンダ選定部の処理を示す図であり、 図222は、進捗情報管理部の処理を示す図であり、 図223は、CDNベンダ選定部の処理を示す図であり、 図224は、キャンペーン通知生成部の処理を示す図である。
 以下、複数の実施形態について図面を参照して説明する。尚、後続する実施形態において、先行する実施形態と重複する内容について説明を省略することがある。
 (第1実施形態)
 第1実施形態について図1から図14を参照して説明する。図1に示すように、データ通信システム1は、OTAセンター2と、車両に搭載されている車両側システム3とを備え、OTAセンター2と車両側システム3とがデータ通信可能に構成されている。OTAセンター2はセンター装置に相当する。OTAセンター2と車両側システム3は、1対複数の関係にあり、OTAセンター2が不特定多数の車両側システム3との間でデータ通信可能である。
 車両側システム3は、OTAマスタ4と、ターゲットECU5とを備える。OTAマスタ4はマスタ装置に相当する。OTAマスタ4とターゲットECU5は、例えばCAN(Controller Area Network)(登録商標)等の車載ネットワークに接続されており、車載ネットワークを介してデータ通信可能に接続されている。車載ネットワークは、LIN(Local Interconnect Network)、FlexRay(登録商標)、CAN FD(CAN Flexible Data rate)(登録商標)、Ethernet(登録商標)等であっても良い。ターゲットECU5は、アプリプログラムのリプログ対象となるECUであり、例えば自動運転系の制御を行うECU、ADAS系の制御を行うECU、マルチメディア系の制御を行うECU等の何れであっても良い。アプリプログラムは、アプリケーションの実行に関わるプログラムであって、例えばアプリケーションプログラム、ファームウェアプログラム、オペレーティングシステムプログラムを含む。
 OTAセンター2は、パッケージ生成サーバ6と、配信サーバ7とを備える。パッケージ生成サーバ6は、更新データをパッケージ化して更新パッケージを生成する機能を有するサーバである。更新パッケージは、例えば更新データを格納した複数のファイルが圧縮されて格納されているzipファイルである。配信サーバ7は、パッケージ生成サーバ6により生成された更新パッケージを車両側システム3へ配信する機能を有するサーバである。
 OTAセンター2は、例えば機能改善等によるバージョンアップに伴い、ECUのアプリプログラムのリプログ要求が発生すると、キャンペーン通知を車両側システム3やユーザが所有するスマートフォン等の携帯情報端末へ配信する。OTAセンター2は、ユーザからのダウンロード承諾が得られたことを条件とし、更新パッケージをコンテンツ・デリバリー・ネットワーク(以下、CDN(Content Delivery Network)と称する)8に配置し、CDN8を介して更新パッケージをOTAマスタ4へ配信する。或いは更新パッケージがCDN8に既に配置済みの場合は、OTAセンター2は、ユーザからのダウンロード承諾が得られたことを条件とし、CDN8から更新パッケージをOTAマスタ4へ配信させる。
 OTAマスタ4は、更新パッケージをOTAセンター2からダウンロードすると、ユーザからのインストール承諾が得られたことを条件とし、更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする。CDN8をサービスとして提供する事業者をCDNベンダと称する。又、OTAマスタ4は、CDN8のCDNサーバにアクセスすることで更新パッケージを取得する。
 本実施形態では、車両側システム3における先進的暗号化標準(以下、AES(Advanced Encryption Standard)と略称する)の復号化処理の高速化を図るべく、暗号化モードとして、一般的なブロック暗号の暗号ブロック連鎖モード(以下、CBCモード(Cipher Block Chaining Mode)と称する)ではなく、ストリーミング暗号の代表であるカウンターモード(以下、CTRモード(Counter Mode)と称する)を採用している。本実施形態では、OTAセンター2は、更新パッケージをAES鍵によりCTRモードで暗号化する。又、車両側システム3は、更新パッケージをAES鍵によりCTRモードで暗号化する。尚、OTAセンター2は、車両毎にRSA(Rivest-Shamir-Adleman cryptosystem)公開鍵を備えている。OTAマスタ4は、車両製造段階でRSA秘密鍵が書込まれる。
 図2に示すように、OTAセンター2は、暗号化に係る機能ブロックとして、共通鍵生成部2aと、更新パッケージ暗号化部2bと、共通鍵暗号化部2cと、共通鍵格納部2dと、暗号化パッケージ配置部2eと、キャンペーン通知送信部2fとを備える。更新パッケージ暗号化部2bは更新データ暗号化に相当する。暗号化パッケージ配置部2eは暗号化データ配置部に相当する。各部2a~2fは、CPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、I/O(Input/Output)等を有するマイクロコンピュータのハードウェア及びソフトウェアの協働により実現されている。CPUは、ROMに格納されている暗号化プログラム、更新データ配置プログラム、秘密情報共有プログラム等を含む各種プログラムを実行することで、OTAセンター2の機能を実現する。
 共通鍵生成部2aは、更新パッケージを暗号化するための共通鍵としてAES鍵を生成する。パッケージ暗号化部2bは、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する。パッケージ暗号化部2bは、カウンター値に対するAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する。パッケージ暗号化部2bは、暗号化されたカウンター値と、更新パッケージとを排他的論理和(XOR)演算し、複数の暗号化された断片を結合し、AES鍵により暗号化された更新パッケージを生成する。尚、カウンター値は、例えば8桁の数字であって、AESブロック毎に「1」ずつ増加する。
 共通鍵暗号化部2cは、AES鍵をRSA公開鍵により暗号化する。共通鍵格納部2dは、RSA公開鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する。暗号化パッケージ配置部2eは、AES鍵により暗号化された更新パッケージをCDN8に配置する。キャンペーン通知送信部2fは、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する。キャンペーン通知送信部2fは、キャンペーン通知をユーザが所有するスマートフォン等の携帯情報端末へ配信しても良い。
 OTAマスタ4は、復号化に係る機能ブロックとして、共通鍵取得部4aと、共通鍵復号化部4bと、暗号化パッケージ取得部4cと、ブロック暗号処理部4dと、暗号化パッケージ復号化部4eと、インストール処理部4fとを備える。暗号化パッケージ取得部4cは暗号化データ取得部に相当する。暗号化パッケージ復号化部4eは暗号化データ復号化部に相当する。各部4a~4fは、CPU、RAM、ROM、I/O等を有するマイクロコンピュータのハードウェア及びソフトウェアの協働により実現されている。CPUは、ROMに格納されている復号化プログラム、更新データ取得プログラム、秘密情報共有プログラム等を含む各種プログラムを実行することで、OTAマスタ4の機能を実現する。
 共通鍵取得部4aは、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中から暗号化されたAES鍵を取得する。共通鍵復号化部4bは、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す。暗号化パッケージ取得部4cは、暗号化された更新パッケージをCDN8からダウンロードして取得する。このとき、ブロック暗号処理部4dは、暗号化された更新パッケージを暗号化パッケージ取得部4cがCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する。暗号化パッケージ復号化部4eは、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとを排他的論理和(以下、XOR(Exclusively-OR)演算して復号化する。インストール処理部4fは、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする。
 CTRモードの暗号化処理は図3に示す通りであり、CTRモードの復号化処理は図4に示す通りである。図5に示すように、CBCモードのデメリットとして「暗号化及び復号化の前準備ができない」、「暗号化の並列処理ができない」に対し、CTRモードのメリットとして「暗号化及び復号化の前準備ができるため、高速化可能」、「暗号化及び復号化の並列処理ができる」を挙げることができる。即ち、暗号化モードとしてCTRモードを採用することでスループットの向上に寄与するメリットとして、図6に示すように、一般的なブロック暗号のCBCモードを採用した場合と比較すると、スループットを約40%向上させることができる。
 図7に示すように、CBCモードの復号化処理では、入力が暗号文であるので、暗号文である更新パッケージを受信してからでないと、復号化処理を開始することができない。これに対し、図8に示すように、CTRモードの復号化処理では、入力がカウンター値であるので、暗号文である更新パッケージを受信する前から復号化処理を開始することができる。又、相互に依存関係がないので、複数の暗号演算を同時に並列実行することもできる。
 次に、上記した構成の作用について図9から図14を参照して説明する。
 (1-1)OTAセンター2の処理(図9から図11参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A011、共通鍵生成手順に相当する)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A012、更新データ暗号化手順に相当する)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化する(A013、共通鍵暗号化手順に相当する)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する(A014、共通鍵格納手順に相当する)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A015、暗号化データ配置手順に相当する)。更新パッケージをCDN8に配置するとは、更新パッケージをCDN8のオリジンサーバに配置することを示す。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A016、キャンペーン通知送信手順に相当する)。
 (1-2)OTAマスタ4の処理(図12から図14参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B011、共通鍵取得手順に相当する)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B012、共通鍵復号化手順に相当する)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B013、暗号化データ取得手順に相当する)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B014、ブロック暗号処理手順に相当する)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B015、暗号化データ復号化手順に相当する)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B016、インストール処理手順に相当する)。尚、更新パッケージ内の差分プログラムをCBCモードで暗号化及び復号化するのではなく、CTRモードで暗号化及び復号化することで、ターゲットECU5における復号化処理についてもスループットを約40%向上させることができる。
 以上に説明したように第1実施形態によれば、以下の作用効果を得ることができる。
 更新パッケージの暗号方式及び復号方式としてCTRモードを採用する構成とした。CBCモードを採用した従来に対し、CTRモードを採用したことで、暗号化及び復号化の前準備を行うことができ、暗号化及び復号化の並列処理を行うことができる。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際に、CTRモードのメリットを享受することができ、スループットを適切に高めることができる。
 (第2実施形態)
 第2実施形態について図15から図26を参照して説明する。第1実施形態は、暗号化モードとしてCTRモードを採用している構成であるが、第2実施形態は、暗号化モードとして出力フィードバックモード(以下、OFBモード(Output-FeedBack mode)と称する)を採用している。
 この場合、パッケージ暗号化部2bは、更新パッケージを、生成されたAES鍵によりOFBモードで暗号化する。ブロック暗号処理部4dは、暗号化された更新パッケージを暗号化パッケージ取得部4cがCDN8からダウンロードして取得することと並行し、IV(Initialization Vector)値ベースのAESストリーム暗号処理をAES鍵により実行してIV値を暗号化する。IV値とは、初期化ベクトル値であり、例えばランダムに生成されたビット列を示す。暗号化パッケージ復号化部4eは、暗号化されたIV値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する。
 OFBモードの暗号化処理は図15に示す通りであり、OFBモードの復号化処理は図16に示す通りである。図17に示すように、CBCモードのデメリットとして「暗号化及び復号化の前準備ができない」、「暗号化の並列処理ができない」に対し、OFBモードのメリットとして「暗号化及び復号化の前準備ができるため、高速化可能」を挙げることができる。即ち、暗号化モードとしてOFBモードを採用することによるスループットの向上に寄与するメリットとして、図18に示すように、一般的なブロック暗号のCBCモードを採用した場合と比較すると、スループットを約25%向上させることができる。
 図19に示すように、CTRモードの復号化処理では、入力がカウンター値であるので、暗号文である更新パッケージを受信する前から復号化処理を開始することができる。又、相互に依存関係がないので、複数の暗号演算を同時に並列実行することもできる。これに対し、図20に示すように、OFBモードの復号化処理では、相互に依存関係があるので、複数の暗号演算を同時に並列実行することができない。ただし、暗号化されたIV値と暗号化された更新パッケージとをXOR演算して復号化する処理は並列実行することができる。そのため、OFBモードの復号化処理では、第1実施形態で説明したCTRモードの復号化処理ほどまではスループットを向上させることはできないが、CBCモードを採用した場合と比較すると、スループットを向上させることができる。
 次に、上記した構成の作用について図21から図26を参照して説明する。
 (2-1)OTAセンター2の処理(図21から図23参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A021、共通鍵生成手順に相当する)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりOFBモードで暗号化する(A022、更新データ暗号化手順に相当する)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化する(A023、共通鍵暗号化手順に相当する)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する(A024、共通鍵格納手順に相当する)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A025、暗号化データ配置手順に相当する)。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A026、キャンペーン通知送信手順に相当する)。
 (2-2)OTAマスタ4の処理(図24から図26参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B021、共通鍵取得手順に相当する)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B022、共通鍵復号化手順に相当する)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B023、暗号化データ取得手順に相当する)。
 このとき、OTAマスタ4は、暗号化された更新パッケージCDN8からダウンロードして取得することと並行し、IV値ベースのAESストリーム暗号処理をAES鍵により実行してIV値を暗号化する(B024、ブロック暗号処理手順に相当する)。OTAマスタ4は、暗号化されたIV値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B025、暗号化データ復号化手順に相当する)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B026、インストール処理手順に相当する)。尚、更新パッケージ内の差分プログラムCBCモードで暗号化及び復号化するのではなく、OFBモードで暗号化及び復号化することで、ターゲットECU5における復号化処理についてもスループットを約25%向上させることができる。
 以上に説明したように第2実施形態によれば、以下の作用効果を得ることができる。
 更新パッケージの暗号方式及び復号方式としてOFBモードを採用する構成とした。CBCモードを採用した従来に対し、OFBモードを採用したことで、暗号化及び復号化の前準備を行うことができる。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際に、OFBモードのメリットを享受することができ、スループットを適切に高めることができる。
 (第3実施形態)
 第3実施形態について図27から図33を参照して説明する。第3実施形態は、CDN8とOTAマスタ4との間の通信プロトコルとしてハイパーテキスト・トランスファー・プロトコル(以下、HTTP(Hypertext Transfer Protocol)と称する)を採用し、レンジリクエストをCDN8へ送信し、更新パッケージをストリーミング方式でダウンロードすることで、ハイパーテキスト・トランスファー・プロトコル・セキュア(以下、HTTPS(Hypertext Transfer Protocol Secure)と称する)を採用した場合よりも配信コストの抑制を図っている。CDNベンダによっては、CDN8への通信プロトコルにHTTPを使う場合とHTTPSを使う場合とでCDN8の配信料金を差別化している場合がある。HTTPSを使う場合、CDN8は、トランスポート・レイヤー・セキュリティ(以下、TLS(Transport Layer Security)と称する)で定められているハンドシェーク処理や暗号鍵交換処理や暗号演算処理を行う必要があり、CDN8のCPUの処理負荷が増大するため、HTTPSの配信料金はHTTPに比べて約3割高額な料金テーブルとなっている。このため、更新パッケージのダウンロードにはHTTPを使うことで配信コストの抑制を実現する。第3実施形態では、CDN8から車両側システム3へ更新パッケージを配信する際にHTTPSを使わない。
 この場合、キャンペーン通知送信部2fは、OTAセンター4とOTAマスタ4との間でTLS通信を確立した上で、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する。共通鍵取得部4aは、TLS通信が確立された上で、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する。暗号化パッケージ取得部4cは、レンジリクエストをCDN8へ送信してダウンロード対象のデータ範囲を指定し、暗号化された更新パッケージをCDN8からストリーミング方式でダウンロードして取得する。インストール処理部4fは、復号化された更新パッケージをターゲットECU5へストリーミング方式で転送し、更新パッケージをターゲットECU5にインストールする。
 尚、本実施形態では、OTAマスタ4において、暗号化された更新パッケージをCDN8からストリーミング方式で取得することを説明しているが、暗号化された更新パッケージをCDN8からストレージ方式で取得しても良い。ストリーミング方式では、通信時にヘッダ情報を含むため、HTTPを使うことで配信コストを更に抑制することができる。
 次に、上記した構成の作用について図28から図33を参照して説明する。
 (3-1)OTAセンター2の処理(図28から図30参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A031)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A032)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化する(A033)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する(A034)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A035)。OTAセンター2は、OTAセンター4とOTAマスタ4との間でTLS通信を確立した上で、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A036)。
 (3-2)OTAマスタ4の処理(図31から図33参照)
 OTAマスタ4は、TLS通信が確立された上で、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B031)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B032)。OTAマスタ4は、レンジリクエストをCDN8へ送信してダウンロード対象のデータ範囲を指定し、暗号化された更新パッケージをCDN8からストリーミング方式でダウンロードして取得する(B033)。即ち、OTAマスタ4は、ダウンロード対象のデータ範囲を指定することで、更新パッケージをCDN8から分割ストリーミング方式でダウンロードして取得する。
 このとき、OTAマスタ4は、暗号化された更新パッケージを暗号化パッケージ取得部4cがCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B034)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B035)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へストリーミング方式で転送し、更新パッケージをターゲットECU5にインストールする(B036)。
 以上に説明したように第3実施形態によれば、以下の作用効果を得ることができる。
 CDN8とOTAマスタ4との間の通信プロトコルとしてHTTPを採用し、OTAマスタ4がレンジリクエストをCDN8へ送信することで当該CDN8から更新パッケージをストリーミング方式でダウンロードする構成とした。これにより、通信プロトコルとしてHTTPSを採用した従来に対し、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。
 (第4実施形態)
 第4実施形態について図34から図38を参照して説明する。第4実施形態は、ユーザからのダウンロード承諾が得られる前に全ての鍵ストリームの計算を事前にバックグラウンドで実行することで、更新パッケージのダウンロード時の復号化処理の高速化を図っている。
 この場合、図35に示すように、OTAマスタ4は、共通鍵取得部4aと、共通鍵復号化部4bと、暗号化パッケージ取得部4cと、ブロック暗号処理部4dと、暗号化パッケージ復号化部4eと、インストール処理部4fとに加え、鍵ストリーム計算部4gを備える。鍵ストリーム計算部4gは、ユーザからのダウンロード承諾が得られる前に全ての鍵ストリームの計算を事前にバックグラウンドで実行する。暗号化パッケージ取得部4cは、ユーザからのダウンロード承諾が得られたことを条件とし、暗号化された更新パッケージをCDN8からダウンロードして取得する。暗号化パッケージ復号化部4eは、計算された鍵ストリームと、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する。
 次に、上記した構成の作用について図36から図38を参照して説明する。
 (4-1)OTAセンター2の処理
 OTAセンター2の処理は、第1実施形態で説明したOTAセンター2の処理(図9から図11)と同様である。
 (4-2)OTAマスタ4の処理(図36から図38参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B041)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B042)。OTAマスタ4は、ユーザからのダウンロード承諾が得られる前に全ての鍵ストリームの計算を事前にバックグラウンドで実行する(B043)。それぞれの鍵ストリームには識別情報が付与されており、暗号化された更新パッケージに対する適用順序が示されている。
 OTAマスタ4は、キャンペーン通知を車両側システム3やユーザが所有するスマートフォン等の携帯情報端末へ配信することで、ダウンロード承諾画面をHMI(Human Machine Interface)に表示する(B044)。OTAマスタ4は、ユーザからのダウンロード承諾が得られたことを条件とし、暗号化された更新パッケージをCDN8からダウンロードして取得する(B045)。OTAマスタ4は、事前に計算された鍵ストリームと、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B046)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B047)。
 以上に説明したように第4実施形態によれば、以下の作用効果を得ることができる。
 ユーザからのダウンロード承諾が得られる前に全ての鍵ストリームの計算を事前にバックグラウンドで実行する構成とした。これにより、OTAマスタ4における更新パッケージの復号化処理を高速化することができ、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際のスループットを高めることができる。
 (第5実施形態)
 第5実施形態について図39から図42を参照して説明する。第4実施形態は、ユーザからのダウンロード承諾が得られる前に全ての鍵ストリームの計算を事前にバックグラウンドで実行しているが、第5実施形態は、ユーザからのダウンロード承諾が得られる前に一部の鍵ストリームの計算を事前にバックグラウンドで実行する。計算の対象とする一部の鍵ストリームは、CPUのキャッシュメモリのメモリ容量とAES暗号演算のスループットを考慮して決定され、キャッシュメモリに保存可能なサイズとする。
 この場合、鍵ストリーム計算部4gは、ユーザからのダウンロード承諾が得られる前に一部の鍵ストリームの計算を事前にバックグラウンドで実行する。鍵ストリーム計算部4gは、暗号化された更新パッケージを暗号化パッケージ取得部4cがCDN8からダウンロードして取得することと並行し、鍵ストリームを生成してキャッシュメモリに追加する。
 次に、上記した構成の作用について図39から図42を参照して説明する。
 (5-1)OTAセンター2の処理
 OTAセンター2の処理は、第1実施形態で説明したOTAセンター2の処理(図9から図11)と同様である。
 (5-2)OTAマスタ4の処理(図39から図41参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B051)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B052)。OTAマスタ4は、ユーザからのダウンロード承諾が得られる前に一部の鍵ストリームの計算を事前にバックグラウンドで実行する(B053)。
 OTAマスタ4は、キャンペーン通知を車両側システム3やユーザが所有するスマートフォン等の携帯情報端末へ配信することで、ダウンロード承諾画面をHMIに表示する(B054)。OTAマスタ4は、ユーザからのダウンロード承諾が得られたことを条件とし、暗号化された更新パッケージをCDN8からダウンロードして取得する(B055)。OTAマスタ4は、事前に計算された鍵ストリームと、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B056)。
 このとき、OTAマスタ4は、暗号化された更新パッケージCDN8からダウンロードして取得することと並行し、鍵ストリームを生成してキャッシュメモリに追加し(B057)、残りの鍵ストリームを計算する。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B058)。尚、メモリ容量とアクセス速度との関係は図42に示す通りであり、要求されるアクセス速度に応じてキャッシュメモリのサイズを決定すれば良い。
 以上に説明したように第5実施形態によれば、以下の作用効果を得ることができる。
 ユーザからのダウンロード承諾が得られる前に一部の鍵ストリームの計算を事前にバックグラウンドで実行する構成とした。これにより、OTAマスタ4のメモリ使用量を節約しながら、OTAマスタ4における更新パッケージの復号化処理を高速化することができ、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際のスループットを高めることができる。
 (第6実施形態)
 第6実施形態について図43から図54を参照して説明する。第6実施形態は、暗号方式をリプロポリシーメタデータ(以下、RPメタデータと称する)等に含めてOTAセンター2からOTAマスタ4へ送信することにより、OTAマスタ4が暗号方式を特定している。OTAセンター2からOTAマスタ4へ送信される暗号方式は、暗号化アルゴリズム、暗号鍵長、暗号化モード、メッセージ認証コード(以下、MAC(Message Authentication Code)と称する)アルゴリズム等を含む。
 RPメタデータは、更新パッケージの構成情報、即ち、更新パッケージの構成種別を表す情報を含み、そのデータ内容をOTAマスタ4がチェックすることで更新パッケージの配信ミスを防止するためのデータである。RPメタデータを、配信、マスタ及びターゲットの3層構造とすることで、転送方式、プラットフォームのタイプ、更新パッケージの種類等が増大した場合でも、それらを柔軟に定義して対応することができ、ターゲットECU5のリプログを行うことが可能になる。尚、暗号方式をダウンロードメタデータ(以下、DLメタデータと称する)等に含めてOTAセンター2からOTAマスタ4へ送信することにより、OTAマスタ4が暗号方式を特定しても良い。DLメタデータは、複数のターゲットECU5毎の更新パッケージをダウンロードするための情報を含み、OTAマスタ4が把握すべき内容を規定するデータである。
 図44に示すように、OTAセンター2は、共通鍵生成部2aと、更新パッケージ暗号化部2bと、共通鍵暗号化部2cと、共通鍵格納部2dと、暗号化パッケージ配置部2eと、キャンペーン通知送信部2fとに加え、RPメタデータ生成部2gと、RPメタデータ暗号化部2hとを備える。RPメタデータ生成部2gは、共通鍵暗号方式を含むRPメタデータを生成する。RPメタデータ暗号化部2hは、RPメタデータをRSA公開鍵により暗号化する。
 OTAマスタ4は、共通鍵取得部4aと、共通鍵復号化部4bと、暗号化パッケージ取得部4cと、ブロック暗号処理部4dと、暗号化パッケージ復号化部4eと、インストール処理部4fとに加え、RPメタデータ取得部4hと、RPメタデータ復号化部4iと、共通鍵暗号方式特定部4jとを備える。RPメタデータ取得部4hは、暗号化されたRPメタデータをCDN8からダウンロードして取得する。RPメタデータ復号化部4iは、暗号化されたRPメタデータRSA秘密鍵により復号化してRPメタデータを取出す。共通鍵暗号方式特定部4jは、RPメタデータの内容を解釈して共通鍵暗号方式を特定する。
 尚、CDN8からOTAセンター2への更新パッケージの配信までの流れは次のようになる。OTAセンター2からOTAマスタ4或いはユーザが所有する携帯情報端末にキャンペーン通知が送信される。その後、OTAマスタ4がCDN8にアクセスすることで、CDN8からOTAマスタ4へRPメタデータ及びDLメタデータが送信され、CDN8からOTAセンター2へ更新パッケージが配信される。
 図45に示すように、RPメタデータ及びDLメタデータは、更新パッケージのダウンロードに先立ってOTAセンター2からOTAマスタ4へ送信される。図46から図47に示すように、RPメタデータは、RPメタデータバージョン、配信レイヤ、マスタレイヤ、ターゲットレイヤの情報を含む。各情報は以下の通りである。
 (a)RPメタデータバージョン
 RPメタデータのバージョンであり、例えば「1.0.0」や「2.0.0」等のバージョン情報である。
 (b)配信レイヤ
 (b-1)通信プロトコル
 OTAセンター2との通信に使用されるプロトコルであり、例えばUptane(登録商標)、OMA-DM(Open Mobile Alliance-Device Management)等を示す情報である。
 (b-2)通信手段
 更新パッケージの配信経路であり、OTAマスタ4であることを示すセルラー、スマートフォン、USBメモリ等を示す情報である。
 (c)マスタレイヤ
 OTAマスタ4に関する情報である
 (c-1)PF
 OTAマスタ4のプラットフォーム(PF)が例えばAP(AUTOSAR Adaptive Platform)、CP(AUTOSAR Classic Platform)、AGL(Automotive Grade Linux)、Android(登録商標)であること等を示す情報である。ECUのプラットフォームに応じた更新パッケージを配信するためのパッケージ構造について、一般社団法人JASPARの仕様では、標準化団体AUTOSARの静的OSで動作するクラシックプラットフォーム(CP)に適用可能なデータ要件が規定されている。又、AUTOSARでは、動的OSで動作する新たなタイプのアダプティブプラットフォーム(AP)に適用可能なデータ要件が規定されている。AGLは、車載Linux(登録商標)であり、Androidは、Android Automotive OSである。AP及びCPはソフトウェアプラットフォームを示す。ソフトウェアプラットフォームは、ソフトウェアアーキテクチャとも称される。AP及びCPにおいては、使用されるオペレーティングシステムや開発言語が異なる。CP仕様書に準拠して動作するECUとAP仕様書に準拠して動作するECUとでは、受信可能な更新パッケージの構造が異なる。これらの更新パッケージの構造の違いは、主にECUの処理性能の違いに起因する。一般的に、CP仕様書に準拠して動作するECUの処理性能は比較的低いので、更新パッケージに含まれる諸元データ等もバイナリデータで記載されており、処理性能の低いECUでも解釈及び処理し易いデータ構造となっている。一方、AP仕様書に準拠して動作するECUの処理性能は比較的高いので、何らかの言語で記述された構造的な文字データを解析してプログラムで扱えるデータ構造に変換するパーサー機能を搭載することが可能であり、データ構造には単純なバイナリデータではなく、例えばJSON(JavaScript Object Notation)のようにオブジェクト指向のデータ形式を採用できるので、柔軟なデータ構造となっている。
 (c-2)制御方式
 特定のフォーマットにしたがって設定されたパラメータに応じて処理するパラメータ、特定のフォーマットがなく、より自由な記載形式で処理するスクリプト等の情報である。
 (c-3)暗号方式
 暗号アルゴリズム、暗号鍵長、暗号化モード、Padding方式、暗号鍵ID、署名アルゴリズム、署名鍵ID、署名モード、ハッシュアルゴリズム、領域指定有無、オフセットサイズ、保護データサイズを含む情報である。
 (d)ターゲットレイヤ
 ターゲットECU5に関する情報である。
 (d-1)PF
 マスタレイヤと同様である。
 (d-2)転送方式
 ストレージ方式、ストリーミングの何れかである
 (d-3)制御方式
 マスタレイヤと同様である。
 (d-4)ターゲットID
 オプションである。
 (d-5)暗号方式
 マスタレイヤと同様である。
 次に、上記した構成の作用について図48から図54を参照して説明する。
 (6-1)OTAセンター2の処理(図48から図51参照)
 OTAセンター2は、更新パッケージを暗号化するための共通鍵を生成する(A061)。OTAセンター2は、更新パッケージを、生成された共通鍵により特定の暗号化モードで暗号化する(A062)。OTAセンター2は、共通鍵をRSA公開鍵により暗号化する(A063)。OTAセンター2は、RSA公開鍵により暗号化された共通鍵をキャンペーン通知の中に格納する(A064)。OTAセンター2は、共通鍵暗号方式を含むRPメタデータを生成する(A065)。OTAセンター2は、RPメタデータをRSA公開鍵により暗号化する(A066)。OTAセンター2は、共通鍵により暗号化された更新パッケージとRSA公開鍵により暗号化されたRPメタデータをCDN8に配置する(A067)。OTAセンター2は、暗号化された共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A068)。
 (6-2)OTAマスタ4の処理(図52から図54参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中から共通鍵を取得する(B061)。OTAマスタ4は、暗号化された共通鍵をRSA秘密鍵により復号化して共通鍵を取出す(B062)。OTAマスタ4は、暗号化されたRPメタデータをCDN8からダウンロードして取得する(B063)。OTAマスタ4は、暗号化されたRPメタデータRSA秘密鍵により復号化してRPメタデータを取出す(B064)。OTAマスタ4は、RPメタデータの内容を解釈して共通鍵暗号方式を特定する(B065)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B066)。これ以降、OTAマスタ4は、特定の暗号化モードとしてCTRモードを採用した場合であれば第1実施形態で説明したステップB014以降の処理を行い、特定の暗号化モードとしてOFBモードを採用した場合であれば第2実施形態で説明したステップB024以降の処理を行う。それ以外の暗号化モードの場合も同様に、暗号化モードに対応した手順にしたがい、更新パッケージの復号と、ターゲットECUへのデータの転送を行う。
 以上に説明したように第6実施形態によれば、以下の作用効果を得ることができる。
 暗号方式をRPメタデータやDLメタデータに含めてOTAセンター2からOTAマスタ4へ送信する構成とした。これにより、OTAマスタ4において暗号方式を特定することができる。
 (第7実施形態)
 第7実施形態について図55から図67を参照して説明する。第7実施形態は、通信路暗号化とデータ改竄対策としてCCMPモード(Counter mode with Cipher-block chaining Message authentication code Protocol)を採用している。
 この場合、図56から図60に示すように、CCMPモードを採用した構成と、従来方式としてAES CBC-HMAC(Hashed Message Authentication Mode Code) SHA(Secure Hash Algorithm)2の復号化及び署名検証を採用した構成とを比較すると、何れもメインコアの処理時間よりもハードウェアアクセラレータの処理時間の方が支配的であるが、CCMPモードを採用したことでスループットを向上させることができる。
 図61に示すように、OTAセンター2は、共通鍵生成部2aと、更新パッケージ暗号化部2bと、共通鍵暗号化部2cと、共通鍵格納部2dと、暗号化パッケージ配置部2eと、キャンペーン通知送信部2fとに加え、MAC鍵生成部2iを備える。MAC鍵生成部2iは、更新パッケージの改竄を防止するためのMACを生成する。
 OTAマスタ4は、共通鍵取得部4aと、共通鍵復号化部4bと、暗号化パッケージ取得部4cと、ブロック暗号処理部4dと、暗号化パッケージ復号化部4eと、インストール処理部4fとに加え、MAC鍵取得部4kを備える。MAC鍵取得部4kは、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からMAC鍵を取得する。
 次に、上記した構成の作用について図62から図67を参照して説明する。
 (7-1)OTAセンター2の処理(図62から図64参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵と、更新パッケージの改竄を防止するためのMAC鍵とを生成する(A071)。OTAセンター2は、更新パッケージを、生成されたAES鍵とMAC鍵によりCCMPモードで暗号化し、MACを付与する(A072)。OTAセンター2は、AES鍵とMAC鍵をRSA公開鍵により暗号化する(A073)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵とMAC鍵をキャンペーン通知の中に格納する(A074)。OTAセンター2は、AES鍵とMAC鍵により暗号化された更新パッケージをCDN8に配置する(A075)。OTAセンター2は、暗号化されたAES鍵とMAC鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A076)。
 (7-2)OTAマスタ4の処理(図65から図67参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵とMACを取得する(B071)。OTAマスタ4は、暗号化されたAES鍵とMAC鍵をRSA秘密鍵により復号化してAES鍵とMAC鍵を取出す(B017)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B073)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B074)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B075)。OTAマスタ4は、復号化された更新パッケージの平文からMAC鍵を用いてAES-CBCモードでMACを生成して検証する(B076)。OTAマスタ4は、MACが一致すると、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B077)。OTAマスタ4は、MACが一致しないと、処理を終了する。この場合、OTAマスタ4は、MACの不一致により処理を終了すると、MACの不一致により処理を終了したことを示すログを記録すると共に、図示しないHMIにエラー表示しても良い。或いは、OTAマスタ4は、暗号化された更新パッケージをXOR演算して復号化すると同時に、復号化された更新パッケージをターゲットECU5へ転送しても良い。この場合、OTAマスタ4は、復号化された更新パッケージの平文からMAC鍵を用いてAES-CBCモードでMACを生成して検証し、MACが不一致と判定した場合には、ターゲットECU5へインストールの中止を通知するように構成しても良い。
 以上に説明したように第7実施形態によれば、以下の作用効果を得ることができる。
 OTAセンター2とOTAマスタ4との間の通信路暗号化とデータ改竄対策としてCCMPモードを採用する構成とした。CCMPモードを採用したことで、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際に通信路暗号化に加えてデータ改竄対策を備えることができる。これにより、セキュリティを高めることができ、よりセキュアなOTA配信を実現することができる。
 (第8実施形態)
 第8実施形態について図68から図77を参照して説明する。第8実施形態は、通信路暗号化とデータ改竄対策としてGCMPモード(Galois/Counter Mode Protocol)を採用している。
 この場合、図69から図71に示すように、GCMPモードを採用した構成と、CCMPモードを採用した構成や従来方式としてAES CBC-HMAC SHA2の復号化及び署名検証を採用した構成とを比較すると、何れもメインコアの処理時間よりもハードウェアアクセラレータの処理時間の方が支配的であるが、GCMPモードを採用したことでスループットを更に向上させることができる。
 次に、上記した構成の作用について図72から図77を参照して説明する。
 (8-1)OTAセンター2の処理(図72から図74参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵と、更新パッケージの改竄を防止するためのMAC鍵とを生成する(A081)。OTAセンター2は、更新パッケージを、生成されたAES鍵とMAC鍵によりGCMPモードで暗号化し、MACを付与する(A082)。OTAセンター2は、AES鍵とMAC鍵をRSA公開鍵により暗号化する(A083)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵とMAC鍵をキャンペーン通知の中に格納する(A084)。OTAセンター2は、AES鍵とMAC鍵により暗号化された更新パッケージをCDN8に配置する(A085)。OTAセンター2は、暗号化されたAES鍵とMAC鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A086)。
 (8-2)OTAマスタ4の処理(図75から図77参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵とMACを取得する(B081)。OTAマスタ4は、暗号化されたAES鍵とMAC鍵をRSA秘密鍵により復号化してAES鍵とMAC鍵を取出す(B082)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B083)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B084)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B085)。OTAマスタ4は、復号化された更新パッケージの平文からMAC鍵を用いてGMACモードでMACを生成して検証する(B086)。OTAマスタは、MACが一致すると、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B087)。
 以上に説明したように第8実施形態によれば、以下の作用効果を得ることができる。
 OTAセンター2とOTAマスタ4との間の通信路暗号化とデータ改竄対策としてGCMPモードを採用する構成とした。GCMPモードを採用したことで、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際に通信路暗号化に加えてデータ改竄対策を備えることができる。これにより、セキュリティを高めることができ、よりセキュアなOTA配信を実現することができる。
 (第9実施形態)
 第9実施形態について図78から図86を参照して説明する。第9実施形態は、更新データの配信経路をCDN8だけでなく、スマートフォンやUSBメモリ等を採用し、配信経路の多様性に対応することで、ユーザのOTA更新方式の自由度を高める。スマートフォンやUSBメモリは記録媒体に相当する。これ以降は、記憶媒体としてスマートフォンやUSBメモリを例示して説明するが、記憶媒体としてSDカード、マイクロSDカード、コンパクトフラッシュ等を採用しても良い。
 次に、上記した構成の作用について図79から図86を参照して説明する。
 (9-1)OTAセンター2の処理(図79から図82参照)
 OTAセンター2は、更新パッケージを暗号化するための共通鍵を生成する(A091)。OTAセンター2は、更新パッケージを、生成された共通鍵により特定の暗号化モードで暗号化する(A092)。OTAセンター2は、共通鍵をRSA公開鍵により暗号化する(A093)。OTAセンター2は、RSA公開鍵により暗号化された共通鍵をキャンペーン通知の中に格納する(A094)。OTAセンター2は、共通鍵暗号方式と配信経路を含むRPメタデータを生成する(A095)。OTAセンター2は、RPメタデータをRSA公開鍵により暗号化する(A096)。OTAセンター2は、共通鍵により暗号化された更新パッケージとRSA公開鍵により暗号化されたRPメタデータをCDN8に配置する(A097)。OTAセンター2は、暗号化された共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A098)。
 (9-2)OTAマスタ4の処理(図83から図86参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中から暗号化された共通鍵を取得する(B091)。OTAマスタ4は、暗号化された共通鍵をRSA秘密鍵により復号化して共通鍵を取出す(B092)。OTAマスタ4は、暗号化されたRPメタデータをCDN8からダウンロードして取得する(B093)。OTAマスタ4は、暗号化されたRPメタデータRSA秘密鍵により復号化してRPメタデータを取出す(B094)。OTAマスタ4は、RPメタデータの内容を解釈して共通鍵暗号方式と配信経路を特定する(B095)。OTAマスタ4は、暗号化された更新パッケージを、その特定した配信経路により取得する(B096)。即ち、OTAマスタ4は、配信経路としてスマートフォンを特定した場合には、暗号化された更新パッケージをCDN8からスマートフォンを経由して一括ストレージ方式でダウンロードする。OTAマスタ4は、配信経路としてUSBメモリを特定した場合には、暗号化された更新パッケージをCDN8からUSBメモリを経由して一括ストレージ方式でダウンロードする。これ以降、OTAマスタ4は、特定の暗号化モードとしてCTRモードを採用した場合であれば第1実施形態で説明したステップB014以降の処理を行い、特定の暗号化モードとしてOFBモードを採用した場合であれば第2実施形態で説明したステップB024以降の処理を行う。
 以上に説明したように第9実施形態によれば、以下の作用効果を得ることができる。
 更新パッケージをCDN8からスマートフォンやUSBメモリ等の記録媒体を経由して取得するようにした。更新パッケージの配信経路に多様性を持たせることができ、配信コストやユーザビリティが優位な配信経路を選択することができる。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制すると共に、ユーザ体験価値を向上することができる。尚、上記した実施形態では、OTAマスタ4は、ステップB095においてRPメタデータの内容を解釈して共通鍵暗号方式と配信経路を特定するが、RPメタデータに複数の配信経路が記載されている場合には、複数の配信経路の中から何れかを選択可能でも良い。
 (第10実施形態)
 第10実施形態について図87から図98を参照して説明する。第10実施形態は、更新パッケージのCDN8への配置先として複数のCDNベンダを配信方式、配信エリアであるOTA対象エリア、配信データサイズに応じてダイナミックに選定して配信コストを抑制する。CDNのコスト比較は図88から図89に示す通りである。価格テーブルは図90から図93に示す通りである。各CDNベンダは、日本や北米等の配信エリアや配信データサイズ等により価格の優劣が異なっており、例えば図90を参照すると、月間100TBのデータサイズを配信する場合、日本ではCDN2が最安であるが、北米やEUにはCDN1が最安である。この事実をベースに配信方式、OTA対象エリア、配信データサイズに応じて配信コストが最安となるCDNベンダを選定する。
 図94に示すように、OTAセンター2は、共通鍵生成部2aと、更新パッケージ暗号化部2bと、共通鍵暗号化部2cと、共通鍵格納部2dと、暗号化パッケージ配置部2eと、キャンペーン通知送信部2fとに加え、CDNベンダ選定部2jを備える。CDNベンダ選定部2jは、CDNベンダ管理データベースを参照してCDNベンダを選定する。
 次に、上記した構成の作用について図95から図98を参照して説明する。
 (10-1)OTAセンター2の処理(図95から図98参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A101)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A102)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化する(A103)。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する(A104)。OTAセンター2は、配信方式を特定し(A105)、OTA対象エリアを特定し(A106)、配信データサイズを特定し(A107)、CDNベンダ管理データベースから配信方式、OTA対象エリア及び配信データサイズをキーにして価格テーブルを参照する(A108)。この場合、OTAセンター2は、ストレージ方式やストリーミング方式といった配信方式、日本や北米やEU(European Union)といったOTA対象エリア、GBやTBやPBといった配信データサイズのうち少なくとも何れか一つをキーにして価格テーブルを参照しても良い。OTAセンター2は、エリア毎に配信コストが最小となるCDNベンダを選定し、AES鍵により暗号化された更新パッケージを当該選定したCDN8に配置する(A109、CDNベンダ選定手順に相当する)。或いは、OTAセンター2は、AES鍵により暗号化された更新パッケージを各CDN8に配置しても良い。OTAセンター2は、暗号化されたAES鍵と、選定されたCDNベンダにアクセスできるように更新パッケージのデータ格納先やURI情報が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A110)。
 (10-2)OTAマスタ4の処理
 OTAマスタ4の処理は、第1実施形態で説明したOTAマスタ4の処理(図12から図14)と同様である。
 以上に説明したように第10実施形態によれば、以下の作用効果を得ることができる。
 CDNベンダ管理データベースを参照し、配信コストが異なる複数のCDN8の中から配信方式、OTA対象エリア及び配信データサイズに応じて配信コストが優位なCDN8を選定し、更新パッケージを当該選定したCDN8に配置する構成とした。OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。又、更新パッケージをOTAセンター2にて暗号化することにより、原理的には途中経路をゼロトラストであってもセキュリティ上は支障がなくなる。このため、CDN8のエッジ側で更新データを暗号化する必要性がなくなり、CDN8の処理負荷やセキュリティ機能を削減することが可能となる。更新パッケージがOTAセンター2からOTAマスタ4に到達するまでに、途中経路でデータ改竄やCDN8がDDoS攻撃を受けたとしてもOTAシステムとしては影響が無く、途中経路に介在するシステムにはインテリジェントなセキュリティ対策、例えばウェブアプリケーションファイアウォールやTLS通信、配信対象となるOTAマスタ4を限定する署名付きURL等の多層防御の安全補助対策を不要にすることが可能である。これにより、原価ベースでOTAシステムのランニングコストを低減することができ、いかなるシステム構成においても配信コストを抑制することができる。
 (第11実施形態)
 第11実施形態について図99から図108を参照して説明する。第11実施形態は、OTAセンター2とOTAマスタ4との間の鍵配送にディフィー・ヘルマン鍵共有(以下、DHE(Diffie-Hellman key exchange)と称する)又は楕円曲線ディフィー・ヘルマン鍵共有(以下、ECDHE(Elliptic curve Diffie-Hellman key exchange)と称する)を採用すると共に、OTAセンター2では共有された車両毎に異なる秘密情報に基づいてAES鍵を暗号化してOTAマスタ4へ配信することにより、ECDHEの前方秘匿性を確保することができるというメリットを享受しながら、CDN8に適用可能な車両モデル又は特定の車両群毎に適用可能な更新パッケージを配信する。
 図100に示すように、両者でそれぞれの公開鍵(A、B)を乱数(=秘密鍵:a、b)から生成及び交換し、自身の秘密鍵と組み合わせて計算を行うことで、秘密裏に秘密情報(S)を共有する。秘密鍵及び公開鍵ペア(a/A、b/B)は、秘密情報(S)を共有した後は破棄可能であり、OTAセンター2とOTAマスタ4との双方でHSM(ハードウェアセキュリティモジュール)に格納しておく必要がないため、非常にセキュアに秘密情報(S)を共有することができる。この共有した秘密情報(S)は、共通鍵暗号の鍵等に活用可能であるが、元データが乱数のため(a、b)、OTAマスタ4毎に異なる鍵となる。
 次に、上記した構成の作用について図101から図108を参照して説明する。
 (11-1)OTAセンター2の処理(図101から図104参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A111)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A112)。OTAセンター2は、乱数からECDHEの鍵ペアを生成する(A113)。OTAセンター2は、ECDHEのアルゴリズムでOTAマスタ4と秘密鍵を共有する(A114、秘密情報共有手順に相当する)。OTAセンター2は、AES鍵を秘密鍵により暗号化する(A115)。OTAセンター2は、秘密鍵により暗号化されたAES鍵をキャンペーン通知の中に格納する(A116)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A117)。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A118、暗号鍵配信手順に相当する)。
 ここで、ステップA114について説明する。車両のイグニッションがオンされ、前回の車両構成情報の同期から所定期間が経過していると、OTAマスタ4は、車両に搭載されたECUにプログラムバージョンを問合せて車両構成情報を収集する。或いはOTAマスタ4は、OTAセンター2からキャンペーンに関するプッシュ通知を受信すると、ECUにプログラムバージョンを問合せて車両構成情報を収集する。OTAマスタ4は、車両構成情報を収集すると、OTAセンター2との間でTLS通信を確立し、車両構成情報をOTAセンター2へ送信する。このとき、OTAマスタ4は、車両構成情報を収集すると共に、ECDHEの鍵ペアを生成しており、OTAセンター2との間でTLS通信を確立すると、鍵ペアのうちOTAマスタ4の公開鍵をOTAセンター2へ送信する。尚、OTAマスタ4が車両構成情報を収集する工程は、他の実施形態にも適用される。OTAセンター2は、OTAマスタ4から取得したOTAマスタ4の公開鍵とOTAセンター2の秘密鍵に基づいてECDHEのアルゴリズムでの秘密鍵を取得する。
 (11-2)OTAマスタ4の処理(図105から図108参照)
 OTAマスタ4は、乱数からECDHEの鍵ペアを生成する(B111)。OTAマスタ4は、ECDHEのアルゴリズムでOTAセンター2と秘密鍵を共有する(B112、秘密情報共有手順に相当する)。OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵を取得する(B113)。OTAマスタ4は、暗号化されたAES鍵を秘密鍵により復号化してAES鍵を取出す(B114)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B115)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B116)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B117)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B118)。
 以上に説明したように第11実施形態によれば、以下の作用効果を得ることができる。
 OTAセンター2とOTAマスタ4との間の鍵配送にDHE又はECDHEを採用し、OTAセンター2では共有された車両毎に異なる秘密情報に基づいてAES鍵を暗号化してOTAマスタ4へ配信する構成とした。これにより、ECDHEの前方秘匿性を適切に確保しつつ、CDN8による更新データの効率的な配信を適切に実現することができる。
 (第11実施形態の変形例)
 第11実施形態の変形例について図166から図173を参照して説明する。第11実施形態では、車両に無線通信装置が搭載され、OTAマスタ4がOTAセンター2やCDN8と無線通信回線を介してデータを送受信可能であることを前提として説明した。しかしながら、車両に無線通信装置が搭載されていない場合や、ユーザが無線通信回線の使用を好まない場合もある。第11実施形態の変形例では、OTAマスタ4がOTAセンター2やCDN8と無線通信回線を介してデータを送受信せず、代わりに例えばSDカード等の記憶媒体を用いてプログラム更新を実施する状況を説明する。
 OTAマスタ4及びOTAセンター2は、外部とのデータ転送に記憶媒体を用いる。OTAマスタ4と記憶媒体との間のデータ転送は、車両に設置されている記憶媒体のためのポートを用いる。車両に設置されているポートは、例えばカーナビゲーション装置、センターディスプレイ装置、その他の車両制御装置に設置されているポート等である。
 OTAセンター2と記憶媒体との間のデータ転送は、記憶媒体をパーソナルコンピュータ(以下、PCと称する)に接続して行う。例えば記憶媒体をPCに接続し、OTAセンター2やCDN8のウェブサイトにアクセスし、記憶媒体に保存されているデータを、PCを操作することでOTAセンター2へアップロードしたり、OTAセンター2に保存されているデータを、PCを操作することで記憶媒体へダウンロードしたりする。尚、記憶媒体に対応したスマートフォン、タブレット端末等をPCの代わりに用いることもできる。記憶媒体に対応したPC、スマートフォン、タブレット端末等を操作端末とも称する。
 図166から図169を参照し、記憶媒体としてSDカードを使用した場合について説明する。この場合、OTAマスタ4からSDカード11へのデータの転送、SDカード11からOTAセンター2へのデータのアップロード、OTAセンター2からSDカード11へのデータのダウンロード、SDカード11からOTAマスタ4へのデータの転送の順序で処理を行う。
 図166を参照し、OTAマスタ4からSDカード11へのデータの転送を説明する。OTAマスタ4は、ターゲットECU5からソフトウェアバージョン情報等を取得し、その取得したソフトウェアバージョン情報等を車両構成情報としてSDカード11へ転送して保存する。OTAマスタ4は、乱数からECDHEの鍵ペアを生成し、ECDHE公開鍵をSDカード11へ転送して保存する。SDカード11は、OTAマスタ4から転送された車両構成情報及びOTAマスタ4のECDHE公開鍵を保存する。
 図167を参照し、SDカード11が接続されたPCからOTAセンター2へのデータのアップロードを説明する。PCは、SDカード11が接続されると、SDカード11に保存されている車両構成情報及びOTAマスタ4のECDHE公開鍵を読出し、その読出した車両構成情報及びOTAマスタ4のECDHE公開鍵をOTAセンター2へアップロードする。OTAセンター2へアップロードされた車両構成情報はPKG生成サーバ6においてキャンペーン有無の判定に用いられる。OTAセンター2へアップロードされたOTAマスタ4のECDHE公開鍵は配信サーバ7においてECDHEのアルゴリズムに基づいて秘密鍵を共有する。この場合の秘密鍵は、車両毎に異なる秘密鍵である。
 図168を参照し、OTAセンター2からSDカード11へのデータのダウンロードについて説明する。ここでは、キャンペーンがある場合を示している。OTAセンター2は、AES鍵により暗号化された更新パッケージをSDカード11へダウンロードして保存する。OTAセンター2は、乱数からECDHEの鍵ペアを生成し、OTAマスタ4と共有すべき鍵(OTAセンター2のECDHE公開鍵)をSDカード11へダウンロードして保存する。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をSDカード11へダウンロードして保存する。SDカード11は、OTAセンター2からダウンロードされた更新パッケージ、OTAセンター2のECDHE公開鍵及び暗号化されたAES鍵を保存する。
 図169を参照し、SDカード11からOTAマスタ4へのデータの転送を説明する。OTAマスタ4は、SDカード11に保存されている暗号化された更新パッケージ、OTAセンター2のECDHE公開鍵及び暗号化されたAES鍵をSDカード11から読出して取得する。
 次に、上記した構成の作用について図170から図174を参照して説明する。
 (11-3)OTAマスタ4の処理(図170参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されており、所定条件が満たされると、ソフトウェアバージョン情報等の構成情報の送信をターゲットECU5へ要求し、ターゲットECU5から送信されたソフトウェアバージョン情報等の構成情報を車両構成情報として取得する(B1111)。OTAマスタ4は、車両構成情報を取得すると、その取得した車両構成情報をSDカード11へ転送して保存する(B1112)。OTAマスタ4は、乱数からECDHEの鍵ペアを生成する(B1113)。この場合、鍵ペアはOTAマスタ4のECDHE公開鍵とECDHE秘密鍵とを含む。OTAマスタ4は、OTAマスタ4のECDHE公開鍵をSDカード11へ転送して保存する(B1114)。SDカード11は、このようにして車両構成情報及びOTAマスタ4のECDHE公開鍵が保存されると、車両側システム3との接続が解除され、PCに接続される。
 (11-4)PCの処理(図171参照)
 PCは、SDカード11が接続されていると、SDカード11に保存されている車両構成情報及びOTAマスタ4のECDHE公開鍵を読出し、その読出した車両構成情報及びOTAマスタ4のECDHE公開鍵をOTAセンター2へアップロードする(C1111)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵、AES鍵が格納されているキャンペーン通知、暗号化された更新パッケージの受信を待機すると共に、キャンペーンなし通知の受信を待機する(C1112、C1113)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵、AES鍵が格納されているキャンペーン通知、暗号化された更新パッケージを受信したと判定すると(C1112:YES)、又はキャンペーンなし通知を受信したと判定すると(C1113:YES)、処理を終了する。
 (11-5)OTAセンター2の処理(図172参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成し、更新パッケージをAES鍵によりCTRモードにて暗号化する。OTAセンター2は、SDカード11が接続されているPCからアップロードされた車両構成情報及びOTAマスタ4のECDHE公開鍵を取得する(A1111)。OTAセンター2は、車両構成情報に基づいてキャンペーンがあるか否かを判定する(A1112)。OTAセンター2は、キャンペーンがないと判定すると(A1112:NO)、キャンペーンなし通知をPCへ送信し(A1113)、処理を終了する。
 OTAセンター2は、キャンペーンがあると判定すると(A1112:YES)、乱数からECDHEの鍵ペアを生成する(A1114)。この場合、鍵ペアはOTAセンター2のECDHE公開鍵とECDHE秘密鍵である。OTAセンター2は、OTAセンター2のECDHE公開鍵をSDカード11へダウンロードして保存する(A1115)。OTAセンター2は、OTAセンター2のECDHE秘密鍵とOTAマスタ4のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成し(A1116)、その生成したECDHE共通鍵(秘密鍵)によりAES鍵を暗号化する(A1117)。OTAセンター2は、その暗号化したAES鍵をキャンペーン通知に格納し、その暗号化したAES鍵を格納したキャンペーン通知をSDカード11へダウンロードして保存する(A1118)。OTAセンター2は、暗号化された更新パッケージをSDカード11へダウンロードして保存する(A1119)。
 (11-6)OTAマスタ4の処理(図173参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されていると、SDカード11からOTAセンター2のECDHE公開鍵、キャンペーン通知、更新パッケージを取得する(B1121)。OTAマスタ4は、OTAマスタ4のECDHE秘密鍵とOTAセンター2のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成する(B1122)。OTAマスタ4は、キャンペーン通知から暗号化されたAES鍵を取出し、ECDHE共通鍵(秘密鍵)により復号化する(B1123)。OTAマスタ4は、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B1124)。OTAマスタ4は、暗号化されたカウンター値と、暗号化された更新パッケージとをXOR演算して復号化する(B1125)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B1126)。
 このような構成によれば、車両側システム3の無線通信機能に依存することなく、ECDHEの前方秘匿性を適切に確保しつつ、CDN8による更新データの効率的な配信を適切に実現することができる。又、OTAマスタ4とSDカード11との間のデータ転送と、OTAセンター2とSDカード11との間のアップロードやダウンロードの回数を抑制することで、ユーザにとっての利便性を高めることができる。
 (第12実施形態)
 第12実施形態について図109から図115を参照して説明する。第12実施形態は、ECDHEの鍵共有において、OTAセンター2で生成する乱数aを、車両モデル毎の乱数(特定のルールにしたがった乱数)とし、OTAマスタ4で生成する乱数bを、車両モデル毎の固定値、カウントアップ値、又はOTAマスタ4のソフトウェアバージョンのハッシュ値の何れか一つ、或いはこれらの組み合わせを利用することにより、ECDHEで共有する秘密鍵を車両モデル毎に共通とし、ECDHEの前方秘匿性を確保するメリットを享受しながら、鍵を配送する処理を省略し、車両モデル又は特定の車両群毎に適用可能な暗号化パッケージをCDN配信する。
 次に、上記した構成の作用について図110から図115を参照して説明する。
 (12-1)OTAセンター2の処理(図110から図112参照)
 OTAセンター2は、車両モデル毎又は車両群毎に共通となる乱数からECDHEの鍵ペアを生成する(A121)。OTAセンター2は、ECDHEのアルゴリズムでOTAマスタ4と秘密鍵を共有する(A122、秘密情報共有手順に相当する)。本実施形態では、ECDHEのアルゴリズムでOTAマスタ4と共有する秘密鍵を、更新パッケージを暗号化するためのAES鍵として使用する。更に、OTAマスタ4は、暗号化された更新パッケージを復号化するためのAES鍵としてOTAセンター2と共有した秘密鍵を使用する。OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A123)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A124)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A125)。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A126、暗号鍵配信手順に相当する)。
 (12-2)OTAマスタ4の処理(図113から図115参照)
 OTAマスタ4は、上記で説明した特定のルールにしたがって生成した乱数からECDHEの鍵ペアを生成する(B121)。OTAセンター2は、ECDHEのアルゴリズムでOTAセンター2と秘密鍵を共有する(B122、秘密情報共有手順に相当する)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B123)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B124)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B125)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B126)。
 以上に説明したように第12実施形態によれば、以下の作用効果を得ることができる。
 OTAセンター2とOTAマスタ4との間の鍵配送にDHE又はECDHEを採用し、ECDHEで共有する秘密鍵を車両モデル毎に共通とする構成とした。これにより、ECDHEの前方秘匿性を適切に確保しつつ、第11実施形態と比べて鍵配送の手間を簡略化しながら、CDN8による更新データの効率的な配信を適切に実現することができる。
 (第12実施形態の変形例)
 第12実施形態の変形例について図174から図181を参照して説明する。第12実施形態の変形例でも、第11実施形態の変形例と同様に、OTAマスタ4がOTAセンター2やCDN8と無線通信回線を介してデータを送受信せず、代わりに例えばSDカード等の記憶媒体を用いてプログラム更新を実施する状況を説明する。
 図174を参照し、OTAマスタ4からSDカード11へのデータの転送を説明する。OTAマスタ4は、ターゲットECU5からソフトウェアバージョン情報等を取得し、その取得したソフトウェアバージョン情報等を車両構成情報としてSDカード11へ転送して保存する。OTAマスタ4は、車両モデル毎の固定値、カウントアップ値、又はOTAマスタ4のソフトウェアバージョンのハッシュ値の何れか一つ、或いはこれらの組み合わせを利用して車両モデル毎に共通するECDHEの鍵ペアを生成し、OTAセンター2と共有すべき鍵(OTAマスタ4のECDHE公開鍵)をSDカード11へ転送して保存する。車両モデル毎の固定値、カウントアップ値、又はOTAマスタ4のソフトウェアバージョンのハッシュ値の何れか一つ、或いはこれらの組み合わせは特定のルールに相当する。SDカード11は、OTAマスタ4から転送された車両構成情報及びOTAマスタ4のECDHE公開鍵を保存する。
 図175を参照し、SDカード11が接続されたPCからOTAセンター2へのデータのアップロードを説明する。PCは、SDカード11が接続されると、SDカード11に保存されている車両構成情報及びOTAマスタ4のECDHE公開鍵を読出し、その読出した車両構成情報及びOTAマスタ4のECDHE公開鍵をOTAセンター2へアップロードする。OTAセンター2へアップロードされた車両構成情報はPKG生成サーバ6においてキャンペーン有無の判定に用いられる。又、OTAセンター2へアップロードされたOTAマスタ4のECDHE公開鍵は配信サーバ7においてECDHEのアルゴリズムに基づいて秘密鍵を共有する。この場合の秘密鍵は、車両モデル毎に共通する秘密鍵である。
 図176を参照して、OTAセンター2からSDカード11へのデータのダウンロードについて説明する。OTAセンター2は、車両モデル毎又は車両群毎に共通となる乱数からECDHEの鍵ペアを生成し、OTAマスタ4と共有すべき鍵(OTAセンター2のECDHE公開鍵)をSDカード11へダウンロードして保存する。OTAセンター2は、ECDHEで共有できた秘密鍵をAES鍵として用いることで更新パッケージを暗号化し、暗号化された更新パッケージをSDカード11へダウンロードして保存する。SDカード11は、OTAセンター2からダウンロードされたOTAセンター2のECDHE公開鍵、更新パッケージを保存する。
 図177を参照し、SDカード11からOTAマスタ4へのデータの転送を説明する。OTAマスタ4は、SDカード11に保存されている暗号化された更新パッケージ及びOTAセンター2のECDHE公開鍵を読出して取得する。OTAマスタ4は、ECDHEのアルゴリズムに基づいて秘密鍵を共有する。OTAマスタ4は、ECDHEで共有できた秘密鍵をAES鍵として用い、暗号化された更新パッケージを復号化する。
 次に、上記した構成の作用について図178から図181を参照して説明する。
 (12-3)OTAマスタ4の処理(図178参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されており、所定条件が満たされると、ソフトウェアバージョン情報等の構成情報の送信をターゲットECU5へ要求し、ターゲットECU5から送信されたソフトウェアバージョン情報等の構成情報を車両構成情報として取得する(B1211)。OTAマスタ4は、車両構成情報を取得すると、その取得した車両構成情報をSDカード11へ転送して保存する(B1212)。OTAマスタ4は、特定のルールにしたがって生成した乱数からECDHEの鍵ペアを生成する(B1213)。この場合、鍵ペアはOTAマスタ4のECDHE公開鍵とECDHE秘密鍵とを含む。OTAマスタ4は、OTAマスタ4のECDHE公開鍵をSDカード11へ転送して保存する(B1214)。ECDHEの鍵ペアは、第12実施形態と同様に特定のルールにしたがって生成された乱数であって車両モデル毎に共通となる。SDカード11は、このようにして車両構成情報及びOTAマスタ4のECDHE公開鍵が保存されると、車両側システム3との接続が解除され、PCに接続される。
 (12-4)PCの処理(図179参照)
 PCは、SDカード11が接続されていると、SDカード11に保存されている車両構成情報及びOTAマスタ4のECDHE公開鍵を読出し、その読出した車両構成情報及びOTAマスタ4のECDHE公開鍵をOTAセンター2へアップロードする(C1211)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵が格納されているキャンペーン通知、暗号化された更新パッケージの受信を待機すると共に、キャンペーンなし通知の受信を待機する(C1212、C1213)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵が格納されているキャンペーン通知、暗号化された更新パッケージを受信したと判定すると(C1212:YES)、又はキャンペーンなし通知を受信したと判定すると(C1213:YES)、処理を終了する。
 (12-5)OTAセンター2の処理(図180参照)
 OTAセンター2は、SDカード11が接続されているPCからアップロードされた車両構成情報及びOTAマスタ4のECDHE公開鍵を取得する(A1211)。OTAセンター2は、車両構成情報に基づいてキャンペーンがあるか否かを判定する(A1212)。OTAセンター2は、キャンペーンがないと判定すると(A1212:NO)、キャンペーンなし通知をPCへ送信し(A1213)、処理を終了する。
 OTAセンター2は、キャンペーンがあると判定すると(A1212:YES)、車両モデル毎又は車両群毎に共通となる乱数からECDHEの鍵ペアを生成する(A1214)。この場合、鍵ペアはOTAセンター2のECDHE公開鍵とECDHE秘密鍵である。OTAセンター2は、OTAセンター2のECDHE公開鍵をSDカード11へダウンロードして保存する(A1215)。OTAセンター2は、OTAセンター2のECDHE秘密鍵とOTAマスタ4のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成し(A1216)、その生成したECDHE共通鍵(秘密鍵)により更新パッケージを暗号化する(A1217)。OTAセンター2は、暗号化された更新パッケージをSDカード11へダウンロードして保存する(A1218)。
 (12-6)OTAマスタ4の処理(図181参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されていると、SDカード11からOTAセンター2のECDHE公開鍵、更新パッケージを取得する(B1221)。OTAマスタ4は、OTAマスタ4のECDHE秘密鍵とOTAセンター2のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成する(B1222)。OTAマスタ4は、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B1223)。OTAマスタ4は、暗号化されたカウンター値と、暗号化された更新パッケージとをXOR演算して復号化する(B1224)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B1225)。
 このような構成によれば、車両側システム3の無線通信機能に依存することなく、ECDHEの前方秘匿性を適切に確保しつつ、第11実施形態と比べて鍵配送の手間を簡略化しながら、CDN8による更新データの効率的な配信を適切に実現することができる。又、OTAマスタ4とSDカード11との間のデータ転送と、OTAセンター2とSDカード11との間のアップロードやダウンロードの回数を抑制することで、ユーザにとっての利便性を高めることができる。
 (第13実施形態)
 第13実施形態について図116から図124を参照して説明する。第13実施形態は、CTRモードを単純に適用するのではなく、カウンター値に工夫を持たせることで、よりセキュアにする。具体的には、OTAセンター2とOTAマスタ4との間で最初に通信するキャンペーン通知の中にノンスを入れ込み、ノンスをカウンター値に入れ込むことで、CTRモードの安全化を図る。CTRモードのノンスを入れ込む暗号化処理は図117に示す通りであり、CTRモードのノンスを入れ込む復号化処理は図118に示す通りである。
 次に、上記した構成の作用について図119から図124を参照して説明する。
 (13-1)OTAセンター2の処理(図119から図121参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A131)。OTAセンター2は、乱数によるノンスを生成する(A132)。OTAセンター2は、更新パッケージを、生成されたAES鍵とノンスによりCTRモードで暗号化する(A133)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化する(A134)。OTAセンター2は、AES鍵をRSA公開鍵により暗号化すると同時に、ノンスもRSA公開鍵により暗号化しても良い。OTAセンター2は、RSA公開鍵により暗号化されたAES鍵とノンスをキャンペーン通知の中に格納する(A135)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A136)。OTAセンター2は、暗号化されたAES鍵とノンスが格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A137)。
 (13-2)OTAマスタ4の処理(図122から図124参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES鍵とノンスを取得する(B131)。OTAマスタ4は、暗号化されたAES鍵をRSA秘密鍵により復号化してAES鍵を取出す(B132)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B133)。OTAマスタ4は、CDN8からダウンロードされている暗号化された更新パッケージをAES鍵とノンスにより復号化する(B134)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B135)。
 以上に説明したように第13実施形態によれば、以下の作用効果を得ることができる。
 OTAセンター2とOTAマスタ4との間で最初に通信するキャンペーン通知の中にノンスを入れ込み、ノンスをカウンター値に入れ込む構成とした。これにより、ノンスをカウンター値に入れ込むことで、CTRモードの安全化を図ることができる。
 (第14実施形態)
 第14実施形態について図125から図132を参照して説明する。第14実施形態は、暗号化に使用する鍵について、鍵危殆化時の影響範囲を狭めるために全ての車両で共通の鍵を使うのではなく、特定の車両群の単位毎に個別化した派生鍵を使用することで、CDN8の配信キャッシュ効率を維持しながら鍵漏洩時の損失を局所化し、よりセキュアにOTA配信する。図126に示すように、同一の車両モデル及び年式に対してVIN番号を複数に区分し、区分毎に異なるAES個別鍵を使用する。例えばVIN番号AAA~CCC、VIN番号DDD~KKK、VIN番号SSS~ZZZで区分し、異なるAES個別鍵を使用する。個別鍵データベースは、例えばOEMコード、車両モデル、年式、AESマスタ鍵、シード値、VIN番号で区切られたAES個別鍵を含む。
 次に、上記した構成の作用について図127から図132を参照して説明する。
 (14-1)OTAセンター2の処理(図127から図129参照)
 OTAセンター2は、更新パッケージを暗号化するためのAES個別鍵を、AESマスタ鍵とシード値から生成する(A141)。シード値は、例えば乱数、カウンター値、タイムスタンプ等である。OTAセンター2は、更新パッケージを、生成されたAES個別鍵の一つとノンスによりCTRモードで暗号化する(A142)。OTAセンター2は、AES個別鍵をRSA公開鍵により暗号化する(A143)。OTAセンター2は、RSA公開鍵により暗号化されたAES個別鍵とノンスをキャンペーン通知の中に格納する(A144)。OTAセンター2は、AES個別鍵の一つとノンスにより暗号化された更新パッケージをCDN8に配置する(A145)。OTAセンター2は、暗号化されたAES個別鍵とノンスが格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A146)。
 (14-2)OTAマスタ4の処理(図130から図132参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されたことでキャンペーン通知を取得すると、その取得したキャンペーン通知の中からAES個別鍵とノンスを取得する(B141)。OTAマスタ4は、暗号化されたAES個別鍵をRSA秘密鍵により復号化してAES個別鍵を取出す(B142)。OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得する(B143)。OTAマスタ4は、CDN8からダウンロードされている暗号化された更新パッケージをAES個別鍵とノンスにより復号化する(B144)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B145)。
 以上に説明したように第14実施形態によれば、以下の作用効果を得ることができる。
 暗号化に使用する鍵について全ての車両で共通の鍵を使うのではなく、特定の車両群の単位毎に個別化した派生鍵を使用する構成とした。CDN8の配信キャッシュ効率を維持しながら鍵漏洩時の損失を局所化することができる。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際のセキュリティ性を高めることができ、よりセキュアなOTA配信を実現することができる。
 (第15実施形態)
 第15実施形態について図133から図137を参照して説明する。第15実施形態は、最悪の事態である秘密鍵漏洩のケースに備えてOTAで鍵更新可能なように鍵バージョンを付与してOTAセンター2で管理すると共に、鍵更新用鍵をOTAマスタのHSM領域に格納する。OTAセンター2は、AES鍵の暗号化に用いるRSA公開鍵とその復号化に用いられるRSA秘密鍵のバージョン情報を管理している。バージョン情報を管理することで、RSA秘密鍵及びRSA公開鍵を更新する際にダウングレードされないようにする。OTAセンター2とOTAマスタ4は、秘密鍵の更新の際に用いる鍵更新用鍵を備える。OTAセンター2において、秘密鍵漏洩時又は定期間隔で新しい秘密鍵ペアを生成すると共に、鍵更新用鍵を用いて鍵更新パッケージを生成し、鍵更新パッケージをOTAマスタ4へ送信することで、秘密鍵の鍵更新を実現する。
 次に、上記した構成の作用について図134から図137を参照して説明する。
 (15-1)OTAセンター2の処理(図134から図135参照)
 OTAセンター2は、新RSA秘密鍵と新RSA公開鍵の新しい鍵ペアを生成する(A151)。OTAセンター2は、生成された新RSA秘密鍵を鍵更新用鍵によりCTRモードで暗号化及びMAC演算し、鍵更新パッケージを生成する(A152)。OTAセンター2は、旧RSA公開鍵を新RSA公開鍵に切替える(A153)。OTAセンター2は、鍵更新パッケージをリプログ対象の車両側システム3へ送信する(A154)。
 (15-2)OTAマスタ4の処理(図136から図137参照)
 OTAマスタ4は、鍵更新パッケージを取得し、新RSA秘密鍵を鍵更新用鍵によりCTRモードで復号化及びMAC検証する(B151)。OTAマスタ4は、旧RSA秘密鍵を、復号化された新RSA秘密鍵に切替える(B152)。
 以上に説明したように第15実施形態によれば、以下の作用効果を得ることができる。
 秘密鍵漏洩時又は定期間隔で新しい秘密鍵ペアを生成すると共に、鍵更新用鍵を用いて鍵更新パッケージを生成し、鍵更新パッケージをOTAマスタ4へ送信する構成とした。これにより、秘密鍵の鍵更新を行うことで、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際のセキュリティ性を高めることができ、よりセキュアなOTA配信を実現することができる。
 (第16実施形態)
 第16実施形態について図138から図145を参照して説明する。第16実施形態は、ECDHEの鍵共有において、中間者攻撃に対抗するようにデジタル署名を付与して暗号化パッケージに適用可能な鍵をセキュアにOTAセンター2とOTAマスタ4との間の鍵共有を実現する。図139から図140に示すように、DHEは中間攻撃者からの攻撃に対して脆弱であるが、デジタル署名を付与することで中間攻撃者からの攻撃に対抗する。デジタル署名としてはRSA又は楕円曲線DSAの暗号アルゴリズムを用いたデジタル署名を用いる。
 次に、上記した構成の作用について図141から図145を参照して説明する。
 (16-1)OTAセンター2の処理(図141から図143参照)
 OTAセンター2は、車両モデル毎又は車両群毎に作成した乱数からECDHEの鍵ペアを生成する(A161)。OTAセンター2は、ECDHE鍵をRSA秘密鍵でデジタル署名を付与する(A162)。ここでは、RSA秘密鍵としているが、RSA秘密鍵に限定するものではなく、公開鍵暗号方式であれば代替可能であり、例えばECDSA(Elliptic Curve Digital Signature Algorithm)秘密鍵でも良い。OTAセンター2は、デジタル署名が付与されたECDHE公開鍵をリプログ対象の車両側システム3へ送信する(A163)。OTAセンター2は、ECDHEのアルゴリズムでOTAマスタ4と秘密鍵を共有する(A164)。OTAセンター2は、更新パッケージを暗号化するためのAES鍵を生成する(A165)。OTAセンター2は、更新パッケージを、生成されたAES鍵によりCTRモードで暗号化する(A166)。OTAセンター2は、AES鍵により暗号化された更新パッケージをCDN8に配置する(A167)。OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A168)。
 (16-2)OTAマスタ4の処理(図144から図145参照)
 OTAマスタ4は、特定のルールにしたがって生成した乱数からECDHEの鍵ペアを生成する(B161)。OTAマスタ4は、OTAセンター2から受信したECDHE公開鍵をRSA公開鍵でデジタル署名検証する(B162)。ここでも、OTAセンター2と同様に、RSA公開鍵に限定するものではなく、公開鍵暗号方式であれば代替可能であり、例えばECDSA公開鍵でも良い。OTAマスタ4は、検証結果が正であれば、ECDHEのアルゴリズムでOTAセンター2と秘密鍵を共有する(B163)。これ以降、OTAマスタ4は、第11実施形態で説明したステップB113以降の処理を行う。
 以上に説明したように第16実施形態によれば、以下の作用効果を得ることができる。
 ECDHEの鍵共有においてデジタル署名を付与する構成とした。これにより、デジタル署名を付与することで、中間攻撃者からの攻撃に対抗することができ、よりセキュアなOTA配信を実現することができる。
 (第16実施形態の変形例)
 第16実施形態の変形例について図182から図189を参照して説明する。第16実施形態の変形例でも、第11実施形態及び第12実施形態の変形例と同様に、OTAマスタ4がOTAセンター2やCDN8と無線通信回線を介してデータを送受信せず、代わりに例えばSDカード等の記憶媒体を用いてプログラム更新を実施する状況を説明する。第16実施形態の変形例における第12実施形態の変形例との主な違いは、OTAセンター2のECDHE公開鍵を公開鍵暗号方式の鍵にてデジタル署名を施すことで中間攻撃者からの攻撃に対抗する点にある。
 図182から図185では、それぞれOTAマスタ4からSDカード11へのデータの転送、SDカード11が接続されたPCからOTAセンター2へのデータのアップロード、OTAセンター2からSDカード11へのデータのダウンロード、SDカード11からOTAマスタ4へのデータの転送を示している。第12実施形態の変形例との主な違いは、図184に示すように、OTAセンター2は、OTAマスタ4と共有すべき鍵(OTAセンター2のECDHE公開鍵)を公開鍵暗号方式の鍵、例えばRSA秘密鍵やECDSA秘密鍵でデジタル署名を付与する。OTAセンター2は、署名付きのECDHE公開鍵をSDカード11へ転送して保存する。又、図185に示すように、OTAマスタ4は、署名付きのECDHE公開鍵をSDカード11から読出し、車両側システム3に保存されているRSA公開鍵を用いて検証する。
 次に、上記した構成の作用について図186から図189を参照して説明する。
 (16-3)OTAマスタ4の処理(図186参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されており、所定条件が満たされると、ソフトウェアバージョン情報等の構成情報の送信をターゲットECU5へ要求し、ターゲットECU5から送信されたソフトウェアバージョン情報等の構成情報を車両構成情報として取得する(B1611)。OTAマスタ4は、車両構成情報を取得すると、その取得した車両構成情報をSDカード11へ転送して保存する(B1612)。OTAマスタ4は、特定のルールにしたがって生成した乱数からECDHEの鍵ペアを生成する(B1613)。この場合、鍵ペアはOTAマスタ4のECDHE公開鍵とECDHE秘密鍵とを含む。OTAマスタ4は、OTAマスタ4のECDHE公開鍵をSDカード11へ転送して保存する(B1614)。ECDHEの鍵ペアは、第12実施形態と同様に特定のルールにしたがって生成された乱数であって車両モデル毎に共通となる。SDカード11は、このようにして車両構成情報及びOTAマスタ4のECDHE公開鍵が保存されると、車両側システム3との接続が解除され、PCに接続される。
 (16-4)PCの処理(図187参照)
 PCは、SDカード11が接続されていると、SDカード11に保存されている車両構成情報及びOTAマスタ4のECDHE公開鍵を読出し、その読出した車両構成情報及びOTAマスタ4のECDHE公開鍵をOTAセンター2へアップロードする(C1611)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵が格納されているキャンペーン通知、暗号化された更新パッケージの受信を待機すると共に、キャンペーンなし通知の受信を待機する(C1612、C1613)。PCは、OTAセンター2からOTAマスタ4のECDHE公開鍵が格納されているキャンペーン通知、暗号化された更新パッケージを受信したと判定すると(C1612:YES)、又はキャンペーンなし通知を受信したと判定すると(C1613:YES)、処理を終了する。
 (16-5)OTAセンター2の処理(図188参照)
 OTAセンター2は、SDカード11が接続されているPCからアップロードされた車両構成情報及びOTAマスタ4のECDHE公開鍵を取得する(A1611)。OTAセンター2は、車両構成情報に基づいてキャンペーンがあるか否かを判定する(A1612)。OTAセンター2は、キャンペーンがないと判定すると(A1612:NO)、キャンペーンなし通知をPCへ送信し(A1613)、処理を終了する。
 OTAセンター2は、キャンペーンがあると判定すると(A1612:YES)、車両モデル毎又は車両群毎に共通となる乱数からECDHEの鍵ペアを生成する(A1614)。この場合、鍵ペアはOTAセンター2のECDHE公開鍵とECDHE秘密鍵である。OTAセンター2は、OTAセンター2のECDHE公開鍵をRSA秘密鍵で署名し(A1615)、署名済みのOTAセンター2のECDHE公開鍵をSDカード11へダウンロードして保存する(A1616)。OTAセンター2は、OTAセンター2のECDHE秘密鍵とOTAマスタ4のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成し(A1617)、その生成したECDHE共通鍵(秘密鍵)により更新パッケージを暗号化する(A1618)。OTAセンター2は、暗号化された更新パッケージをSDカード11へダウンロードして保存する(A1619)。
 (16-6)OTAマスタ4の処理(図189参照)
 OTAマスタ4は、SDカード11が車両側システム3に接続されていると、SDカード11から署名済みのOTAセンター2のECDHE公開鍵、更新パッケージを取得する(B1621)。OTAマスタ4は、署名済みのOTAセンター2のECDHE公開鍵をRSA公開鍵で検証する(B1622)。OTAマスタ4は、検証結果が正常であるか否かを判定し(B1623)、検証結果が正常でなく異常であると判定すると(B1623:NO)、エラー通知を行う(B1624)。
 OTAマスタ4は、検証結果が正常であると判定すると(B1623:YES)、OTAマスタ4のECDHE秘密鍵とOTAセンター2のECDHE公開鍵からECDHE共通鍵(秘密鍵)を生成する(B1625)。OTAマスタ4は、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B1626)。OTAマスタ4は、暗号化されたカウンター値と、暗号化された更新パッケージとをXOR演算して復号化する(B1627)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B1628)。
 このような構成によれば、車両側システム3の無線通信機能に依存することなく、中間攻撃者からの攻撃に対抗することができ、よりセキュアなOTA配信を実現することができる。又、OTAマスタ4とSDカード11との間のデータ転送と、OTAセンター2とSDカード11との間のアップロードやダウンロードの回数を抑制することで、ユーザにとっての利便性を高めることができる。
 (第17実施形態)
 第17実施形態について図146から図151を参照して説明する。第10実施形態は、複数のCDNベンダから配信コストが最小となるCDNベンダをエリア毎に選定する構成であるが、第17実施形態は、複数のCDNベンダから配信コストを低減可能なCDNベンダを静的に選定する構成である。具体的には、第10実施形態は、更新パッケージをOTAセンター2で暗号化した上で、配信方式、OTA対象エリア、配信データサイズに応じて配信コストを最小にするが、第17実施形態は、更新パッケージをOTAセンター2で暗号化せず、CDN8とOTAマスタ4との間をTLS通信で保護した上で、配信方式、OTA対象エリア、配信データサイズに応じて配信コストを最小とする。
 次に、上記した構成の作用について図147から図151を参照して説明する。
 (17-1)OTAセンター2の処理(図147から図148参照)
 OTAセンター2は、配信方式を特定し(A171)、OTA対象エリアを特定し(A172)、車両への通信プロトコルにTLSの使用有無を特定し(A173)、配信データサイズを特定し(A174)、CDNベンダ管理データベースから配信方式、OTA対象エリア、通信プロトコル及び配信データサイズをキーにして価格テーブルを参照する(A175)。この場合、OTAセンター2は、配信方式、OTA対象エリア、通信プロトコル及び配信データサイズのうち少なくとも何れか一つをキーにして価格テーブルを参照しても良い。OTAセンター2は、エリア毎に配信コストが最小となるCDNベンダを選定し、更新パッケージを当該選定したCDN8に配置する(A176)。OTAセンター2は、キャンペーン通知をリプログ対象の車両側システム3へ送信する(A177)。
 (17-2)OTAマスタ4の処理(図149から図151参照)
 OTAマスタ4は、OTAセンター2から送信されたキャンペーン通知がOTAマスタ4に受信されることによりキャンペーン通知を取得する(B171)。OTAマスタ4は、更新パッケージを取得するためにキャンペーン通知に記載されているCDNベンダとTLS通信を確立する(B172)。尚、キャンペーン通知にはURI情報が記載されていれば、CDNベンダの情報は記載されていなくても良い。OTAマスタ4は、TLS通信を確立した後に、TLS通信プロトコルでAESの共通鍵を交換する。暗号モードとしてはAES-CTRモードを選択するようにネゴシエーションする。OTAマスタ4は、TLSのAES共通鍵により暗号化された更新パッケージを、URI情報に基づいてCDN8からダウンロードして取得する(B173、更新データ取得手順に相当する)。
 このとき、OTAマスタ4は、暗号化された更新パッケージをCDN8からダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化する(B174)。OTAマスタ4は、暗号化されたカウンター値と、CDN8からダウンロードされている暗号化された更新パッケージとをXOR演算して復号化する(B175)。OTAマスタ4は、復号化された更新パッケージをターゲットECU5へ転送し、更新パッケージをターゲットECU5にインストールする(B176)。
 以上に説明したように第17実施形態によれば、以下の作用効果を得ることができる。
 更新パッケージをOTAセンター2で暗号化せず、CDN8とOTAマスタ4との間をTLS通信で保護した上で、配信方式、OTA対象エリア、通信プロトコル及び配信データサイズに応じて配信コストを最小とする構成とした。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。
 (第18実施形態)
 第18実施形態について図152から図165を参照して説明する。第18実施形態は、配信コストだけでなく、CDNベンダのスループットや応答遅延時間等を総合的に勘案の上、最適なCDNベンダを選定し、且つCDNベンダの価格テーブルと品質特性を定期的にチェックし、常にCDNベンダ管理データベースを最新の状態に保持し、常に市場において最も競争優位性のあるCDNベンダを選定する。価格テーブルは図153から図160に示す通りであり、各クラウドサービス事業者の品質情報は図161に示す通りである。図162に示すように、CDNベンダAとCDNベンダBとを比較すると、配信コストの点ではCDNベンダBがCDNベンダAよりも優位であるが、スループットの重み付け及び応答遅延時間の重み付けの点ではCDNベンダAがCDNベンダBよりも優位である。配信コストだけでなく、CDNベンダのスループットや応答遅延時間等を総合的に勘案すると、配信コストだけで優位なCDNベンダBではなく、CDNベンダのスループットや応答遅延時間等を総合的に勘案した上で優位なCDNベンダAを選定すべきとする結論を導くことができる。
 次に、上記した構成の作用について図163から図165を参照して説明する。
 (18-1)OTAセンター2の処理(図163から図165参照)
 OTAセンター2は、配信方式を特定し(A181)、OTA対象エリアを特定し(A182)、CDNベンダ管理データベースから配信方式及びOTA対象エリアをキーにして価格テーブルを参照する(A183)。この場合、OTAセンター2は、配信方式及びOTA対象エリアのうち少なくとも何れか一つをキーにして価格テーブルを参照しても良い。OTAセンター2は、CDNベンダ管理データベースから各CDNベンダの品質特性を特定する(A184)。OTAセンター2は、エリア毎のCDNベンダの配信コスト及び品質特性に基づいてCDNベンダ選定ロジックデータベースに登録されているCDNベンダ選定ロジックから最適なCDNベンダをエリア毎に選定し、AES鍵により暗号化された更新パッケージを当該選定したCDN8に配置する(A185)。OTAセンター2は、OTAセンター2は、暗号化されたAES鍵が格納されたキャンペーン通知をリプログ対象の車両側システム3へ送信する(A186)。
 OTAセンター2は、各CDNベンダの価格テーブルをWebサイトから自動取得し、CDNベンダ管理データベースを更新する(A187)。OTAセンター2は、各CDNベンダのスループット及び応答遅延時間を計測し、CDNベンダ管理データベースを更新する(A188)。例えば配信サーバ7は、定期的に各CDNベンダのWebサイトを巡回して最新の価格テーブルをダウンロードする。或いは、配信サーバ7は、CDNベンダがWebサイトの更新情報を配信する場合に、その配信サービスに登録することで、最新の価格テーブルをダウンロードする。
 (18-2)OTAマスタ4の処理
 OTAマスタ4の処理は、第1実施形態で説明したOTAマスタ4の処理(図12から図14)と同様である。
 以上に説明したように第18実施形態によれば、以下の作用効果を得ることができる。
 配信コストだけでなく、CDNベンダのスループットや応答遅延時間等を総合的に勘案の上、最適なCDNベンダを選定し、且つCDNベンダの価格テーブルと品質特性を定期的にチェックし、常にCDNベンダ管理データベースを最新の状態に保持し、常に市場において最も競争優位性のあるCDNベンダを選定するようにした。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。
 尚、CDNの品質特性として、スループットや応答遅延時間に限定するものではなく、コンテンツのキャッシュヒット率や過去のトラブル実績等も考慮することが可能であり、それらをCDNベンダ管理データベースに含めることが可能である。又、OTAセンター2の接続先のCDNベンダの追加や削除について定期的に見直しを実施し、市場競争力のあるCDNベンダと接続することも可能である。
 (第19実施形態)
 第19実施形態について図90、図190から図193を参照して説明する。前述した第10実施形態は、複数のCDNベンダから配信コストが最小となるCDNベンダをエリア毎に選定する構成である。第19実施形態では、CDNベンダの選定について具体的に説明する。第19実施形態では、更新パッケージのCDN8への配置先として複数のCDNベンダの中から配信データサイズ、配信エリアであるOTA対象エリア(リージョンとも称する場合がある)、配信方式に応じて配信コストが最小となるCDNベンダをダイナミックに選定する。第19実施形態では、前述した図90で例示した価格テーブルを参照して説明する。価格テーブルは図90とは異なる様式でも良い。
 図190に示すように、OTAセンター2において、配信サーバ7は、CDNベンダ管理DBに加え、CDNベンダ選定部7aと、データ保存部7bと、キャンペーン通知生成部7cと、CDN配信部7dとを備える。CDNベンダ選定部7aは、CDNベンダの選定に必要な情報である選定情報及び更新パッケージの情報に基づいてCDNベンダを選定する。選定情報には、対象キャンペーンのデータサイズ、対象キャンペーンの配信対象車両の台数、リージョン、配信方式に関する情報等が含まれる。データ保存部7bは、キャンペーン情報を保存する他、CDNベンダ選定部7aにより選定されたCDNベンダを識別可能な識別情報を保存する。識別情報には、例えばCDNベンダの名称、CDNベンダを特定する識別番号又はCDNベンダを示すURL等が含まれる。キャンペーン通知生成部7cは、データ保存部7bから情報を取得して車両等へ配信するキャンペーン通知を生成する。
 CDN配信部7dは、各CDNベンダに対応するストレージ領域を備える。例えばストレージ領域は、ストレージ領域A、ストレージ領域B、ストレージ領域Cを備える。CDN配信部7dの各ストレージ領域とCDNサーバとは同期している。即ち、CDN配信部7dは、例えばデータをCDNサーバAから車両側システム3へ配信させる場合には、データをストレージ領域Aに配置してCDNサーバAへ転送する。CDNサーバAは、CDN配信部7dからデータが転送されると、その転送されたデータを車両側システム3へ配信する。CDN配信部7dの各ストレージ領域は、各CDNサーバのオリジンサーバと称する場合がある。
 次に、上記した構成の作用について図191から図193を参照して説明する。尚、OTAセンター2による更新パッケージの暗号等の処理は、第10実施形態或いは他の実施形態と同様である。又、OTAマスタ4の処理は、第1実施形態或いは他の実施形態と同様である。第19実施形態では、CDNベンダの選定を主に説明する。
 (19-1)キャンペーン通知生成部7cの処理(図191参照)
 キャンペーン通知生成部7cは、キャンペーンが発生すると、例えばOEMサーバ等の外部からキャンペーン情報を取得する(A191)。キャンペーン情報には、対象キャンペーンのデータサイズ、対象キャンペーンの配信対象車両の台数、リージョン、配信方式に関する情報が含まれる。キャンペーン通知生成部7cは、その取得したキャンペーン情報をデータ保存部7bに保存する(A192)。キャンペーン情報を保存することを、キャンペーン情報を配置すると称する場合がある。
 キャンペーン通知生成部7cは、CDNベンダの選定要求をCDNベンダ選定部7aへ通知し(A193)、CDNベンダ選定部7aからの選定通知の取得を待機する。キャンペーン通知生成部7cは、CDNベンダ選定部7aから選定通知を取得すると(A194)、データ保存部7bにアクセスし、そのCDNベンダ選定部7aにより選定されたCDNベンダの識別情報を取得する(A195)。
 キャンペーン通知生成部7cは、CDNベンダの識別情報に基づいて当該選定されたCDNのURLを含むパラメータファイルをキャンペーン通知として生成する(A196)。キャンペーン通知生成部7cは、その生成したキャンペーン通知を車両側システム3へ配信する(A197)。
 (19-2)CDNベンダ選定部7aの処理(図192から図193参照)
 CDNベンダ選定部7aは、キャンペーン通知生成部7から通知されたCDNベンダの選定要求を取得すると(A1911)、データ保存部7bにアクセスし、選定情報を取得し(A1912)、第1CDN選定処理に移行する(A1913)。
 CDNベンダ選定部7aは、第1CDN選定処理を開始すると、CDNサーバから更新対象車両へ配信されるデータサイズを示す配信データサイズを算出する(A1921)。具体的には、CDNベンダ選定部7aは、対象キャンペーンのデータサイズと当該対象キャンペーンの配信対象車両の台数とを乗算し、CDNサーバから配信される予定の配信データサイズを算出する。
 CDNベンダ選定部7aは、CDNベンダ毎に以降の処理を繰り返す(A1922~A1929)。CDNベンダ選定部7aは、先に算出した配信データサイズ及びリージョンに関するリージョン情報に基づいてCDNベンダ管理DBから料金情報を取得する(A1923)。CDNベンダ選定部7aは、例えば北米を対象とする30TBのキャンペーンの場合、「北米」リージョンの「~10TB」と「~40TB」の料金情報を取得する。料金情報は全てのデータサイズについて取得しても良い。
 CDNベンダ選定部7aは、配信データサイズに基づいて料金情報を参照し、配信課金額を算出する(A1924)。配信課金額の算出はCDNベンダ毎に異なる可能性があり、CDNベンダでの配信課金額の算出方法により決まる。例えば図90の価格テーブルでCDN1について配信課金額を算出する場合、リージョンが「北米」であり、配信データサイズが30TBの場合、「~10TB」と「~40TB」との価格テーブルを参照する。
 CDNベンダ選定部7aは、検討対象のCDNベンダがリクエスト数に応じた課金を行うCDNベンダであるか否かを判定する(A1925)。CDNベンダ選定部7aは、リクエスト数に応じた課金を行わないCDNベンダであると判定すると(A1925:NO)、配信課金額をCDNベンダの課金額として決定し(A1928)、当該CDNベンダについての課金額の算出を終了し、次のCDNベンダの課金額を算出する。
 CDNベンダ選定部7aは、リクエスト数に応じた課金を行うCDNベンダであると判定すると(A1925:YES)、リクエスト数を算出する(A1926)。リクエスト数は配信方式により異なる。配信方式がストレージ方式の場合は、キャンペーンの配信対象車両の台数をリクエスト数とする。配信方式がストリーミング方式の場合は、対象キャンペーンのデータサイズをストリーミング時のチャンクサイズで除算し、キャンペーンの配信対象車両の台数を乗算してリクエスト数を算出する。
 CDNベンダ選定部7aは、リクエスト数を算出すると、その算出したリクエスト数に基づいて課金額(リクエスト課金額と称する場合がある)を算出する(A1927)。リクエスト課金額はリクエスト当たりの課金額とリクエスト数との乗算である。CDNベンダ選定部7aは、配信課金額とリクエスト課金額とを合算した合算額をCDNベンダの課金額として決定し(A1928)、検討対象のCDNベンダについての課金額の算出を終了し、次のCDNベンダの課金額を算出する。
 CDNベンダ選定部7aは、全てのCDNベンダについて課金額を算出すると、
配信コストが最小となるCDNベンダ、即ち、課金額が最安となるCDNベンダを選定し(A1930)、第1CDN選定処理を終了する。CDNベンダ選定部7aは、第1CDN選定処理を終了すると、その選定結果、即ち、選定したCDNベンダの識別情報をデータ保存部7bに保存し(A1914)、選定結果をキャンペーン通知生成部7cへ通知する(A1915)。
 以上に説明したように第19実施形態によれば、以下の作用効果を得ることができる。
 配信サーバ7において、CDNベンダ管理DBを参照し、配信コストが異なる複数のCDN8の中から配信方式、OTA対象エリア及び配信データサイズに応じて配信コストが優位なCDN8を選定し、更新パッケージを当該選定したCDN8に配置する構成とした。これにより、OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。
 (第19実施形態の変形例)
 第19実施形態の変形例について図194から図211を参照して説明する。ここでは、第1変形例から第5変形例について説明する。
 (第19実施形態の第1変形例)
 第19実施形態の第1変形例について図194から図195を参照して説明する。第1変形例は、DNS(ドメインネームシステム)サーバを使うことで、車両側システム3へ配信されるキャンペーン通知に含まれるCDNサーバのURLを変更しない構成である。第19実施形態では、キャンペーン毎に配信コストが最小となるCDNベンダを選定する。キャンペーン通知にはCDNサーバのURLが含まれる。そのため、配信コストが最小となるCDNベンダが変更になると、キャンペーン通知に記載されるURLが変更される。キャンペーン通知生成部7cは、キャンペーン通知を生成する毎にデータ保存部7bにアクセスしてCDNベンダの情報を取得する必要がある。
 これに対し、第1変形例では、DNS設定部7eによりDNSに登録されているURLとIPアドレスの変換情報を更新することで、キャンペーン通知生成部7cが常に同じURLをキャンペーン通知に記載することができる。配信コストが最小となるCDNベンダが変更になる場合は、DNSサーバ12の情報を変更することで、選定したCDNサーバへ車両側システム3がアクセスすることができる。換言すると、第19実施形態では、各CDNサーバは固有のIPアドレスを持ち、固有のURLを持っている。これに対し、第1変形例では、各CDNサーバは固有のIPアドレスを持つが、CDNサーバで共通したURLを持つことを特徴とする。
 図194に示すように、OTAセンター2において、配信サーバ7は、CDNベンダ管理DBと、CDNベンダ選定部7aと、データ保存部7bと、キャンペーン通知生成部7cと、CDN配信部7dとに加え、DNS設定部7eとを備える。以下では第19実施形態と相違する点について主に説明する。
 DNSサーバ12は、ドメイン名とIPアドレスを変換する仕組みを提供するサーバである。車両側システム3が受信するキャンペーン通知には、データをダウンロードするためにアクセスするCDNサーバのURLが含まれている。車両側システム3は、キャンペーン通知を受信すると、その受信したキャンペーン通知に示されたURLについてDNSサーバ12に問合せる。DNSサーバ12は、問合せを取得したURLに対するIPアドレスを車両側システム3へ送信するか、或いは接続先をIPアドレスで指定されるアドレスへ転送する。
 DNS設定部7eは、CDNベンダの識別情報とIPアドレスを保存している。DNS設定部7eは、CDNベンダ選定部7aによりCDNベンダが選定されると、IPアドレス設定要求をDNSサーバ12へ送信し、DNSでの登録情報を設定する。
 次に、上記した構成の作用について図195を参照して説明する。
 (19-3)CDNベンダ選定部7aの処理(図195参照)
 CDNベンダ選定部7aは、第1CDN選定処理を終了し、選定結果をデータ保存部7bに保存すると(A1914)、IPアドレス設定要求をDNS設定部7eからDNSサーバ12へ送信させ、DNS設定部7eによりDNSでの登録情報を設定する(A1931)。これにより、車両側システム3へ配信されるキャンペーン通知に含まれるURLはCDNベンダが変更になっても変更されない。車両側システム3がURLで示されるCDNサーバにアクセスする際に、DNSサーバ12がIPアドレスの問合せを取得し、選定されたCDNサーバのIPアドレスを車両側システム3へ送信する。
 尚、DNS設定部7eは、DNSサーバ12の情報を取得するか、前回のDNSサーバ12への設定情報を保存し、DNSサーバ12に登録されているCDNサーバとCDNベンダ選定部7aが選定したCDNサーバとが異なる場合に、IPアドレスの更新要求をDNSサーバ12へ送信しても良い。キャンペーン通知生成部7cは、CDNベンダ選定部7aから選定通知を取得すると、固定されたURLを含むキャンペーン通知を生成する。
 このような構成によれば、第19実施形態と同様の作用効果を得ることに加え、キャンペーン通知に含まれるCDNのURL情報を常に同じとすることができ、セキュリティを高めることができる。
 (第19実施形態の第2変形例)
 第19実施形態の第2変形例について図196から図201を参照して説明する。更新パッケージの配信コストが最小となるCDNベンダを選択しても、CDNサーバのメンテナンスやトラブル、アクセス集中等により通信速度が遅くなっている虞がある。本願発明者らは、配信コストと配信性能に基づいてCDNベンダを選択することに着目した。
 第2変形例では、車両側システム3がキャンペーン通知に示されたURLに対応するIPアドレスを取得するためにDNSサーバ12に問合せた際に、DNSサーバ12がCDNサーバの配信状況を確認し、配信不可と判定すると、配信コストが次に安いCDNサーバのIPアドレスを車両側システム3へ回答する。
 図196に示すように、OTAセンター2において、配信サーバ7は、CDNベンダ管理DBと、CDNベンダ選定部7aと、データ保存部7bと、キャンペーン通知生成部7cと、CDN配信部7dと、DNS設定部7eとに加え、性能測定部7fとを備える。DNSサーバ12は、CDNサーバ確認部12aを備える。CDN配信部7dのストレージ領域には、CDNサーバの性能を測定するためのテストファイルが配置されている。性能測定部7fは、テストファイルの配信要求をCDNサーバへ送信し、CDNサーバからテストファイルを配信させ、テストファイルの配信に要した時間を配信時間として測定する。配信時間は、例えばテストファイルの配信を開始した時刻からテストファイルの受信完了を特定した時刻までの時間である。
 CDNベンダ管理DBは、図197に示すように、CDNサーバの選択テーブルを備えている。選択テーブルは、CDNベンダ選定部7aにより決定されたコスト順位と、性能測定部7fにより判定された配信フラグとを含む。
 性能測定部7fは、各CDNサーバについて、テストファイルの配信に要した時間から応答速度を算出し、その算出した応答速度に基づいた判定結果を選択テーブルに入力する。性能測定部7fは、応答速度が規定値以上の場合は、そのCDNサーバの配信フラグをオン(TRUE)に設定し、応答速度が規定値未満の場合は、そのCDNサーバの配信フラグをオフ(FALSE)に設定する。
 CDNサーバ確認部12aは、車両側システム3からURLに対応するIPアドレスの問合せを取得した際に、URLにより指定されたCDNサーバが配信可能な状態であるか否かを判定し、配信不可を判定すると、別のCDNサーバのIPアドレスを回答する。
 次に、上記した構成の作用について図198から図201を参照して説明する。
 (19-4)CDNベンダ選定部7aの処理(図198から図199参照)
 CDNベンダ選定部7aは、第1CDN選定処理では、CDNベンダ毎に課金額を算出すると(A1921~A1929)、CDNベンダのコスト順位を決定する(A1951)。即ち、CDNベンダ選定部7aは、配信コストが最小となるCDNベンダの順位を第1位として決定し、配信コストが次に安いCDNベンダの順位を第2位として決定する。CDNベンダ選定部7aは、選定結果をデータ保存部7bに保存すると(A1914)、CDNベンダ管理DBの選択テーブルにコスト順位を保存する(A1941)。
 (19-5)性能測定部7fの処理(図200参照)
 性能測定部7fは、CDNベンダ毎に以降の処理を繰り返す(A1961~A1966)。性能測定部7fは、配信サーバ7が起動中に一定間隔毎又は配信サーバ7の管理者により任意のタイミングで以降の処理を実行する。
 性能測定部7fは、CDNサーバにアクセスし(A1962)、テストファイルの配信要求をCDNサーバへ送信する。性能測定部7fは、テストファイルの配信に要した時間に基づいて応答速度を算出し、その算出した応答速度が規定値以上であるか否かを判定する(A1963)。尚、応答速度を算出せずに配信に要した時間を規定値と比較しても良いし、単位時間当たりの配信データサイズを規定値と比較しても良い。
 性能測定部7fは、応答速度が規定値以上あると判定すると(A1963:YES)、そのCDNサーバが、配信に利用可能なサーバであると判定し、配信フラグをオンに設定する(A1964)。性能測定部7fは、その算出した応答速度が規定値未満であると判定すると(A1963:NO)、そのCDNサーバが、配信に利用不能なサーバであると判定し、配信フラグをオフに設定する(A1965)。
 (19-6)CDNサーバ確認部12aの処理(図201参照)
 キャンペーン通知には、更新データをダウンロードするためにアクセスするURLが示されている。車両側システム3は、更新パッケージをダウンロードするためにアクセスすべきIPアドレスについてDNSサーバ12に問合せる。
 CDNサーバ確認部12aは、車両側システム3からキャンペーン通知に示されたURLについてIPアドレスの問合せを取得する(A1971)。CDNサーバ確認部12aは、配信サーバ7のCDNベンダ管理DBにキャンペーン通知で示されたCDNサーバの配信状況を照会する(A1972)。この場合、CDNサーバはデータ取得予定のCDNベンダに相当し、配信状況は配信フラグに相当する。CDNサーバ確認部12aは、配信サーバからデータ取得予定のCDNベンダの配信フラグを取得すると、データ取得予定のCDNベンダが使用可能であるか否かを判定する(A1973)。即ち、CDNサーバ確認部12aは、その取得した配信フラグがオン又はオフの何れであるかを判定する。
 CDNサーバ確認部12aは、配信フラグがオンであると判定すると(A1973:YES)、そのCDNベンダに対応するIPアドレスを車両側システム3へ回答するか、又は車両側システム3との接続を当該IPアドレスへ転送し、キャンペーン通知のURLに対応しているCDNベンダに切替える(A1974)。CDNサーバ確認部12aは、配信フラグがオフであると判定すると(A1973:NO)、コスト順位が次に高いCDNベンダを次の優先度のCDNベンダとし、次の優先度のCDNベンダを、データ取得予定のCDNベンダとして設定し(A1975)、ステップA1973に戻る。
 このような構成によれば、配信コストを極力抑制しつつ、正常に稼働しているCDNサーバを選択することができる。尚、CDNサーバ確認部12aは、一定期間経過する毎に、CDNベンダ管理DBにアクセスし、選択テーブルの送信を要求しても良い。この場合、車両側システム3からIPアドレスの問合せを取得した場合は、CDNベンダ管理DBにアクセスする代わりに、CDNサーバ確認部12aが保持する選択テーブルを参照してデータ取得予定のCDNベンダが使用可能であるか否かを判定しても良い。又、配信コストを極力抑制しつつ、正常に稼働しているCDNサーバを選択することに加え、DNSサーバ12と配信サーバ7との間の通信を減らすことができる。
 (第19実施形態の第3変形例)
 第19実施形態の第3変形例について図202から図205を参照して説明する。第3変形例は、配信サーバ7において、性能測定部7fは、車両側システム3からのログ情報に基づいてCDNサーバの性能を測定して評価する。尚、DNSサーバ12が車両側システム3からURLに対するIPアドレスの問合せを取得した場合の動作は第2変形例と同様である。第3変形例でも第2変形例と同様に、CDNベンダ管理DBは選択テーブルを備えている。
 車両側システム3は、ログ送信部3aを備える。ログ送信部3aは、CDNサーバからの更新データのダウンロードを終了すると、ダウンロードに要した時間を示すダウンロード時間を含むダウンロードに関するログ情報を配信サーバ7の性能測定部7fへ送信する。ダウンロードに関するログ情報は、ダウンロード時間の他に、ダウンロードしたパッケージの識別情報、データサイズ、ダウンロード中の最大スループット等の情報を含んでいても良い。
 性能測定部7fは、ログ送信部3aからダウンロードに関するログ情報を受信すると、ダウンロード時間からスループットを算出し、その算出したスループットに基づいた判定結果を選択テーブルに入力する。性能測定部7fは、スループットが規定値以上の場合は、そのCDNサーバの配信フラグをオン(TRUE)に設定し、スループットが規定値未満の場合は、そのCDNサーバの配信フラグをオフ(FALSE)に設定する。
 次に、上記した構成の作用について図203から図205を参照して説明する。
 (19-8)ログ送信部3aの処理(図203参照)
 ログ送信部3aは、CDNサーバからの更新パッケージのダウンロードを終了すると(A1981)、ダウンロードに要した時間を示すダウンロード時間を含むダウンロードに関するログ情報を配信サーバ7へ送信する(A1982)。
 (19-9)性能判定部7fの処理(図204参照)
 性能判定部7fは、ログ送信部3aからダウンロードに関するログ情報を受信すると(A1991)、ダウンロード時間からスループットを算出し(A1992)、その算出したスループットが規定値以上であるか否かを判定する(A1993)。
 性能測定部7fは、その算出したスループットが規定値以上あると判定すると(A1993:YES)、そのCDNサーバが、配信に利用可能なサーバであると判定し、配信フラグをオンに設定する(A1994)。性能測定部7fは、その算出したスループットが規定値未満であると判定すると(A1993:NO)、そのCDNサーバが、配信に利用不能なサーバであると判定し、配信フラグをオフに設定する(A1995)。
 (19-10)性能判定部7fの処理(図205参照)
 性能判定部7fは、配信フラグをオフにしたCDNサーバの復帰処理を定期的に行う。性能測定部7fは、配信フラグがオフに設定されているCDNサーバの情報要求をCDNベンダ管理DBへ通知し、配信フラグがオフに設定されているCDNサーバを特定し(A19101)、CDNベンダ毎に以降の処理を繰り返す(A19102~A19107)。性能測定部7fは、配信サーバ7が起動中に、一定間隔毎又は配信サーバ7の管理者により任意のタイミングで以降の処理を実行する。
 性能測定部7fは、テストファイルの配信要求CDNサーバへ通知し、CDNサーバから配信されるファイルのダウンロード時間からスループットを算出し(A19103)、その算出したスループットが規定値以上であるか否かを判定する(A19104)。
 性能測定部7fは、その算出したスループットが規定値以上あると判定すると(A19104:YES)、その配信フラグをオフからオンへ変更する(A19105)。性能測定部7fは、その算出したスループットが規定値未満であると判定すると(A19104:NO)、その配信フラグのオフを維持する(A19106)。尚、性能測定部7fは、配信サーバのシステム起動時や所定期間毎に、CDNベンダ管理DBのオフに設定されている配信フラグをオンにしても良い。
 このように構成によれば、CDNサーバの応答を特定するためにテストファイルの配信要求をCDNサーバへ送信する第2変形例とは異なり、テストファイルの配信要求をCDNサーバへ送信することを不要とし、通信ネットワークへの負荷やコストを抑制することができる。尚、車両側システム3に更新パッケージのダウンロード速度を測定する機能を設けることで、スループットが規定値未満であると判定すると、別のCDNサーバへ接続を変更しても良い。
 配信サーバ7から配信されるキャンペーン通知に最初に接続するCDNサーバのURLに加え、このCDNサーバのスループットが低い場合に接続する予備のCDNサーバのURLを含めても良い。予備のCDNサーバは、例えば次に配信コストが安いCDNサーバや、事前に決定された予備のCDNサーバである。予備のCDNサーバとして複数のCDNサーバを指定する場合は、接続順序を示す情報を加えても良い。
 車両側システム3は、更新パッケージのダウンロードが開始すると、スループットを測定し、規定値以上のスループットが得られているか否かを確認する。車、両側システム3は、規定値以上のスループットが得られていないと判定すると、キャンペーン通知に示されている予備のCDNサーバのURLについてDNSサーバ12にIPアドレスを問合せ、当初のCDNサーバから新たなCDNサーバへと接続を変更する。尚、配信されるデータには、パケット毎に識別情報が付加されているので、更新パッケージのダウンロードの途中でCDNサーバを変更しても継続して更新パッケージをダウンロードすることができる。
 (第19実施形態の第4変形例)
 第19実施形態の第4変形例について図206から図207を参照して説明する。第4変形例は、複数のCDNベンダをCDNベンダ選定部7aにより選定し、キャンペーン通知生成部7cは、CDNベンダ毎に複数のキャンペーン通知を生成する。キャンペーン通知を車両側システム3へ配信する際にラウンドロビン方式を採用して異なるCDNサーバを指定する。
 (19-11)キャンペーン通知生成部7cの処理(図206参照)
 キャンペーン通知生成部7cは、CDNベンダの情報を取得すると(A195)、CDNベンダ毎にキャンペーン通知を生成する(A19111)。即ち、キャンペーン通知生成部7cは、1つのキャンペーンに対して2つ以上のキャンペーン通知を生成する。キャンペーン通知生成部7cは、CDNサーバがラウンドロビン方式で変更するようにキャンペーン通知を配信する(A19112)。キャンペーン通知生成部7cは、例えばCDN11とCDN12の2つのCDNサーバが選択された場合、キャンペーン通知を配信する際に、最初の車両に対してCDN11のURLを含むキャンペーン通知を配信し、次の車両に対してCDN12のURLを含むキャンペーン通知を配信し、更に次の車両に対してCDN11のURLを含むキャンペーン通知を配信する。
 (19-12)CDNベンダ選定部7aの処理(図207参照)
 CDNベンダ選定部7aは、第19実施形態では配信コストが最小となるCDNベンダを選定するが、第4変形例では配信コストが安い順に複数のCDNベンダを選定する(A19121)。
 このような構成によれば、CDNサーバからの配信コストを抑制しつつ、特定のCDNサーバにアクセスが集中することを防ぐことができ、アクセスの集中を防ぐことで、スループットの低下を防ぐことができる。
 (第19実施形態の第5変形例)
 第19実施形態の第5変形例について図208から図211を参照して説明する。第4変形例は、配信コストを抑制する複数のCDNベンダを選択し、CDNサーバの情報が異なる複数のキャンペーン通知を生成し、CDNサーバがラウンドロビン方式で変更されるようにキャンペーン通知を車両側システム3へ配信している。これに対し、第5変形例は、配信コストを抑制する複数のCDNベンダを選択し、1つのキャンペーン通知を生成し、車両側システム3へ配信する。DNSサーバ12が車両側システム3からキャンペーン通知に示されたURLに対応するIPアドレスの問合せを取得した際に、車両側システム3へ回答するCDNサーバを車両側システム3毎に変更する。換言すると、DNSサーバ12において、ラウンドロビン方式にCDNサーバを選択する。
 図208に示すように、DNSサーバ12は、切替部12bを備えている。切替部12bは、車両側システム3からIPアドレスの問合せを取得した際に、ラウンドロビン方式で車両側システム3へ回答するIPアドレスを順次変更する。配信サーバは、DNS設定部7eを備えている。第5変形例のDNS設定部7eは、図209に示すラウンドロビンレコードをDNSサーバ12へ送信する。
 (19-13)CDNベンダ選定部7aの処理(図210参照)
 CDNベンダ選定部7aは、第4変形例と同様に配信コストが安い順に複数のCDNベンダを選定し(A19121)、ラウンドロビンレコードを設定する(A19131)。
 (19-14)切替部12bの処理(図211参照)
 DNSサーバ12は、車両側システム3からIPアドレスの問合せを取得すると(A19141)、ラウンドロビンレコードを参照し(A19142)、記載されているCDNサーバに対応するIPアドレスを車両側システム3へ送信する(A19143)。DNSサーバ12は、車両側システム3からIPアドレスの問合せを取得する毎に上記した処理を繰り返し、別の車両側システム3からIPアドレスの問合せを取得すると、ラウンドロビンレコードを参照し、前回とは異なるCDNサーバに対応するIPアドレスを車両側システム3へ送信する。即ち、DNSサーバ12は、ラウンドロビン方式にしたがってCDNサーバのIPアドレスを順繰りに車両側システム3へ送信する。
 このような構成によれば、CDNサーバからの配信コストを抑制しつつ、特定のCDNサーバにアクセスが集中することを防ぐことができ、アクセスの集中を防ぐことで、スループットの低下を防ぐことができる。
 (第20実施形態)
 第20実施形態について図212から図224を参照して説明する。
 第20実施形態は、所定期間における複数のキャンペーンについて情報が取得できる場合において、更新パッケージのCDN8への配置先として複数のCDNベンダを配信方式、配信エリアであるOTA対象エリア、配信データサイズに応じてダイナミックに選定して配信コストを抑制する。所定期間とは、例えば翌月である。
 前述した第19実施形態では、1つのキャンペーンに対して配信コストが最小となるCDNベンダを選定している。しかしながら、キャンペーンは、所定期間、例えば翌月に配信開始予定の複数のキャンペーンについてOEMサーバから登録されることも想定される。このように事前に複数のキャンペーンについて、各キャンペーンのデータサイズ、配信対象車両の台数、OTA対象エリア、配信方式に関する情報が取得される場合は、第19実施形態のようにキャンペーン毎にCDNベンダを選定した場合とは異なるCDNベンダが、配信コストが最小となるCDNベンダとなる可能性がある。
 図212に示すように、OTAセンター2は、CDNベンダ管理DBと、CDNベンダ選定部7aと、データ保存部7bと、キャンペーン通知生成部7cと、CDN配信部7dと、進捗情報管理部7gとを備える。進捗情報管理部7gは、キャンペーンが所定期間内にどの程度、車両側システム3へ配信されるかを示す予測値を保持している。キャンペーンがOTAセンター2に登録され、車両側システム3へキャンペーン通知が配信されたとしても全ての車両が直ちにキャンペーンを適用し、更新パッケージをCDNサーバからダウンロードするとは限らない。進捗情報管理部7gは、CDNサーバから車両側システム3への更新パッケージの配信データサイズをより正確に予測するため予測値を保存する。本実施形態では、所定期間を1か月として説明するが、他の期間でも良い。
 図213を参照し、第20実施形態での計算方法について説明する。第20実施形態では後述するように3つの計算方法によりCDNベンダの課金額を算出する。第1計算方法では、各キャンペーンで配信コストが最小となるCDNベンダを選定する。この場合は、キャンペーン毎に異なるCDNベンダを選定する可能性がある。図213では、キャンペーン1に対してCDN1を選定し、キャンペーン2対してCDN2を選定し、キャンペーン3に対してCDN3を選定した場合を例示している。
 第2計算方法では、全てのキャンペーンの配信総データサイズを算出し、その算出した全てのキャンペーンの配信総データサイズに基づいて配信コストが最小となるCDNベンダを選定する。この場合は、全てのキャンペーンで同一のCDNベンダを選定する。図213では、キャンペーン1~3に対してCDN1を選定した場合を例示している。第3計算方法では、配信方式別のキャンペーンの配信総データサイズを算出し、その算出した配信方式別のキャンペーンの配信総データサイズに基づいて配信コストが最小となるCDNベンダを選定する。配信方式別として、ストリーミング方式とストレージ方式とのそれぞれについてCDNベンダを選定する。図213では、キャンペーン1とキャンペーン2,3とで配信方式が異なり、キャンペーン1に対してCDN1を選定し、キャンペーン2,3に対してCDN2を選定した場合を例示している。
 次に、上記した構成の作用について図214から図224を参照して説明する。
 (20-1)キャンペーン通知生成部7cの処理(図214参照)
 キャンペーン通知生成部7cは、例えばOEMサーバ等の外部から配信予定のキャンペーン情報をOEMサーバから取得する(A201)。配信予定のキャンペーン情報には、配信開始日、対象キャンペーンのデータサイズ、対象キャンペーンの配信対象車両の台数、リージョン、配信方式に関する情報が含まれている。キャンペーン通知生成部7cは、その取得したキャンペーン情報をデータ保存部7bに保存する(A202)。
 キャンペーン通知生成部7cは、CDNベンダの選定要求をCDNベンダ選定部7aへ通知し(A203)、CDNベンダ選定部7aからの選定通知の取得を待機する。キャンペーン通知生成部7cは、CDNベンダ選定部7aから選定通知を取得すると(A204)、データ保存部7bにアクセスし、そのCDNベンダ選定部7aにより選定されたCDNベンダの識別情報を取得する(A205)。
 キャンペーン通知生成部7cは、CDNベンダの識別情報に基づいて当該選定されたCDNのURLを含むパラメータファイルを配信予定のキャンペーン通知として生成する(A206)。キャンペーン通知生成部7cは、その生成した配信予定のキャンペーン通知を車両側システム3へ配信する(A207)。
 (20-2)CDNベンダ選定部7aの処理(図215から図221参照)
 CDNベンダ選定部7aは、キャンペーン通知生成部7から通知されたCDNベンダの選定要求を取得すると(A2011)、データ保存部7bにアクセスし、
選定情報を取得する(A2012)。この場合、選定情報には、配信予定の全ての対象キャンペーンのデータサイズ、配信対象車両の台数、リージョン、配信方式、各キャンペーンの配信開始日の情報が含まれている。
 CDNベンダ選定部7aは、進捗情報管理部7gから配信予測値を取得する(A2013)。CDNベンダ選定部7aは、キャンペーン毎に配信データサイズを算出する(A2014)。具体的には、CDNベンダ選定部7aは、キャンペーンのデータサイズとキャンペーンの配信対象車両の台数と配信予測値とを乗算し、更に配信期間に応じた補正値を乗算する。キャンペーンによっては、配信開始日を来月下旬に設定する場合等の配信期間が短い場合があるので、配信期間に応じた補正値により調整する。例えば配信開始日を遅らせる結果、配信期間が10日間しかない場合であれば、30日間のうち10日間が配信可能な期間であることから補正値として0.3等を設定する。
 CDNベンダ選定部7aは、第2CDN選定処理に移行する(A2015)。CDNベンダ選定部7aは、第2CDN選定処理を開始すると、第1計算方法による課金額の算出処理、第2計算方法による課金額の算出処理、第3計算方法による課金額の算出処理に順次移行する(A2021~A2023)。
 CDNベンダ選定部7aは、第1計算方法による課金額の算出処理では、キャンペーン毎に配信コストが最小となるCDNベンダを選定する。CDNベンダ選定部7aは、第1計算方法による課金額の算出処理を開始すると、これ以降の処理をキャンペーン毎に繰り返し(A2031~A2041)、更にCDNベンダ毎に繰り返す(A2032~A2039)。CDNベンダ選定部7aは、配信データサイズ及びリージョン情報に基づいてCDNベンダ管理DBから料金情報を取得する(A2033)。CDNベンダ選定部7aは、配信データサイズに基づいて料金情報を参照し、配信課金額を算出する(A2034)。
 CDNベンダ選定部7aは、第19実施形態と同様に、検討対象のCDNベンダがリクエスト数に応じた課金を行うCDNベンダであるか否かを判定し、CDNベンダの課金額を決定する(A2035~A2038)。CDNベンダ選定部7aは、CDNベンダ毎及びキャンペーン毎に配信課金額の算出を繰り返す。尚、CDNベンダ選定部7aは、1つのキャンペーンに対して全てのCDNベンダの課金額が算出すると、そのキャンペーンに対して配信コストが最小となるCDNベンダを選定する(A2040)。
 CDNベンダ選定部7aは、全てのキャンペーンについて配信課金額の算出とCDNベンダの選定とを終了すると、全てのキャンペーンの配信課金額を合計し、合計額を算出し(A2042)、第1計算方法による課金額の算出処理を終了し、第2計算方法による課金額の算出処理に移行する。
 CDNベンダ選定部7aは、第2計算方法による課金額の算出処理では、配信予定の全てのキャンペーンの総配信データサイズに基づいて1つのCDNベンダを選定する。CDNベンダ選定部7aは、第2計算方法による課金額の算出処理を開始すると、各キャンペーンの配信データサイズを合計し、配信総データサイズを算出し(A2051)、これ以降の処理をCDNベンダ毎に繰り返す(A2052~A2059)。CDNベンダ選定部7aは、配信総データサイズ及びリージョン情報に基づいてCDNベンダ管理DBから料金情報を取得する(A2053)。CDNベンダ選定部7aは、配信総データサイズに基づいて料金情報を参照し、配信課金額を算出する(A2054)。
 CDNベンダ選定部7aは、第19実施形態と同様に、検討対象のCDNベンダがリクエスト数に応じた課金を行うCDNベンダであるか否かを判定し、CDNベンダの課金額を決定する(A2055~A2058)。CDNベンダ選定部7aは、CDNベンダ毎に配信課金額の算出を繰り返す。CDNベンダ選定部7aは、配信コストが最小となるCDNベンダを選定し(A2060)。配信予定の全てのキャンペーンの配信課金額を合計し、合計額を算出し(A2061)、第2計算方法による課金額の算出処理を終了し、第3計算方法による課金額の算出処理に移行する。
 CDNベンダ選定部7aは、第3計算方法による課金額の算出処理では、配信方式毎にキャンペーンを纏めた上でCDNベンダを選定する。CDNベンダ選定部7aは、第3計算方法による課金額の算出処理を開始すると、配信予定のキャンペーンの配信方式が全て同じであるか否かを判定する(A2071)。CDNベンダ選定部7aは、配信予定のキャンペーンの配信方式が全て同じである、即ち、配信予定のキャンペーンが全てストリーミング方式である、又は全てストレージ方式であると判定すると(A2071:YES)、前述した第2計算方法による課金額の算出処理と同じになるので、第3計算方法による課金額の算出処理を終了する。
 CDNベンダ選定部7aは、配信予定のキャンペーンの配信方式が全て同じでない、即ち、配信予定のキャンペーンとしてストリーミング方式とストレージ方式とが混在すると判定すると(A2071:NO)、キャンペーンを配信方式にしたがってグループ分けし(A2072)、ストリーミング方式のグループについてストリーミング方式での課金額計算処理に移行し(A2073)、ストレージ方式のグループについてストレージ方式での課金額計算処理に移行する(A2074)。
 CDNベンダ選定部7aは、ストリーミング方式での課金額計算処理を開始すると、ストリーミング方式で配信する各キャンペーンの配信データサイズの合計値を算出し(A2081)、これ以降の処理をCDNベンダ毎に繰り返す(A2082~A2089)。CDNベンダ選定部7aは、配信データサイズの合計値及びリージョン情報に基づいてCDNベンダ管理DBから料金情報を取得する(A2083)。CDNベンダ選定部7aは、配信データサイズの合計値に基づいて料金情報を参照し、配信課金額を算出する(A2084)。
 CDNベンダ選定部7aは、第19実施形態と同様に、検討対象のCDNベンダがリクエスト数に応じた課金を行うCDNベンダであるか否かを判定し、CDNベンダの課金額を決定する(A2085~A2088)。CDNベンダ選定部7aは、CDNベンダ毎に配信課金額の算出を繰り返す。CDNベンダ選定部7aは、ストリーミング方式での配信コストが最小となるCDNベンダを選定し(A2090)、ストリーミング方式での課金額計算処理を終了する。
 一方、CDNベンダ選定部7aは、ストレージ方式での課金額計算処理を開始すると、ストレージ方式で配信する各キャンペーンの配信データサイズの合計値を算出し(A2091)、これ以降の処理をCDNベンダ毎に繰り返す(A2092~A2099)。CDNベンダ選定部7aは、配信データサイズの合計値及びリージョン情報に基づいてCDNベンダ管理DBから料金情報を取得する(A2093)。CDNベンダ選定部7aは、配信データサイズの合計値に基づいて料金情報を参照し、配信課金額を算出する(A2094)。
 CDNベンダ選定部7aは、第19実施形態と同様に、検討対象のCDNベンダがリクエスト数に応じた課金を行うCDNベンダであるか否かを判定し、CDNベンダの課金額を決定する(A2095~A2098)。CDNベンダ選定部7aは、CDNベンダ毎に配信課金額の算出を繰り返す。CDNベンダ選定部7aは、ストレージ方式での配信コストが最小となるCDNベンダを選定し(A20100)、ストレージ方式での課金額計算処理を終了する。
 CDNベンダ選定部7aは、第1計算方法による課金額の算出処理、第2計算方法による課金額の算出処理、第3計算方法による課金額の算出処理を終了すると、配信コストが最小となる計算方法を決定し(A2024)、各キャンペーンのCDNベンダを選定し(A2025)、第2CDN選定処理を終了する。CDNベンダ選定部7aは、第2CDN選定処理を終了すると、その選定結果、即ち、選定したCDNベンダを識別する識別情報をデータ保存部7bに保存する(A2016)。ここでは、CDNベンダ選定部7aは、配信予定のキャンペーンのCDNベンダを識別する識別情報をデータ保存部7bに保存する。CDNベンダ選定部7aは、選定通知をキャンペーン通知生成部7cへ通知する(A2017)。
 (20-3)進捗情報管理部7gの処理(図222参照)
 進捗情報管理部7gは、所定期間にどの程度のキャンペーンが車両側システム3へ配信されるかを示す予測値を保存する。この予測値は、OEMサーバから送信される実際の配信状況に応じて更新されることが想定される。
 進捗情報管理部7gは、OEMサーバから配信状況を取得する(A20111)。進捗情報管理部7gは、配信状況と当該保存している予測値との差が所定値以上であるか否かを判定する(A20112)。進捗情報管理部7gは、配信状況と当該保存している予測値との差が所定値以上でないと判定すると(A20112:NO)、処理を終了する。
 進捗情報管理部7gは、配信状況と当該保存している予測値との差が所定値以上であると判定すると(A20112:YES)、保存している予測値を更新し(A20113)、予測値の更新をCDNベンダ選定部7aへ通知する(A20114)。進捗情報管理部7gは、全てのキャンペーンに共通した1つの予測値を持っても良いし、キャンペーン毎や更新対象車両毎、キャンペーンの種類毎に異なる予測値を持っても良い。
 (20-4)CDNベンダ選定部7aの処理(図223参照)
 CDNベンダ選定部7aは、進捗情報管理部7gから通知された予測値の更新を取得すると(A20121)、選定情報を取得し(A20122)、進捗情報管理部7gから配信予測値を取得し(A20123)、キャンペーン毎に配信データサイズを算出する(A20124)。この場合、CDNベンダ選定部7aは、配信データサイズを算出する際には、配信日数を考慮した補正値とする。
 CDNベンダ選定部7aは、第2CDN選定処理に移行し(A20125)、、第2CDN選定処理を終了すると、CDNベンダに変更があるか否かを判定する(A20126)。CDNベンダ選定部7aは、CDNベンダに変更がないと判定すると(A20126:NO)、処理を終了する。CDNベンダに変更がある場合は、データ保存部7bでの選定結果を更新する。CDNベンダ選定部7aは、CDNベンダに変更があると判定すると(A20126:YES)、選定結果を更新し(A20127)、CDN変更通知をキャンペーン通知生成部7cへ送信する(A20128)。尚、CDNベンダ選定部7aは、進捗情報管理部7gに保存された予測値が変更されているか否かを所定間隔で確認しても良い。
 (20-5)キャンペーン通知生成部7cの処理(図224参照)
 キャンペーン通知生成部7cは、CDNベンダ選定部7aから通知されたCDN変更通知を取得すると(A20131)、データ保存部7bにアクセスし、更新後のCDNベンダの情報を取得し(A20132)、その取得した更新後のCDNベンダ情報に基づいて配信予定のキャンペーン通知を再生成する(A20133)。
 以上に説明したように第20実施形態によれば、以下の作用効果を得ることができる。
 CDNベンダ管理データベースを参照し、配信コストが異なる複数のCDN8の中から配信方式、OTA対象エリア及び配信データサイズに応じて配信コストが優位なCDN8を選定し、更新パッケージを当該選定したCDN8に配置する構成とした。OTAマスタ4が更新パッケージをOTAセンター2からダウンロードする際の配信コストを適切に抑制することができる。
 (その他の実施形態)
 上記した実施形態において、ストリーミング方式或いはストレージ方式と明記されていない実施形態は、ストリーミング方式とストレージ方式の何れの方式にも適用することができる。
 上記した一部の実施形態では、TLS通信が確立された上でキャンペーン通知がOTAセンター2からOTAマスタ4へ送信されることが記載されている。しかしながら、全ての実施形態において、TLS通信が確立された上でキャンペーン通知がOTAセンター2からOTAマスタ4へ送信されても良い。TLS通信を確立することで、よりセキュリティを高めることができる。或いは、TLS通信が確立されずにキャンペーン通知がOTAセンター2からOTAマスタ4へ送信されても良い。
 本実施形態の車両側システム3は以下の構成でも良い。車両側システム3は、DCM(データコミュニケーションモジュール)とCGW(セントラルゲートウェイ)とを備え、DCMとCGWとがバスを介してデータ通信可能に接続されている構成でも良い。CGWはセントラルECUとも称される。バスは、例えばイーサネットやCAN(登録商標)バス等であれば良い。
 OTAマスタ4の機能の一部又は全体がCGWにおいて実現されても良い。一例としては、DCMがCDN8やOTAセンター2等の外部とデータ通信し、OTAマスタ4の機能の全てがCGWにおいて実施されても良い。この場合、DCMは、外部との無線通信により受信した全てのデータをCGWへ転送する。或いは、DCMが外部とデータ通信することに加え、OTAマスタ4のダウンローダとして機能しても良い。ダウンローダの機能とは、例えば車両構成情報の生成、メタデータ検証、パッケージ検証、キャンペーン情報の検証である。或いは、OTAマスタ4の機能がDCMにおいて実現されても良い。この場合、CGWにはOTAマスタ4以外の機能が実装される。或いは、DCMとCGWとが一体化していても良い。
 DCMの機能の一部又は全体をCGWが有する構成でも良いし、CGWの機能の一部又は全体をDCMが有する構成でも良い。即ち、OTAマスタ4において、DCMとCGWとの機能分担がどのように構成されていても良い。OTAマスタ4は、DCM及びCGWの2つのECUから構成されても良いし、DCMの機能とCGWの機能とを有する1つの統合ECUで構成されても良い。
 本開示は、実施形態に準拠して記述されたが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、更には、それらに一要素のみ、それ以上、或いはそれ以下、を含む他の組み合わせや形態をも、本開示の範疇や思想範囲に入るものである。
 各装置等が提供する手段や機能は、実体的なメモリ装置に記録されたソフトウェア及びそれを実行するコンピュータ、ソフトウェアのみ、ハードウェアのみ、或いはそれらの組み合わせにより提供することができる。例えば制御部がハードウェアである電子回路により提供される場合、それは多数の論理回路を含むデジタル回路、又はアナログ回路により提供することができる。
 本開示に記載の制御部及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することにより提供された専用コンピュータにより実現されても良い。或いは、本開示に記載の制御部及びその手法は、一つ以上の専用ハードウェア論理回路によりプロセッサを構成することにより提供された専用コンピュータにより実現されても良い。又、本開示に記載の制御部及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路により構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより実現されても良い。又、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されていても良い。

Claims (23)

  1.  更新データをマスタ装置へ配信するセンター装置(2)と、前記センター装置からダウンロードした前記更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)と、を備えるデータ通信システムであって、
     前記センター装置及び前記マスタ装置は、前記更新データの暗号方式及び復号方式としてカウンター(CTR)モードを採用したデータ通信システム。
  2.  前記マスタ装置は、前記更新データの復号化処理を並列に実行する請求項1に記載したデータ通信システム。
  3.  前記センター装置及び前記マスタ装置は、カウンターにノンスを含める請求項1又は2に記載したデータ通信システム。
  4.  更新データをマスタ装置へ配信するセンター装置(2)と、前記センター装置からダウンロードした前記更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)と、を備えるデータ通信システムであって、
     前記センター装置及び前記マスタ装置は、前記更新データの暗号方式及び復号方式として出力フィードバック(OFB)モードを採用したデータ通信システム。
  5.  前記マスタ装置は、前記センター装置から前記更新データをダウンロードすることとは別に、前記更新データの復号化処理の前準備をバックグラウンドで開始する請求項1から4の何れか一項に記載したデータ通信システム。
  6.  前記マスタ装置は、前記センター装置から送信されたキャンペーン通知を受信したタイミングで、前記更新データの復号化処理の前準備をバックグラウンドで開始する請求項5に記載したデータ通信システム。
  7.  前記マスタ装置は、ユーザからのダウンロード承諾が得られる前に、前記更新データの復号化処理の前準備をバックグラウンドで開始する請求項5又は6に記載したデータ通信システム。
  8.  前記マスタ装置は、前記更新データの復号化処理の前準備として、全ての鍵ストリームを計算する請求項5から7の何れか一項に記載したデータ通信システム。
  9.  前記マスタ装置は、前記更新データの復号化処理の前準備として、一部の鍵ストリームを計算する請求項5から7の何れか一項に記載したデータ通信システム。
  10.  前記センター装置は、暗号鍵として特定の車両群で個別化した鍵を使用する請求項1から9の何れか一項に記載したデータ通信システム。
  11.  前記センター装置及び前記マスタ装置は、秘密鍵を鍵更新するための鍵更新用鍵を保持し、
     前記センター装置は、前記鍵更新用鍵を用いて秘密鍵更新パッケージを生成し、その生成した前記秘密鍵更新パッケージを前記マスタ装置へ送信する請求項1から10の何れか一項に記載したデータ通信システム。
  12.  前記センター装置及び前記マスタ装置は、メッセージ認証コード(MAC)として暗号ブロック連鎖(CBC)モードを採用した請求項1から11の何れか一項に記載したデータ通信システム。
  13.  前記センター装置及び前記マスタ装置は、メッセージ認証コード(MAC)としてガロアメッセージ認証コード(GMAC)モードを採用した請求項1から11の何れか一項に記載したデータ通信システム。
  14.  前記センター装置及び前記マスタ装置は、前記メッセージ認証コードを付与するデータサイズ単位を認識し合う請求項12又は13に記載したデータ通信システム。
  15.  前記センター装置は、暗号方式をリプロポリシーメタデータ及びダウンロードメタデータのうち少なくとも何れか一つに含めて前記マスタ装置へ送信する請求項1から14の何れか一項に記載したデータ通信システム。
  16.  更新データをマスタ装置へ配信するセンター装置(2)であって、
     更新データを暗号化するための共通鍵を生成する共通鍵生成部(2a)と、
     前記更新データを前記共通鍵によりカウンター(CTR)モードで暗号化する更新データ暗号化部(2b)と、
     前記共通鍵をRSA公開鍵により暗号化する共通鍵暗号化部(2c)と、
     前記RSA公開鍵により暗号化された前記共通鍵をキャンペーン通知の中に格納する共通鍵格納部(2d)と、
     前記共通鍵により暗号化された前記更新データをコンテンツ・デリバリー・ネットワーク(CDN)に配置する暗号化データ配置部(2e)と、
     暗号化された前記共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システムへ送信するキャンペーン通知送信部(2f)と、を備えるセンター装置。
  17.  更新データをマスタ装置へ配信するセンター装置(2)であって、
     更新データを暗号化するための共通鍵を生成する共通鍵生成部(2a)と、
     前記更新データを前記共通鍵により出力フィードバック(OFB)モードで暗号化する更新データ暗号化部(2b)と、
     前記共通鍵をRSA公開鍵により暗号化する共通鍵暗号化部(2c)と、
     前記RSA公開鍵により暗号化された前記共通鍵をキャンペーン通知の中に格納する共通鍵格納部(2d)と、
     前記共通鍵により暗号化された前記更新データをコンテンツ・デリバリー・ネットワーク(CDN)に配置する暗号化データ配置部(2e)と、
     暗号化された前記共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システムへ送信するキャンペーン通知送信部(2f)と、を備えるセンター装置。
  18.  センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)であって、
     センター装置から取得したキャンペーン通知の中から共通鍵を取得する共通鍵取得部(4a)と、
     暗号化された前記共通鍵をRSA秘密鍵により復号化して前記共通鍵を取出す共通鍵復号化部(4b)と、
     暗号化された更新データをコンテンツ・デリバリー・ネットワーク(CDN)からダウンロードして取得する暗号化データ取得部(4c)と、
     暗号化された更新データを前記暗号化データ取得部が前記CDNからダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化するブロック暗号処理部(4d)と、
     暗号化された前記カウンター値と、前記CDNからダウンロードされている暗号化された前記更新データとを排他的論理和演算して復号化する暗号化データ復号化部(4e)と、
     復号化された前記更新データをリプログ対象の電子制御装置へ転送し、更新データを前記電子制御装置にインストールするインストール処理部(4f)と、を備えるマスタ装置。
  19.  センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)であって、
     センター装置から取得したキャンペーン通知の中から共通鍵を取得する共通鍵取得部(4a)と、
     暗号化された前記共通鍵をRSA秘密鍵により復号化して前記共通鍵を取出す共通鍵復号化部(4b)と、
     暗号化された更新データをコンテンツ・デリバリー・ネットワーク(CDN)からダウンロードして取得する暗号化データ取得部(4c)と、
     暗号化された更新データを前記暗号化データ取得部が前記CDNからダウンロードして取得することと並行し、IV値ベースの共通ストリーム暗号処理をAES鍵により実行してIV値を暗号化するブロック暗号処理部(4d)と、
     暗号化された前記IV値と、前記CDNからダウンロードされている暗号化された前記更新データとを排他的論理和演算して復号化する暗号化データ復号化部(4e)と、
     復号化された前記更新データをリプログ対象の電子制御装置へ転送し、更新データを前記電子制御装置にインストールするインストール処理部(4f)と、を備えるマスタ装置。
  20.  更新データをマスタ装置へ配信するセンター装置(2)に、
     更新データを暗号化するための共通鍵を生成する共通鍵生成手順と、
     前記更新データを前記共通鍵によりカウンター(CTR)モードで暗号化する更新データ暗号化手順と、
     前記共通鍵をRSA公開鍵により暗号化する共通鍵暗号化手順と、
     前記RSA公開鍵により暗号化された前記共通鍵をキャンペーン通知の中に格納する共通鍵格納手順と、
     前記共通鍵により暗号化された前記更新データをコンテンツ・デリバリー・ネットワーク(CDN)に配置する暗号化データ配置手順と、
     暗号化された前記共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システムへ送信するキャンペーン通知送信手順と、を実行させる暗号化プログラム。
  21.  更新データをマスタ装置へ配信するセンター装置(2)に、
     更新データを暗号化するための共通鍵を生成する共通鍵生成手順と、
     前記更新データを前記共通鍵により出力フィードバック(OFB)モードで暗号化する更新データ暗号化手順と、
     前記共通鍵をRSA公開鍵により暗号化する共通鍵暗号化手順と、
     前記RSA公開鍵により暗号化された前記共通鍵をキャンペーン通知の中に格納する共通鍵格納手順と、
     前記共通鍵により暗号化された前記更新データをコンテンツ・デリバリー・ネットワーク(CDN)に配置する暗号化データ配置手順と、
     暗号化された前記共通鍵が格納されたキャンペーン通知をリプログ対象の車両側システムへ送信するキャンペーン通知送信手順と、を実行させる暗号化プログラム。
  22.  センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)に、
     センター装置から取得したキャンペーン通知の中から共通鍵を取得する共通鍵取得手順と、
     暗号化された前記共通鍵をRSA秘密鍵により復号化して前記共通鍵を取出す共通鍵復号化手順と、
     暗号化された更新データをコンテンツ・デリバリー・ネットワーク(CDN)からダウンロードして取得する暗号化データ取得手順と、
     暗号化された更新データを前記暗号化データ取得手順により前記CDNからダウンロードして取得することと並行し、カウンター値のAESブロック暗号処理をAES鍵により実行してカウンター値を暗号化するブロック暗号処理手順と、
     暗号化された前記カウンター値と、前記CDNからダウンロードされている暗号化された前記更新データとを排他的論理和演算して復号化する暗号化データ復号化手順と、
     復号化された前記更新データをリプログ対象の電子制御装置へ転送し、更新データを前記電子制御装置にインストールするインストール処理手順と、を実行させる復号化プログラム。
  23.  センター装置からダウンロードした更新データをリプログ対象の電子制御装置にインストールするマスタ装置(4)に、
     センター装置から取得したキャンペーン通知の中から共通鍵を取得する共通鍵取得手順と、
     暗号化された前記共通鍵をRSA秘密鍵により復号化して前記共通鍵を取出す共通鍵復号化手順と、
     暗号化された更新データをコンテンツ・デリバリー・ネットワーク(CDN)からダウンロードして取得する暗号化データ取得手順と、
     暗号化された更新データを前記暗号化データ取得手順により前記CDNからダウンロードして取得することと並行し、IV値ベースの共通ストリーム暗号処理をAES鍵により実行してIV値を暗号化するブロック暗号処理手順と、
     暗号化された前記IV値と、前記CDNからダウンロードされている暗号化された前記更新データとを排他的論理和演算して復号化する暗号化データ復号化手順と、
     復号化された前記更新データをリプログ対象の電子制御装置へ転送し、更新データを前記電子制御装置にインストールするインストール処理手順と、を実行させる復号化プログラム。
PCT/JP2022/024875 2021-09-30 2022-06-22 データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム WO2023053621A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202280065002.1A CN118140454A (zh) 2021-09-30 2022-06-22 数据通信系统、中心装置、主机装置、加密程序以及解密程序
JP2023550370A JPWO2023053621A1 (ja) 2021-09-30 2022-06-22
DE112022004670.8T DE112022004670T5 (de) 2021-09-30 2022-06-22 Datenkommunikationssystem, zentrumsvorrichtung, mastervorrichtung, verschlüsselungsprogramm und entschlüsselungsprogramm
US18/618,840 US20240267221A1 (en) 2021-09-30 2024-03-27 Data communication system, center device, master device, storage medium storing encryption program, and storage medium storing decryption program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021161212 2021-09-30
JP2021-161212 2021-09-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/618,840 Continuation US20240267221A1 (en) 2021-09-30 2024-03-27 Data communication system, center device, master device, storage medium storing encryption program, and storage medium storing decryption program

Publications (1)

Publication Number Publication Date
WO2023053621A1 true WO2023053621A1 (ja) 2023-04-06

Family

ID=85780540

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/024875 WO2023053621A1 (ja) 2021-09-30 2022-06-22 データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム

Country Status (5)

Country Link
US (1) US20240267221A1 (ja)
JP (1) JPWO2023053621A1 (ja)
CN (1) CN118140454A (ja)
DE (1) DE112022004670T5 (ja)
WO (1) WO2023053621A1 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014088062A (ja) * 2012-10-29 2014-05-15 Denso Corp 通信システム、車載ecu、およびリモートリプログラム装置
WO2015034020A1 (ja) * 2013-09-06 2015-03-12 日本放送協会 送信装置、受信装置、限定受信システムおよび限定受信方法
US20200267547A1 (en) * 2019-02-20 2020-08-20 Coretigo Ltd. Secure Key Exchange Mechanism In A Wireless Communication System
WO2020170732A1 (ja) * 2019-02-22 2020-08-27 株式会社デンソー センター装置、データ配信システム及び配信制御プログラム
US20200389289A1 (en) * 2019-06-05 2020-12-10 Sameer KHANNA Cryptographic systems with variable layout cryptography
JP2021072047A (ja) * 2019-11-01 2021-05-06 株式会社東芝 セキュリティ管理システム及びセキュリティ管理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03276424A (ja) 1990-03-26 1991-12-06 Toppan Printing Co Ltd 光カードの記録再生装置
JP7448282B2 (ja) 2020-03-31 2024-03-12 住鉱潤滑剤株式会社 耐熱性グリース組成物

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014088062A (ja) * 2012-10-29 2014-05-15 Denso Corp 通信システム、車載ecu、およびリモートリプログラム装置
WO2015034020A1 (ja) * 2013-09-06 2015-03-12 日本放送協会 送信装置、受信装置、限定受信システムおよび限定受信方法
US20200267547A1 (en) * 2019-02-20 2020-08-20 Coretigo Ltd. Secure Key Exchange Mechanism In A Wireless Communication System
WO2020170732A1 (ja) * 2019-02-22 2020-08-27 株式会社デンソー センター装置、データ配信システム及び配信制御プログラム
US20200389289A1 (en) * 2019-06-05 2020-12-10 Sameer KHANNA Cryptographic systems with variable layout cryptography
JP2021072047A (ja) * 2019-11-01 2021-05-06 株式会社東芝 セキュリティ管理システム及びセキュリティ管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HAKATA, KEISUKE ET AL.: "Current status and issues of control system security: Toward realization of encryption communication function for controllers", JOURNAL OF THE SOCIETY OF INSTRUMENT AND CONTROL ENGINEERS, vol. 53, no. 10, 10 October 2014 (2014-10-10), pages 936 - 942, XP009544932 *
MIZOGUCHI, SEIICHIRO ET AL.: "Implementation of Secure Remote Re-programming Schemes", PROCEEDINGS OF COMPUTER SECURITY SYMPOSIUM 2016, vol. 2 E1-2, 4 October 2016 (2016-10-04), pages 379 - 383, XP055654169 *

Also Published As

Publication number Publication date
JPWO2023053621A1 (ja) 2023-04-06
CN118140454A (zh) 2024-06-04
DE112022004670T5 (de) 2024-08-01
US20240267221A1 (en) 2024-08-08

Similar Documents

Publication Publication Date Title
US11706025B2 (en) Secure firmware transfer for an integrated universal integrated circuit card (iUICC)
WO2021093334A1 (zh) 车辆升级包处理方法和装置
WO2019184924A1 (zh) 身份管理方法、设备、通信网络及存储介质
US11947681B2 (en) Cryptographic secret generation and provisioning
US8924715B2 (en) Methods and apparatus for storage and execution of access control clients
US20040161110A1 (en) Server apparatus, key management apparatus, and encrypted communication method
EP3590242B1 (en) Communication interface for a low power wide area network, wireless device and server using such communication interface
WO2011134807A1 (en) Dynamic encryption and decryption for network communication
WO2003107626A2 (en) Method for establishing secure network communications
JP4283699B2 (ja) コンテンツ転送制御装置、コンテンツ配信装置およびコンテンツ受信装置
US20170213054A1 (en) Secure transactions in a memory fabric
US20170302454A1 (en) Encryption for transactions in a memory fabric
KR102266654B1 (ko) Mqtt-sn 프로토콜의 보안을 위한 mqtt-sn 보안 관리 방법 및 시스템
US11997192B2 (en) Technologies for establishing device locality
WO2023053621A1 (ja) データ通信システム、センター装置、マスタ装置、暗号化プログラム及び復号化プログラム
WO2023053622A1 (ja) データ通信システム、センター装置、マスタ装置及び秘密情報共有プログラム
WO2023053623A1 (ja) データ通信システム、センター装置、マスタ装置、更新データ配置プログラム及び更新データ取得プログラム
KR102295400B1 (ko) 블록체인 네트워크 및 분산 노드에 의한 패킷 우회 전송 시스템 및 방법
Guštin CAN Bus Security Protocol: lightweight message confidentiality, authentication, and freshness on an automotive bus
Bamberger et al. Mobile Phones as Secure Gateways for Message-Based Ubiquitous Communication (Revised)

Legal Events

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

Ref document number: 22875500

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023550370

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 202280065002.1

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 112022004670

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22875500

Country of ref document: EP

Kind code of ref document: A1