LogoLogo
LogoLogo
  • Introduction
    • About Us
    • Notations & Definitions
      • MPC
      • ZK
    • Contribute to this Site!
  • Primitives
    • Multiplication
      • Karatsuba Multiplication
      • Toom-Cook Multiplication
    • NAF (Non-adjacent form)
    • Chinese Remainder Theorem (CRT)
    • Euclidean Algorithm
      • Extended Euclidean Algorithm
      • Binary Euclidean Algorithm
      • Extended Binary Euclidean Algorithm
    • Coding Theory
      • Linear Code
    • Number Theoretic Transform
    • Abstract Algebra
      • Group
        • -Morphisms
        • Batch Inverse
      • Elliptic Curve
        • Weierstrass Curve
          • Coordinate Forms
          • Fast Elliptic Curve Arithmetic and Improved WEIL Pairing Evaluation
        • Edwards Curve
          • Coordinate Forms
          • Twisted Edwards ↔ Short Weierstrass Transformation
        • Batch Inverse for Batch Point Additions
        • Scalar Multiplication
          • Double-and-add
          • GLV Decomposition
        • MSM
          • Pippenger's Algorithm
          • Signed Bucket Index
          • CycloneMSM
          • EdMSM
          • cuZK
        • 2-Chain and 2-Cycle of Elliptic Curves
    • Encryption Scheme
      • ElGamal Encryption
    • Modular Arithmetic
      • Modular Reduction
        • Barrett Reduction
        • Montgomery Reduction
      • Modular Inverse
        • Bernstein-Yang's Inverse
    • Multiset Check
    • Sumcheck
    • Commitment Scheme
      • Fflonk
      • SHPlonk
      • Zeromorph
  • MPC
    • Yao's Garbled Circuits
    • GMW
    • BMR
  • ZK
    • Arithmetization
      • R1CS
      • PLONK
      • AIR
    • Folding
      • LatticeFold
      • Nova
        • Nova over Cycles of Curves
    • Lookup
      • Lasso
      • LogUp-GKR
    • SNARK
      • Groth16
      • HyperPlonk
      • Spartan
        • SPARK
    • STARK
      • Additive NTT
      • Basefold
      • Binius
      • Brakedown
      • CircleSTARK
      • FRI
        • FRI Security Features and Optimizations
      • DEEP FRI
      • STIR
      • WHIR
    • Distributed ZK
      • Ryan's Trick for Distributed Groth16
  • Application
    • zkLogin
    • zkHoldem
    • zkTLS
      • DECO
      • Proxying is enough
  • zkVM
Powered by GitBook
On this page
Export as PDF
  1. Primitives
  2. Coding Theory

Linear Code

PreviousCoding TheoryNextNumber Theoretic Transform

Last updated 3 months ago

If the linear combination of codewords is also a codeword, the code is called a .

c1,c2∈C∧a⋅c1+b⋅c2∈Cc_1, c_2 \in C \land a \cdot c_1 + b \cdot c_2 \in Cc1​,c2​∈C∧a⋅c1​+b⋅c2​∈C

where a,b∈Fqa, b \in \mathbb{F}_qa,b∈Fq​.

Reed-Solomon (RS) codes, which are commonly used, satisfy this property and are therefore linear codes. (This property allows the folding operation to be used in RS-based FRI.)

Enc(f1)={f1(ω),f1(ω2),f1(ω3),f1(ω4)}Enc(f2)={f2(ω),f2(ω2),f2(ω3),f2(ω4)}Enc(a⋅f1+b⋅f2)={a⋅f1(ω)+b⋅f2(ω),a⋅f1(ω2)+b⋅f2(ω2),a⋅f1(ω3)+b⋅f2(ω3),a⋅f1(ω4)+b⋅f2(ω4)}\mathsf{Enc}(f_1) = \{f_1(\omega), f_1(\omega^2), f_1(\omega^3), f_1(\omega^4)\} \\ \mathsf{Enc}(f_2) = \{f_2(\omega), f_2(\omega^2), f_2(\omega^3), f_2(\omega^4)\} \\ \mathsf{Enc}(a\cdot f_1 + b \cdot f_2) = \Big\{ \begin{aligned} a\cdot f_1(\omega) + b\cdot f_2(\omega), a\cdot f_1(\omega^2) + b\cdot f_2(\omega^2), \\ a\cdot f_1(\omega^3) + b\cdot f_2(\omega^3), a\cdot f_1(\omega^4) + b\cdot f_2(\omega^4) \end{aligned} \Big\}Enc(f1​)={f1​(ω),f1​(ω2),f1​(ω3),f1​(ω4)}Enc(f2​)={f2​(ω),f2​(ω2),f2​(ω3),f2​(ω4)}Enc(a⋅f1​+b⋅f2​)={a⋅f1​(ω)+b⋅f2​(ω),a⋅f1​(ω2)+b⋅f2​(ω2),a⋅f1​(ω3)+b⋅f2​(ω3),a⋅f1​(ω4)+b⋅f2​(ω4)​}

The traditional encoding function used in RS-codes involves FFT operations. However, due to the limitations mentioned earlier, alternative encoding methods must be explored.

Written by from

linear code
A41
ryan Kim