Block Ciphers implemented for the Master Thesis@IST (2017/2018)
João Fernandes, 87786, jcsf_1995@hotmail.com
Repository: LightweightBlockCiphers.Thesis.2018
All block ciphers implementations have been made from the reference implementations of the ciphers.
-
- Description: FELICS Implementation, AES Normal
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box AES implementation with cycle for rounds
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Compressed (12 Tables to 3) AES Compact Implementation (Permutations and Cycles)
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Compressed AES Compact Implementation (No Permutations)
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Compressed AES Implementation, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Compressed AES Compact Implementation (No Permutations), State in Registers
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Compressed AES Implementation, State in Registers, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Reference Implementation
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Reference Implementation, Fast Encryption (Multiply)
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Based on Reference Implementation
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Code Cleaned from Reference Implementation
- Block: 128 bits
- Key Size: 128 bits
-
- Description: T-Box Implementation
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With Constants Table
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box and Constants Table
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box (Reduction from 8 to 4) and Constants Table
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, F0 and F1 inlined
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, State in Registers
- Block: 128 bits
- Key Size: 128 bits
-
- Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, State in Registers, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Based on Reference Implementation
- Block: 64 bits
- Key Size: 80 bits
-
- Description: Optimized Implementation (Code Cleaned)
- Block: 64 bits
- Key Size: 80 bits
-
- Description: Direct Key Implementation (Based on Reference), Big Endian Version
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Indirect Key Implementation (Based on Reference), Big Endian Version
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct Key Implementation, Little Endian Version
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Indirect Key Implementation, Little Endian Version
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct Key Implementation, Little Endian Version, With Constants Table
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct Key Implementation, Little Endian Version, No Function Calls
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct Key Implementation, Little Endian Version, No Function Calls, With Constants Table
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct Key Implementation, Little Endian Version, No Function Calls, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct-Key Implementation, Little Endian Version, No Function Calls, With Constants Table, Implementation in Registers Variables
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct-Key Implementation, Little Endian Version, No Function Calls, Constants Computed on the Fly, Implementation in Registers Variables
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct-Key Implementation, Little Endian Version, With Constants Table, Only 1 Function For Encryption and Decryption, Implementation in Registers Variables
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Direct-Key Implementation, Little Endian Version, No Function Calls, With Constants Table, Implementation in Registers Variables, Full Unroll
- Block: 128 bits
- Key Size: 128 bits
-
- Description: FELICS Reference Implementation
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 4-bits)
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 8-bits)
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 4-bits), Unroll Permutations
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 8-bits), Unroll Permutations
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 8-bits), State in Registers
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 8-bits), State in Registers, Unroll Permutations
- Block: 64 bits
- Key Size: 80 bits
-
- Description: 32-bits oriented implementation (SBox 8-bits), State in Registers, Unroll Permutations, Full Unroll
- Block: 64 bits
- Key Size: 80 bits
-
- Description: FELICS Optimized Implementation, No Function Calls
- Block: 64 bits
- Key Size: 80 bits
-
- Description: FELICS Reference Implementation
- Block: 64 bits
- Key Size: 128 bits
-
- Description: FELICS Optimized Implementation, No Function Calls
- Block: 64 bits
- Key Size: 128 bits
-
- Description: 32-bits parcial implementation
- Block: 64 bits
- Key Size: 128 bits
-
- Description: 32-bits parcial implementation, No Function Calls
- Block: 64 bits
- Key Size: 128 bits
-
- Description: 32-bits parcial implementation, No Function Calls, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: 32-bits parcial implementation, State in Register Variables
- Block: 64 bits
- Key Size: 128 bits
-
- Description: 32-bits parcial implementation, State in Register Variables, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation using only one key scheduler
- Block: 64 bits
- Key Size: 80 bits
-
- Description: Implementation using only one key scheduler
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation using no key scheduler
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, one key scheduler
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, no key scheduler
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, one key scheduler, no function calls
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, no key scheduler, no function calls
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, one key scheduler, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, no key scheduler, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, one key scheduler, no function calls, SLK with Registers
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, no key scheduler, no function calls, SLK with Registers
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, one key scheduler, no function calls, SLK with Registers, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Implementation 32-bits partial oriented, no key scheduler, no function calls, SLK with Registers, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: FELICS Reference Implementation.
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey w/ Pointers
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey w/ Return Value
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls)
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers, Steps in Cycles
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers
- Block: 64 bits
- Key Size: 128 bits
-
- Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: FELICS Reference Implementation.
- Block: 128 bits
- Key Size: 128 bits
-
- Description: Normal Implementation
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Normal Implementation, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: State in Register Variables Implementation
- Block: 64 bits
- Key Size: 128 bits
-
- Description: State in Register Variables Implementation, Changed Cycle Operations on Decryption
- Block: 64 bits
- Key Size: 128 bits
-
- Description: State in Register Variables Implementation, Full Unroll
- Block: 64 bits
- Key Size: 128 bits
-
- Description: Normal Implementation
- Block: 128 bits
- Key Size: 128 bits