A Secure Multiple Elliptic Curves Digital Signature Algorithm for Blockchain

A Secure Multiple Elliptic Curves Digital Signature Algorithm for Blockchain

A Secure Multiple Elliptic Curves Digital Signature Algorithm for Blockchain Wei Bi*, Xiaoyun Jia, Maolin Zheng Seele Tech Corporation, San Francisco, USA [email protected] Abstract: Most cryptocurrency systems or systems based on blockchain technol- ogy are currently using the elliptic curves digital signature algorithm (ECDSA) on the secp256k1 curve, which is susceptible to backdoors implemented by the curve creator (secp256k1). The paper proposes a multiple elliptic curves digital signature algorithm (MECDSA), which allows not only for setting the number of elliptic curves according to practical security requirements, but also for editing the parameters of each elliptic curve. The performance analysis proves that the scheme is secure and efficient, and can avoid any backdoors implemented by curve creators. We suggest that the systems based on blockchain should operate in two elliptic curves considering the contradiction between security and effi- ciency. Keywords: Digital Signature, Blockchain, Elliptic Curve Discrete Logarithm Problem (ECDLP). 1 Introduction Digital signatures1-2 are used to detect unauthorized modifications to data and to au- thenticate the identity of the signer. The recipient of signed message can use a digital signature as evidence to demonstrate to a third party that the signature was generated by the claimed signer. Digital signatures uses a combination of hash functions and pub- lic key cryptography. Firstly, the message digest is created using a hash function. The signature is created by encrypting the message digest using the signer’s private key. Anyone can use the signer’s public key and the same hash function to verify the re- ceived signature. Until now, most cryptocurrency systems3-5 or systems based on blockchain technol- ogy6-7 have used in elliptic curves digital signature algorithm (ECDSA)8-10, which is based on secp256k111. Secp256k1 was almost never used before Bitcoin became pop- ular, but it is now gaining in popularity due to several beneficial properties. Most com- monly-used curves have random structure, but secp256k1 was constructed in a unique, non-random way which allows for especially efficient computation. As a result, it is often more than 30% faster than other curves if the implementation is sufficiently opti- mized. However, it cannot prevent the curve's creator from inserting any backdoors into the curve. So we propose a multiple elliptic curves digital signature algorithm (MECDSA), which is more secure and can avoid any backdoors. In MECDSA scheme, the user cannot only choose the number of elliptic curves according to practical security requirements, but also can customize the curve by editing its parameters. The multiple elliptic curves digital signature algorithm serves four purposes. Firstly, the signature proves that the owner of the private key, who is by implication the owner of the funds, has authorized the spending of the funds. Secondly, the proof of authori- zation is undeniable. Thirdly, the signature proves that the transaction has not and can- not be modified by anyone after it has been signed. Fourthly, the signature scheme can avoid any backdoors in the ECDSA curve. In section 2, we summarize existing elliptic curve digital signature algorithm (ECDSA). In section 3, we propose a multiple elliptic curves digital signature algorithm (MECDSA). In section 4, we analyze the performance of MECDSA from its validity, security and efficiency. 2 Elliptic Curve Digital Signature Algorithm (ECDSA) An elliptic curve E over a finite prime field Fp is defined by the short Weierstrass equa- tion, E: 푦2 = 푥3 + 푎푥 + 푏 where 푎, 푏 ∈ 퐹푝, 4푎3 + 27푏2 ≠ 0(푚표푑푝), and 푝 is a large prime. 푃 is a randomly se- lected elements on the elliptic curve E, called the base point, whose order 푛 is a large prime that makes 푛푃 = 푂 , where 푂 is the zero element of the field 퐸(퐹푝), 푛 > 2160, 푛 > 4√푝. A signer chooses a random number 푑 ∈ [1, 푛] as a private key, and computes public key Q = 푑푃. 2.1 ECDSA Signature Generation A signer signs the message 푚 according to the following steps: Step 1: Compute 푒 = 퐻(푚), where 퐻 is the secure hash algorithm. Step 2: Select a random integer 푘 from [1, 푛 − 1], and compute 푘푃 = (푥, 푦). Step 3: Compute 푟 = 푥(푚표푑푛). If 푟 = 0, go back to step 2 and reselect 푘. Step 4: Compute 푠 = 푘−1(푒 + 푑푟)(푚표푑푛). If 푠 = 0, go back to step 2 and reselect 푘. Then the signature on the message m is the pair (푟, 푠). 2.2 ECDSA Signature Verification Anyone can check to see if the signature (푟, 푠) of the message 푚 is valid by completing the following steps: Step 1: Verify that 푟 and 푠 are integers in [1, 푛 − 1]. If not, the signature is invalid. Step 2: Compute 푒 = 퐻(푚), where 퐻 is a same hash function used in signature gen- eration. Step 3: Compute 푤 = 푠−1(푚표푑푛). Step 4: Compute 푢 = 푒푤(푚표푑푛), 푣 = 푟푤(푚표푑푛). Step 5: Compute 푅 = 푢푃 + 푣푄 = (푥, 푦). The signature is valid if 푟 = 푥(푚표푑푛), or otherwise it is invalid. The signer can obviously operate the ECDSA 푡 times (t-ECDSA), and get the signa- ture (푟1, 푠1, 푟2, 푠2, … , 푟푡, 푠푡, ) in 푡 elliptic curves, but this will make the length of the sig- nature long. To fix this, we present a secure multiple elliptic curves digital signature algorithm (MECDSA) in the next section, which can reduce the length of signature. 3 Multiple Elliptic Curves Digital Signature Algorithm In this section, we propose a secure multiple elliptic curves digital signature algorithm (MECDSA), which can avoid any backdoors in the curve used by secp256k1. In this signature scheme, the user can not only choose the number of elliptic curves according to practical security requirements, but also can choose the curve by changing its param- eters. The parameters of MECDSA are same as ECDSA. There are 푡 elliptic curves 2 3 퐸푖: 푦 = 푥 + 푎푖푥 + 푏푖 over finite prime field F푝푖, 푃푖 is the base point whose order is 푛푖, where 푖 = 1,2, … , 푡. In MECDSA, the signer chooses the number of curve and the parameters of the curves. After this, the signer chooses t random numbers 푑푖 ∈ [1, 푛푖] as a private key, and computes the public key 푄푖 = 푑푖푃푖, where 푖 = 1,2, … , 푡. 3.1 MECDSA Signature Generation A signer signs the message m according to the following steps (fig. 1): Step 1: Compute 푒 = 퐻(푚), where 퐻 is the secure hash algorithm. Step 2: Select random integer 푘푖 ∈ [1, 푛푖 − 1], computer 푘푖푃푖 = (푥푖1, 푦푖1), where 푖 = 1,2, … , 푡. Step 3: Compute 푟푖 = 푥푖(푚표푑푛푖). If 푟푖 = 0, go back to step 2 and reselect 푘푖, where 푖 = 1,2, … , 푡. Step 4: Compute 푟 = 푟1 + 푟2 + ⋯ + 푟푡. If 푟 = 0(mod푛푖), return step 2, where 푖 = 1,2, … , 푡. −1 Step 5: Compute 푠푖 = 푘푖 [푒 + 푑푖푟](푚표푑푛푖). If 푠푖 = 0, go back to step 2 and rese- lect 푘푖, where 푖 = 1,2, … , 푡. Then (푟, 푠1, 푠2, … , 푠푡) is taken as the signature of the message 푚. 3.2 MECDSA Signature Verification Anyone can check whether or not the signature (푟, 푠1, 푠2, … , 푠푡) of 푚 is valid by com- pleting the following steps: Step 1: Verify that 푟 and 푠푖 are integers in [t, 푛1 + 푛2 + ⋯ + 푛푡 − 푡] and [1, 푛푖 − 1] respectively, where 푖 = 1, 2, … , 푡. If not, refuse the signature Step 2: Compute 푒 = 퐻(푚), where 퐻 is a same hash function used in signature gen- eration. −1 Step 3: Compute 푤푖 = 푠푖 (푚표푑푛푖), where 푖 = 1,2, … , 푡. Step 4: Compute 푢푖 = 푒푤푖(푚표푑푛푖), 푣푖 = 푟푤푖(푚표푑푛푖), where 푖 = 1,2, … , 푡. Step 5: Compute 푅푖 = 푢푖푃푖 + 푣푖푄푖 = (푥푖, 푦푖), where 푖 = 1,2, … , 푡. Step 6: Compute 푟′푖 = 푥푖(푚표푑푛푖), where 푖 = 1,2, … , 푡. If r = 푟′1 + 푟′2 + ⋯ 푟′푡, accept the signature, otherwise, refuse the signature. Start Random numeber ki kiPi=(xi1,yi1) ri=xi1(modni) Yes ri=0 No r=r1+r2+…+rt Message m Yes r=0(modni) e=H(m) No si=ki(e+rdi)modni Private key di Yes si=0 No Sig(m)=(r,s1,s2,…,st) End Fig.1 MECDSA Signature Algorithm 4 Performance Analysis In the section, we analyze the performance of MECDSA from different perspectives, including validity, security and efficiency. 4.1 Validity Analysis According MECDSA signature generation and signature verification algorithm in MECDSA, we can get: −1 −1 푢푖 = 푒푤푖(푚표푑푛푖) = 푒푠푖 (푚표푑푛푖) = 푒푘푖[푒 + 푑푖푟] (푚표푑푛푖) −1 −1 푣푖 = 푟푤푖(푚표푑푛푖) = 푟푠푖 (푚표푑푛푖) = 푟푘푖[푒 + 푑푖푟] (푚표푑푛푖) So 푅푖 = 푢푖푃푖 + 푣푖푄푖 −1 −1 = [푒푘푖(푒 + 푑푖푟) (푚표푑푛푖)]푃푖 + [푟푘푖(푒 + 푑푖푟) (푚표푑푛푖)]푄푖 −1 −1 = [푒푘푖(푒 + 푑푖푟) (푚표푑푛푖)]푃푖 + 푑푖[푟푘푖(푒 + 푑푖푟) (푚표푑푛푖)]푃푖 −1 = [푘푖(푒 + 푑푖푟) (푒 + 푑푖푟)(푚표푑푛푖)]푃푖 = (푘푖(푚표푑푛푖))푃푖 = 푘푖푃푖 = (푥푖, 푦푖) ′ So 푟′푖 = 푥푖푚표푑푛푖 = 푟푖 and r = 푟′1 + 푟′2 + ⋯ 푟 푡 = 푟1 + 푟2 + ⋯ 푟푡 , where 푖 = 1,2, … , 푡. Therefore, we prove the correctness of MECDSA. 4.2 Security Analysis The security of cryptosystems using elliptic curves hinges on the intractability of dis- crete logarithm problem in the algebraic system. Historically, this problem has received considerable attention from leading mathematicians and cryptologists around the world12-14. Unlike the case of the discrete logarithm problem in finite fields, there is no subexponential-time algorithm known for the elliptic curve discrete logarithm problem (ECDLP). The best algorithm known to data takes exponential time. The security of the proposed MECDSA is based on the difficulty of solving the ECDLP, and is mainly faced with the following attacks. MECDSA security is presented by the following analysis of attacks: (1) The attacker wishes to obtain private key 푑1, 푑2, … , 푑푡 using all information that is available from the scheme.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    9 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us