Skip to main content
. 2024 Mar 4;24(5):1667. doi: 10.3390/s24051667
Algorithm 2 Incorrect Signatures Detection
Input:
 A set of signatures L1=σ1,σ2,…,σn, hash,m,r,c, m′
Output:
 A set of incorrect signatures L3
 1: repeat
 2:  Randomly select k signatures from σ1,σ2,…,σn and form a set σ1∗,σ2∗,…,σk∗
 3:  r′=ga′,hka′←DTCH.Forgeσ1∗,σ2∗,…,σk∗,m,m′,r
 4:  hash′←ga′cH1m′
 5: until 〈g,hk,ga′,hka′〉 is a valid Diffie–Hallman tuple and hash=hash′
 6: L2←σ1+,σ2+,…,σk+=σ1∗,σ2∗,…,σk∗
 7: L4←L1−L2=σk+1′,σk+2′,…,σn′
 8: L2←∅
 9: for σt′ in L4 do
10:  r′=ga′,hka′←DTCH.Forgeσ1+,σ2+,…,σk−1+,σt′,m,m′,r
11:  hash′←ga′cH1m′
12:  if 〈g,hk,ga′,hka′〉 is not a valid Diffie–Hallman tuple or hash≠hash′ then
13:   add σt′ into L2
14:  end if
15: end for
16: return L3