Giter Site home page Giter Site logo

Missing block ciphers about block-ciphers HOT 22 OPEN

rustcrypto avatar rustcrypto commented on June 12, 2024
Missing block ciphers

from block-ciphers.

Comments (22)

imclint21 avatar imclint21 commented on June 12, 2024 2

Serpent 🐍 needed! (really)

from block-ciphers.

yerke avatar yerke commented on June 12, 2024 2

@newpavlov @tarcieri I think checkbox for threefish can be checked now, since #5 was merged, right?

from block-ciphers.

tarcieri avatar tarcieri commented on June 12, 2024 2

AES is effectively a subset of Rijndael, so if we were to support it, it would probably make sense for it to either be part of the aes crate or reuse parts of it (e.g. making some of the private API public under a special feature flag)

However, it's a bit tricky because our implementation is currently heavily specialized to AES and there are multiple backends, all of which would need to be modified to support a more general Rijndael. As an example, the number of rounds varies only with the key size in AES, whereas in the more general Rijndael it varies with either/both the key size and block size.

It's something we could potentially do although I would want to be careful that we don't overcomplicate or otherwise harm the AES implementation by doing so, which might be tricky.

from block-ciphers.

sorairolake avatar sorairolake commented on June 12, 2024 2

Implemented Camellia in #293.

from block-ciphers.

lumag avatar lumag commented on June 12, 2024 2

ARIA implementation: #340

from block-ciphers.

tvladyslav avatar tvladyslav commented on June 12, 2024

What about SPECK?
https://en.wikipedia.org/wiki/Speck_%28cipher%29

from block-ciphers.

newpavlov avatar newpavlov commented on June 12, 2024

Missed it for some reason while compiling the list. Added Speck and Simon to it.

from block-ciphers.

k3d3 avatar k3d3 commented on June 12, 2024

Is Rijndael/AES being covered?

from block-ciphers.

newpavlov avatar newpavlov commented on June 12, 2024

AES is present in the rust-crypto codebase, so it's already "implemented", this is why I haven't included it into this list. But it's not the easiest code to work with and better implementations exist (e.g. one in the ring), so for now it's not a highest priority for me.

from block-ciphers.

gsingh93 avatar gsingh93 commented on June 12, 2024

I'm claiming DES, just need a bit of time to finish up Grostl over in the hashes repo before starting it.

from block-ciphers.

Trojan295 avatar Trojan295 commented on June 12, 2024

I started to work on the RC2 cipher.

from block-ciphers.

Trojan295 avatar Trojan295 commented on June 12, 2024

BTW. What about modes of operation for the block ciphers (CBC, OFB, etc.)? In this repo we have only the raw block ciphers. How do we progress to make them usable in different modes?

from block-ciphers.

newpavlov avatar newpavlov commented on June 12, 2024

@Trojan295
Sorry for the late answer. They will be implemented generically, though not sure if they should be placed here or in the traits repo, also I haven't yet decided on how exactly API should look like. We will probably need some kind of generic trait which will unite block ciphers under different modes of operation and stream ciphers.

from block-ciphers.

Trojan295 avatar Trojan295 commented on June 12, 2024

I will start working on the Serpent implementation.

from block-ciphers.

link2xt avatar link2xt commented on June 12, 2024

Working on twofish, PR #7

It is used in passwordsafe password manager, I wanted to port it to Rust but twofish package on crates.io seems to be reserved for this project and there is no implementation yet.

from block-ciphers.

dignifiedquire avatar dignifiedquire commented on June 12, 2024

Implemented Cast5 in #36

from block-ciphers.

WildCryptoFox avatar WildCryptoFox commented on June 12, 2024

OCB3, a solid single-pass high-performance CAESAR candidate, could do with a Rust implementation.

The ciphertext is expanded by a variable length tag (whose tag length is committed). Only slightly slower than unauthenticated CTR, OCB3 could make a useful alternative when the costs of nonce-misuse resistance of HCTR or SIV are too high for an application (doubtful but nice to have). OCB3 does not resist nonce-misuse, nor does it aim for beyond birthday bound security.

The biggest issue harming OCB's deployment is its patent; but Rogaway has public free licenses available since 2013 and is open to negotiating additional licenses if needed.

License 1 β€” License for Open-Source Software Implementations of OCB (Jan 9, 2013)
Under this license, you are authorized to make, use, and distribute open-source software implementations of OCB. This license terminates for you if you sue someone over their open-source software implementation of OCB claiming that you have a patent covering their implementation.

License 2 β€” General License for Non-Military Software Implementations OCB (Jan 10, 2013).
This license does not authorize any military use of OCB. Aside from military uses, you are authorized to make, use, and distribute (1) any software implementation of OCB and (2) non-software implementations of OCB for noncommercial or research purposes. You are required to include notice of this license to users of your work so that they are aware of the prohibition against military use. This license terminates for you if you sue someone over an implementation of OCB authorized by this license claiming that you have a patent covering their implementation.

from block-ciphers.

tarcieri avatar tarcieri commented on June 12, 2024

Unfortunately Rogaway's patents aren't the only ones that matter:

Jutla (IBM)β€” 6,963,976, 7,093,126, and 8,107,620β€”and of Gligor and Donescu (VDG)β€”6,973,187.

https://web.cs.ucdavis.edu/~rogaway/ocb/patent-jutla-1.pdf
https://web.cs.ucdavis.edu/~rogaway/ocb/patent-jutla-2.pdf
https://web.cs.ucdavis.edu/~rogaway/ocb/patent-jutla-3.pdf
https://web.cs.ucdavis.edu/~rogaway/ocb/patent-gligor-1.pdf

from block-ciphers.

WildCryptoFox avatar WildCryptoFox commented on June 12, 2024

Gligor and Donescu (VDG) and Jutla (IBM) are inventors (owners) on US patents 6,963,976, 6,973,187, 7,093,126, and 8,107,620, all which concern AE but which may or may not apply to OCB.

"may or may not" uh. When even the authors of the mode doesn't know. :/

from block-ciphers.

tarcieri avatar tarcieri commented on June 12, 2024

In particular, Jutla 7,093,126, and 8,107,620 very much apply to OCB, IMO:

  • 7,093,126: "Encryption schemes with almost free integrity awareness"
  • 8,107,620: "Simple and efficient one-pass authenticated encryption scheme"

from block-ciphers.

akhilles avatar akhilles commented on June 12, 2024

@newpavlov, can SM4 be added to the list?

from block-ciphers.

Pure-Peace avatar Pure-Peace commented on June 12, 2024

Rijndael - 256-bit blocks?
It seems to be similar to aes (128-bit blocks), or can you tell me how to achieve it?

from block-ciphers.

Related Issues (20)

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.