TRAFFIC ACCIDENT FORENSICS METHOD BASED ON BLOCKCHAIN

Information

  • Patent Application
  • 20240056299
  • Publication Number
    20240056299
  • Date Filed
    August 01, 2023
    a year ago
  • Date Published
    February 15, 2024
    10 months ago
Abstract
A traffic accident forensics method based on a blockchain is provided. After a traffic accident, the method allows vehicles to carry out a mutual verification and sign a respective accident report. After one of the vehicles verifies with a road side unit, the signed accident report is submitted to the road side unit and uploaded to the blockchain, so as to record the accident report and preventing the accident report from being tampered, and an efficient mutual verification between the vehicle and the road side unit is achieved. The key parameters in the mutual verification process are encrypted based on an elliptic curve algorithm, and thus the security of the whole mutual verification process is improved. A batch verification way for signatures is designed to reduce the compute pressure of a wireless device. Vehicles use dynamic anonymity policies to protect privacy in the forensics method.
Description
TECHNICAL FIELD

The disclosure relates to the field of information security technology, in particular to a traffic accident forensics method based on a blockchain.


BACKGROUND

With the help of the new generation of information and communication technology, the Internet of vehicles realizes the connection between vehicles or between vehicles and other entities, improves the overall intelligent driving level of vehicles, provides users with a safe, comfortable, intelligent, and efficient driving experience and traffic services, improves the efficiency of traffic operation, and improves the intelligent level of social traffic services. Blockchain technology has the characteristics of decentralization, non-tampering and non-forgery, and the use of blockchain for the storage of vehicle accident reports can ensure the security and tamper-proof of the vehicle accident reports.


The disclosure provides a traffic accident forensics method based on a blockchain, after an accident occurs, vehicles provide information such as images or videos recorded in a respective driving recorder to each other. If each party of drivers of the vehicles agrees with a respective accident information report provided by the other party, the drivers sign the accident information reports and aggregate two signatures into one signature. Finally, one of the vehicles carries out an identity verification with a road side unit (also abbreviated as RSU, and which generally is a communication gateway deployed on the roadside), and the road side unit carries out batch verification on the identities of the vehicles and the signature of the accident information report. After the batch verification passes, the road side unit signs key parameters, and then accident information is generated into a block and uploaded to the blockchain. After that, owners of the vehicles can go to a third-party insurance company or a traffic management bureau for follow-up treatment of the accident within a limited date. With the help of the Internet of vehicles, efficient accident forensics can be achieved to facilitate the follow-up treatment, thereby avoiding impacts on normal traffic and avoiding secondary accidents.


SUMMARY

A purpose of the disclosure is to provide a traffic accident forensics method based on a blockchain. The disclosure is used to solve a problem of accident report negotiation between accident parties in a current scenario of the Internet of vehicles. When multiple vehicles on the road are involved in traffic accidents, video or photos are respectively provided as accident information and uploaded to the blockchain to facilitate traffic police law enforcement and insurance company claims settlement.


After a traffic accident, vehicles carry out verification to each other and sign a respective accident report. After one of the vehicles verifies with a road side unit, the signed accident report is submitted to the road side unit and uploaded to the blockchain based on blockchain technology, so as to record the accident report and preventing the accident report from being tampered, and efficient mutual verification between the vehicle and the road side unit is achieved. The key parameters in the mutual verification process are encrypted based on an elliptic curve algorithm, and thus the security of the whole mutual verification process is improved. A batch verification way for signatures is provided to reduce the compute pressure of a wireless device.


After a traffic accident occurs, vehicles mutually verify each other and sign a respective accident report, then the road side unit uploads the accident information to the blockchain.


The traffic accident forensics method based on the blockchain includes following steps.


Step S1, initialization of a trust authority: selecting, by the trust authority, an elliptic curve E(⋅) with a generator P, a secure one-way Hash function h(⋅), a fuzzy extraction function Gen(⋅), and a recovery function Rep(⋅); and selecting random numbers (SKTA, KTA) as a long-term private key of the trust authority, and determining a point multiplication result based on an elliptic curve algorithm as a public key PKTA=SKTA·P of the trust authority; and publishing parameters {P, E(⋅), h(⋅), Gen(⋅), Rep(⋅), PKTA}.


Step S2, submitting, by vehicles and road side units, registration requests to the trust authority; after identities of the vehicles and the road side units are verified by the trust authority, feeding, by the trust authority, registration information of the vehicles and registration information of the road side units to the vehicles and the road side units respectively, and storing the registration information of the vehicles and the registration information of the road side devices in corresponding on-board circuits of the vehicles and corresponding storage circuits of the road side units, respectively; wherein for a vehicle Vi of the vehicles and a road side unit of the road side units, the step S2 further includes:

    • sub-step S2.1, selecting, by the vehicle Vi, a random number SKVi as a long-term private key of the vehicle Vi, and determining a point multiplication result based on the elliptic curve algorithm as a public key PKVi=SKVi·P of the vehicle Vi; sending, by the vehicle Vi, an unique identity number VIDi (such as an engine number) of the vehicle Vi, the public key PKVi of the vehicle Vi, and vehicle appearance information VaIi of the vehicle Vi to the trust authority through a secure message channel;
    • sub-step S2.2, after the identity number VIDi of the vehicle Vi is verified by the trust authority, calculating, by the trust authority, an identity-verification parameter bi of the vehicle Vi, selecting a random number ri and a random number ai, calculating a point multiplication result Ai=ai·P based on the elliptic curve algorithm of the random number ai, determining a pseudonym PIDi=EKTA(VIDi, VaIi, ri) of the vehicle Vi, EKTA(VIDi, VaIi, ri) representing a function that uses the long-term private key KTA to encrypt the identity number VIDi, the vehicle appearance information VaIi, and the random number ri based on the elliptic curve algorithm; then returning parameters {PIDi, Ai, bi, PKTA, ri} to the vehicle Vi, where the identity-verification parameter bi is expressed as bi=h(PIDi∥PKvi∥Ai)*SKTA+ai;
    • sub-step S2.3, verifying, by the vehicle Vi, correctness of a point multiplication result bi·P=h(PIDi∥PKVi∥Ai)·PKTA+Ai of the identity-verification parameter bi based on the elliptic curve algorithm; when the point multiplication result bi·P=h(PIDi∥PKVi∥Ai)·PKTA+Ai is correct, inputting, by a driver of the vehicle Vi, biological information Bioi of the driver of the vehicle Vi; calculating, by the vehicle Vi, a biological key σi and a key recovery parameter τi using (σi, τi)=Gen(Bioi), calculating a login-verification parameter Vi=h(σi∥VaIi), Si1=bi⊕h(σi∥Vi) used to encrypt and store the identity-verification parameter bi, Si2=SKVi⊕h(Vi∥σi) used to encrypt and store the long-term private key SKVi, and Si3=ri⊕h(VIDi∥σi) used to encrypt and store the random number ri; and storing, by the vehicle Vi, the registration information {P, Vi, Si1, Si2, Si3, Ai, PKVi, PKTA, PIDi, Rep(⋅), VaIi, τi} of the vehicle Vi in the on-board circuit of the vehicle Vi;
    • sub-step S2.4, selecting, by the trust authority, an identity mark RIDt, a private key SKRt, and a random number zt for the road side unit; calculating a public key PKRt=SKRt·P of the road side unit based on the elliptic curve algorithm, calculating a point multiplication result Zt=zt·P of the random number zt based on the elliptic curve algorithm, and calculating an identity-verification parameter yt=h(RIDt∥PKRt∥Zt)*SKTA+zt of the road side unit; and sending, by the trust authority, the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA} of the road side unit to the road side unit through the secure message channel; and
    • sub-step S2.5, after the road side unit receives the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA}, verifying correctness of a point multiplication result yt·P=h(RIDt∥PKRt∥Zt)*PKTA+Zt of the identity-verification parameter yt based on the elliptic curve algorithm; when the point multiplication result yt·P is wrong, resubmitting a registration request by the road side unit, otherwise storing the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA} to the storage circuit of the road side unit.


Step S3, after an accident occurs between the vehicle Vi and a vehicle Vj, performing, by the vehicle Vi and the vehicle Vj, processes of mutually confirming accident information and signing accident reports, and the processes including:

    • sub-step S3.1, inputting, by a driver of the vehicle Vi, the biological information Bioi to the vehicle Vi; recovering, by the vehicle Vi, the biological key σi=Rep (Bioi, τi); calculating the login-verification parameter Vi=h(σi∥VaIi), and verifying correctness of the login-verification parameter Vi=h(σi∥VaIi); when the login-verification parameter Vi=h(σi∥VaIi) is correct, determining that identity verification of the driver is successful; then decrypting, by the vehicle Vi, the identity-verification parameter bi=Si1⊕h(σi∥Vi) and the long-term private key SKVi=Si2⊕h(Vi∥σi), and generating, by the vehicle Vi, a random number di1, a random number di2, a time stamp T1, and accident information D1 including an image or a video;
    • calculating a point multiplication result Di1=di1·P of the random number di1, a point multiplication result Di2=di1·P of the random number di2, and an accident report verification parameter ci1=SKVi+h(D1∥Di1∥Di2∥T1∥PIDi∥VaIi)*di1 based on the elliptic curve algorithm; and sending, by the vehicle Vi, an accident report Mi1={D1, bi, PIDi, Ai, Di1, Di2, PKVi, ci1, VaIi, T1} to the vehicle Vj;
    • sub-step 3.2, inputting, a driver of the vehicle Vj, biological information Bioj of the driver of the vehicle Vj to the vehicle Vj, recovering, by the vehicle Vj, a biological key σj=Rep(Bioj, τj), calculating a login-verification parameter Vj=h(σj∥VaIj) of the vehicle Vj, and verifying correctness of the login-verification parameter Vj=h(σj∥VaIj); when the login-verification parameter Vj=h(σj∥VaIj) is correct, determining that identity verification of the driver is successful; then decrypting, by the vehicle Vj, an identity-verification parameter bj=Sj1⊕h(σj∥Vj) of the vehicle Vj and a long-term private key SKVj=Sj2⊕h(Vj∥σj) of the vehicle Vj, and generating, by the vehicle Vj, a random number dj1, a random number dj2, a time stamp T2, and accident information D2 including an image or a video;
    • calculating a point multiplication result Dj1=dj1·P of the random number dj1 based on the elliptic curve algorithm, calculating a point multiplication result Dj2=dj2·P of the random number dj2 based on the elliptic curve algorithm, and calculating an accident report verification parameter cj1=SKVj+h(D2∥Dj1∥Dj2∥T1∥PIDj∥VaIj)*dj1; and
    • sending, by the vehicle Vj, an accident report Mj1={D2, bj, PIDj, Aj, Dj1, Dj2, PKVj, cj1, VaIj, T2} to the vehicle Vi;
    • sub-step 3.3, after the vehicle Vi receives the accident report Mj1 from the vehicle Vj, performing, by the vehicle Vi, first verifications on freshness of the time stamp T2, correctness of a point multiplication result bj·P=h(PIDj∥PKVj∥Aj)*PKTA+Aj of the identity-verification parameter bj based on the elliptic curve algorithm, and correctness of a point multiplication result cj1·P=PKVj+h(D2∥Dj1∥Dj2∥PIDj∥VaIj)*Dj1 of the accident report verification parameter cj1 based on the elliptic curve algorithm; after the first verifications are passed, confirming, by the vehicle Vi, the accident information D2, when the driver of the vehicle Vi agrees that the accident information D2 sent by the accident vehicle Vj is reasonable, signing the accident information D2 by:
      • calculating, by the vehicle Vi, a point addition result Dij=Di2+Dj2 of the point multiplication result Di2 and the point multiplication result Dj2 based on the elliptic curve algorithm, and calculating, by the vehicle Vi, an accident report verification parameter ci2=SKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)*di2; and
      • sending, by the vehicle Vi, an signed accident report Mi2={ci2, PIDi, VaIi, PIDj} to the vehicle Vj;
    • sub-step S3.4, after the vehicle Vj receives the accident report Mi1 from the vehicle Vi, performing, by the vehicle Vj, second verifications on freshness of the time stamp T1, correctness of a point multiplication result bi·P=h(PIDi∥PKVi∥Ai)*PKTA+Ai of the identity-verification parameter bi based on the elliptic curve algorithm, and correctness of a point multiplication result ci·P=PKVi+h(D1∥Di1∥Di2∥T1∥PIDi∥VaIi)*Di1 of the accident report verification parameter ci1 based on the elliptic curve algorithm; after the second verifications are passed, confirming, by the vehicle Vj, the accident information D1; when the driver of the vehicle Vj agrees that the accident information D1 sent by the accident vehicle Vi is reasonable, signing the accident information D1 by:
      • calculating, by the vehicle Vj, the point addition result Dij=Di2+Dj2 of the point multiplication result Di2 and the point multiplication result Dj2 based on the elliptic curve algorithm, and calculating, by the vehicle Vj, an accident report verification parameter cj2=SKVj+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)*dj2; and
      • sending, by the vehicle Vj, an signed accident report Mj2={ci2, PIDi, VaIi, PIDj} to the vehicle Vi;
    • sub-step 3.5, after the vehicle Vi receives the signed accident report Mj2 from the vehicle Vj, calculating, by the vehicle Vi, a sum cij=cj2+ci2 of the accident report verification parameter cj2 and the accident report verification parameter ci2, then verifying correctness of a point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm, and when the point multiplication result cijP is correct, determining that the corresponding accident reports are signed by the vehicle Vi and the vehicle Vj; and
    • sub-step 3.6, after the vehicle Vj receives the signed accident report Mi2 from the vehicle Vj, calculating, by the vehicle Vj, the sum cij=cj2+ci2 of the accident report verification parameter cj2 and the accident report verification parameter ci2, then verifying correctness of the point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm, and when the point multiplication result cij·P is correct, determining that the corresponding accident reports are signed by the vehicle Vi and the vehicle Vj.


Step S4, uploading, by the road side unit, accident information Tx to the blockchain after the road side unit identifies the vehicle Vi and the vehicle Vj; and wherein the uploading includes:

    • sub-step S4.1, sending, by the vehicle Vi, a message M1={PIDi, bi, PKVi, Ai, PIDj, bj, PKvj, Aj} to the road side unit, and the message M1 including a parameter set;
    • sub-step S4.2, after the road side unit receives the message M1, verifying, by the road side unit, correctness of a point multiplication result (bi+bj) P=(h(PIDi∥PKvi∥Ai)+h(PIDj∥PKvj∥Aj)) PKTA+(Ai+Aj) of a sum of the identity-verification parameter bi and the identity-verification parameter bj based on the elliptic curve algorithm; and when the point multiplication result (bi+bj)·P is correct, sending, by the road side unit, a message M2={RIDt, yt, Zt, PKRt} to the vehicle Vi;
    • sub-step S4.3, after the vehicle Vi receives the message M2, verifying, by the vehicle Vi, correctness of a point multiplication result yt·P=h(RIDt∥PKRt∥Zt)PKTA+Zt of the identity-verification parameter yt of the road side unit based on the elliptic curve algorithm; and when the point multiplication result yt·P is correct, sending, by the vehicle Vi, a message M3={cij, PKvi, PKvj, D1, D2, Dij, T1, PIDi, T2, PIDj, VaIi, VaIj} to the road side unit; and
    • sub-step S4.4, after the road side unit receives the message M3, verifying, by the road side unit, correctness of a point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm; and when the point multiplication result cij·P is correct, selecting, by the road side unit, a random number dt and calculating a point multiplication result Dt=dt·P of the random number dt based on the elliptic curve algorithm, generating a signature parameter ct=SKRt+h(cij∥T3∥Dt)dt by the road side unit, T3 of the signature parameter ct representing a time stamp, and unloading, by the road side unit, the accident information Tx={cij, PKvi, PKvj, D1, D2, Dij, T1, PIDi, T2, PIDj, VaIi, VaIj, RIDt, PKRt, T3, ct, Dt} to the blockchain.


Step S5, updating, by the vehicle Vi, a temporary identity to prevent identity tracking attacks, and wherein the updating includes:

    • sub-step S5.1, inputting, by the driver of the vehicle Vi, the biological information Bioi of the driver of the vehicle Vi to the vehicle Vi; recovering, by the vehicle Vi, the biological key σi=Rep(Bioi, τi), calculating the login-verification parameter Vi=h(σi∥VaIi), and verifying the correctness of the login-verification parameter Vi=h(σi∥VaIi); and when Vi≠h(σi∥VaIi), determining that the login-verification parameter Vi=h(σi∥VaIi) is wrong, otherwise decrypting, by the vehicle Vi, the random number ri=Si3⊕h(VIDi∥σi);
    • sub-step 5.2, reselecting, by the vehicle Vi, a random number SKVi* as a private key; and generating a time stamp T4, calculating a point multiplication result PKVi*=SKVi*·P of the random number SKVi* based on the elliptic curve algorithm, and the point multiplication result PKVi* representing a public key; encrypting, by the vehicle Vi, a message M1=Eri(VIDi, PKVi*, PIDi, T4), and sending, by the vehicle Vi, a first message set {PIDi, M1, T4} to the trust authority for an update request;
    • sub-step 5.3, after the trust authority receives the update request, verifying, by the trust authority, freshness of the time stamp T4, when the freshness of the time stamp T4 passes a verification of the trust authority, decrypting, by the trust authority, the message M1 by (VIDi, VaIi, ri)=DKTA(PIDi) and (VIDi*, PKVi*, PIDi*, T4*)=Dri(M1); verifying, by the trust authority, equations VIDi*=VIDi, PIDi*=PIDi, and T4*=T4; when the equations hold, generating, by the trust authority, a random number ri* and a random number ai*; calculating, by the trust authority, a point multiplication result Ai*=ai*·P of the random number ai* based on the elliptic curve algorithm; calculating, by the trust authority, a pseudonym PIDi*=EKTA (VIDi∥VaIi∥ri*) of the vehicle Vi; calculating, by the trust authority, an identity-verification parameter bi*=h(PIDi*∥PKVi*∥Ai*)*SKTA+ai* of the vehicle Vi; generating, by the trust authority, a time stamp T5; calculating a message M2=Eri(VIDi, Ai*, PIDi*, bi*, ri*, T5), and sending a second message set {PIDi, M2, T5} to the vehicle Vi; and
    • sub-step S5.4, after the vehicle Vi receives the second message set {PIDi, M2, T5}, verifying, by the vehicle Vi, freshness of the time stamp T5; when the freshness of the time stamp T5 passes a verification of the vehicle Vi, decrypting, by the vehicle Vi, the message M2 by (VIDi**, Ai*, PIDi*, bi*, T5*)=Dri(M2); verifying, by the vehicle Vi, correctness of a point multiplication result bi*·P=h(PIDi*∥PK*Vi∥Ai*)*PKTA+Ai* of the identity-verification parameter bi* based on the elliptic curve algorithm; when the point multiplication result bi*·P is correct, VIDi**=VIDi, and T5*=T5, calculating, by the vehicle Vi, a login-verification parameter Vi*=h(σi∥VaIi), Si1*=bi*⊕h(σi∥Vi) used to encrypt and store the identity-verification parameter bi*, Si2*=SKVi*⊕h(Vi∥σi) used to encrypt and store the long-term private key SKVi*, and Si3*=ri*⊕h(VIDi∥σi) used to encrypt and store the random number ri*; and replacing, by the vehicle Vi, the registration information {P, Vi, Si1, Si2, Si3, Ai, PKVi, PKTA, PIDi, Rep(⋅), VaIi, τi} of the vehicle Vi stored in the on-board circuit with {P, Vi, Si1*, Si2*, Si3*, Ai*, PKVi*, PKTA, PIDi*, Rep(⋅), VaIi, τi}.


A time stamp is verified by |Tn′−Tn|≤ΔT, where Tn represents a time stamp contained in a target message, and Tn′ represents a current time stamp when a device receives the target message, and ΔT represents a preset threshold time allowed in a communication process; when a time difference between Tn and Tn′ exceeds the preset threshold time, verification of the time stamp is terminated; when the time difference between Tn and Tn′ does not exceeds the preset threshold time, a next step to the verification of the time stamp is performed.


The accident report Mi1, the accident report Mj1, the signed accident report Mi2, the signed accident report Mj2, the message M1, the message M2, and the message M3 are transmitted within a common channel.


Compared with the related art, the disclosure has following effects.


After the accident, the verification of the accident report agreement between the vehicles is mutual, and the verification between the vehicle and the road side unit is also mutual, so as to ensure the reliability and identity traceability of the verification of both parties.


The disclosure pays attention to the privacy protection of vehicles. The true identity of a vehicle can only be obtained by the vehicle itself and the trust authority. During interaction with other entities, the vehicle uses a temporary identity to protect privacy.


Vehicle records and messages cannot be forged, tampered with, or maliciously traced. The disclosure is designed based on the blockchain and the temporary identity, and the disclosure verifies the integrity of messages during a process of message generation and upload, thereby to ensure the aforementioned properties.


When multiple vehicles are involved in an accident, any one vehicle can carry out batch verifications on other vehicles, and the road side unit can also carry out batch verification on the identities of vehicles and signatures of accident information of all vehicles.


Elliptic curves are used, the elliptic curve cryptosystem has advantages such as short keys, high strength, few parameters, fast digital signatures, and small computational data, making it particularly suitable for devices with limited computing and storage resources.





BRIEF DESCRIPTION OF DRAWINGS


FIG. 1 illustrates a relationship diagram among vehicles, road side units, and a blockchain.



FIG. 2 illustrates a flowchart of mutual confirmation and signing accident when an accident occurs between two vehicles.





DETAILED DESCRIPTION OF EMBODIMENTS

As shown in FIG. 1, a traffic accident forensics method based on a blockchain is implemented based on vehicles, a trust authority and road side units and a blockchain. An embedded control unit of Internet of vehicles is installed in each vehicle, and the embedded control unit of Internet of vehicles is used to control and track a vehicle status, an on-board intelligent operating system realizes an interaction between a driver and the vehicle, and a remote communication terminal Tbox provides functions of networking and information upload. Each of the road side unit is equipped with an encryption chip and a wireless communication system. The communication between the vehicle and the road side unit is based on the cellular communication technology used in the Internet of vehicles. An on-board circuit of the vehicle and a storage circuit of the road side unit are configured to store information, and the vehicle and road side unit are first registered in the trust authority. Multiple road side units jointly maintain a blockchain. After a vehicle accident occurs, the accident vehicles first verify to each other and sign corresponding accident reports. Then, one of the vehicles verifies with the road side unit, and the road side unit uploads resultant accident information to the blockchain.


As shown in FIG. 2, a process of mutual confirmation of an accident between vehicles and signing accident reports is as follows.


After the accident, the driver of the accident vehicle P inputs his/her biological information, and the vehicle P verifies the biological information. If the biological information is correct, the identity verification of the driver is successful. Otherwise, the vehicle P requires the driver to re-verify the biological information. The vehicle P generates an accident report and send it to the accident vehicle Vj.


At the same time, the driver of the accident vehicle Vj inputs his/her biological information, and the vehicle Vj verifies the biological information. If the biological information is correct, the identity verification of the driver is successful. Otherwise, the vehicle Vj requires the driver to re-verify the biological information. The vehicle Vj generates an accident report and send it to the vehicle Vi. Both vehicles Vi and Vj verify a respective received report and verify its impartiality. If both vehicles Vi and Vj verify the respective received report, the respective received report is signed. Otherwise, it is required to regenerate new reports. Both vehicles Vi and Vj will send a respective signed report to each other, verify and upload the respective signed report to the road side unit.


Refer to two vehicle accident for the handling of a multiple vehicle accident (i.e., three or more vehicles occur an accident), multiple accident vehicle groups are formed based on the fault of the accident, and each group uploads accident information separately. Due to the complexity of the multiple vehicle accident, a complex accident usually handled directly by traffic police on site. The disclosure is particularly suitable for simple traffic accidents, facilitating rapid handling in case of simple accidents, and avoiding the impact of simple accidents on traffic.

Claims
  • 1. A traffic accident forensics method based on a blockchain, comprising: step S1, initialization of a trust authority: selecting, by the trust authority, an elliptic curve E(⋅) with a generator P, a secure one-way Hash function h(⋅), a fuzzy extraction function Gen(⋅), and a recovery function Rep(⋅); and selecting random numbers (SKTA, KTA) as a long-term private key of the trust authority, and determining a point multiplication result based on an elliptic curve algorithm as a public key PKTA=SKTA·P of the trust authority; and publishing parameters {P, E(⋅), h(⋅), Gen(⋅), Rep(⋅), PKTA};step S2, submitting, by vehicles and road side units, registration requests to the trust authority; after identities of the vehicles and the road side units are verified by the trust authority, feeding, by the trust authority, registration information of the vehicles and registration information of the road side units to the vehicles and the road side units respectively, and storing the registration information of the vehicles and the registration information of the road side devices in corresponding on-board circuits of the vehicles and corresponding storage circuits of the road side units, respectively; wherein for a vehicle Vi of the vehicles and a road side unit of the road side units, the step S2 further comprises: sub-step S2.1, selecting, by the vehicle Vi, a random number SKVi as a long-term private key of the vehicle Vi, and determining a point multiplication result based on the elliptic curve algorithm as a public key PKVi=SKVi·P of the vehicle Vi; sending, by the vehicle Vi, an identity number VIDi of the vehicle Vi, the public key PKVi of the vehicle Vi, and vehicle appearance information VaIi of the vehicle Vi to the trust authority through a secure message channel;sub-step S2.2, after the identity number VIDi of the vehicle Vi is verified by the trust authority, calculating, by the trust authority, an identity-verification parameter bi of the vehicle Vi, selecting a random number ri and a random number ai, calculating a point multiplication result Ai=ai·P based on the elliptic curve algorithm of the random number ai, determining a pseudonym PIDi=EKTA(VIDi, VaIi, ri) of the vehicle Vi, EKTA(VIDi, VaIi, ri) representing a function that uses the long-term private key KTA to encrypt the identity number VIDi, the vehicle appearance information VaIi, and the random number ri based on the elliptic curve algorithm; then returning parameters {PIDi, Ai, bi, PKTA, ri} to the vehicle Vi, where the identity-verification parameter bi is expressed as bi=h(PIDi∥PKvi∥Ai)*SKTA+ai;sub-step S2.3, verifying, by the vehicle Vi, correctness of a point multiplication result bi·P=h(PIDi∥PKVi∥Ai)·PKTA+Ai of the identity-verification parameter bi based on the elliptic curve algorithm; when the point multiplication result bi·P=h(PIDi∥PKVi∥Ai)·PKTA+Ai is correct, inputting, by a driver of the vehicle Vi, biological information Bioi of the driver of the vehicle Vi; calculating, by the vehicle Vi, a biological key σi and a key recovery parameter τi using (σi, τi)=Gen(Bioi), calculating a login-verification parameter Vi=h(σi∥VaIi), Si1=bi⊕h(σi∥Vi) used to encrypt and store the identity-verification parameter bi, Si2=SKVi⊕h(Vi∥σi) used to encrypt and store the long-term private key SKVi, and Si3=ri⊕h(VIDi∥σi) used to encrypt and store the random number ri; and storing, by the vehicle Vi, the registration information {P, Vi, Si1, Si2, Si3, Ai, PKVi, PKTA, PIDi, Rep(⋅), VaIi, τi} of the vehicle Vi in the on-board circuit of the vehicle Vi;sub-step S2.4, selecting, by the trust authority, an identity mark RIDt, a private key SKRt, and a random number zt for the road side unit; calculating a public key PKRt=SKRt·P of the road side unit based on the elliptic curve algorithm, calculating a point multiplication result Zt=zt·P of the random number zt based on the elliptic curve algorithm, and calculating an identity-verification parameter yt=h(RIDt∥PKRt∥Zt)*SKTA+zt of the road side unit; and sending, by the trust authority, the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA} of the road side unit to the road side unit through the secure message channel; andsub-step S2.5, after the road side unit receives the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA}, verifying correctness of a point multiplication result yt·P=h(RIDt∥PKRt∥Zt)*PKTA+Zt of the identity-verification parameter yt based on the elliptic curve algorithm; when the point multiplication result yt·P is wrong, resubmitting a registration request by the road side unit, otherwise storing the registration information {RIDt, yt, Zt, SKRt, PKRt, PKTA} to the storage circuit of the road side unit;step S3, after an accident occurs between the vehicle Vi and a vehicle Vj, performing, by the vehicle Vi and the vehicle Vj, processes of mutually confirming accident information and signing accident reports, and the processes comprising: sub-step S3.1, inputting, by a driver of the vehicle Vi, the biological information Bioi to the vehicle Vi; recovering, by the vehicle Vi, the biological key σi=Rep (Bioi, τi); calculating the login-verification parameter Vi=h(σi∥VaIi), and verifying correctness of the login-verification parameter Vi=h(σi∥VaIi); when the login-verification parameter Vi=h(σi∥VaIi) is correct, determining that identity verification of the driver is successful; then decrypting, by the vehicle Vi, the identity-verification parameter bi=Si1⊕h(σi∥Vi) and the long-term private key SKVi=Si2⊕h(Vi∥σi), and generating, by the vehicle Vi, a random number di1, a random number di2, a time stamp Ti, and accident information D1 comprising an image or a video;calculating a point multiplication result Di1=di1·P of the random number di1, a point multiplication result Di2=di2·P of the random number di2, and an accident report verification parameter ci1=SKVi+h(D1∥Di1∥Di2∥T1∥PIDi∥VaIi)*di1 based on the elliptic curve algorithm; and sending, by the vehicle Vi, an accident report Mi1={D1, bi, PIDi, Ai, Di1, Di2, PKVi, ci1, VaIi, T1} to the vehicle V;sub-step 3.2, inputting, a driver of the vehicle Vj, biological information Bioj of the driver of the vehicle Vj to the vehicle Vj, recovering, by the vehicle Vj, a biological key σj=Rep(Bioj, τj), calculating a login-verification parameter Vj=h(σj∥VaIj) of the vehicle Vj, and verifying correctness of the login-verification parameter Vj=h(σj∥VaIj); when the login-verification parameter Vj=h(σj∥VaIj) is correct, determining that identity verification of the driver is successful; then decrypting, by the vehicle Vj, an identity-verification parameter bj=Sj1⊕h(σj∥Vj) of the vehicle Vj and a long-term private key SKVj=Sj2⊕h(Vj∥σj) of the vehicle Vj, and generating, by the vehicle Vj, a random number dj1, a random number dj2, a time stamp T2, and accident information D2 comprising an image or a video;calculating a point multiplication result Dj1=dj1·P of the random number dj1 based on the elliptic curve algorithm, calculating a point multiplication result Dj2=dj2·P of the random number dj2 based on the elliptic curve algorithm, and calculating an accident report verification parameter cj1=SKVj+h(D2∥Dj1∥Dj2∥T1∥PIDj∥VaIj)*dj1; andsending, by the vehicle Vj, an accident report Mj1={D2, bj, PIDj, Aj, Dj1, Dj2, PKVj, cj1, VaIj, T2} to the vehicle Vi;sub-step 3.3, after the vehicle Vi receives the accident report Mj1 from the vehicle Vj, performing, by the vehicle Vi, first verifications on freshness of the time stamp T2, correctness of a point multiplication result bj·P=h(PIDj∥PKVj∥Aj)*PKTA+Aj of the identity-verification parameter bj based on the elliptic curve algorithm, and correctness of a point multiplication result cj1·P=PKVj+h(D2∥Dj1∥Dj2∥T2∥PIDj∥VaIj)*Dj1 of the accident report verification parameter cj1 based on the elliptic curve algorithm; after the first verifications are passed, confirming, by the vehicle Vi, the accident information D2, when the driver of the vehicle Vi agrees that the accident information D2 sent by the accident vehicle Vj is reasonable, signing the accident information D2 by: calculating, by the vehicle Vi, a point addition result Dij=Di2+Dj2 of the point multiplication result Di2 and the point multiplication result Dj2 based on the elliptic curve algorithm, and calculating, by the vehicle Vi, an accident report verification parameter ci2=SKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)*di2; andsending, by the vehicle Vi, an signed accident report Mi2={ci2, PIDi, VaIi, PIDj} to the vehicle Vj;sub-step S3.4, after the vehicle Vj receives the accident report Mi1 from the vehicle Vi, performing, by the vehicle Vj, second verifications on freshness of the time stamp T1, correctness of a point multiplication result bi·P=h(PIDi∥PKVi∥Ai)*PKTA+Ai of the identity-verification parameter bi based on the elliptic curve algorithm, and correctness of a point multiplication result ci1·P=PKVi+h(D1∥Di1∥Di2∥T1∥PIDi∥VaIi)*Di1 of the accident report verification parameter ci1 based on the elliptic curve algorithm; after the second verifications are passed, confirming, by the vehicle Vj, the accident information D1; when the driver of the vehicle Vj agrees that the accident information D1 sent by the accident vehicle Vi is reasonable, signing the accident information D1 by: calculating, by the vehicle Vj, the point addition result Dij=Di2+Dj2 of the point multiplication result Di2 and the point multiplication result Dj2 based on the elliptic curve algorithm, and calculating, by the vehicle Vj, an accident report verification parameter cj2=SKVj+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)*dj2; andsending, by the vehicle Vj, an signed accident report Mj2={ci2, PIDi, VaIi, PIDj} to the vehicle Vi;sub-step 3.5, after the vehicle Vi receives the signed accident report Mj2 from the vehicle Vj, calculating, by the vehicle Vi, a sum cij=cj2+ci2 of the accident report verification parameter cj2 and the accident report verification parameter ci2, then verifying correctness of a point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm, and when the point multiplication result cijP is correct, determining that the corresponding accident reports are signed by the vehicle Vi and the vehicle Vj; andsub-step 3.6, after the vehicle Vj receives the signed accident report Mi2 from the vehicle Vj, calculating, by the vehicle Vj, the sum cij=cj2+ci2 of the accident report verification parameter cj2 and the accident report verification parameter ci2, then verifying correctness of the point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm, and when the point multiplication result cij·P is correct, determining that the corresponding accident reports are signed by the vehicle Vi and the vehicle Vj;step S4, uploading, by the road side unit, accident information Tx to the blockchain after the road side unit identifies the vehicle Vi and the vehicle Vj; and wherein the uploading comprises: sub-step S4.1, sending, by the vehicle Vi, a message M1={PIDi, bi, PKvi, Ai, PIDj, bj, PKvj, Aj} to the road side unit, and the message M1 comprising a parameter set;sub-step S4.2, after the road side unit receives the message M1, verifying, by the road side unit, correctness of a point multiplication result (bi+bj)·P=(h(PIDi∥PKvi∥Ai)+h(PIDj∥PKvj∥Aj)) PKTA+(Ai+Aj) of a sum of the identity-verification parameter bi and the identity-verification parameter bj based on the elliptic curve algorithm; and when the point multiplication result (bi+bj)·P is correct, sending, by the road side unit, a message M2={RIDt, yt, Zt, PKRt} to the vehicle Vi;sub-step S4.3, after the vehicle Vi receives the message M2, verifying, by the vehicle Vi, correctness of a point multiplication result yt·P=h(RIDt∥PKRt∥Zt)PKTA+Zt of the identity-verification parameter yt of the road side unit based on the elliptic curve algorithm; and when the point multiplication result yt·P is correct, sending, by the vehicle Vi, a message M3={cij, PKvi, PKvj, D1, D2, Dij, T1, PIDi, T2, PIDj, VaIi, VaIj} to the road side unit; andsub-step S4.4, after the road side unit receives the message M3, verifying, by the road side unit, correctness of a point multiplication result cij·P=PKVj+PKVi+h(D1∥D2∥Dij∥T1∥PIDi∥T2∥PIDj∥VaIi∥VaIj)Dij of the sum cij based on the elliptic curve algorithm; and when the point multiplication result cij·P is correct, selecting, by the road side unit, a random number dt and calculating a point multiplication result Dt=dt·P of the random number dt based on the elliptic curve algorithm, generating a signature parameter ct=SKRt+h(cij∥T3∥Dt)dt by the road side unit, T3 of the signature parameter ct representing a time stamp, and unloading, by the road side unit, the accident information Tx={cij, PKvi, PKvj, D1, D2, Dij, T1, PIDi, T2, PIDj, VaIi, VaIj, RIDt, PKRt, T3, ct, Dt} to the blockchain; andstep S5, updating, by the vehicle Vi, a temporary identity to prevent identity tracking attacks, and wherein the updating comprises: sub-step S5.1, inputting, by the driver of the vehicle Vi, the biological information Bioi of the driver of the vehicle Vi to the vehicle Vi; recovering, by the vehicle Vi, the biological key σi=Rep(Bioi, τi), calculating the login-verification parameter Vi=h(σi∥VaIi), and verifying the correctness of the login-verification parameter Vi=h(σi∥VaIi); and when Vi≠h(σi∥VaIi), determining that the login-verification parameter Vi=h(σi∥VaIi) is wrong, otherwise decrypting, by the vehicle Vi, the random number ri=Si3⊕h(VIDi∥σi);sub-step 5.2, reselecting, by the vehicle Vi, a random number SKVi* as a private key; and generating a time stamp T4, calculating a point multiplication result PKVi*=SKVi*·P of the random number SKVi* based on the elliptic curve algorithm, and the point multiplication result PKVi* representing a public key; encrypting, by the vehicle Vi, a message M1=Eri(VIDi, PKVi*, PIDi, T4), and sending, by the vehicle Vi, a first message set {PIDi, M1, T4} to the trust authority for an update request;sub-step 5.3, after the trust authority receives the update request, verifying, by the trust authority, freshness of the time stamp T4, when the freshness of the time stamp T4 passes a verification of the trust authority, decrypting, by the trust authority, the message M1 by (VIDi, VaIi, ri)=DKTA(PIDi) and (VIDi*, PKvi*, PIDi*, T4*)=Dri(M1); verifying, by the trust authority, equations VIDi*=VIDi, PIDi*=PIDi, and T4*=T4; when the equations hold, generating, by the trust authority, a random number ri* and a random number ai*; calculating, by the trust authority, a point multiplication result Ai*=ai*·P of the random number ai* based on the elliptic curve algorithm; calculating, by the trust authority, a pseudonym PIDi*=EKTA (VIDi∥VaIi∥ri*) of the vehicle Vi; calculating, by the trust authority, an identity-verification parameter bi*=h(PIDi*∥PKVi*∥Ai*)*SKTA+ai* of the vehicle Vi; generating, by the trust authority, a time stamp T5; calculating a message M2=Eri(VIDi, Ai*, PIDi*, bi*, ri*, T5), and sending a second message set {PIDi, M2, T5} to the vehicle Vi; andsub-step S5.4, after the vehicle Vi receives the second message set {PIDi, M2, T5}, verifying, by the vehicle Vi, freshness of the time stamp T5; when the freshness of the time stamp T5 passes a verification of the vehicle Vi, decrypting, by the vehicle Vi, the message M2 by (VIDi**, Ai*, PIDi*, bi*, T5*)=Dri(M2); verifying, by the vehicle Vi, correctness of a point multiplication result bi*·P=h(PIDi*∥PKVi*∥Ai*)*PKTA+Ai* of the identity-verification parameter bi* based on the elliptic curve algorithm; when the point multiplication result bi*·P is correct, VIDi**=VIDi, and T5*=T5, calculating, by the vehicle Vi, a login-verification parameter Vi*=h(σi∥VaIi), S1*=bi*⊕h(σi∥Vi) used to encrypt and store the identity-verification parameter bi*, Si2*=SKVi*⊕h(Vi∥σi) used to encrypt and store the long-term private key SKVi*, and Si3*=ri*⊕h(VIDi∥σi) used to encrypt and store the random number ri*; and replacing, by the vehicle Vi, the registration information{P, Vi, Si1, Si2, Si3, Ai, PKVi, PKTA, PIDi, Rep(⋅), VaIi, τi} of the vehicle Vi stored in the on-board circuit with {P, Vi, Si1*, Si2*, Si3*, Ai*, PKVi*, PKTA, PIDi*, Rep(⋅), VaIi, τi}.
  • 2. The traffic accident forensics method based on the blockchain as claimed in claim 1, wherein a time stamp is verified by |Tn′−Tn|≤ΔT, where Tn represents a time stamp contained in a target message, and Tn′ represents a current time stamp when a device receives the target message, and ΔT represents a preset threshold time allowed in a communication process; when a time difference between Tn and Tn′ exceeds the preset threshold time, verification of the time stamp is terminated; when the time difference between Tn and Tn′ does not exceeds the preset threshold time, a next step to the verification of the time stamp is performed.
  • 3. The traffic accident forensics method based on the blockchain as claimed in claim 1, wherein the accident report Mi1, the accident report Mj1, the signed accident report Mi2, the signed accident report Mj2, the message M1, the message M2, and the message M3 are transmitted within a common channel.
Priority Claims (1)
Number Date Country Kind
2022109285542 Aug 2022 CN national