Skip to content

jcsf/LightweightBlockCiphers.Thesis.2018

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

55 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightweightBlockCiphers.Thesis.2018

Block Ciphers implemented for the Master Thesis@IST (2017/2018)

João Fernandes, 87786, jcsf_1995@hotmail.com

Repository: LightweightBlockCiphers.Thesis.2018


Block Ciphers:

All block ciphers implementations have been made from the reference implementations of the ciphers.

  • AES_128_128_v01:

    • Description: FELICS Implementation, AES Normal
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v08:

    • Description: T-Box AES implementation with cycle for rounds
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v09:

    • Description: T-Box Compressed (12 Tables to 3) AES Compact Implementation (Permutations and Cycles)
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v10:

    • Description: T-Box Compressed AES Compact Implementation (No Permutations)
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v11:

    • Description: T-Box Compressed AES Implementation, Full Unroll
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v12:

    • Description: T-Box Compressed AES Compact Implementation (No Permutations), State in Registers
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v13:

    • Description: T-Box Compressed AES Implementation, State in Registers, Full Unroll
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v14:

    • Description: Reference Implementation
    • Block: 128 bits
    • Key Size: 128 bits
  • AES_128_128_v15:

    • Description: Reference Implementation, Fast Encryption (Multiply)
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v01

    • Description: Based on Reference Implementation
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v02

    • Description: Code Cleaned from Reference Implementation
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v03

    • Description: T-Box Implementation
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v04

    • Description: 32-bits Oriented Implementation
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v05

    • Description: 32-bits Oriented Implementation, With Constants Table
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v06

    • Description: 32-bits Oriented Implementation, With T-Box and Constants Table
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v07

    • Description: 32-bits Oriented Implementation, With T-Box (Reduction from 8 to 4) and Constants Table
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v08

    • Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, F0 and F1 inlined
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v09

    • Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, Full Unroll
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v10

    • Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, State in Registers
    • Block: 128 bits
    • Key Size: 128 bits
  • CLEFIA_128_128_v11

    • Description: 32-bits Oriented Implementation, With T-Box Reduction and Constants Table, State in Registers, Full Unroll
    • Block: 128 bits
    • Key Size: 128 bits
  • HALKA:

    • Description: Based on Reference Implementation
    • Block: 64 bits
    • Key Size: 80 bits
  • HALKA:

    • Description: Optimized Implementation (Code Cleaned)
    • Block: 64 bits
    • Key Size: 80 bits
  • NOEKEON_128_128_v01

    • Description: Direct Key Implementation (Based on Reference), Big Endian Version
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v02

    • Description: Indirect Key Implementation (Based on Reference), Big Endian Version
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v03

    • Description: Direct Key Implementation, Little Endian Version
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v04

    • Description: Indirect Key Implementation, Little Endian Version
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v05

    • Description: Direct Key Implementation, Little Endian Version, With Constants Table
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v06

    • Description: Direct Key Implementation, Little Endian Version, No Function Calls
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v07

    • Description: Direct Key Implementation, Little Endian Version, No Function Calls, With Constants Table
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v08

    • Description: Direct Key Implementation, Little Endian Version, No Function Calls, Full Unroll
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v09

    • Description: Direct-Key Implementation, Little Endian Version, No Function Calls, With Constants Table, Implementation in Registers Variables
    • Block: 128 bits
    • Key Size: 128 bits
  • NOEKEON_128_128_v10

    • 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
  • NOEKEON_128_128_v11

    • 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
  • NOEKEON_128_128_v12

    • 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
  • PRESENT_64_80_v01

    • Description: FELICS Reference Implementation
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v07

    • Description: 32-bits oriented implementation (SBox 4-bits)
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v08

    • Description: 32-bits oriented implementation (SBox 8-bits)
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v09

    • Description: 32-bits oriented implementation (SBox 4-bits), Unroll Permutations
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v10

    • Description: 32-bits oriented implementation (SBox 8-bits), Unroll Permutations
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v11

    • Description: 32-bits oriented implementation (SBox 8-bits), State in Registers
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v12

    • Description: 32-bits oriented implementation (SBox 8-bits), State in Registers, Unroll Permutations
    • Block: 64 bits
    • Key Size: 80 bits
  • PRESENT_64_80_v13

    • Description: 32-bits oriented implementation (SBox 8-bits), State in Registers, Unroll Permutations, Full Unroll
    • Block: 64 bits
    • Key Size: 80 bits
  • RECTANGLE_64_128_v10

    • Description: FELICS Optimized Implementation, No Function Calls
    • Block: 64 bits
    • Key Size: 80 bits
  • RECTANGLE_64_128_v01

    • Description: FELICS Reference Implementation
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v10

    • Description: FELICS Optimized Implementation, No Function Calls
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v11

    • Description: 32-bits parcial implementation
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v12

    • Description: 32-bits parcial implementation, No Function Calls
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v13

    • Description: 32-bits parcial implementation, No Function Calls, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v14

    • Description: 32-bits parcial implementation, State in Register Variables
    • Block: 64 bits
    • Key Size: 128 bits
  • RECTANGLE_64_128_v15

    • Description: 32-bits parcial implementation, State in Register Variables, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_80_v03

    • Description: Implementation using only one key scheduler
    • Block: 64 bits
    • Key Size: 80 bits
  • ROADRUNNER_64_128_v07

    • Description: Implementation using only one key scheduler
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v08

    • Description: Implementation using no key scheduler
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v09

    • Description: Implementation 32-bits partial oriented, one key scheduler
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v10

    • Description: Implementation 32-bits partial oriented, no key scheduler
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v11

    • Description: Implementation 32-bits partial oriented, one key scheduler, no function calls
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v12

    • Description: Implementation 32-bits partial oriented, no key scheduler, no function calls
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v13

    • Description: Implementation 32-bits partial oriented, one key scheduler, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v14

    • Description: Implementation 32-bits partial oriented, no key scheduler, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v15

    • Description: Implementation 32-bits partial oriented, one key scheduler, no function calls, SLK with Registers
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v16

    • Description: Implementation 32-bits partial oriented, no key scheduler, no function calls, SLK with Registers
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v17

    • Description: Implementation 32-bits partial oriented, one key scheduler, no function calls, SLK with Registers, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • ROADRUNNER_64_128_v18

    • Description: Implementation 32-bits partial oriented, no key scheduler, no function calls, SLK with Registers, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v36

    • Description: FELICS Reference Implementation.
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v37

    • Description: SPARX 32-Bit Oriented with Speckey w/ Pointers
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v38

    • Description: SPARX 32-Bit Oriented with Speckey w/ Return Value
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v39

    • Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls)
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v40

    • Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v41

    • Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers, Steps in Cycles
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v42

    • Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_64_128_v43

    • Description: SPARX 32-Bit Oriented with Speckey Inlined (No Function Calls), State in Registers, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • SPARX_128_128_v02

    • Description: FELICS Reference Implementation.
    • Block: 128 bits
    • Key Size: 128 bits
  • SPECK_64_128_v07

    • Description: Normal Implementation
    • Block: 64 bits
    • Key Size: 128 bits
  • SPECK_64_128_v08

    • Description: Normal Implementation, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • SPECK_64_128_v09

    • Description: State in Register Variables Implementation
    • Block: 64 bits
    • Key Size: 128 bits
  • SPECK_64_128_v10

    • Description: State in Register Variables Implementation, Changed Cycle Operations on Decryption
    • Block: 64 bits
    • Key Size: 128 bits
  • SPECK_64_128_v11

    • Description: State in Register Variables Implementation, Full Unroll
    • Block: 64 bits
    • Key Size: 128 bits
  • SPECK_128_128_v01

    • Description: Normal Implementation
    • Block: 128 bits
    • Key Size: 128 bits

About

Block Ciphers implemented for the Master Thesis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages