scrambler_pkg

Hold S-box, permutation and address-scramble helpers for SRAM data and address scrambling.

Provides the PRESENT 4-bit and Pyjamask 3-bit S-boxes, the PRESENT 32-bit permutation and 6- to 16-bit bit permutations, each with its inverse, 6- to 16-bit rotate-left helpers, and the 6- to 13-bit address scramble functions (key XOR, S-boxes, then permutation).

sbox3

Pyjamask lightweight cipher substitution function

Function returning logic [2:0]

Table 1. sbox3
NameDirectionTypeDescription
dinputlogic [2:0]

ibox3

Pyjamask lightweight cipher inverse substitution function

Function returning logic [2:0]

Table 2. ibox3
NameDirectionTypeDescription
dinputlogic [2:0]

sbox4

PRESENT lightweight cipher substitution function

Function returning logic [3:0]

Table 3. sbox4
NameDirectionTypeDescription
dinputlogic [3:0]

ibox4

PRESENT lightweight cipher inverse substitution function

Function returning logic [3:0]

Table 4. ibox4
NameDirectionTypeDescription
dinputlogic [3:0]

perm32

PRESENT Permutation Layer

Function returning logic [31:0]

Table 5. perm32
NameDirectionTypeDescription
dinputlogic [31:0]

iperm32

PRESENT Inverse Permutation Layer

Function returning logic [31:0]

Table 6. iperm32
NameDirectionTypeDescription
dinputlogic [31:0]

perm6

Permutation functions

Function returning logic [5:0]

Table 7. perm6
NameDirectionTypeDescription
dinputlogic [5:0]

perm7

Function returning logic [6:0]

Table 8. perm7
NameDirectionTypeDescription
dinputlogic [6:0]

perm8

Function returning logic [7:0]

Table 9. perm8
NameDirectionTypeDescription
dinputlogic [7:0]

perm9

Function returning logic [8:0]

Table 10. perm9
NameDirectionTypeDescription
dinputlogic [8:0]

perm10

Function returning logic [9:0]

Table 11. perm10
NameDirectionTypeDescription
dinputlogic [9:0]

perm11

Function returning logic [10:0]

Table 12. perm11
NameDirectionTypeDescription
dinputlogic [10:0]

perm12

Function returning logic [11:0]

Table 13. perm12
NameDirectionTypeDescription
dinputlogic [11:0]

perm13

Function returning logic [12:0]

Table 14. perm13
NameDirectionTypeDescription
dinputlogic [12:0]

perm14

Function returning logic [13:0]

Table 15. perm14
NameDirectionTypeDescription
dinputlogic [13:0]

perm15

Function returning logic [14:0]

Table 16. perm15
NameDirectionTypeDescription
dinputlogic [14:0]

perm16

Function returning logic [15:0]

Table 17. perm16
NameDirectionTypeDescription
dinputlogic [15:0]

rol6

verilator lint_off UNUSEDSIGNAL

Function returning logic [5:0]

Table 18. rol6
NameDirectionTypeDescription
dinputlogic [5:0]
rinputlogic [2:0]

rol7

Function returning logic [6:0]

Table 19. rol7
NameDirectionTypeDescription
dinputlogic [6:0]
rinputlogic [2:0]

rol8

Function returning logic [7:0]

Table 20. rol8
NameDirectionTypeDescription
dinputlogic [7:0]
rinputlogic [2:0]

rol9

Function returning logic [8:0]

Table 21. rol9
NameDirectionTypeDescription
dinputlogic [8:0]
rinputlogic [3:0]

rol10

Function returning logic [9:0]

Table 22. rol10
NameDirectionTypeDescription
dinputlogic [9:0]
rinputlogic [3:0]

rol11

Function returning logic [10:0]

Table 23. rol11
NameDirectionTypeDescription
dinputlogic [10:0]
rinputlogic [3:0]

rol12

Function returning logic [11:0]

Table 24. rol12
NameDirectionTypeDescription
dinputlogic [11:0]
rinputlogic [3:0]

rol13

Function returning logic [12:0]

Table 25. rol13
NameDirectionTypeDescription
dinputlogic [12:0]
rinputlogic [3:0]

rol14

Function returning logic [13:0]

Table 26. rol14
NameDirectionTypeDescription
dinputlogic [13:0]
rinputlogic [3:0]

rol15

Function returning logic [14:0]

Table 27. rol15
NameDirectionTypeDescription
dinputlogic [14:0]
rinputlogic [3:0]

rol16

Function returning logic [15:0]

Table 28. rol16
NameDirectionTypeDescription
dinputlogic [15:0]
rinputlogic [3:0]

iperm6

then ipermN maps input bit j to output bit i.

Function returning logic [5:0]

Table 29. iperm6
NameDirectionTypeDescription
dinputlogic [5:0]

iperm7

Function returning logic [6:0]

Table 30. iperm7
NameDirectionTypeDescription
dinputlogic [6:0]

iperm8

Function returning logic [7:0]

Table 31. iperm8
NameDirectionTypeDescription
dinputlogic [7:0]

iperm9

Function returning logic [8:0]

Table 32. iperm9
NameDirectionTypeDescription
dinputlogic [8:0]

iperm10

Function returning logic [9:0]

Table 33. iperm10
NameDirectionTypeDescription
dinputlogic [9:0]

iperm11

Function returning logic [10:0]

Table 34. iperm11
NameDirectionTypeDescription
dinputlogic [10:0]

iperm12

Function returning logic [11:0]

Table 35. iperm12
NameDirectionTypeDescription
dinputlogic [11:0]

iperm13

Function returning logic [12:0]

Table 36. iperm13
NameDirectionTypeDescription
dinputlogic [12:0]

iperm14

Function returning logic [13:0]

Table 37. iperm14
NameDirectionTypeDescription
dinputlogic [13:0]

iperm15

Function returning logic [14:0]

Table 38. iperm15
NameDirectionTypeDescription
dinputlogic [14:0]

iperm16

Function returning logic [15:0]

Table 39. iperm16
NameDirectionTypeDescription
dinputlogic [15:0]

addr_scramble6

address scramblers: add round key, apply sbox, apply permutation

Function returning logic [5:0]

Table 40. addr_scramble6
NameDirectionTypeDescription
addrinputlogic [5:0]
keyinputlogic [5:0]

addr_scramble7

Function returning logic [6:0]

Table 41. addr_scramble7
NameDirectionTypeDescription
addrinputlogic [6:0]
keyinputlogic [6:0]

addr_scramble8

Function returning logic [7:0]

Table 42. addr_scramble8
NameDirectionTypeDescription
addrinputlogic [7:0]
keyinputlogic [7:0]

addr_scramble9

Function returning logic [8:0]

Table 43. addr_scramble9
NameDirectionTypeDescription
addrinputlogic [8:0]
keyinputlogic [8:0]

addr_scramble10

Function returning logic [9:0]

Table 44. addr_scramble10
NameDirectionTypeDescription
addrinputlogic [9:0]
keyinputlogic [9:0]

addr_scramble11

Function returning logic [10:0]

Table 45. addr_scramble11
NameDirectionTypeDescription
addrinputlogic [10:0]
keyinputlogic [10:0]

addr_scramble12

Function returning logic [11:0]

Table 46. addr_scramble12
NameDirectionTypeDescription
addrinputlogic [11:0]
keyinputlogic [11:0]

addr_scramble13

Function returning logic [12:0]

Table 47. addr_scramble13
NameDirectionTypeDescription
addrinputlogic [12:0]
keyinputlogic [12:0]