Code
Hub
Workspaces
Following
Trending
Connect
MCP
copy
Create free account
hub
/
github.com/OpenWhiteBox/AES
/ functions
Functions
266 in github.com/OpenWhiteBox/AES
⨍
Functions
266
◇
Types & classes
46
↓ 15 callers
Method
SubByte
SubByte is AES' S-box. It is a bijection.
constructions/saes/saes.go:132
↓ 13 callers
Function
Expand
Expand takes a value from AES's space and embeds it in BES's space.
constructions/bes/tools.go:9
↓ 13 callers
Method
ShiftRows
ShiftRows permutes the first sixteen bytes of block with a fixed permutation.
constructions/saes/saes.go:169
↓ 12 callers
Method
BlockAffine
()
constructions/full/full.go:47
↓ 11 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/chow/chow.go:34
↓ 11 callers
Method
Serialize
()
constructions/common/xor_tables.go:17
↓ 11 callers
Method
getBlock
getBlock returns the 8-by-8 block of the affine layer at the given position.
cryptanalysis/chow/affine.go:183
↓ 8 callers
Function
GenerateEncryptionKeys
GenerateEncryptionKeys creates a white-boxed version of AES with given key for encryption, with any non-determinism generated by seed. Opts specifies
constructions/chow/keygen.go:97
↓ 8 callers
Method
StretchedKey
StretchedKey implements BES' key schedule. It returns the 11 round keys derived from the master key.
constructions/bes/bes.go:95
↓ 8 callers
Method
compose
(in *blockAffine)
constructions/full/full.go:33
↓ 7 callers
Method
Decode
(in byte)
constructions/toy/keygen.go:63
↓ 7 callers
Method
Get
(i byte)
constructions/chow/keygen_primitives.go:18
↓ 7 callers
Method
UnShiftRows
UnShiftRows permutes the first sixteen bytes of block. It is the inverse of ShiftRows.
constructions/saes/saes.go:177
↓ 6 callers
Method
AddRoundKey
AddRoundKey XORs roundKey into block.
constructions/saes/saes.go:103
↓ 6 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/xiao/xiao.go:28
↓ 6 callers
Function
stepEncoding
stepEncoding returns a TyiEncoding if surface = common.Inside and a MBInverseEncoding if surface = common.Outside. It transparently swaps the two in t
constructions/chow/keygen_primitives.go:118
↓ 6 callers
Function
xorEncoding
xorEncoding produces encodings for intermediate values of XOR tables. All randomness is derived from the random source. If round < 10: surface = comm
constructions/chow/keygen_primitives.go:58
↓ 5 callers
Method
Encode
(in byte)
constructions/toy/keygen.go:54
↓ 5 callers
Method
Encode
(in byte)
cryptanalysis/chow/sbox.go:15
↓ 5 callers
Function
GenerateEncryptionKeys
GenerateEncryptionKeys creates a white-boxed version of the AES key `key` for encryption, with any non-determinism generated by `seed`.
constructions/xiao/keygen.go:66
↓ 5 callers
Method
UnSubByte
UnSubByte is the inverse of SubByte. It is a bijection.
constructions/saes/saes.go:150
↓ 5 callers
Function
sideFromPos
(pos int)
constructions/xiao/keygen_primitives.go:19
↓ 5 callers
Method
subBytes
subBytes rewrites each byte of the state with the S-Box. unSubBytes and subBytes are the same.
constructions/bes/bes.go:131
↓ 4 callers
Method
Decode
(in byte)
cryptanalysis/xiao/sbox.go:19
↓ 4 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/saes/saes.go:22
↓ 4 callers
Method
ExpandWord
(tmc []table.DoubleToWord, word []byte)
constructions/xiao/xiao.go:54
↓ 4 callers
Method
Get
(i [2]byte)
constructions/xiao/keygen_primitives.go:56
↓ 4 callers
Method
Get
(i byte)
constructions/common/aes.go:16
↓ 4 callers
Method
MixColumns
MixColumns multiplies each word of block by a fixed elment of GF(2^32).
constructions/saes/saes.go:185
↓ 4 callers
Method
SquashWords
(words [2][4]byte, dst []byte)
constructions/xiao/xiao.go:61
↓ 4 callers
Function
generateMask
(rs *random.Source, maskType MaskType, surface Surface)
constructions/common/keygen_primitives.go:54
↓ 4 callers
Method
leftCompose
reftCompose component-wise composes this SBox layer with a concatenated block encoding on the left (input). A shift to apply can be specified.
cryptanalysis/chow/sbox.go:49
↓ 4 callers
Function
maskEncoding
maskEncoding produces encodings for the outputs of the InputMask and OutputMask. All randomness is derived from the random source; surface is common.I
constructions/chow/keygen_primitives.go:33
↓ 4 callers
Function
maskSwap
(rs *random.Source, size, round int)
constructions/xiao/keygen_primitives.go:104
↓ 4 callers
Method
rightCompose
rightCompose composes a Block encoding on the right.
cryptanalysis/xiao/affine.go:58
↓ 4 callers
Method
rightCompose
rightCompose component-wise composes this SBox layer with a concatenated block encoding on the right (output). A shift to apply can be specified.
cryptanalysis/chow/sbox.go:59
↓ 4 callers
Function
roundEncoding
roundEncoding produces encodings for the output of a series of XOR tables / the input of a TBoxTyiTable or MBInverseTable. All randomness is derived f
constructions/chow/keygen_primitives.go:77
↓ 4 callers
Method
swap
(i, j int)
cryptanalysis/toy/small_matrix.go:38
↓ 3 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/full/full.go:82
↓ 3 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/toy/toy.go:17
↓ 3 callers
Function
GenerateKeys
GenerateKeys creates a white-boxed version of the AES key `key`, with any non-determinism generated by `seed`.
constructions/toy/keygen.go:112
↓ 3 callers
Method
Get
(i [2]byte)
constructions/common/xor_tables.go:30
↓ 3 callers
Method
StretchedKey
StretchedKey implements AES' key schedule. It returns the 11 round keys derived from the master key.
constructions/saes/saes.go:61
↓ 3 callers
Method
SubBytes
SubBytes rewrites each byte of block with its image under SubByte.
constructions/saes/saes.go:110
↓ 3 callers
Method
adjust
adjust fixes the affine layer for two block encodings which will be moved somewhere else.
cryptanalysis/toy/affine.go:31
↓ 3 callers
Function
byteRoundEncoding
byteRoundEncoding concatenates all the round encodings for a single byte. Function parameters are explained in RoundEncoding documentation.
constructions/chow/keygen_primitives.go:165
↓ 3 callers
Method
leftCompose
leftCompose composes a Block encoding on the left.
cryptanalysis/xiao/affine.go:49
↓ 3 callers
Function
makeSubBytesConst
(n int)
constructions/bes/constants.go:46
↓ 3 callers
Method
parasites
parasites returns the input parasite for each byte of the input of al.
cryptanalysis/toy/affine.go:54
↓ 3 callers
Function
testinit
()
constructions/bes/bes_test.go:14
↓ 3 callers
Function
toString
toString converts an 8-by-8 matrix into a hex string.
cryptanalysis/toy/affine.go:12
↓ 2 callers
Method
BlockSize
BlockSize returns the block size of AES. (Necessary to implement cipher.Block.)
constructions/saes/saes.go:19
↓ 2 callers
Method
Decode
(in byte)
cryptanalysis/chow/sbox.go:20
↓ 2 callers
Method
Decrypt
Decrypt decrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/bes/bes.go:45
↓ 2 callers
Method
Decrypt
Decrypt decrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/saes/saes.go:40
↓ 2 callers
Method
Encode
(in [16]byte)
cryptanalysis/toy/encoding.go:34
↓ 2 callers
Method
ExpandWord
ExpandWord expands one word of the state matrix with the T-Boxes composed with Tyi Tables.
constructions/chow/chow.go:89
↓ 2 callers
Function
GenerateKeys
GenerateKeys creates a white-boxed version of the AES key `key`, with any non-determinism generated by `seed`.
constructions/full/keygen.go:112
↓ 2 callers
Method
Get
(i [2]byte)
constructions/xiao/keygen_primitives.go:33
↓ 2 callers
Method
MixColumn
MixColumn multiplies the first four bytes of slice by a fixed element of GF(2^32).
constructions/saes/saes.go:199
↓ 2 callers
Function
Parse
Parse parses a byte array into a white-box construction. It returns an error if the byte array isn't long enough.
constructions/xiao/persistence.go:37
↓ 2 callers
Function
Parse
Parse parses a byte array into a white-box construction. It returns an error if the byte array isn't long enough.
constructions/chow/persistence.go:41
↓ 2 callers
Function
ParseBlockSlices
(in []byte)
constructions/common/persistence.go:23
↓ 2 callers
Method
SquashBlocks
(blocks [16][16]byte, dst []byte)
constructions/common/xor_tables.go:16
↓ 2 callers
Method
SquashWords
SquashWords squashes an expanded word back into one word with 3 pairwise XORs (calc'd one nibble at a time): (((a ^ b) ^ c) ^ d)
constructions/chow/chow.go:95
↓ 2 callers
Method
SubWord
SubWord applies SubByte to each byte of an unsigned integer word and returns the result.
constructions/saes/saes.go:124
↓ 2 callers
Method
UnMixColumns
UnMixColumns is the inverse of MixColumns.
constructions/saes/saes.go:192
↓ 2 callers
Method
UnSubBytes
UnSubBytes rewrites each byte of block with its image under UnSubByte.
constructions/saes/saes.go:117
↓ 2 callers
Method
adjust
adjust fixes the affine layer for two concatenated block encodings which will be moved into the S-box layer.
cryptanalysis/chow/affine.go:67
↓ 2 callers
Function
backOneRound
backOneRound takes round key i and returns round key i-1.
cryptanalysis/toy/toy.go:16
↓ 2 callers
Function
backOneRound
backOneRound takes round key i and returns round key i-1.
cryptanalysis/chow/chow.go:22
↓ 2 callers
Function
blockMaskEncoding
blockMaskEncoding concatenates all the mask encodings for InputMask or TBoxOutputMask into a block encoding, so that it can easily be put on the outpu
constructions/chow/keygen_primitives.go:93
↓ 2 callers
Method
clean
clean gets the affine layer back to MixColumns and returns the input and output parasites.
cryptanalysis/chow/affine.go:45
↓ 2 callers
Method
cleanParasites
cleanParasites removes the given parasites from the input and output of al. in are the input parasites for this affine layer, and nextIn are the input
cryptanalysis/toy/affine.go:43
↓ 2 callers
Method
crypt
(dst, src []byte)
constructions/xiao/xiao.go:37
↓ 2 callers
Method
crypt
crypt pushes the first block in src through the lookup tables (which may compute encryption or decryption) and writes the result to dst. shift is the
constructions/chow/chow.go:45
↓ 2 callers
Method
decrypt
(in gfmatrix.Row)
constructions/bes/bes.go:76
↓ 2 callers
Method
encrypt
(in gfmatrix.Row)
constructions/bes/bes.go:58
↓ 2 callers
Method
expandBlock
ExpandBlock expands the entire state matrix into sixteen blocks.
constructions/chow/chow.go:109
↓ 2 callers
Function
findMatrix
findMatrix finds an invertible matrix in a basis.
cryptanalysis/chow/affine.go:10
↓ 2 callers
Function
generateBarriers
generateBarriers creates the encoding barriers between rounds that compute ShiftRows and re-encodes data.
constructions/xiao/keygen.go:52
↓ 2 callers
Function
generateKeys
(rs *random.Source, opts common.KeyGenerationOpts, out *Construction, inputMask, outputMask *matrix.Matrix, sh
constructions/chow/keygen.go:13
↓ 2 callers
Function
generateRoundMaterial
StandardAES form of Xiao-Lai: func (constr Construction) Encrypt(dst, src []byte) { roundKeys := constr.StretchedKey() copy(dst, src) for i := 0;
constructions/xiao/keygen.go:37
↓ 2 callers
Method
getBlock
getBlock returns the 8-by-8 block of the affine layer at the given position.
cryptanalysis/toy/affine.go:112
↓ 2 callers
Function
makeSubBytes
(n int)
constructions/bes/constants.go:30
↓ 2 callers
Function
newPermutation
newPermutation returns an identity permutation.
cryptanalysis/toy/small_matrix.go:12
↓ 2 callers
Function
parseMatrix
(in []byte)
constructions/xiao/persistence.go:69
↓ 2 callers
Function
parseStepTables
(in []byte)
constructions/chow/persistence.go:72
↓ 2 callers
Function
parseXORTables
(in []byte)
constructions/chow/persistence.go:100
↓ 2 callers
Function
serializeMatrix
(dst []byte, m matrix.Matrix)
constructions/xiao/persistence.go:60
↓ 2 callers
Function
serializeStepTables
(dst []byte, t [9][16]table.Word)
constructions/chow/persistence.go:61
↓ 2 callers
Function
serializeXORTables
(dst []byte, t [9][32][3]table.Nibble)
constructions/chow/persistence.go:87
↓ 2 callers
Function
shiftRoundKey
shiftRoundKey adds the fixed SubBytes constant to a round key and returns the result as an encoding.Block.
constructions/toy/keygen.go:105
↓ 2 callers
Method
swapCols
(x, y int)
cryptanalysis/toy/small_matrix.go:50
↓ 2 callers
Method
swapRows
(x, y int)
cryptanalysis/toy/small_matrix.go:46
↓ 2 callers
Method
transform
(in []byte)
constructions/full/full.go:40
↓ 2 callers
Function
wordStepEncoding
wordStepEncoding concatenates all the step encodings for the full output of a Word table in TBoxTyiTable or MBInverseTable. Function parameters are ex
constructions/chow/keygen_primitives.go:128
↓ 2 callers
Function
xorTables
xorTables generates the XOR Tables for squashing the result of a Tyi Table or MB^(-1) Table.
constructions/chow/keygen_tools.go:12
↓ 1 callers
Method
BlockSize
BlockSize returns the block size of AES. (Necessary to implement cipher.Block.)
constructions/chow/chow.go:31
↓ 1 callers
Function
Contract
Contract takes a value from BES's space and compacts it into AES's space.
constructions/bes/tools.go:25
next →
1–100 of 266, ranked by callers