Skip to main content
Log in

A certificateless linearly homomorphic signature scheme for network coding and its application in the IoT

  • Published:
Peer-to-Peer Networking and Applications Aims and scope Submit manuscript

Abstract

Network coding is an effective method to optimize network throughput and improve routing reliability, and has been widely used in a decentralized Internet of Things system. However, the packet-mixing property of network coding renders transmission susceptible to pollution attacks, which may prevent the reconstruction of the original file. A homomorphic signature scheme is a powerful tool that enables network coding to combat pollution attacks. Although a series of homomorphic signature schemes already exists, no construction has been proposed to support both homomorphic network coding signatures and the certificateless characteristic. In this paper, we construct a certificateless linearly homomorphic signature scheme for network coding, thus avoiding the disadvantages of certificate management and key escrow problems. We then prove the security of the scheme in a random oracle model against an adaptively chosen dataset attack under two types of adversaries. Moreover, performance analysis results show that our scheme has a lower communication overhead and enjoys a comparable computation cost with related schemes.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9

Similar content being viewed by others

Notes

  1. Since we embed the hard problem in the term 1 of Eq. 1, that is, QID = gb, Ppub = ga. In order to successfully answer the signing query, our idea is to eliminate item 1 by carefully setting the values of Ti(i ∈ [N = n + m]) and U while ensuring that the values of Ti and U are random (\( T_{i}=(\frac {g^{u_{i}}}{Q_{ID}} )^{r^{-1}}\), \( U=P^{r}_{pub}=(g^{a})^{r} \)). The item 2 in (2) is further arranged to obtain items 21′ and 22′ in (3). It is not difficult to find that item 21′ can eliminate item 1, because item 21′ and item 1 are inverses of each other in group \(\mathbb { G}_{2} \).

  2. In this case, IDIDk, then \( Q_{ID}=g^{w_{ID}} \), where wID is a known random number, so the required values generated in the process of various queries can be directly brought into the signature algorithm of the proposed scheme to obtain the signature.

  3. Here, the expression of hash value \( T^{*}_{i} \) is different from that of hash value Ti in signing queries. This is because if an adversary outputs a type 1 forgery, the identifier τ never appears in the signing query, so the hash value \( T^{*}_{i} \) corresponding to the identifier τ come from H1 queries.

  4. In detail, \( \boldsymbol {\alpha }\cdot \boldsymbol {v}_{i}= (\alpha _{1}, \cdots , \alpha _{n}, \beta _{1}, \cdots , \beta _{m})\cdot (v_{i1}, \cdots , v_{in}, \underbrace { 0,\cdots , 1}_{i} , \cdots , 0)= \alpha _{1}v_{i1}+ \cdots + \alpha _{n}v_{in}+\beta _{i} = \alpha _{1}v_{i1}+ \cdots + \alpha _{n}v_{in}+\left (-\sum \limits ^{n}_{j=1}\alpha _{j}v_{ij}\right )=0. \) In particular, since we set \( (T_{1}, \cdots , T_{n}, T_{n+1}, \cdots , T_{n+m})=((g^{a} )^{\alpha _{1}}, (g^{a} )^{\alpha _{n}}, (g^{a} )^{\beta _{1}}, \cdots , (g^{a} )^{\beta _{m}} ) \), we have \( \underset {j\in {[N]}}{\prod }T_{j}^{v_{ij}}= \underset {j\in {[n]}}{\prod }(g^{a})^{\alpha _{j}v_{ij}}\cdot \underset {j\in {[m]}}{\prod }(g^{a})^{\beta _{j}v_{i,(n+j)}}=(g^{a})^{\boldsymbol {\alpha }\cdot \boldsymbol {v}_{i}}=1 \)

  5. Since we embed the hard problem in the term of Eq. 6. In order to successfully answer the signing query, our idea is to carefully set the value of Ti(i ∈ [N = n + m]) such that \((\underset {j\in {[N]}}{\prod }T_{j}^{v_{ij}})^{br}=1 \), while ensuring that the values of Ti are random. As we know from the previous, the vector α formed by the exponents of Ti(i ∈ [N = n + m]) satisfies αV, so term in Eq. 6 is equal to 1, that is, \( (g^{ab})^{(\boldsymbol {\alpha }\cdot \boldsymbol {v}_{i})r}=1 \).

  6. Since we embed the hard problem in the term 1 of Eq. 6, that is, T = (gb)t, PKID = ga. In order to successfully answer the signing queries, our idea is to eliminate item 1 by carefully setting the values of Tj(j ∈ [N = n + m]) and U while ensuring that the values of Tj and U are random (\( T_{j}=(\frac {g^{u_{i}}}{T} )^{r^{-1}}\), \( U=PK^{r}_{ID}=(g^{a})^{r} \)). The item 2 in (11) is further arranged to obtain items 21′ and 22′ in (12). It is not difficult to find that item 22′ can eliminate item 1, because item 22′ and item 1 are inverses of each other in group \(\mathbb { G}_{2} \).

  7. In this case, IDIDk, then \( PK_{ID}=g^{x_{ID}} \), where xID is a known random number, so the required values generated in the process of various queries can be directly brought into the signature algorithm of the proposed scheme to obtain the signature.

  8. In detail, \( \boldsymbol {\alpha }\cdot \boldsymbol {v}_{i}= (\alpha _{1}, \cdots , \alpha _{n}, \beta _{1}, \cdots , \beta _{m})\cdot (v_{i1}, \cdots , v_{in}, \underbrace { 0,\cdots , 1}_{i} , \cdots , 0)= \alpha _{1}v_{i1}+ \cdots + \alpha _{n}v_{in}+\beta _{i} = \alpha _{1}v_{i1}+ \cdots + \alpha _{n}v_{in}+(-\sum \limits ^{n}_{j=1}\alpha _{j}v_{ij})=0. \) In particular, since we set \( (T^{\prime }_{1}, \cdots , T^{\prime }_{n}, T^{\prime }_{n+1}, \cdots , T^{\prime }_{n+m})=((g^{b} )^{\alpha _{1}}, (g^{b} )^{\alpha _{n}}, (g^{b} )^{\beta _{1}}, \cdots , (g^{b} )^{\beta _{m}} ) \), we have \( \underset {j\in {[N]}}{\prod }(T^{\prime }_{j})^{v_{ij}}= \underset {j\in {[n]}}{\prod }(g^{b})^{\alpha _{j}v_{ij}}\cdot \underset {j\in {[m]}}{\prod }(g^{b})^{\beta _{j}v_{i,(n+j)}}=(g^{b})^{\boldsymbol {\alpha }\cdot \boldsymbol {v}_{i}}=1 \)

References

  1. Atzori L, Iera A, Morabito G. (2010) The internet of things: A survey. Comput Netw 54:2787–2805

    Article  Google Scholar 

  2. Alaybeyi SB (2016) Pragmatic strategies to improve industrial IoT Security. tech rep Gartner

  3. Ren H, Li H, Dai Y, Yang K, Lin X. (2018) Querying in internet of things with privacy preserving: Challenges, solutions and opportunities. IEEE Netw 32(6):144–151

    Article  Google Scholar 

  4. Krohn M, Freedman M, Mazieres D (2004) On the-fly verification of rateless erasure codes for efficient content distribution. In: Proceedings of IEEE symposium on security and privacy Berkeley, CA, USA, pp 226–240

  5. Li S -Y R, Yeung R, Cai N. (2003) Linear network coding. IEEE Trans Inform Theory 49:371–381

    Article  MathSciNet  Google Scholar 

  6. Jin J-Q, Ho T, Viswanathan H (2006) Comparision of network coding and 1198: non-network coding schemes for multi-hop wireless networks. In: Proceedings of 2006 IEEE international symposium on information theory (ISIT 2006), Seattle, WA, USA, pp 197–201

  7. Lun D, Medard M, Koetter R, Effros M (2005) Further results on coding for reliable communication over packet networks. In: Proceedings of international symposium on information theory (ISIT 2005), Adelaide, SA, Australia, pp 1848–1852

  8. Boneh D, Freeman D, Katz J, Waters J (2009) Signing a linear subspace: Signature schemes for network coding. In: Proceedings of international workshop on public key cryptography (PKC 2009), vol 5443. Springer, Berlin, pp 68–87

  9. Liu X, Huang J, Wu Y, Zong G. (2019) A privacy-preserving signature scheme for network coding. IEEE Access 7:109739–109750

    Article  Google Scholar 

  10. Li T, Chen W, Tang Y, Yan H. (2018) A homomorphic network coding signature scheme for multiple sources and its application in IoT. Secur Commun Netw 2018:1–6

    Google Scholar 

  11. Agrawal S, MACs Boneh D. (2009) Homomorphic MAC-based integrity for network coding. In: Proceedings of international conference on applied cryptography and network security (ACNS 2009), vol 5536. Springer, Berlin, pp 292–305

  12. Chang J, Ji Y, Xu M, Xue R. (2019) General transformations from single-generation to multi-generation for homomorphic message authentication schemes in network coding. Future Gener Comp Sy 91:426–425

    Article  Google Scholar 

  13. Esfahani A, Mantas G, Rodriguez J (2016) An efficient null space-based homomorphic MAC scheme against tag pollution attacks in RLNC. IEEE Commun Lett 20(5):918–921

    Article  Google Scholar 

  14. Esfahani A, Yang D, Mantas G, Nascimento A, Rodriguez J. (2015) Dual-homomorphic message authentication code scheme for network codingenable wireless sensor networks. Int J Distrib Sensor Netw 11(7):1–10

    Article  Google Scholar 

  15. Cheng C, Lee J, Jiang T, Takagi T. (2016) Security analysis and improvements on two homomorphic authentication schemes for network coding. IEEE Trans Inf Forensics Secur 15(5):993– 1002

    Article  Google Scholar 

  16. Shamir A (1984) Identity-based cryptosystems and signature schemes. In: Proceedings of the CRYPTO 1984, Santa Barbara, CA, USA, pp 47–53

  17. Hu X, Zheng S, Gong J et al (2019) Enabling linearly homomorphic signatures in network coding-based named data networking. In: Proceedings of the 14th international conference on future internet technologies (CFI 2019). ACM, New York, pp 1–4

  18. Liu X, Huang J, Zong G (2018) Public auditing for network coding based secure cloud storage. In: 2018 17th IEEE international conference on trust, security and privacy in computing and communications/ 12th ieee international conference on big data science and engineering (TrustCom/BigDataSE 2018) New York, NY, USA, pp 713–720

  19. Schabhuser L, Buchmann J, Struck P (2017) A linearly homomorphic signature scheme from weaker assumption. In: IMA international conference on cryptography and coding (IMACC 2017), vol 10655. Springer, Cham, pp 261–279

  20. Fiore D, Matrioska PE (2018) A compiler for multi-key homomorphic signatures. In: Proceedings of international conference on security and cryptography for networks (SCN 2018), vol 11035. Springer, Cham, pp 43–62

  21. Lai RWF, Tai RKH, Wong HWH et al (2018) Multi-key homomorphic signatures unforgeable under insider corruption. In: Proceedings of international conference on the theory and application of cryptology and information security (ASIACRYPT 2018), Lecture notes in computer science, vol 11273. Springer, Cham, pp 465–492

  22. Schabhüser L, Butin D, Buchmann J (2019) Context hiding multi-key linearly homomorphic authenticators. In: Proceedings of cryptographers’ track at the RSA conference (CT-RSA 2019), vol 11405. Springer, Cham, pp 493–513

  23. Lin Q, Li J, Huang Z, Chen W, Shen J. (2018) A short linearly homomorphic proxy signature scheme. IEEE Access 6:12966–12972

    Article  Google Scholar 

  24. Zhang Y, Jiang Y, Li B, Zhang M (2017) An efficient identity-based homomorphic signature scheme for network coding. In: Proceedings of international conference on emerging internetworking, data and web technologies (EIDWT 2017), vol 6. Springer, Cham, pp 524–531

  25. Sadrhaghighi S, Khorsandi S (2016) An identity-based digital signature scheme to detect pollution attacks in intra-session network coding. In: Proceedings of 13th international iranian society of cryptology conference on information security and cryptology (ISCISC 2016) Tehran, Iran, pp 7–12

  26. Lin Q, Yan H, Huang Z, Chen W, Shen J, Tang Y. (2018) An ID-based linearly homomorphic signature scheme and its application in blockchain. IEEE Access 6:20632–20640

    Article  Google Scholar 

  27. Chang J, Ma H, Zhang A, Xu M, Xue R. (2019) RKA security of identity-based homomorphic signature scheme. IEEE Access 7:50858–50868

    Article  Google Scholar 

  28. Al-Riyami SS, Paterso KG (2003) Certificateless public key cryptography. In: Proceedings of 13th international Iranian society of cryptology conference on information security and international conference on the theory and application of cryptology and information security (ASIACRYPT 2003), vol 2894. Springer, Berlin, pp 452–473

  29. Islam S H, Biswas G. (2014) Certificateless short sequential and broadcast multisignature schemes using elliptic curve bilinear pairings. J King Saud Univ Comp Info Sci 26(1):89–97

    Google Scholar 

  30. Wu L, Zhang Y, Ma M M, et al. (2019) Certificateless searchable public key authenticated encryption with designated tester for cloud-assisted medical Internet of Things. Ann Telecommun 74:423–434

    Article  Google Scholar 

  31. Wu T, Chen C, Wang K. (2019) Security analysis and enhancement of a certificateless searchable public key encryption scheme for IIot environments. IEEE Access 7:49232–49239

    Article  Google Scholar 

  32. Yang X D, Pei X Z, Chen G L, Li T, Wang M D, Wang C. F. (2019) A strongly unforgeable certificateless signature scheme and its application in IOT environments. Sensors 19(12):1–27

    Article  Google Scholar 

  33. Zhang Y, Deng H, Zheng D. et al (2019) Efficient and robust certificateless signature for data crowdsensing in cloud-assisted industrial IoT. IEEE T Ind Inform 15(9):5099–5108

    Article  Google Scholar 

  34. Karati A, Islam S H, Karuppiah M. et al (2019) Provably secure and lightweight certificateless signature scheme for IIoT environments. IEEE T Ind Inform 14(9):3701–3711

    Google Scholar 

  35. Yeh K -H, Su C, Choo K R, Chiu W. (2017) A novel certificateless signature scheme for smart objects in the internet-of-things. Sensors 17(5):1–17

    Article  Google Scholar 

  36. Krohn MN, Freedman MJ, Mazi‘eres D (2004) On-the fly verification of rateless erasure codes for efficient content distribution. In: Proceedings of IEEE symposium on security and privacy (SECPRI 2004), Berkeley, CA, USA, USA, pp 226–239

  37. Attrapadung N, Libert B (2011) Homomorphic network coding signatures in the standard model. In: Proceedings of international workshop on public key cryptography (PKC 2011), vol 6571. Springer, Berlin, pp 17–34

  38. Gennaro R, Katz J, Krawczyk H, Rabin T (2010) Secure network coding over the integers. In: Proceedings of international workshop on public key cryptography (PKC 2010), vol 6056. Springer, Berlin, pp 142–160

  39. Boneh D, Freeman D (2011) Linearly homomorphic signatures over binary fields and new tools for lattice-based signatures. In: Proceedings of international workshop on public key cryptography (PKC 2011), vol 6571. Springer, Berlin, pp 1–16

  40. Boneh D, Freeman D (2011) Homomorphic signatures for polynomial functions. In: Proceedings of annual international conference on the theory and applications of cryptographic techniques (EUROCRYPT 2011), vol 6632. Springer, Berlin, pp 149–168

  41. Gorbunov S, Vaikuntanathan V, Wichs D (2015). In: Proceedings of the forty-seventh annual ACM symposium on theory of computing (STOC New York, NY, USA, pp 469–477

  42. Luo F, Wang F, Wang K, Chen K. (2019) A more efficient leveled strongly-unforgeable fully homomorphic signature scheme. Inf Sci 480:70–89

    Article  MathSciNet  Google Scholar 

  43. Shang F, Zhao X, Wang C, Liu J. (2015) Quantum homomorphic signature. Quantum Inf Process 14:393–410

    Article  MathSciNet  Google Scholar 

  44. Shang T, Pei Z, Chen R, Liu G. (2019) Quantum homomorphic signature with repeatable verification. CMC-Comput Mater Con 159(1):149–165

    Google Scholar 

  45. Li Z, Xu G, Chen L, Yang Y. (2019) Secure quantum network coding based on quantum homomorphicmessage authentication. Quantum Inf Process 18:1–21

    Article  Google Scholar 

  46. Seo J, Emura K, Xagawa K, Yoneyama K. (2018) Accumulable optimistic fair exchange from verifiably encrypted homomorphic signatures. Int J Inf Secur 17:193–220

    Article  Google Scholar 

  47. Fan X, Wu T, Zheng Q. (2019) HSE-Voting: A secure high-efficiency electronic voting scheme based on homomorphic signcryption. Future Gener Comp Sy 1–31. https://doi.org/10.1016/j.future.2019.10.016

  48. Fiore JD, Mitrokotsa A, Nizzardo L et al (2016) Multi-key homomorphic authenticators. In: Proceedings of international conference on the theory and application of cryptology and information security (ASIACRYPT 2016), vol 10032. Springer, Berlin, pp 1–41

  49. Choon JC, Cheon JH (2003) An identity-based signature from gap Diffie-Hellman groups. In: Proceedings of international workshop on public key cryptography (PKC 2003), vol 2567. Springer, Berlin, pp 18–30

  50. Hess F (2002) Efficient identity based signature schemes based on pairings. In: Proceedings of International Workshop on Selected Areas in Cryptography (SAC 2002), vol 2595. Springer, Berlin, pp 1–15

  51. Lynn B et al (2013) Pairing-based crytography library. https://crypto.stanford.edu/pbc/

Download references

Acknowledgements

The authors thank for the help of reviewers and editors. This work was supported by the Characteristic innovation project of general colleges and universities in Guangdong Province, Department of education of Guangdong Province (2020KTSCX126).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Bin Wu.

Ethics declarations

Conflict of interests

The authors declare that they have no conflict of interest.

Additional information

Publisher’s note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Appendix: Proof of Lemma 2

Appendix: Proof of Lemma 2

Proof

Assume that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) represents a malicious key generation center against the unforgeability of our CL-LHS scheme. We construct a simulator \(\mathcal C \) that uses \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as a subroutine to solve the CDH problem. According to the definition of Game 2, adversary \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) eventually outputs either a Type 1 forgery or a Type 2 forgery. \( \mathcal {C} \) guesses the type of forgery to be output by \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) based on the result of flipping a coin randomly. Clearly, \( \mathcal {C} \) guesses correctly with a probability of \( \frac {1}{2} \).

Case 1 (Type 1 forgery:):

In this case, \( \mathcal {C} \) has guessed that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) will output a Type 1 forgery. Given a random instance \( (\mathbb {G}_{1}, \mathbb {G}_{2}, e, p, g, g^{a}, g^{b}) \) of the CDH problem, \( \mathcal {C} \) interacts with \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as follows:

  • Setup: \( \mathcal {C} \) runs the setup, randomly chooses \( s\in { \mathbb {F}^{*}_{p}} \) as the master key, and then initializes \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) with the master key s and params= \( (\mathbb {G}_{1}, \mathbb {G}_{2}, e, p, g, P_{pub}=g^{s}) \).

  • Queries: \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) can issue queries to the following oracles, and \( \mathcal {C} \) responds to \(\mathcal {A}_{\mathcal {I}\mathcal {I}} \) as follows:

    • H Queries: \( \mathcal {C} \) maintains a list referred to as LH. Suppose that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) makes at most qH queries. \( \mathcal {C} \) randomly chooses k ∈{1, 2, ⋯ , qH} and guesses that the k-th identity IDk submitted by \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) is the challenge identity. When \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) makes an H query on identity ID, \( \mathcal {C} \) picks a random number \( w_{ID}\in { \mathbb {F}^{*}_{p}} \), outputs \( Q(ID)=H(ID)=g^{w_{ID}} \), and adds < ID, H(ID), wID > to LH.

    • Public Key Queries: \( \mathcal {C} \) maintains a list LPK that is initially empty. When an identity ID is submitted for this query, \( \mathcal {C} \) responds as follows:

    1. (1)

      If ID = IDk, \( \mathcal {C} \) outputs the public key PKID = ga and adds < IDk, ga,⊥> to LPK.

    2. (2)

      Otherwise, \( \mathcal {C} \) randomly chooses \( x_{ID}\in {\mathbb {F}^{*}_{p}} \) as the secret value. Then, \( \mathcal {C} \) returns the public key \( PK_{ID}= g^{x_{ID}} \) to \( \mathcal {A}_{\mathcal {I}} \) and saves < ID, PKID, xID > in LPK.

    • Private Key Extraction: \( \mathcal {C} \) maintains a list LSK that is initially empty. Given an identity ID, \(\mathcal {C} \) performs the following actions:

    1. (1)

      If IDIDk, it recovers the tuple < ID, H(ID), wID > from LH and < ID, PKID, xID > from LPK. Then, \( \mathcal {C} \) returns the secret key \( SK_{ID}=((g^{w_{ID}})^{s}, x_{ID}) \) to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) and adds < ID, SKID > to LSK.

    2. (2)

      Otherwise, \( \mathcal {C} \) aborts.

    • H1 Queries: Suppose (ID, Ppub, τ, U, i) is submitted to oracle H1(⋅). \( \mathcal {C} \) first scans < (ID, Ppub, τ, U, i), Ti, ti > from the list \( L_{H_{1}} \) to check whether Ti has already been defined. If so, \( \mathcal {C} \) returns it. Otherwise, \( \mathcal {C} \) randomly chooses a number \( t_{i}\in { \mathbb {F}^{*}_{p}} \), returns \( T_{i}=g^{t_{i}} \) to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as the hash value of H1(ID, Ppub, τ, U, i), and stores the value in the list \( L_{H_{1}} \).

    • H2 Queries: Suppose (ID, PKID, τ, i) is submitted to oracle H2(⋅). \( \mathcal {C} \) first scans \( <(ID, PK_{ID}, \tau , i), T^{\prime }_{i}, t^{\prime }_{i}> \) from the list \( L_{H_{2}} \) to check whether \( T^{\prime }_{i} \) has already been defined. If so, \( \mathcal {C} \) returns it. Otherwise, \( \mathcal {C} \) chooses a random number \( t^{\prime }_{i}\in {\mathbb {F}^{*}_{p}} \), returns \( T^{\prime }_{i}=g^{t^{\prime }_{i}} \) to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as the hash value of H2(ID, PKID, τ, i), and stores the value in the list \( L_{H_{2}} \).

    • H3 Queries: \( \mathcal {C} \) maintains a list \(L_{H_{3}} \) containing tuples < (ID, PKID), T, t >. Upon receiving \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \)’s query on (ID, PKID), if it already exists in \(L_{H_{3}} \), \( \mathcal {C} \) returns T. Otherwise, \( \mathcal {C} \) chooses a random number \( t\in { \mathbb {F}^{*}_{p}} \), returns T = (gb)t to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as the hash value of H3(ID, PKID), and saves the value in the list \( L_{H_{3}} \).

    • Signing Queries: Given an identity ID and a vector space \( V\subset \mathbb {F}^{N}_{p} \) described by augmented basis vectors \( \boldsymbol {v}_{1}, \cdots , \boldsymbol {v}_{m} \in \mathbb {F}^{N}_{p}\), where \( \boldsymbol {v}_{i}=(v_{i1}, \cdots ,v_{in}, \underbrace { 0,\cdots , 1}_{i} , \cdots , 0) \), if ID is the challenge identity (e.g., ID = IDk), \( \mathcal {C} \) preforms the following steps:

    1. (1)

      Randomly choose an identifier \( \tau \leftarrow \{0, 1\}^{k} \) and numbers \( r, u_{i}\in {\mathbb {F}^{*}_{p}} (i\in [N])\), and set \( U={PK_{ID}}^{r} \).

    2. (2)

      Define the hash values of H1(ID, Ppub, τ, U, i) as \(T_{i}=(\frac {g^{u_{i}}}{T} )^{r^{-1}} \in {\mathbb {G}_{1}}\), where T = H3(ID, PKID) = (gb)t. Abort if H1(ID, Ppub, τ, U, i) has already been queried for some i ∈ [N].

    3. (3)

      Recover \( T^{\prime }_{i} (i\in [N]) \) and QID from \( L_{H_{2}} \) and LH, respectively. If there are no such items, \( \mathcal {C} \) makes queries on oracles H2(⋅) and H(⋅).

    4. (4)

      Finally, compute

      $$ W_{i} =(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot(PK_{ID})^{\underset{j\in{[N]}}{\sum}u_{j}v_{ij} + \underset{j\in{[N]}}{\sum}t^{\prime}_{j}v_{ij}} $$

    Now, σi = (U, Wi)(i ∈ [m]) are returned to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \). Each σi is a valid signature, since

    $$ \begin{array}{@{}rcl@{}} &&\underline{e(Q_{ID}, P_{pub})^{\sum\limits_{j\in{[N]}}v_{ij}}}_{1}\cdot \underline{e\left( \prod\limits_{j\in{[N]}}T_{j}^{v_{ij}}, U\right)}_{2}\cdot e\left( \prod\limits_{j\in{[N]}}{T_{j}^{\prime}}^{v_{ij}} \cdot T^{\sum\limits_{j\in{[N]}}v_{ij}}, PK_{ID}\right) \end{array} $$
    (6)
    $$ \begin{array}{@{}rcl@{}} &=&\underline{e(Q_{ID}, P_{pub})^{\sum\limits_{j\in{[N]}}v_{ij}}}_{1}\cdot \underline{e\left( \prod\limits_{j\in{[N]}}(\frac{g^{u_{j}}}{Q_{ID}} )^{r^{-1}{v_{ij}}}, P^{r}_{pub}\right)}_{2'}\cdot e\left( g^{\sum\limits_{j\in{[N]}}t^{\prime}_{j}v_{ij} + t\sum\limits_{j\in{[N]}}v_{ij}}, PK_{ID}\right)\\ &=&\underline{e(Q_{ID}, P_{pub})^{\sum\limits_{j\in{[N]}}v_{ij}}}_{1}\cdot \underline{e(Q_{ID}, P_{pub})^{-\!\sum\limits_{j\in{[N]}}v_{ij}}}_{2'_{(1)}}\cdot \underline{e\left( g^{\sum\limits_{j\in{[N]}}u_{j}v_{ij}}, P_{pub}\right)}_{2'_{(2)}} \end{array} $$
    (7)
    $$ \begin{array}{@{}rcl@{}} &&\cdot e\left( g^{\sum\limits_{j\in{[N]}}t^{\prime}_{j}v_{ij} + \sum\limits_{j\in{[N]}}tv_{ij}}, PK_{ID}\right) \end{array} $$
    (8)
    $$ \begin{array}{@{}rcl@{}} &=& e\left( (P_{pub})^{\sum\limits_{j\in{[N]}}u_{j}v_{ij}}\cdot (PK_{ID})^{\sum\limits_{j\in{[N]}}t^{\prime}_{j}v_{ij} + \sum\limits_{j\in{[N]}}tv_{ij}}, g\right) \end{array} $$
    (9)
    $$ \begin{array}{@{}rcl@{}} &=& e (W_{i}, g) \end{array} $$
    (10)

    The derivation process of the core part of the above series of equations is shown as follows.Footnote 6

    Otherwise,Footnote 7\( \mathcal {C} \) randomly chooses an identifier \( \tau \leftarrow \{0, 1\}^{k} \) and a number \( r\in {\mathbb {F}^{*}_{p}}\), sets U = gr, and computes

    $$ W_{i} =(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot U^{\underset{j\in{[N]}}{\sum}t_{j}v_{ij}}\cdot (PK_{ID})^{\underset{j\in{[N]}}{\sum}t^{\prime}_{j}v_{ij}}\cdot(g^{b})^{tx_{ID}\underset{j\in{[N]}}{\sum}tv_{ij}} $$

    The verification of the validity of the above signature is straightforward and is omitted here.

  • Output: Eventually, \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) outputs a tuple \( (ID^{*}, PK_{ID^{*}} \), y, τ, σ), where \( \boldsymbol {v}=(v^{*}_{1}, \cdots , v^{*}_{N} ) \), σ = (U, W). If IDIDk, then \( \mathcal {C} \) aborts. Otherwise, for each i ∈ [N], it retrieves the items \( T^{*}_{i} \) from \( L_{H_{1}} \), the items \( T^{\prime *}_{i} \) from \( L_{H_{2}} \), and the item T from \( L_{H_{3}} \). Note that \( T^{*}_{i} =g^{t^{*}_{i}}, T^{\prime *}_{i} =g^{t^{\prime *}_{i}}, T^{*} =(g^{b})^{t^{*}}\). If \( \mathcal {A}_{\mathcal {I}} \) successfully outputs Type 1 forgery signatures, the file identifier ττi for all τi appears in signing queries, and the following equation holds:

    $$ \begin{array}{@{}rcl@{}} e \left( W^{*},g\right)&=&e(Q_{ID^{*}}, P_{pub})^{\underset{i\in{[N]}}{\sum}v^{*}_{i}}\cdot e(\underset{i\in{[N]}}{\prod}(T^{*}_{i})^{v^{*}_{i}}, U^{*})\cdot e(\underset{i\in{[N]}}{\prod}{(T^{\prime*}_{i}})^{v^{*}_{i}} \cdot T^{\underset{i\in{[N]}}{\sum}v^{*}_{i}}, PK_{ID^{*}})\\ &=&e((Q_{ID^{*}})^{s\underset{i\in{[N]}}{\sum}v^{*}_{i}}\cdot (U^{*})^{\underset{i\in{[N]}}{\sum}t^{*}_{i}v^{*}_{i}}\cdot(PK_{ID^{*}})^{\underset{i\in{[N]}}{\sum}t^{\prime*}_{i}v^{*}_{i}}\cdot(g^{ab})^{t^{*}\underset{i\in{[N]}}{\sum}v^{*}_{i}} , g) \end{array} $$

    Therefore, by the nondegenerate property, we have the solution of the CDH problem as follows:

    $$ \left( \frac{W^{*}}{(Q_{ID^{*}})^{s\underset{i\in{[N]}}{\sum}v^{*}_{i}} \cdot (U^{*})^{\underset{i\in{[N]}}{\sum}t^{*}_{i}v^{*}_{i}}\cdot (PK_{ID^{*}})^{\underset{i\in{[N]}}{\sum}t^{\prime*}_{i}v^{*}_{i}} }\right)^{\frac{1}{t^{*}\underset{i\in{[N]}}{\sum}v^{*}_{i}}}. $$

Now, we evaluate \( \mathcal {C} \)’s probability of success.

We first analyze the probability of aborting in performing a signing query. The probability of the event that \( \mathcal {C} \) responds to two distinct signature queries by choosing the same identifier τ is at most \( \frac {{q_{s}^{2}}}{2^{k}}\), while the probability of the event that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) has already requested the value of H1(ID, Ppub, τ, U, i) for some i is at most \( \frac {q_{H_{1}}\cdot q_{s}}{2^{k}}\).

It is not hard to see that the probability of not aborting in key extraction queries is \( (1-\frac {1}{q_{H}})^{q_{sk}} \), and the probability of not aborting in the output stage is \( \frac {1}{q_{H}} \), where qs, qH, qsk are the number of signing queries, H is the number of hash queries and private key extraction is performed by \(\mathcal {A}_{\mathcal {I}\mathcal {I}} \).

Thus, if \(\mathcal {A}_{\mathcal {I}\mathcal {I}} \) has an advantage \(Adv_{\mathcal {A}_{\mathcal {I}\mathcal {I}}}^{CL-LHS}(k)\) in forging a signature in Game 2, then \( \mathcal {C} \) can solve the CDH problem with probability

$$ \begin{array}{@{}rcl@{}} \left( \frac{1}{2}Adv_{\mathcal{A}_{\mathcal{I}\mathcal{I}}}^{CL-LHS}(k)-\frac{{q_{s}^{2}}+q_{H_{1}}\cdot q_{s}}{2^{k}}\right)\cdot\left( 1-\frac{1}{q_{H}}\right)^{q_{sk}}\cdot \frac{1}{q_{H}} \end{array} $$
Case 2 (Type 2 forgery:):

In this case, \( \mathcal {C} \) has guessed that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) will output a Type 2 forgery. Given a CDH instance \( (\mathbb {G}_{1}, \mathbb {G}_{2}, e, p, g, g^{a}, g^{b}) \), the goal of \( \mathcal {C} \) is to compute the value of gab by using \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as a subroutine. \( \mathcal {C} \) interacts with \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as follows:

  • Setup: \( \mathcal {C} \) chooses a random number \( s\in { \mathbb {F}^{*}_{p}} \) as the master key and sets Ppub = gs and params= \( (\mathbb {G}_{1}, \mathbb {G}_{2},{e}, p, g, P_{pub}=g^{s}) \). It invokes \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) on the input params and master key s.

  • Queries: \( \mathcal {C} \) simulates the oracle queries of \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) as follows:

    • H Queries: \( \mathcal {C} \) maintains a list LH that is initially empty. Suppose that \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) makes at most qH queries. \( \mathcal {C} \) randomly chooses k ∈{1, 2, ⋯ , qH} and guesses that the k-th identity IDk submitted by \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) is the challenge identity. When \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) makes an H query on identity ID, \( \mathcal {C} \) picks a random number \( w_{ID}\in { \mathbb {F}^{*}_{p}} \), outputs \( Q(ID)=H(ID)=g^{w_{ID}} \), and adds < ID, H(ID), wID > to LH.

    • Public Key Queries: \( \mathcal {C} \) maintains a list referred to as LPK. Given an identity ID, \( \mathcal {C} \) responds as follows:

    1. (1)

      If ID = IDk, \( \mathcal {C} \) outputs the public key PKID = ga and adds < IDk, ga,⊥> to LPK.

    2. (2)

      Otherwise, \( \mathcal {C} \) randomly chooses \( x_{ID}\in { \mathbb {F}^{*}_{p}} \) as the secret value. Then, \( \mathcal {C} \) returns the public key \( PK_{ID}= g^{x_{ID}} \) to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) and saves < ID, PKID, xID > in LPK.

    • Private Key Extraction: \( \mathcal {C} \) maintains a list LSK containing tuples < ID, SKID >. Given an identity ID, \( \mathcal {C} \) performs the following actions:

    1. (1)

      If IDIDk, it recovers the tuple < ID, H(ID), wID > from LH and < ID, PKID, xID > from LPK. Then, \( \mathcal {C} \) returns the secret key \( SK_{ID}=((g^{w_{ID}})^{s}, x_{ID}) \) to \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) and adds < ID, SKID > to LSK.

    2. (2)

      Otherwise, \( \mathcal {C} \) aborts.

    • H1 Queries: Suppose (ID, Ppub, τ, U, i) is submitted to oracle H1(⋅). \( \mathcal {C} \) first scans for < (ID, Ppub, τ, U, i), Ti, ti > in the list \( L_{H_{1}} \) to check whether Ti has already been defined. If so, \( \mathcal {C} \) returns it. Otherwise, \( \mathcal {C} \) chooses a random number \( t_{i}\in {\mathbb {F}^{*}_{p}} \), returns \( T_{i}=g^{t_{i}} \) to \( \mathcal {A}_{\mathcal {I}} \) as the hash value of H1(ID, Ppub, τ, U, i), and stores the value in the list \( L_{H_{1}} \).

    • H2 Queries: Suppose (ID, PKID, τ, i) is submitted to oracle H2(⋅). \( \mathcal {C} \) first scans for \( <(ID, PK_{ID}, \tau , i), T^{\prime }_{i}, t^{\prime }_{i}> \) in the list \( L_{H_{2}} \) to check whether \( T^{\prime }_{i} \) has already been defined. If so, \( \mathcal {C} \) returns it. Otherwise, \( \mathcal {C} \) selects \( t^{\prime }_{i}\in {\mathbb {F}^{*}_{p}} \) at random, returns \( T^{\prime }_{i}=g^{t^{\prime }_{i}} \) to \( \mathcal {A}_{\mathcal {I}} \) as the hash value of H2(ID, PKID, τ, i), and stores the value in the list \( L_{H_{2}} \).

    • H3 Queries: \( \mathcal {C} \) maintains a list \( L_{H_{3}} \) containing tuples < (ID, PKID), T, t >. Taking (ID, PKID) as input, if it already exists in \(L_{H_{3}} \), \( \mathcal {C} \) returns T. Otherwise, \( \mathcal {C} \) randomly chooses \( t\in { \mathbb {F}^{*}_{p}} \), returns H3(ID, PKID) = gt to \( \mathcal {A}_{\mathcal {I}} \), and saves < (ID, PKID), T, t > in \( L_{H_{3}} \).

    • Signing Queries: Given an identity ID and a vector space \( V\subset \mathbb {F}^{N}_{p} \) described by augmented basis vectors \(\boldsymbol { v}_{1}, \cdots , \boldsymbol {v}_{m} \in \mathbb {F}^{N}_{p}\), where \( \boldsymbol {\boldsymbol {v}}_{i}=(v_{i1}, \cdots , v_{in}, \underbrace { 0,\cdots , 1}_{i} , \cdots , 0) \), \( \mathcal {C} \) preforms the following steps:

    1. (1)

      Randomly choose an identifier \( \tau \leftarrow \{0, 1\}^{k} \) and numbers \( r, \alpha _{1}, \cdots , \alpha _{n}\in {\mathbb {F}^{*}_{p}}\), and set U = gr.

    2. (2)

      Set n = Nm, and for each i ∈ [n], compute

      $$ \begin{array}{@{}rcl@{}} T^{\prime}_{i}=H_{2} (ID, PK_{ID}, \tau, i)=(g^{b})^{\alpha_{i}} \end{array} $$

      For each i ∈ [m], compute

      $$ \begin{array}{@{}rcl@{}} \beta_{i}&=&-\underset{j\in{[n]}}{\sum}\alpha_{j}v_{ij}\\ T^{\prime}_{n+i}&=&H_{2} (ID, PK_{ID}, \tau, n+i)=(g^{b} )^{\beta{i}} \end{array} $$

      and set α = (α1, ⋯ , αn, β1, ⋯ , βm). Now observe that we constructed α so that αV (i.e., αv = 0, for all vV = Span{v1, ⋯ , vm}).Footnote 8\( \mathcal {C} \) aborts if H2(ID, PKID, τ, i) has already been queried for some i ∈ [N].

    3. (3)

      Recover Ti, T and SKID from \( L_{H_{1}} \), \( L_{H_{3}} \) and LSK, respectively. If there are no such items, \( \mathcal {C} \) makes queries on the corresponding oracle.

    4. (4)

      Compute

      $$ \begin{array}{@{}rcl@{}} W_{i} =(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot U^{\underset{j\in{[N]}}{\sum}t_{j}v_{ij}}\cdot (PK_{ID})^{t\underset{j\in{[N]}}{\sum}v_{ij}} \end{array} $$
    5. (5)

      Return τ and σ = (σ1, ⋯ , σm); here, σi = (U, Wi).

    Now, we show that the signatures σi are valid signatures, since

    $$ \begin{array}{@{}rcl@{}} W_{i} &=&(D_{ID})^{\underset{j\in{[N]}}{\sum}v_{ij}}\cdot \left( \underset{j\in{[N]}}{\prod}T_{j}^{v_{ij}}\right)^{r}\cdot \left( \underset{j\in{[N]}}{\prod}{T_{j}^{\prime}}^{v_{ij}}\cdot T^{\underset{j\in{[N]}}{\sum}v_{ij}}\right)^{x_{ID}} \\ &=&(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot \left( g^{\underset{j\in{[N]}}{\sum}t_{j}v_{ij}}\right)^{r}\cdot \left( \underset{j\in{[n]}}{\prod}(g^{b})^{\alpha_{j}v_{ij}}\cdot \underset{j\in{[m]}}{\prod}(g^{b})^{\beta_{j}v_{i,(n+j)}} \right)^{a}\cdot \left( g^{t\underset{j\in{[N]}}{\sum}v_{ij}}\right)^{a}\\ &=&(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot U^{\underset{j\in{[N]}}{\sum}t_{j}v_{ij}}\cdot (g^{ab})^{\boldsymbol {\alpha}\cdot \boldsymbol{v}_{i}}\cdot (PK_{ID})^{\underset{j\in{[N]}}{\sum}tv_{ij}} \\ &=&(Q_{ID})^{s\underset{j\in{[N]}}{\sum}v_{ij}}\cdot U^{\underset{j\in{[N]}}{\sum}t_{j}v_{ij}}\cdot (PK_{ID})^{\underset{j\in{[N]}}{\sum}tv_{ij}} \end{array} $$

    Since we constructed α such that αv = 0 for all vV, the signatures output by \( \mathcal {C} \) in step (5) of signing queries are valid signatures.

  • Output: Eventually, \( \mathcal {A}_{\mathcal {I}\mathcal {I}} \) outputs \( ID^{*}, PK_{ID^{*}}\), an identifier τ, a nonzero vector y = (y1, ⋯ , yN) and signatures \( \sigma _{i}^{*}=(U^{*}, W^{*}_{i}), i\in {[m]}\). If IDIDk, then \( \mathcal {C} \) aborts.

    If \( \mathcal {A}_{\mathcal {I}} \) successfully outputs Type 2 forgery signatures σ, then τ has been used to answer a vector subspace V under a signature query, but yV; it is known that \( T^{\prime *}_{i}=(g^{b} )^{a_{i}} (i\in {[n]})\) and \( T^{\prime *}_{n+i}=(g^{b} )^{\beta {i}} (i\in {[m]}) \). \( \mathcal {C} \) recovers \( T^{*}_{i} \) from list \( L_{H_{1}} \), T from list \( L_{H_{3}} \) and \( D_{ID^{*}} \) from list LSK; then, the following equation holds:

    $$ \begin{array}{@{}rcl@{}} &&e \left( \underset{i\in{[m]}}{\prod}{(W^{*}_{i})}^{y_{n+i}}, g\right)\\ &=&e\left( Q_{ID^{*}}^{\underset{i\in{[N]}}{\sum}y_{i}}, P_{pub}\right)\cdot e\left( \underset{i\in{[N]}}{\prod}{(T^{*}_{i})}^{y_{i}}, U^{*}\right)\cdot e\left( \underset{i\in{[N]}}{\prod}{(T^{\prime*}_{i})}^{y_{i}} \cdot {(T^{*})}^{\underset{i\in{[N]}}{\sum}y_{i}}, PK_{ID^{*}}\right)\\ &=&e\left( (Q_{ID})^{s\underset{i\in{[N]}}{\sum}y_{i}}, g\right)\cdot e\left( (U^{*})^{\underset{i\in{[N]}}{\sum}t^{*}_{i}y_{i}}, g\right)\cdot e\left( (g^{ab})^{(\boldsymbol {\alpha}\cdot \boldsymbol {y})}, g\right)\cdot e\left( (PK_{ID^{*}})^{t^{*}\underset{i\in{[N]}}{\sum}y_{i}}, g\right)\\ \end{array} $$

    If αy ≠  0, by the nondegenerate property, we obtain the value of gab as follows:

    $$ \begin{array}{@{}rcl@{}} \left( \frac{\underset{i\in{[m]}}{\prod}{(W^{*}_{i})}^{y_{n+i}}}{(Q_{ID})^{\underset{i\in{[N]}}{\sum}sy_{i}} \!\cdot(U^{*})^{\underset{i\in{[N]}}{\sum}t^{*}_{i}y_{i}} \!\cdot (PK_{ID^{*}})^{\underset{i\in{[N]}}{\sum}t^{*}y_{i}}}\right)^{\frac{1}{(\boldsymbol{\alpha}\cdot \boldsymbol{y})}} \end{array} $$

Now, we evaluate \( \mathcal {C} \)’s probability of success.

As before, obviously, the probability of \( \mathcal {C} \) aborting in the signing query is at most \( \frac {{q_{s}^{2}}+q_{H_{2}}\cdot q_{s}}{2^{k}} \), the probability of not aborting in the output stage is \( \frac {1}{q_{H}} \) and αy = 0 with probability \( \frac {1}{p} \), where \( q_{s}, q_{H}, q_{H_{2}} \) are the numbers of signing queries and H and H2 are the numbers of hash queries made by \(\mathcal {A}_{\mathcal {I}\mathcal {I}} \).

Therefore, if \(\mathcal {A}_{\mathcal {I}\mathcal {I}} \) has an advantage \(Adv_{\mathcal {A}_{\mathcal {I}\mathcal {I}}}^{CL-LHS}(k)\) in forging a signature in Game 2, then \( \mathcal {C} \) can solve the CDH problem with probability

$$ \begin{array}{@{}rcl@{}} \left( \frac{1}{2}Adv_{\mathcal{A}_{\mathcal{I}\mathcal{I}}}^{CL-LHS}(k)-\frac{{q_{s}^{2}}+q_{H_{1}}\cdot q_{s}}{2^{k}}\right)\cdot\left( 1-\frac{1}{p}\right)\cdot\frac{1}{q_{H}} \end{array} $$

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Wu, B., Wang, C. & Yao, H. A certificateless linearly homomorphic signature scheme for network coding and its application in the IoT. Peer-to-Peer Netw. Appl. 14, 852–872 (2021). https://doi.org/10.1007/s12083-020-01028-8

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s12083-020-01028-8

Keywords

Navigation