Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

A Zero-Knowledge Proof of Knowledge for Subgroup Distance Problem

Cansu Betin Onur C. Betin Onur is partially support by NGI.
Abstract

In this study, we introduce a novel zero-knowledge identification scheme based on the hardness of the subgroup distance problem in the Hamming metric. The proposed protocol, named Subgroup Distance Zero Knowledge Proof (SDZKP), employs a cryptographically secure pseudorandom number generator to mask secrets and utilizes a Stern-type algorithm to ensure robust security properties.

Index Terms:
Zero-knowledge proofs, Subgroup Distance Problem, Hamming Distance

I Introduction

Zero-knowledge proofs (ZKPs) are cryptographic protocols that enable one party (the prover) to convince another party (the verifier) to the truth of a statement without disclosing any additional information beyond the fact that the statement is true [9, 7, 6]. Since their inception, ZKPs have become a fundamental tool in cryptographic research and applications, providing a robust method for secure authentication and privacy-preserving computations. Various identification schemes leveraging ZKPs have been proposed, each relying on different hard mathematical problems to ensure security. One of the pioneering works in this area is Stern’s identification scheme, introduced in 1993, which is based on the hardness of the Syndrome Decoding (SD) problem. Stern’s protocol laid the groundwork for code-based cryptographic systems, renowned for their resilience to structural attacks and potential for quantum security through the Fiat-Shamir transform. Over the years, numerous enhancements and variations of Stern’s protocol have been developed, focusing on improving efficiency and reducing soundness errors.

In this study, we introduce a zero-knowledge identification scheme that relies on the Subgroup Distance Problem (SDP) in the Hamming metric, a problem known for its computational hardness in various metrics and its NP-completeness under certain conditions. The proposed protocol, named Subgroup Distance Zero Knowledge Proof (SDZKP), differs from existing schemes by leveraging the SDP, thus providing a fresh approach to zero-knowledge identification. By converting the confidential information held by the prover into integer tuples and employing a Stern-type algorithm, we ensure that our protocol inherits the robustness and security features of code-based systems.

SDZKP differs from other identification schemes in the literature in terms of the mathematical hard problem on which it is based. However, the confidential information held by the prover is converted into an integer tuple and a Stern type algorithm is executed in SDZKP. For this reason, we place our study in association with code-based protocols. The SDZKP protocol is designed to be both secure and efficient, making use of a cryptographically secure pseudorandom number generator (CSPRNG) for masking secrets. The protocol follows a three-step challenge-response structure, ensuring that the prover can convince the verifier of their knowledge of a secret without revealing any information about it. Our security analysis demonstrates that SDZKP achieves perfect completeness, 3-special-soundness, and statistical zero-knowledge, providing strong guarantees against potential attacks.

In 1993, Stern introduced a code-based identification scheme based on the hardness of the Syndrome Decoding (SD) problem[11]. His work became a foundational work on code-based cryptography. One major feature that makes Stern scheme attractive is its robustness to structural attacks. In other words, possible attacks appears only to the underlying hard problem. Using Fiat-Shamir transform, Stern protocol can be converted to a quantum secure signature scheme. Various studies have been published focusing on improvement on efficiency and security of Stern protocol. These works are named as Stern-type protocols. First improvement given by Véron [12] using General Syndrome Decoding problem and reduced the number of rounds required. Both protocols have 2323\frac{2}{3}divide start_ARG 2 end_ARG start_ARG 3 end_ARG soundness error. In 2011, Cayrel et. al. [4] and Aguilar et. al. [1] reduced Stern and Véron protocols soundness error respectively up to 1212\frac{1}{2}divide start_ARG 1 end_ARG start_ARG 2 end_ARG using 5555-round protocols. In 2022, Bidoux et. al. [2] introduced an adaptation of the protocol given by Aguilar, Gaborit and Schrek (AGS) [1] on quasi-cyclic SD problem. Also in [5] a zero knowledge protocol achieving soundness error 1n1𝑛\frac{1}{n}divide start_ARG 1 end_ARG start_ARG italic_n end_ARG for arbitrary chosen n𝑛nitalic_n is presented under the constrain that the verifier trust some of the variables sent by the prover.

This paper is organized as follows: Section II covers the necessary preliminaries, including basic cryptographic definitions and an overview of the Subgroup Distance Problem. In Section III, we present the detailed design of the SDZKP protocol. Section IV provides a comprehensive security analysis. Finally, we conclude the paper highlighting the contributions and potential future directions for research.

II Preliminaries

For any positive integer m𝑚mitalic_m the set {1,m}1𝑚\{1,\dots m\}{ 1 , … italic_m } is denoted by [m].delimited-[]𝑚[m].[ italic_m ] . The group of permutations on the set [n]delimited-[]𝑛[n][ italic_n ] is denoted by Sn.subscript𝑆𝑛S_{n}.italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT . For a finite set A,𝐴A,italic_A , a$A𝑎currency-dollar𝐴a\overset{{\scriptscriptstyle\$}}{\leftarrow}Aitalic_a over$ start_ARG ← end_ARG italic_A denotes that a𝑎aitalic_a is taken uniformly at random form A.𝐴A.italic_A . The term “probabilistic polynomial time” is abbreviated by PPT. On inputs inP,inV𝑖subscript𝑛𝑃𝑖subscript𝑛𝑉in_{P},in_{V}italic_i italic_n start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT , italic_i italic_n start_POSTSUBSCRIPT italic_V end_POSTSUBSCRIPT respectively, the transcript of two parties P𝑃Pitalic_P and V𝑉Vitalic_V is denoted by View(P(inP),V(inV))𝑉𝑖𝑒𝑤𝑃𝑖subscript𝑛𝑃𝑉𝑖subscript𝑛𝑉View(\langle P(in_{P}),V(in_{V})\rangle)italic_V italic_i italic_e italic_w ( ⟨ italic_P ( italic_i italic_n start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ) , italic_V ( italic_i italic_n start_POSTSUBSCRIPT italic_V end_POSTSUBSCRIPT ) ⟩ ) and an execution between P𝑃Pitalic_P and V𝑉Vitalic_V giving output out𝑜𝑢𝑡outitalic_o italic_u italic_t is denoted by P(inP),V(inV)out.𝑃𝑖subscript𝑛𝑃𝑉𝑖subscript𝑛𝑉𝑜𝑢𝑡\langle P(in_{P}),V(in_{V})\rangle\rightarrow out.⟨ italic_P ( italic_i italic_n start_POSTSUBSCRIPT italic_P end_POSTSUBSCRIPT ) , italic_V ( italic_i italic_n start_POSTSUBSCRIPT italic_V end_POSTSUBSCRIPT ) ⟩ → italic_o italic_u italic_t . As the subgroup distance problem is defined on the symmetric group Sn,subscript𝑆𝑛S_{n},italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , the security parameter of the given scheme is n.𝑛n.italic_n .

II-A Subgroup Distance Problem (SDP)

Given a metric d𝑑ditalic_d on the Symmetric group Sn.subscript𝑆𝑛S_{n}.italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT . The distance of a permutation αSn𝛼subscript𝑆𝑛\alpha\in S_{n}italic_α ∈ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT to a subgroup HSn𝐻subscript𝑆𝑛H\leq S_{n}italic_H ≤ italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is defined as

d(α,H)=minhHd(α,h)𝑑𝛼𝐻𝐻𝑚𝑖𝑛𝑑𝛼d(\alpha,H)=\underset{h\in H}{min}\ d(\alpha,h)italic_d ( italic_α , italic_H ) = start_UNDERACCENT italic_h ∈ italic_H end_UNDERACCENT start_ARG italic_m italic_i italic_n end_ARG italic_d ( italic_α , italic_h )
Definition II.1

(Subgroup Distance Problem (SDP)) Given a set of elements {g,h1,hm}𝑔subscript1subscript𝑚\{g,h_{1},\dots h_{m}\}{ italic_g , italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT } from Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT and given an integer k.𝑘k.italic_k . Decide whether the distance between g𝑔gitalic_g and the subgroup H=h1,hm𝐻subscript1subscript𝑚H=\langle h_{1},\dots h_{m}\rangleitalic_H = ⟨ italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ⟩ is at most k.𝑘k.italic_k .

We would like to draw readers attention to similarity of SDP problem and one of the closest vector problem (CVP) on integer lattices which is considered to be one of the hard problems for post-quantum cryptographic protocols. Roughly speaking, in both problems one is asked to decide (or search) existance of an element from a given subset close enough to given fixed element.

The computational complexity of SDP has been analyzed through various of metrics. In 2006, Pinch showed that SDP is NP-Complete[10] with respect to Cayley Distance. Subsequently, in 2009, Buchheim et al. extended this result to other metrics such as Hamming, Kendall’s tau, lpsubscript𝑙𝑝l_{p}italic_l start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT, Lee’s and Ulam’s distances. Moreover, even when the subgroup is restricted to be an Abelian group of exponent two, the problem remains NP-complete across all these metrics.

The Hamming distance of given two permutations α,β𝛼𝛽\alpha,\betaitalic_α , italic_β in Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT is defined as the number of different entries of α𝛼\alphaitalic_α and β.𝛽\beta.italic_β .

d(α,β)=|{i|α(i)β(i)}|.𝑑𝛼𝛽conditional-set𝑖𝛼𝑖𝛽𝑖d(\alpha,\beta)=|\{i|\ \alpha(i)\not=\beta(i)\}|.italic_d ( italic_α , italic_β ) = | { italic_i | italic_α ( italic_i ) ≠ italic_β ( italic_i ) } | .

II-B Basic Cryptographic Definitions

Definition II.2

A function negl:0:𝑛𝑒𝑔𝑙subscriptabsent0negl:\mathbb{N}\rightarrow\mathbb{R}_{\geq 0}italic_n italic_e italic_g italic_l : blackboard_N → blackboard_R start_POSTSUBSCRIPT ≥ 0 end_POSTSUBSCRIPT is called negligible function if for any natural number c𝑐citalic_c there exists a lower bound n0subscript𝑛0n_{0}italic_n start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT such that negl(n)<1nc𝑛𝑒𝑔𝑙𝑛1superscript𝑛𝑐negl(n)<\frac{1}{n^{c}}italic_n italic_e italic_g italic_l ( italic_n ) < divide start_ARG 1 end_ARG start_ARG italic_n start_POSTSUPERSCRIPT italic_c end_POSTSUPERSCRIPT end_ARG for all nn0.𝑛subscript𝑛0n\geq n_{0}.italic_n ≥ italic_n start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT .

If the probability of a situation occurring is 1negl(n)1𝑛𝑒𝑔𝑙𝑛1-negl(n)1 - italic_n italic_e italic_g italic_l ( italic_n ) for some negligible function negl,𝑛𝑒𝑔𝑙negl,italic_n italic_e italic_g italic_l , we say that the situation appears with overwhelming probability.

Definition II.3

For security parameter n,𝑛n,italic_n , two distribution ensembles Dn,Ensubscript𝐷𝑛subscript𝐸𝑛{D_{n}},{E_{n}}italic_D start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT , italic_E start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are said to be computationally indistinguishable if for any PPT algorithm A,𝐴A,italic_A , the value of the difference

|PrxDn[A(x)=1]PrxEn[A(x)=1]|𝑥subscript𝐷𝑛𝑃𝑟delimited-[]𝐴𝑥1𝑥subscript𝐸𝑛𝑃𝑟delimited-[]𝐴𝑥1|\underset{x\leftarrow D_{n}}{Pr}[A(x)=1]-\underset{x\leftarrow E_{n}}{Pr}[A(x% )=1]|| start_UNDERACCENT italic_x ← italic_D start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_UNDERACCENT start_ARG italic_P italic_r end_ARG [ italic_A ( italic_x ) = 1 ] - start_UNDERACCENT italic_x ← italic_E start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT end_UNDERACCENT start_ARG italic_P italic_r end_ARG [ italic_A ( italic_x ) = 1 ] |

is a negligable function.

If the condition is true even if A𝐴Aitalic_A is allowed to be unbounded, then these distributions are said to be statistically indistinguishable.

Next we define commitment schemes which are effective building blocks frequently used in ZKP design. A commitment scheme should satisfy three basic properties: correctness, binding and hiding properties. We give the definitions of these properties consequently after the definition of commitment schemes.

Definition II.4

A commitment scheme is a polynomial time algorithm triple Com=(Setup,Commit,Ver)𝐶𝑜𝑚𝑆𝑒𝑡𝑢𝑝𝐶𝑜𝑚𝑚𝑖𝑡𝑉𝑒𝑟Com=(Setup,Commit,Ver)italic_C italic_o italic_m = ( italic_S italic_e italic_t italic_u italic_p , italic_C italic_o italic_m italic_m italic_i italic_t , italic_V italic_e italic_r ) satisfying correctness, binding and hiding properties. The components of Com𝐶𝑜𝑚Comitalic_C italic_o italic_m are described as below:

  • Setup𝑆𝑒𝑡𝑢𝑝Setupitalic_S italic_e italic_t italic_u italic_p: On input 1nsuperscript1𝑛1^{n}1 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, it outputs public parameters PP𝑃𝑃PPitalic_P italic_P determining the message, the randomness, the commitment and the opening spaces. Notation: PPSetup(1n).𝑃𝑃𝑆𝑒𝑡𝑢𝑝superscript1𝑛PP\leftarrow Setup(1^{n}).italic_P italic_P ← italic_S italic_e italic_t italic_u italic_p ( 1 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) .

  • Commit𝐶𝑜𝑚𝑚𝑖𝑡Commititalic_C italic_o italic_m italic_m italic_i italic_t: On input PP𝑃𝑃PPitalic_P italic_P and a message m,𝑚m,italic_m , it outputs a commitment-opening pair formally represented as (c,o)Commit(PP,m).𝑐𝑜𝐶𝑜𝑚𝑚𝑖𝑡𝑃𝑃𝑚(c,o)\leftarrow Commit(PP,m).( italic_c , italic_o ) ← italic_C italic_o italic_m italic_m italic_i italic_t ( italic_P italic_P , italic_m ) .

  • Ver𝑉𝑒𝑟Veritalic_V italic_e italic_r: On input sequence (PP,c,m,o)𝑃𝑃𝑐𝑚𝑜(PP,c,m,o)( italic_P italic_P , italic_c , italic_m , italic_o ) it outputs a bit b.𝑏b.italic_b . The case b=1𝑏1b=1italic_b = 1 refers to c𝑐citalic_c is a valid commitment for m𝑚mitalic_m and Ver𝑉𝑒𝑟Veritalic_V italic_e italic_r accepts. In the case b=0𝑏0b=0italic_b = 0, the committed value fails and Ver𝑉𝑒𝑟Veritalic_V italic_e italic_r rejects it. Formally, we represent Ver𝑉𝑒𝑟Veritalic_V italic_e italic_r as bVer(PP,c,m,o).𝑏𝑉𝑒𝑟𝑃𝑃𝑐𝑚𝑜b\leftarrow Ver(PP,c,m,o).italic_b ← italic_V italic_e italic_r ( italic_P italic_P , italic_c , italic_m , italic_o ) .

It is often that commitment algorithm triples take also some randomness r𝑟ritalic_r as input. It is implicitly used in the above given definitions.

Definition II.5

A commitment scheme Com=(Setup,Commit,Ver)𝐶𝑜𝑚𝑆𝑒𝑡𝑢𝑝𝐶𝑜𝑚𝑚𝑖𝑡𝑉𝑒𝑟Com=(Setup,Commit,Ver)italic_C italic_o italic_m = ( italic_S italic_e italic_t italic_u italic_p , italic_C italic_o italic_m italic_m italic_i italic_t , italic_V italic_e italic_r ) satisfies the following properties:

  • Correctness if

    Pr[1Ver(PP,c,m,o):(c,o)Commit(pp,m)]=1Pr:1𝑉𝑒𝑟𝑃𝑃𝑐𝑚𝑜𝑐𝑜𝐶𝑜𝑚𝑚𝑖𝑡𝑝𝑝𝑚1\operatorname{Pr}\left[1\leftarrow Ver(PP,c,m,o):(c,o)\leftarrow Commit(pp,m)% \right]=1roman_Pr [ 1 ← italic_V italic_e italic_r ( italic_P italic_P , italic_c , italic_m , italic_o ) : ( italic_c , italic_o ) ← italic_C italic_o italic_m italic_m italic_i italic_t ( italic_p italic_p , italic_m ) ] = 1
  • Computationally (resp. Statistically) Binding if there exists a negligible function neg(n)𝑛𝑒𝑔𝑛neg(n)italic_n italic_e italic_g ( italic_n ) such that for every PPT (resp. unbounded) algorithm A𝐴Aitalic_A below inequality holds:

    Pr[ppSetup(1n)(c,m,m,o,o)A(pp):mm1Ver(PP,c,m,o)1Ver(PP,c,m,o)]neg(n)Pr:𝑝𝑝𝑆𝑒𝑡𝑢𝑝superscript1𝑛𝑐𝑚superscript𝑚𝑜superscript𝑜𝐴𝑝𝑝𝑚superscript𝑚1𝑉𝑒𝑟𝑃𝑃𝑐𝑚𝑜1𝑉𝑒𝑟𝑃𝑃𝑐superscript𝑚superscript𝑜𝑛𝑒𝑔𝑛\operatorname{Pr}\left[\begin{array}[]{c}pp\leftarrow Setup(1^{n})\\ (c,m,m^{\prime},o,o^{\prime})\leftarrow A(pp)\end{array}:\begin{array}[]{c}m% \neq m^{\prime}\\ 1\leftarrow Ver(PP,c,m,o)\\ 1\leftarrow Ver(PP,c,m^{\prime},o^{\prime})\\ \end{array}\right]\leq neg(n)roman_Pr [ start_ARRAY start_ROW start_CELL italic_p italic_p ← italic_S italic_e italic_t italic_u italic_p ( 1 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) end_CELL end_ROW start_ROW start_CELL ( italic_c , italic_m , italic_m start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_o , italic_o start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) ← italic_A ( italic_p italic_p ) end_CELL end_ROW end_ARRAY : start_ARRAY start_ROW start_CELL italic_m ≠ italic_m start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL 1 ← italic_V italic_e italic_r ( italic_P italic_P , italic_c , italic_m , italic_o ) end_CELL end_ROW start_ROW start_CELL 1 ← italic_V italic_e italic_r ( italic_P italic_P , italic_c , italic_m start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT , italic_o start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) end_CELL end_ROW end_ARRAY ] ≤ italic_n italic_e italic_g ( italic_n )
  • Computationally (resp. Statistically) Hiding if for any two massages m,m𝑚superscript𝑚m,m^{\prime}italic_m , italic_m start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT and ppSetup(1n)𝑝𝑝𝑆𝑒𝑡𝑢𝑝superscript1𝑛pp\leftarrow Setup(1^{n})italic_p italic_p ← italic_S italic_e italic_t italic_u italic_p ( 1 start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ) the distributions Commit(pp,m)𝐶𝑜𝑚𝑚𝑖𝑡𝑝𝑝𝑚Commit(pp,m)italic_C italic_o italic_m italic_m italic_i italic_t ( italic_p italic_p , italic_m ) and Commit(pp,m)𝐶𝑜𝑚𝑚𝑖𝑡𝑝𝑝superscript𝑚Commit(pp,m^{\prime})italic_C italic_o italic_m italic_m italic_i italic_t ( italic_p italic_p , italic_m start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) are computationally (resp. statistically) indistinguishable.

Next we define interactive protocols and zero-knowledge proof of knowledge. Informally, a zero-knowledge proof of knowledge is a two party protocol between a prover P𝑃Pitalic_P and a verifier V𝑉Vitalic_V such that P𝑃Pitalic_P convinces V𝑉Vitalic_V that it has the knowledge of a desired secret without revealing any information about the secret. Let us put this in more symbolic language.

Let R𝑅Ritalic_R be an NP-relation and L𝐿Litalic_L be the language corresponding to R.𝑅R.italic_R . That is L={x|w:R(x,w)=1}.𝐿conditional-set𝑥:𝑤𝑅𝑥𝑤1L=\{x\ |\ \exists w:R(x,w)=1\}.italic_L = { italic_x | ∃ italic_w : italic_R ( italic_x , italic_w ) = 1 } . In a zero-knowledge proof of knowledge protocol, for a common input value x𝑥xitalic_x, the prover P𝑃Pitalic_P convinces V𝑉Vitalic_V that it knows a witness w𝑤witalic_w such that R(x,w)=1.𝑅𝑥𝑤1R(x,w)=1.italic_R ( italic_x , italic_w ) = 1 .

Definition II.6 (Zero-knowledge proof of knowledge (ZKPoK))

A zero-knowledge proof of knowledge protocol for language L𝐿Litalic_L with respect to a relation R𝑅Ritalic_R is a protocol between a pair of interactive machines P𝑃Pitalic_P and V𝑉Vitalic_V named prover and verifier where P𝑃Pitalic_P is computationally unbounded and V𝑉Vitalic_V is probabilistic polynomial-time. It should satisfy the following conditions:

  • Completeness: For every xL𝑥𝐿x\in Litalic_x ∈ italic_L, verifier V𝑉Vitalic_V always accepts after interacting with a prover P𝑃Pitalic_P having a witness w.𝑤w.italic_w .

    Pr[P(x,w),V(x)1]=1𝑃𝑟delimited-[]𝑃𝑥𝑤𝑉𝑥11Pr[\langle P(x,w),V(x)\rangle\rightarrow 1]=1italic_P italic_r [ ⟨ italic_P ( italic_x , italic_w ) , italic_V ( italic_x ) ⟩ → 1 ] = 1
  • Proof of Knowledge (with error ϵϵ\epsilonitalic_ϵ): For every possibly cheating T𝑇Titalic_T-time PPT prover Psuperscript𝑃P^{*}italic_P start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT with Pr[P,V(x)1]>ϵ+e𝑃𝑟delimited-[]superscript𝑃𝑉𝑥1italic-ϵ𝑒Pr[\langle P^{*},V(x)\rangle\rightarrow 1]>\epsilon+eitalic_P italic_r [ ⟨ italic_P start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_V ( italic_x ) ⟩ → 1 ] > italic_ϵ + italic_e there exists a PPT algorithm K𝐾Kitalic_K (with running time polynomial in 1e1𝑒\frac{1}{e}divide start_ARG 1 end_ARG start_ARG italic_e end_ARG and T𝑇Titalic_T) such that; given rewindable black-box access to P,superscript𝑃P^{*},italic_P start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , on input x𝑥xitalic_x the algorithm K𝐾Kitalic_K outputs a wsuperscript𝑤w^{\prime}italic_w start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT such that R(x,w)=1𝑅𝑥superscript𝑤1R(x,w^{\prime})=1italic_R ( italic_x , italic_w start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT ) = 1 with success probability at least 12.12\frac{1}{2}.divide start_ARG 1 end_ARG start_ARG 2 end_ARG . Here K𝐾Kitalic_K is called the knowledge extractor.

  • Zero Knowledge: For every possibly cheating PPT verifier Vsuperscript𝑉V^{*}italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT, there exists a PPT algorithm S,𝑆S,italic_S , called simulator, such that on input x𝑥xitalic_x it outputs a transcript S(x)𝑆𝑥S(x)italic_S ( italic_x ) which is indistinguishable from View(P(x,w),V(x)).𝑉𝑖𝑒𝑤𝑃𝑥𝑤superscript𝑉𝑥View(\langle P(x,w),V^{*}(x)\rangle).italic_V italic_i italic_e italic_w ( ⟨ italic_P ( italic_x , italic_w ) , italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_x ) ⟩ ) . The zero knowledge property is called computational, statistical or perfect zero knowledge depending on whether the two distributions are computationally indistinguishable, statistical indistinguishable or equal respectively.

Under the restriction that P𝑃Pitalic_P is a PPT algorithm in above definition, the protocol refereed as ”argument” instead of ”proof.” i.e. we define zero knowledge argument of knowledge (ZKAoK). A zero knowledge proof of knowledge is specified as honest verifier zero knowledge proof(or argument) of knowledge if the existence of a PPT simulator S giving output with indistinguishable distribution from View(P(x,w),V(x))𝑉𝑖𝑒𝑤𝑃𝑥𝑤𝑉𝑥View(\langle P(x,w),V(x)\rangle)italic_V italic_i italic_e italic_w ( ⟨ italic_P ( italic_x , italic_w ) , italic_V ( italic_x ) ⟩ ) guarantied only for the honest verifier V.𝑉V.italic_V .

A stronger notion of knowledge soundness is (two)special-soundness. Here we give the definition of special-soundness for more generic case. Consider 3333-move protocols such that the rounds starts with the prover’s move. The moves are named as commitment, challenge and response respectively. The transcripts are denoted by (C,Ch,Rsp)𝐶𝐶𝑅𝑠𝑝(C,Ch,Rsp)( italic_C , italic_C italic_h , italic_R italic_s italic_p ) in the sequel.

Definition II.7

A 3333-round protocol is said to have k𝑘kitalic_k-special-soundness property if there exists a PPT algorithm K𝐾Kitalic_K such that for any given k𝑘kitalic_k distinct excepted transcripts for the same commitment C,𝐶C,italic_C , say (C,Ch1,Rsp1),,(C,Chk,Rspk),𝐶𝐶subscript1𝑅𝑠subscript𝑝1𝐶𝐶subscript𝑘𝑅𝑠subscript𝑝𝑘(C,Ch_{1},Rsp_{1}),\dots,(C,Ch_{k},Rsp_{k}),( italic_C , italic_C italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_R italic_s italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , … , ( italic_C , italic_C italic_h start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT , italic_R italic_s italic_p start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT ) , the algorithm K𝐾Kitalic_K outputs a valid witness w𝑤witalic_w.

Under the assumption that k=poly(x)𝑘𝑝𝑜𝑙𝑦𝑥k=poly(x)italic_k = italic_p italic_o italic_l italic_y ( italic_x ) for some polynomial, k𝑘kitalic_k-special-soundness strictly implies knowledge soundness by a generic reduction with soundness error ϵ=(k1)/Nitalic-ϵ𝑘1𝑁\epsilon=(k-1)/Nitalic_ϵ = ( italic_k - 1 ) / italic_N , where N𝑁Nitalic_N is the cardinality of challenge space [8].

Definition II.8

A sigma (ΣΣ\Sigmaroman_Σ) protocols is a 3333-round honest-verifier zero-knowledge proof of knowledge protocol satisfying k𝑘kitalic_k-special-soundness.

III Subgroup Distance Zero Knowledge Proof (SDZKP)

In this section, we present Subgroup Distance Zero Knowledge Proof (SDZKP) in steps and illustrate it in Figure 1.

III-A Setup

In this section, under the assumption that the subgroup distance problem in Hamming metric is hard for parameters k,n𝑘𝑛k,nitalic_k , italic_n and the subgroup H𝐻Hitalic_H determined by the generators h1,,hm;subscript1subscript𝑚h_{1},\dots,h_{m};italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ; we introduce a zero knowledge identification scheme.

The integers k,n𝑘𝑛k,nitalic_k , italic_n and a set of elements {g,h1,hm}𝑔subscript1subscript𝑚\{g,h_{1},\dots h_{m}\}{ italic_g , italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT } from the Symmetric group Snsubscript𝑆𝑛S_{n}italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT are assumed to be publicly known. The prover claims that it knows an element hH=h1,hm𝐻subscript1subscript𝑚h\in H=\langle h_{1},\dots h_{m}\rangleitalic_h ∈ italic_H = ⟨ italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT ⟩ such that d(h,g)k.𝑑𝑔𝑘d(h,g)\leq k.italic_d ( italic_h , italic_g ) ≤ italic_k .

III-B Protocol Design

Employing subgroup distance problem we design a black-box statistical zero knowledge proof of knowledge protocol that we refer to as Subgroup Distance Zero Knowledge Proof (SDZKP). In this protocol, a cryptographically secure pseudorandom number generator (CSPRNG) is used for masking secrets.

Step 1: The prover selects an element uH,𝑢𝐻u\in H,italic_u ∈ italic_H , and a seed integer s𝑠sitalic_s for CSPRNG𝐶𝑆𝑃𝑅𝑁𝐺CSPRNGitalic_C italic_S italic_P italic_R italic_N italic_G uniform randomly. It generates length-n𝑛nitalic_n integer tuples U𝑈Uitalic_U and G𝐺Gitalic_G where the i𝑖iitalic_ith-entry of these tuples are u(h(i))𝑢𝑖u(h(i))italic_u ( italic_h ( italic_i ) ) and u(g(i)),𝑢𝑔𝑖u(g(i)),italic_u ( italic_g ( italic_i ) ) , respectively. Finally, it queries a random masking tuple R=vecn(CSPRNG(s)),𝑅𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠R=vec_{n}(CSPRNG(s)),italic_R = italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) ) , evaluates and sends the commitments C1=Comm(U+R)subscript𝐶1𝐶𝑜𝑚𝑚𝑈𝑅C_{1}=Comm(U+R)italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_U + italic_R ), C2=Comm(G+R),subscript𝐶2𝐶𝑜𝑚𝑚𝐺𝑅C_{2}=Comm(G+R),italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_G + italic_R ) , C3=Comm(s).subscript𝐶3𝐶𝑜𝑚𝑚𝑠C_{3}=Comm(s).italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_s ) . Here addition U+R𝑈𝑅U+Ritalic_U + italic_R and G+R𝐺𝑅G+Ritalic_G + italic_R are component-wise addition of tuples.

Step 2: The verifier generates a random challenge Ch{0,1,2}𝐶012Ch\in\{0,1,2\}italic_C italic_h ∈ { 0 , 1 , 2 } and sends it to the prover.

Step 3: Depending on challenge, the prover generates and sends a response Rsp𝑅𝑠𝑝Rspitalic_R italic_s italic_p as follows:

  • If Ch=0𝐶0Ch=0italic_C italic_h = 0, Rsp={Z1,s}𝑅𝑠𝑝subscript𝑍1𝑠Rsp=\{Z_{1},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_s } where Z1=U+Rsubscript𝑍1𝑈𝑅Z_{1}=U+Ritalic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_U + italic_R

  • If Ch=1𝐶1Ch=1italic_C italic_h = 1, Rsp={Z2,s}𝑅𝑠𝑝subscript𝑍2𝑠Rsp=\{Z_{2},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_s } where Z2=G+Rsubscript𝑍2𝐺𝑅Z_{2}=G+Ritalic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G + italic_R

  • If Ch=2𝐶2Ch=2italic_C italic_h = 2, Rsp={Z1,Z2}𝑅𝑠𝑝subscript𝑍1subscript𝑍2Rsp=\{Z_{1},Z_{2}\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }

Step 4: This is the verification step. If all checks are valid, then verifier accepts. Otherwise, it rejects.

  • For Ch=0,𝐶0Ch=0,italic_C italic_h = 0 , the verifier first checks the validity of the commitments C1=?Comm(Z1),superscript?subscript𝐶1Commsubscript𝑍1C_{1}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{1}),italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , C3=?Comm(s).superscript?subscript𝐶3Comm𝑠C_{3}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(s).italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_s ) . Then using the seed s𝑠sitalic_s, it obtains the tuple R.𝑅R.italic_R . It evaluates the tuple U=Z1R𝑈subscript𝑍1𝑅U=Z_{1}-Ritalic_U = italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_R and checks whether the corresponding permutation uh𝑢uhitalic_u italic_h is in H.𝐻H.italic_H .

  • For Ch=1𝐶1Ch=1italic_C italic_h = 1, the verifier first checks the validity of the commitments C2=?Comm(Z2)superscript?subscript𝐶2Commsubscript𝑍2C_{2}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{2})italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) and C3=?Comm(s).superscript?subscript𝐶3Comm𝑠C_{3}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(s).italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_s ) . Then it obtains R=vecn(CSPRNG(s))𝑅𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠R=vec_{n}(CSPRNG(s))italic_R = italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) ), computes G=Z2R.𝐺subscript𝑍2𝑅G=Z_{2}-R.italic_G = italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_R . It reconstructs the permutation ug𝑢𝑔ugitalic_u italic_g and evaluates u=(ug)g1𝑢𝑢𝑔superscript𝑔1u=(ug)g^{-1}italic_u = ( italic_u italic_g ) italic_g start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT. Then it checks whether uH.𝑢𝐻u\in H.italic_u ∈ italic_H .

  • For Ch=2𝐶2Ch=2italic_C italic_h = 2, the verifier checks commitments C1=?Comm(Z1),superscript?subscript𝐶1Commsubscript𝑍1C_{1}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{1}),italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , C2=?Comm(Z2).superscript?subscript𝐶2Commsubscript𝑍2C_{2}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{2}).italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) . Finally it evaluates the tuple UG𝑈𝐺U-Gitalic_U - italic_G and checks whether the number of non-zero entries in UG𝑈𝐺U-Gitalic_U - italic_G is less than k.𝑘k.italic_k .

ProverVerifieru$H,𝑢currency-dollar𝐻u\overset{{\scriptscriptstyle\$}}{\leftarrow}H,italic_u over$ start_ARG ← end_ARG italic_H ,s$𝑠currency-dollars\overset{{\scriptscriptstyle\$}}{\leftarrow}\mathbb{Z}italic_s over$ start_ARG ← end_ARG blackboard_Zuh,ug𝑢𝑢𝑔uh,ugitalic_u italic_h , italic_u italic_gU=(uh(1)uh(n))𝑈𝑢1𝑢𝑛U=(uh(1)\dots uh(n))italic_U = ( italic_u italic_h ( 1 ) … italic_u italic_h ( italic_n ) ); G=(ug(1)ug(n))𝐺𝑢𝑔1𝑢𝑔𝑛G=(ug(1)\dots ug(n))italic_G = ( italic_u italic_g ( 1 ) … italic_u italic_g ( italic_n ) )R=vecn(CSPRNG(s))𝑅𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠R=vec_{n}(CSPRNG(s))italic_R = italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) )Z1=U+R,subscript𝑍1𝑈𝑅Z_{1}=U+R,italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_U + italic_R ,  Z2=G+R,subscript𝑍2𝐺𝑅Z_{2}=G+R,italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G + italic_R , C1=Comm(Z1)subscript𝐶1𝐶𝑜𝑚𝑚subscript𝑍1C_{1}=Comm(Z_{1})italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ); C2=Comm(Z2)subscript𝐶2𝐶𝑜𝑚𝑚subscript𝑍2C_{2}=Comm(Z_{2})italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ); C3=Comm(s)subscript𝐶3𝐶𝑜𝑚𝑚𝑠C_{3}=Comm(s)italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_s );C=(C1,C2,C3)𝐶subscript𝐶1subscript𝐶2subscript𝐶3C=(C_{1},C_{2},C_{3})italic_C = ( italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) C𝐶Citalic_CCh${0,1,2}𝐶currency-dollar012Ch\overset{{\scriptscriptstyle\$}}{\leftarrow}\{0,1,2\}italic_C italic_h over$ start_ARG ← end_ARG { 0 , 1 , 2 }Ch𝐶Chitalic_C italic_hIf Ch=0𝐶0Ch=0italic_C italic_h = 0, Rsp={Z1,s}𝑅𝑠𝑝subscript𝑍1𝑠Rsp=\{Z_{1},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_s } If Ch=1𝐶1Ch=1italic_C italic_h = 1, Rsp={Z2,s}𝑅𝑠𝑝subscript𝑍2𝑠Rsp=\{Z_{2},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_s } If Ch=2𝐶2Ch=2italic_C italic_h = 2, Rsp={Z1,Z2}𝑅𝑠𝑝subscript𝑍1subscript𝑍2Rsp=\{Z_{1},Z_{2}\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }Rsp𝑅𝑠𝑝Rspitalic_R italic_s italic_p
For Ch=0𝐶0Ch=0italic_C italic_h = 0 obtain R𝑅Ritalic_R, evaluate U𝑈Uitalic_U
Check uh?Hsuperscript?𝑢𝐻uh\stackrel{{\scriptstyle?}}{{\in}}Hitalic_u italic_h start_RELOP SUPERSCRIPTOP start_ARG ∈ end_ARG start_ARG ? end_ARG end_RELOP italic_H, C1=?Comm(Z1),superscript?subscript𝐶1Commsubscript𝑍1C_{1}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{1}),italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , C3=?Comm(s)superscript?subscript𝐶3Comm𝑠C_{3}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(s)italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_s )
For Ch=1𝐶1Ch=1italic_C italic_h = 1 obtain R𝑅Ritalic_R, evaluate u=(ug)g1𝑢𝑢𝑔superscript𝑔1u=(ug)g^{-1}italic_u = ( italic_u italic_g ) italic_g start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT
Check u?Hsuperscript?𝑢𝐻u\stackrel{{\scriptstyle?}}{{\in}}Hitalic_u start_RELOP SUPERSCRIPTOP start_ARG ∈ end_ARG start_ARG ? end_ARG end_RELOP italic_H, C2=?Comm(Z2),superscript?subscript𝐶2Commsubscript𝑍2C_{2}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{2}),italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , C3=?Comm(s)superscript?subscript𝐶3Comm𝑠C_{3}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(s)italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_s )
For Ch=2𝐶2Ch=2italic_C italic_h = 2, check |{i|(Z1Z2)i0}|?ksuperscript?conditional-set𝑖subscriptsubscript𝑍1subscript𝑍2𝑖0𝑘|\{i\ |\ (Z_{1}-Z_{2})_{i}\not=0\}|\stackrel{{\scriptstyle?}}{{\leq}}k| { italic_i | ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≠ 0 } | start_RELOP SUPERSCRIPTOP start_ARG ≤ end_ARG start_ARG ? end_ARG end_RELOP italic_k,
C1=?Comm(Z1),superscript?subscript𝐶1Commsubscript𝑍1C_{1}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{1}),italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , C2=?Comm(Z2)superscript?subscript𝐶2Commsubscript𝑍2C_{2}\stackrel{{\scriptstyle?}}{{=}}\text{Comm}(Z_{2})italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_RELOP SUPERSCRIPTOP start_ARG = end_ARG start_ARG ? end_ARG end_RELOP Comm ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT )
Figure 1: The message flow diagram depicting Subgroup Distance Zero Knowledge Proof (SDZKP).

IV Security Analysis

In this section, we will prove that the given protocol is a zero-knowledge proof system.

Theorem IV.1

Protocol SDZKP is a black-box statistical zero knowledge proof of knowledge protocol with knowledge soundness error 23.23\frac{2}{3}.divide start_ARG 2 end_ARG start_ARG 3 end_ARG .

Proof IV.1

We will show completeness, 3333-special-soundness and statistical zero knowledge properties.

  • Perfect Completeness: If a prover P having knowledge of an element hH𝐻h\in Hitalic_h ∈ italic_H with d(h,g)k𝑑𝑔𝑘d(h,g)\leq kitalic_d ( italic_h , italic_g ) ≤ italic_k follows the steps of the protocol, an honest verifier always accepts. It is known that the Hamming on permutation groups are left-invariant [3]. Therefore for any arbitrarily chosen uH,𝑢𝐻u\in H,italic_u ∈ italic_H , d(uh,ug)=d(h,g)k.𝑑𝑢𝑢𝑔𝑑𝑔𝑘d(uh,ug)=d(h,g)\leq k.italic_d ( italic_u italic_h , italic_u italic_g ) = italic_d ( italic_h , italic_g ) ≤ italic_k . Hence the proof of completeness is straightforward.

  • 3-special-soundness: We show that under the assumption that the subgroup distance problem in Hamming metric is hard for parameters k,n𝑘𝑛k,nitalic_k , italic_n and for the subgroup H𝐻Hitalic_H determined by the generators h1,,hmsubscript1subscript𝑚h_{1},\dots,h_{m}italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , … , italic_h start_POSTSUBSCRIPT italic_m end_POSTSUBSCRIPT and under the assumption that the used commitment function Comm𝐶𝑜𝑚𝑚Commitalic_C italic_o italic_m italic_m is computationally binding, SDZKP is 3-special-sound.

    We describe a knowledge extractor K𝐾Kitalic_K rewinding the protocol for the same randomness u𝑢uitalic_u and s𝑠sitalic_s. We assume that K𝐾Kitalic_K gathers three excepted transcripts (C,Ch1,Rsp0)𝐶𝐶subscript1𝑅𝑠subscript𝑝0(C,Ch_{1},Rsp_{0})( italic_C , italic_C italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_R italic_s italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), (C,Ch2,Rsp2)𝐶𝐶subscript2𝑅𝑠subscript𝑝2(C,Ch_{2},Rsp_{2})( italic_C , italic_C italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_R italic_s italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ),(C,Ch3,Rsp2)𝐶𝐶subscript3𝑅𝑠subscript𝑝2(C,Ch_{3},Rsp_{2})( italic_C , italic_C italic_h start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT , italic_R italic_s italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) from P𝑃Pitalic_P where C=𝐶absentC=italic_C = (C1,C2,C3)=subscript𝐶1subscript𝐶2subscript𝐶3absent(C_{1},C_{2},C_{3})=( italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT ) = (Comm(Z1),Comm(Z2),Comm(s)).𝐶𝑜𝑚𝑚subscript𝑍1𝐶𝑜𝑚𝑚subscript𝑍2𝐶𝑜𝑚𝑚𝑠(Comm(Z_{1}),Comm(Z_{2}),Comm(s)).( italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) , italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , italic_C italic_o italic_m italic_m ( italic_s ) ) . As there are only three choices for b,𝑏b,italic_b , without loss of generality we assume Ch1=0,Ch2=1formulae-sequence𝐶subscript10𝐶subscript21Ch_{1}=0,Ch_{2}=1italic_C italic_h start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 0 , italic_C italic_h start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 1 and Ch3=2.𝐶subscript32Ch_{3}=2.italic_C italic_h start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = 2 . Then Rsp0={Z10,s0},𝑅𝑠subscript𝑝0superscriptsubscript𝑍10superscript𝑠0Rsp_{0}=\{Z_{1}^{0},s^{0}\},italic_R italic_s italic_p start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT , italic_s start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT } , Rsp1={Z21,s1},𝑅𝑠subscript𝑝1superscriptsubscript𝑍21superscript𝑠1Rsp_{1}=\{Z_{2}^{1},s^{1}\},italic_R italic_s italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = { italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT , italic_s start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT } , Rsp2={Z12,Z22}.𝑅𝑠subscript𝑝2superscriptsubscript𝑍12superscriptsubscript𝑍22Rsp_{2}=\{Z_{1}^{2},Z_{2}^{2}\}.italic_R italic_s italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT , italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT } . Commitment C1subscript𝐶1C_{1}italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is verified for the cases Ch=0,2𝐶02Ch=0,2italic_C italic_h = 0 , 2 and the commitment C2subscript𝐶2C_{2}italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT is verified for the cases Ch=1,2.𝐶12Ch=1,2.italic_C italic_h = 1 , 2 . Then Z10=Z12superscriptsubscript𝑍10superscriptsubscript𝑍12Z_{1}^{0}=Z_{1}^{2}italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT and Z21=Z22superscriptsubscript𝑍21superscriptsubscript𝑍22Z_{2}^{1}=Z_{2}^{2}italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT = italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT by the binding property of Comm.𝐶𝑜𝑚𝑚Comm.italic_C italic_o italic_m italic_m . Similarly s0=s1superscript𝑠0superscript𝑠1s^{0}=s^{1}italic_s start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = italic_s start_POSTSUPERSCRIPT 1 end_POSTSUPERSCRIPT guarantied by the validity of C3.subscript𝐶3C_{3}.italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT . Therefore we will express the values as Z1,Z2,ssubscript𝑍1subscript𝑍2𝑠Z_{1},Z_{2},sitalic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_s without using the Rsp𝑅𝑠𝑝Rspitalic_R italic_s italic_p index numbers. The extractor K𝐾Kitalic_K evaluates U=Z1vecn(CSPRNG(s))𝑈subscript𝑍1𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠U=Z_{1}-vec_{n}(CSPRNG(s))italic_U = italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) ) and G=Z2vecn(CSPRNG(s)).𝐺subscript𝑍2𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠G=Z_{2}-vec_{n}(CSPRNG(s)).italic_G = italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) ) . Then K𝐾Kitalic_K converts the sequences to permutations ug𝑢𝑔ugitalic_u italic_g and uh.𝑢uh.italic_u italic_h . Lastly, it outputs h=(ug[g1])1(uh).superscript𝑢𝑔delimited-[]superscript𝑔11𝑢h=(ug[g^{-1}])^{-1}(uh).italic_h = ( italic_u italic_g [ italic_g start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ] ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_u italic_h ) .

    The validity of first two transcripts guaranties that uhH𝑢𝐻uh\in Hitalic_u italic_h ∈ italic_H and u=ug[g1]H.𝑢𝑢𝑔delimited-[]superscript𝑔1𝐻u=ug[g^{-1}]\in H.italic_u = italic_u italic_g [ italic_g start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ] ∈ italic_H . Then, as H𝐻Hitalic_H is a group, we guarantee that h=u1(uh)H.superscript𝑢1𝑢𝐻h=u^{-1}(uh)\in H.italic_h = italic_u start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_u italic_h ) ∈ italic_H .

    Also the last accepted transcript shows that the output hhitalic_h satisfies the requred distance property d(h,g)=d(uh,ug)=|{i|(Z1Z2)i0}|k.𝑑𝑔𝑑𝑢𝑢𝑔conditional-set𝑖subscriptsubscript𝑍1subscript𝑍2𝑖0𝑘d(h,g)=d(uh,ug)=|\{i\ |\ (Z_{1}-Z_{2})_{i}\not=0\}|\ {\leq}k.italic_d ( italic_h , italic_g ) = italic_d ( italic_u italic_h , italic_u italic_g ) = | { italic_i | ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ≠ 0 } | ≤ italic_k .

  • Zero Knowledge: Under the assumption that the used commitment scheme is statistically hiding, we show that the given protocol is statistically zero-knowledge by describing a simulator S𝑆Sitalic_S having black-box access to a malicious verifier V.superscript𝑉V^{*}.italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT . The simulator S𝑆Sitalic_S given in Algorithm 1 is build on challenge value prediction that will be chosen by Vsuperscript𝑉V^{*}italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT. Obviously, S𝑆Sitalic_S runs in polynomial-time. It is allowed to rewind Vsuperscript𝑉V^{*}italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT at most M𝑀Mitalic_M times. To see that S𝑆Sitalic_S generates a transcript statistically indistinguishable from the view of a real interaction, we present an alternative simulator S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT as an intermediate step in the discussion. The simulator S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT has the knowledge of the secret hhitalic_h and it follows the same stages with S.𝑆S.italic_S . i.e., it guesses the challenge value at stage 1 and it rewinds at stage 3 under the described situations in S.𝑆S.italic_S . The difference is, S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT does not define or use a fake hsuperscripth^{*}italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT value. It evaluates commitments as described in SDZKP𝑆𝐷𝑍𝐾𝑃SDZKPitalic_S italic_D italic_Z italic_K italic_P. Therefore, when S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT makes a successful guess in Ch,𝐶Ch,italic_C italic_h , the distribution over the commitments viewed in S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT and in a real proof is identical. At each attempt, it has success probability 59.59\frac{5}{9}.divide start_ARG 5 end_ARG start_ARG 9 end_ARG . That is S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT outputs bottom\bot with at most probability (49)M.superscript49𝑀(\frac{4}{9})^{M}.( divide start_ARG 4 end_ARG start_ARG 9 end_ARG ) start_POSTSUPERSCRIPT italic_M end_POSTSUPERSCRIPT . Next we see that S𝑆Sitalic_S and S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT gives statistically indistinguishable outputs. Algorithms S𝑆Sitalic_S and S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT executes exactly in the same way except stage 2. At stage 2, While S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT uses the knowlegde of the secret h,h,italic_h , S𝑆Sitalic_S uses a fake hsuperscripth^{*}italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT value. Both algorithm gives successful output only when Ch,Ch{0,1}𝐶𝐶superscript01Ch,Ch^{*}\in\{0,1\}italic_C italic_h , italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∈ { 0 , 1 } or Ch=2=Ch.𝐶superscript2𝐶Ch^{*}=2=Ch.italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = 2 = italic_C italic_h . In each case, the committed values are Z1=U+R,subscript𝑍1𝑈𝑅Z_{1}=U+R,italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_U + italic_R , Z2=G+Rsubscript𝑍2𝐺𝑅Z_{2}=G+Ritalic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G + italic_R and s.𝑠s.italic_s . In both algorithms s𝑠sitalic_s is a uniform randomly chosen seed integer for known cryptographically secure pseudorandom number generator CSPRNG. So, the distribution of chosen element s𝑠sitalic_s and the generated integer string R=vecn(CSPRNG(s))𝑅𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠R=vec_{n}(CSPRNG(s))italic_R = italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) ) in S𝑆Sitalic_S is the same as the distribution of s𝑠sitalic_s and R𝑅Ritalic_R obtained in S0,subscript𝑆0S_{0},italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , respectively. In both algorithms U𝑈Uitalic_U and G𝐺Gitalic_G are random shuffles of length-n integer the tuple (12n).12𝑛(12\dots n).( 12 … italic_n ) . Therefore the distribution of the evaluated tuples Z1=U+R,subscript𝑍1𝑈𝑅Z_{1}=U+R,italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_U + italic_R , Z2=G+Rsubscript𝑍2𝐺𝑅Z_{2}=G+Ritalic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G + italic_R in S𝑆Sitalic_S and S0subscript𝑆0S_{0}italic_S start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT are statistically indistinguishable.

    Algorithm 1 The algorithm of simulator S𝑆Sitalic_S for SDZKP.
    1:Public parameters and security parameter M.𝑀M.italic_M .
    2:STAGE 0:
    3:m=1𝑚1m=1italic_m = 1
    4:STAGE 1: Fix a random challange and a fake secret hsuperscripth^{*}italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT
    5:Ch${0,1,2}𝐶superscriptcurrency-dollar012Ch^{*}\overset{{\scriptscriptstyle\$}}{\leftarrow}\{0,1,2\}italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT over$ start_ARG ← end_ARG { 0 , 1 , 2 }
    6:if Ch{0,1}𝐶superscript01Ch^{*}\in\{0,1\}italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∈ { 0 , 1 }  then
    7:     h$Hsuperscriptcurrency-dollar𝐻h^{*}\overset{{\scriptscriptstyle\$}}{\leftarrow}Hitalic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT over$ start_ARG ← end_ARG italic_H
    8:else\triangleright Ch=2Csuperscripth2Ch^{*}=2italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = 2
    9:     hSnsuperscriptsubscript𝑆𝑛h^{*}{\leftarrow}S_{n}italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ← italic_S start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT such that d(h,g)k𝑑superscript𝑔𝑘d(h^{*},g){\leq}kitalic_d ( italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT , italic_g ) ≤ italic_k \triangleright can be done efficiently by manipulating g.𝑔g.italic_g .
    10:end if
    11:STAGE 2: Evaluate commitments using h.superscripth^{*}.italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT .
    12:s$𝑠currency-dollars\overset{{\scriptscriptstyle\$}}{\leftarrow}\mathbb{Z}italic_s over$ start_ARG ← end_ARG blackboard_Z
    13:U=(h(1)h(n))𝑈superscript1superscript𝑛U=(h^{*}(1)\dots h^{*}(n))italic_U = ( italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( 1 ) … italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ( italic_n ) )
    14:G=(hg(1)hg(n))𝐺superscript𝑔1superscript𝑔𝑛G=(h^{*}g(1)\dots h^{*}g(n))italic_G = ( italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_g ( 1 ) … italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT italic_g ( italic_n ) )
    15:R=vecn(CSPRNG(s))𝑅𝑣𝑒subscript𝑐𝑛𝐶𝑆𝑃𝑅𝑁𝐺𝑠R=vec_{n}(CSPRNG(s))italic_R = italic_v italic_e italic_c start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ( italic_C italic_S italic_P italic_R italic_N italic_G ( italic_s ) )
    16:Z1=U+Rsubscript𝑍1𝑈𝑅Z_{1}=U+Ritalic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_U + italic_R
    17:Z2=G+Rsubscript𝑍2𝐺𝑅Z_{2}=G+Ritalic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G + italic_R
    18:C1=Comm(Z1)subscript𝐶1𝐶𝑜𝑚𝑚subscript𝑍1C_{1}=Comm(Z_{1})italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT )
    19:C2=Comm(Z2)subscript𝐶2𝐶𝑜𝑚𝑚subscript𝑍2C_{2}=Comm(Z_{2})italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT )
    20:C3=Comm(s)subscript𝐶3𝐶𝑜𝑚𝑚𝑠C_{3}=Comm(s)italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT = italic_C italic_o italic_m italic_m ( italic_s )
    21:C=(C1,C2,C3)𝐶subscript𝐶1subscript𝐶2subscript𝐶3C=(C_{1},C_{2},C_{3})italic_C = ( italic_C start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_C start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT )
    22:STAGE 3: Oracle access query to Vsuperscript𝑉V^{*}italic_V start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT and obtain Ch.𝐶Ch.italic_C italic_h .
    23:if Ch,Ch{0,1}𝐶𝐶superscript01Ch,Ch^{*}\in\{0,1\}italic_C italic_h , italic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT ∈ { 0 , 1 } or Ch=2=Ch𝐶superscript2𝐶Ch^{*}=2=Chitalic_C italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT = 2 = italic_C italic_h  then
    24:     pass to Stage 4444
    25:else
    26:     m=m+1.𝑚𝑚1m=m+1.italic_m = italic_m + 1 .
    27:     if mM,𝑚𝑀m\not=M,italic_m ≠ italic_M , then
    28:         goto STAGE 1
    29:     else
    30:         return bottom\bot and abort
    31:     end if
    32:end if
    33:STAGE 4: Follow the protocol response stage with hsuperscripth^{*}italic_h start_POSTSUPERSCRIPT ∗ end_POSTSUPERSCRIPT
    34:if Ch=0𝐶0Ch=0italic_C italic_h = 0  then
    35:     Rsp={Z1,s}𝑅𝑠𝑝subscript𝑍1𝑠Rsp=\{Z_{1},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_s }
    36:else if Ch=1𝐶1Ch=1italic_C italic_h = 1 then
    37:     Rsp={Z2,s}𝑅𝑠𝑝subscript𝑍2𝑠Rsp=\{Z_{2},s\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_s }
    38:else if Ch=2𝐶2Ch=2italic_C italic_h = 2 then
    39:     Rsp={Z1,Z2}𝑅𝑠𝑝subscript𝑍1subscript𝑍2Rsp=\{Z_{1},Z_{2}\}italic_R italic_s italic_p = { italic_Z start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_Z start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT }
    40:end if
    41:return (C𝐶Citalic_C, Ch𝐶Chitalic_C italic_h, Rsp𝑅𝑠𝑝Rspitalic_R italic_s italic_p)

V Conclusion

In this paper, we have introduced a novel zero-knowledge identification scheme based on the Subgroup Distance Problem (SDP) in the Hamming metric, named Subgroup Distance Zero Knowledge Proof (SDZKP). Our protocol leverages the inherent computational hardness of the SDP to ensure robust security properties while maintaining efficiency. By utilizing a cryptographically secure pseudorandom number generator (CSPRNG) and a Stern-type algorithm, the SDZKP protocol achieves perfect completeness, 3-special-soundness, and statistical zero-knowledge proof of knowledge, making it resilient against adversaries.

Through this work, we contribute to the ongoing research in zero-knowledge proofs by presenting a new identification scheme that expands the toolkit available to cryptographers and security practitioners. The use of the Subgroup Distance Problem as the underlying hard problem opens new avenues for designing secure cryptographic protocols.

Future work may explore further optimizations of the SDZKP protocol, as well as its application in various cryptographic settings. Additionally, investigating the integration of SDZKP with other cryptographic primitives and protocols could provide new insights and advancements in the field of secure authentication and privacy-preserving computations.

Acknowledgement

This work is partially supported by the NLnet foundation under the MoU number 2021-12-510.

References

  • [1] C. Aguilar, P. Gaborit, and J. Schrek, “A new zero-knowledge code based identification scheme with reduced communication,” in 2011 IEEE Information Theory Workshop.   IEEE, 2011, pp. 648–652.
  • [2] L. Bidoux, P. Gaborit, M. Kulkarni, and N. Sendrier, “Quasi-cyclic stern proof of knowledge,” in 2022 IEEE International Symposium on Information Theory (ISIT).   IEEE, 2022, pp. 1459–1464.
  • [3] P. J. Cameron and T. Wu, “The complexity of the weight problem for permutation and matrix groups,” Discrete Mathematics, vol. 310, no. 3, pp. 408–416, 2010.
  • [4] P.-L. Cayrel, P. Véron, and S. M. El Yousfi Alaoui, “A zero-knowledge identification scheme based on the q-ary syndrome decoding problem,” in International Workshop on Selected Areas in Cryptography.   Springer, 2010, pp. 171–186.
  • [5] T. Feneuil, A. Joux, and M. Rivain, “Shared permutation for syndrome decoding: new zero-knowledge protocol and code-based signature,” Designs, Codes and Cryptography, vol. 91, no. 2, pp. 563–608, 2023.
  • [6] O. Goldreich, “Zero-knowledge twenty years after its invention.” IACR Cryptol. ePrint Arch., vol. 2002, p. 186, 2002.
  • [7] O. Goldreich, S. Micali, and A. Wigderson, “Proofs that yield nothing but their validity or all languages in np have zero-knowledge proof systems,” Journal of the ACM (JACM), vol. 38, no. 3, pp. 690–728, 1991.
  • [8] C. Hazay and Y. Lindell, Efficient secure two-party protocols: Techniques and constructions.   Springer Science & Business Media, 2010.
  • [9] A. Mohr, “A survey of zero-knowledge proofs with applications to cryptography,” Southern Illinois University, Carbondale, pp. 1–12, 2007.
  • [10] R. Pinch, “The distance of a permutation from a subgroup of sn, in “combinatorics and probability”(g. brightwell, i. leader, a. scott, a. thomason eds),” 2007.
  • [11] J. Stern, “A new identification scheme based on syndrome decoding,” in Annual International Cryptology Conference.   Springer, 1993, pp. 13–21.
  • [12] P. Véron, “Improved identification schemes based on error-correcting codes,” Applicable Algebra in Engineering, Communication and Computing, vol. 8, pp. 57–69, 1997.