GithubHelp home page GithubHelp logo

skinny_avx's People

Contributors

kste avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

skinny_avx's Issues

[bug] Array index of tmp pass the end of array

In skinny64/avx2/skinny64.c, there is a definition of tmp:

u256 rc, tmp[3];

but in the line 71 and line 83, there is tmp[3] = x[15]; and x[3] = XOR(tmp[3], x[15]);,which pass the end of array tmp[3].

I think define tmp as u256 tmp[4] is right.

Question on the state

Hello,

My name is Robbe, I'm currently writing a bit-sliced SIMD implementation on ForkSKINNY primitive. I'm using this implementation as a benchmark and have a question.

As far as I understand the implementation, you slice the nibbles of 64 cipher states in a single __m256i SIMD variable, correct? So for example, the u256 x[16] parameter entering the rounds here:

https://github.com/kste/skinny_avx/blob/aed96f5d1560a27a6f1e77807e9709df575e9451/skinny64/avx2/skinny64.c#LL15C1-L15C1

Is an array of 16 256-bit values, where every value in this array contains 64 equally-significant nibbles (thus 4*64 = 256 bits), correct? Then the round operations are performed between multiple such 256-bit slices. If not, how or where is the slice and unslice operation performed?

Thank you so much,

Robbe

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.