All Projects → hadipourh → CryptoHDL

hadipourh / CryptoHDL

Licence: GPL-3.0 License
A list of VHDL codes implementing cryptographic algorithms

Programming Languages

VHDL
269 projects
Verilog
626 projects

Projects that are alternatives of or similar to CryptoHDL

SpinalCrypto
SpinalHDL - Cryptography libraries
Stars: ✭ 36 (+157.14%)
Mutual labels:  aes, vhdl
Aes
AES-128 hardware implementation
Stars: ✭ 25 (+78.57%)
Mutual labels:  aes, vhdl
crypthash-net
CryptHash.NET is a .NET multi-target library to encrypt/decrypt/hash/encode/decode strings and files, with an optional .NET Core multiplatform console utility.
Stars: ✭ 33 (+135.71%)
Mutual labels:  aes
TripleSecManaged
A C# port of the TripleSec encryption scheme created by Chris Coyne, Maxwell Krohn, and Filippo Valsorda
Stars: ✭ 18 (+28.57%)
Mutual labels:  aes
ruby-vpi
Ruby interface to IEEE 1364-2005 Verilog VPI
Stars: ✭ 15 (+7.14%)
Mutual labels:  hardware-designs
cocotb-bus
Pre-packaged testbenching tools and reusable bus interfaces for cocotb
Stars: ✭ 20 (+42.86%)
Mutual labels:  vhdl
pyarch
🔌 Hardware Abstraction Library in Python
Stars: ✭ 15 (+7.14%)
Mutual labels:  vhdl
public
util toolkit for go.golang 通用函数包
Stars: ✭ 135 (+864.29%)
Mutual labels:  aes
getting-started
List of ideas for getting started with TimVideos projects
Stars: ✭ 50 (+257.14%)
Mutual labels:  vhdl
WhiteBoxAES
C/C++ whitebox implementation of AES
Stars: ✭ 66 (+371.43%)
Mutual labels:  aes
QNICE-FPGA
QNICE-FPGA is a 16-bit computer system for recreational programming built as a fully-fledged System-on-a-Chip in portable VHDL.
Stars: ✭ 51 (+264.29%)
Mutual labels:  vhdl
browserify-cipher
No description or website provided.
Stars: ✭ 15 (+7.14%)
Mutual labels:  aes
aciduino
Cheap and DIY make in 1 hour, 2 tracks, 14 patterns, Roland TB-303 step sequencer clone +plus features aimed for musicians and djs to use it on live performance or for the studio create process
Stars: ✭ 82 (+485.71%)
Mutual labels:  hardware-designs
OormiPass
Free open source cross platform password manager
Stars: ✭ 50 (+257.14%)
Mutual labels:  aes
dingtalk-encrypt
dingTalk encrypt Node Version. 钉钉的非官方nodejs版AES加解密库 sdk
Stars: ✭ 16 (+14.29%)
Mutual labels:  aes
eacirc
Automatic problem solver based on circuit-like representation and genetic programming
Stars: ✭ 13 (-7.14%)
Mutual labels:  block-ciphers
JSON-for-VHDL
A JSON library implemented in VHDL.
Stars: ✭ 56 (+300%)
Mutual labels:  vhdl
Graphical Datasheets
Code, final versions, and information on the Sparkfun Graphical Datasheets
Stars: ✭ 89 (+535.71%)
Mutual labels:  hardware-designs
FlashPaper
One-time encrypted password/secret sharing
Stars: ✭ 85 (+507.14%)
Mutual labels:  aes
Python-File-Encryptor
Encrypt and Decrypt files using Python (AES CBC MODE)
Stars: ✭ 51 (+264.29%)
Mutual labels:  aes

CryptoHDL

A list of VHDL codes implementing cryptographic algorithms

Motivation

The motivation of creating this repository is to have a centralized point where all VHDL implementation of cryptographic algorithms can be found. I do my best to keep it updated. If you find or have any VHDL implementation of cryptographic algorithm that are missing, don't hesitate to contribute.

Contents

  1. AES
  2. Ascon
  3. CRAFT
  4. GIFT
  5. Gimli
  6. KATAN
  7. KTANTAN
  8. Klein
  9. LED128
  10. LED64
  11. LowMC
  12. Midori
  13. Piccolo
  14. Picnic
  15. PRESENT
  16. Prince
  17. Simon
  18. Skinny
  19. Skinny64
  20. Speck

AES

VHDL implementation of AES encryption, and decryption algorithms

There are simple VHDL implementations of AES-128 encryption, and decryption algorithms, in this repository. This is actually my first experience in VHDL implementation! (https://hadipourh.github.io/AES-VHDL/).


This repository includes the hardware designs of AES cipher

There are 3 folders for the VHDL source code of different implementations of AES. Apart from the unprotected implementation, all other designs MUST be synthesized by "keeping the hierarchy". Otherwise, no fault-detection and no protection against SCA is guaranteed.


Unrolled hardware implementation of AES-128-128

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

Ascon

Energy Efficient Hardware Implementations of Ascon

Energy-efficient implementations of Ascon-128 and Ascon-128a by Michael Fivez, including a comparison with Joltik and MORUS. This repository contains several implementations of the Ascon hardware cipher.


Side-channel protected hardware implementations of Ascon

Side-channel protected hardware implementations of Ascon-128 and Ascon-128a by Hannes Groß using domain-oriented masking.

CRAFT

This repository includes the hardware designs of CRAFT cipher

There are 6 folders for the VHDL source code of different implementations of CRAFT. Apart from the unprotected implementation, all other designs MUST be synthesized by "keeping the hierarchy". Otherwise, no fault-detection and no protection against SCA is guaranteed. (https://sites.google.com/view/craftcipher/implementation).


Hardware implementation of CRAFT secured against Statistical Ineffective Fault Attack (SIFA) attack

This repository contains the HDL code and analysis results for hardware designs described in the paper: "Impeccable Circuits II" authored by Aein Rezaei Shahmirzadi, Shahram Rasoolzadeh, and Amir Moradi. Ruhr University Bochum, Embedded Security (Germany)

GIFT

This repository includes the hardware designs of GIFT cipher

Three types VHDL implementations of GIFT, can be found in this repository.

Gimli

Hardware implementation of Gimli

Gimli is a 384-bit permutation designed to achieve high security with high performance across a broad range of platforms, including 64-bit Intel/AMD server CPUs, 64-bit and 32-bit ARM smartphone CPUs, 32-bit ARM microcontrollers, 8-bit AVR microcontrollers, FPGAs, ASICs without side-channel protection, and ASICs with side-channel protection.

KATAN

Hardware implementation of KATAN

Three types VHDL implementations of KATAN, can be found in this repository.


Unrolled hardware implementation of KATAN-32-80

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.


Unrolled hardware implementation of KATAN-64-80

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

KTANTAN

Hardware implementation of KTANTAN

There are 3 folders for the VHDL source code of different implementations of KTANTAN in this repository.

Klein

A VHDL implementation of the Klein cipher

This is an implementation of the KLEIN lightweight block cipher as described in this paper. It encrypts individual blocks of 64 bit length with either a 64, 80, or 96 bit key.

LED-128

Hardware implementation of LED-128

There are 3 folders for the VHDL source code of different implementations of LED-128 in this repository.

LED-64

Hardware implementation of LED-64

There are 3 folders for the VHDL source code of different implementations of LED-64 in this repository.

LowMC

VHDL source code for LowMC

FPGA implementation of Picnic and LowMC.

Midori

Hardware implementation of Midori

There are 3 folders for the VHDL source code of different implementations of Midori in this repository.

Piccolo

There are 3 folders for the VHDL source code of different implementations of Piccolo in this repository.

Picnic

VHDL source code for Picnic

FPGA implementation of Picnic and LowMC.

PRESENT

This repository includes the hardware designs of PRESENT cipher

There are 3 folders for the VHDL source code of different implementations of PRESENT in this repository.


A VHDL implementation of the PRESENT cipher

This is an implementation of the PRESENT lightweight block cipher as described in this paper. It encrypts individual blocks of 64 bit length with an 80 or 128 bit key. The desired key length can be set via the generic k (either K_80 or K_128).


Unrolled hardware implementation of PRESENT-64-80

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.


Unrolled hardware implementation of PRESENT-64-128

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

Prince

A VHDL implementation of the Prince cipher

This is an implementation of the PRINCE lightweight block cipher as described in this paper. It encrypts individual blocks of 64 bit length with a 128 bit key.


Unrolled hardware implementation of Prince

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

Simon

A VHDL implementation of the Simon cipher

There are 3 folders for the VHDL source code of different implementations of Simon in this repository.


Unrolled hardware implementation of Simon-32-64

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.


Unrolled hardware implementation of Simon-64-128

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

Skinny

Hardware implementation of Skinny64 and Skinny128 ciphers

SKINNY is a family of very lightweight tweakable block ciphers.

Skinny64

This repository includes the hardware designs of Skinny64 cipher with protection against SCA

Speck

Unrolled hardware implementation of Speck-32-64

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.


Unrolled hardware implementation of Speck-64-128

This work compares unrolled combinational hardware implementations of six lightweight block ciphers, along with an AES implementation as a baseline.

Licenses

GPL, and BSD are two common types of licenses which are used in these repositories.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].