Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems in ea_code.h #227

Closed
maths644311798 opened this issue Jan 18, 2024 · 3 comments
Closed

Problems in ea_code.h #227

maths644311798 opened this issue Jan 18, 2024 · 3 comments
Assignees

Comments

@maths644311798
Copy link
Contributor

In ea_code.h,

explicit ExAccCode(uint32_t n, uint32_t m) : n_(n), m_(m) {
    YACL_ENFORCE(m >= n);
    YACL_ENFORCE(n > d,
                 "ExAccCode: Dimension should be much greater than Weight");
  };

  uint32_t GetDimention() const override { return m_; }

I think m_ is the length and n_ is the dimension since m_>n_.

@liang-xiaojian
Copy link
Collaborator

I think m_ is the length and n_ is the dimension since m_ > n_.

ExAccCode is a variant of Dual-LPN assumption, as described in the paper Correlated Pseudorandomness from Expand-Accumulate Codes.
To put it simple, Dual-LPN assumption is a problem to distinguish a "compressed vector" $\mathbf u = \mathbf G \cdot \mathbf e$ from the uniformly random vector $\mathbf u'$ drawn from $\lbrace 0,1\rbrace^{n}$. Here, $\mathbf G \in \lbrace 0 , 1 \rbrace^{n \times m}$ and $\mathbf e \in \lbrace 0 , 1 \rbrace^{m}$ is a noise vector.
Based on this, ExAccCode would that accepts an input vector of length m_ and produces an output vector of length n_.

@maths644311798
Copy link
Contributor Author

OK, then in this sentence

YACL_ENFORCE(n > d,
                 "ExAccCode: Dimension should be much greater than Weight");

"Dimension" should be "Length".

@liang-xiaojian
Copy link
Collaborator

Yep, you are right. Would you like to submit a pull request to fix it? :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants