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
↓ 1 callers
Method
Convert
Convert returns the parasite which corresponds to p on the other side of an S-box layer.
cryptanalysis/toy/parasite.go:34
↓ 1 callers
Method
Decode
(in [16]byte)
cryptanalysis/xiao/xiao.go:52
↓ 1 callers
Method
Decrypt
Decrypt decrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/toy/toy.go:35
↓ 1 callers
Method
Decrypt
Decrypt decrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/chow/chow.go:39
↓ 1 callers
Method
Encode
(in byte)
cryptanalysis/xiao/sbox.go:14
↓ 1 callers
Method
Encrypt
Encrypt encrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/bes/bes.go:31
↓ 1 callers
Method
Encrypt
(dst, src []byte)
cryptanalysis/xiao/xiao.go:67
↓ 1 callers
Function
GenerateDecryptionKeys
GenerateDecryptionKeys creates a white-boxed version of the AES key `key` for decryption, with any non-determinism generated by `seed`.
constructions/xiao/keygen.go:107
↓ 1 callers
Function
GenerateDecryptionKeys
GenerateDecryptionKeys creates a white-boxed version of AES with given key for decryption, with any non-determinism generated by seed. Opts specifies
constructions/chow/keygen.go:127
↓ 1 callers
Function
Parse
Parse parses a byte array into a white-box construction. It returns an error if the byte slice isn't long enough.
constructions/full/persistence.go:19
↓ 1 callers
Function
Parse
Parse parses a byte array into a white-box construction. It returns an error if the byte slice isn't long enough.
constructions/toy/persistence.go:27
↓ 1 callers
Function
ParseByteXORTables
[byte-wise position][gate number]
constructions/common/xor_tables.go:78
↓ 1 callers
Function
ParseNibbleXORTables
[nibble-wise position][gate number]
constructions/common/xor_tables.go:36
↓ 1 callers
Function
RecoverKey
RecoverKey returns the AES key used to generate the given white-box construction.
cryptanalysis/xiao/xiao.go:77
↓ 1 callers
Function
RecoverKey
RecoverKey returns the AES key used to generate the given white-box construction.
cryptanalysis/toy/toy.go:35
↓ 1 callers
Function
RecoverKey
RecoverKey returns the AES key used to generate the given white-box construction.
cryptanalysis/chow/chow.go:72
↓ 1 callers
Method
UnMixColumn
UnMixColumn is the inverse of MixColumn.
constructions/saes/saes.go:218
↓ 1 callers
Function
backOneRound
backOneRound takes round key i and returns round key i-1.
cryptanalysis/xiao/xiao.go:21
↓ 1 callers
Function
blockOfInverse
blockOfInverse computes a block of the something something something.
cryptanalysis/xiao/affine.go:13
↓ 1 callers
Method
blockParasite
blockParasites returns the input parasite of the block at the given row and column of the linear part of al, or nil if the block is zero.
cryptanalysis/toy/affine.go:73
↓ 1 callers
Method
cleanConstant
cleanConstant finds the constant error on the input and output of each middle S-box. It removes it from the S-box and returns it. Note: This function
cryptanalysis/chow/sbox.go:71
↓ 1 callers
Method
cleanLeft
cleanLeft gets the last affine layer back to a matrix with 16-by-16 blocks along the diagonal, times ShiftRows, times MixColumns and returns the matri
cryptanalysis/xiao/affine.go:88
↓ 1 callers
Method
cleanLinear
cleanLinear finds the linear error on the input and output of each middle S-box. It removes it from the S-box and returns it. After this function is a
cryptanalysis/xiao/sbox.go:69
↓ 1 callers
Method
cleanLinear
cleanLinear finds the linear error on the input and output of each middle S-box (after the constant error has been removed). It removes it from the S-
cryptanalysis/chow/sbox.go:87
↓ 1 callers
Function
compress
compress compute the AND of neighboring bits in src and stores the result in dst.
constructions/full/full.go:67
↓ 1 callers
Method
compress
compress maps a permuted round matrix to a matrix over F_{2^8} by converting each block to its MixColumns coefficient.
cryptanalysis/toy/affine.go:94
↓ 1 callers
Method
findBlockOfInverse
findBlockOfInverse finds any S-box transpositions or self-equivalence noise that may be hiding in the given block of the last affine layer and returns
cryptanalysis/xiao/affine.go:110
↓ 1 callers
Method
findConstant
findConstant returns the constant error on the input and output of the middle S-box at position pos.
cryptanalysis/chow/sbox.go:106
↓ 1 callers
Method
findLinear
findLinear returns the linear error on the input and output of the mmiddle S-box at position pos (once the constant error has been removed). The funct
cryptanalysis/chow/sbox.go:126
↓ 1 callers
Method
findPermutation
FindPermutation is called on the first affine layer. It returns the permutation matrix corresponding to the row permutation that has occured to the fi
cryptanalysis/xiao/affine.go:68
↓ 1 callers
Function
generateAffineMasks
generateAffineMasks creates the random external masks for the construction.
constructions/full/keygen.go:17
↓ 1 callers
Function
generateAffineMasks
generateAffineMasks creates the random external masks for the construction.
constructions/toy/keygen.go:16
↓ 1 callers
Function
generatePermutation
generatePermutation returns a randomly chosen permutation of [0, n) and its inverse.
constructions/full/keygen.go:34
↓ 1 callers
Function
generateSboxSelfEq
generateSboxSelfEq returns a randomly chosen affine self-equivalence of the AND gate. This information is packed into a [6]bool. The first pair of boo
constructions/full/keygen.go:57
↓ 1 callers
Function
generateSelfEquivalence
generateSelfEquivalence returns a random self-equivalence of the S-box layer, defined by stateSize and compressSize.
constructions/full/keygen.go:72
↓ 1 callers
Function
generateSelfEquivalence
generateSelfEquivalence returns a random self-equivalence of the S-box layer, so that \zeta(x) = bInv(\zeta(a(x))).
constructions/toy/keygen.go:74
↓ 1 callers
Method
inputParasite
inputParasite returns the non-GF(2^8) part of the parasite on the output at position col.
cryptanalysis/chow/affine.go:78
↓ 1 callers
Function
isAS
isAS returns true if the given Byte encoding might be an AS structure, with 2 4-bit S-boxes.
cryptanalysis/chow/chow.go:42
↓ 1 callers
Method
isBlockOfInverse
isBlockOfInverse takes a candidate solution for the given block of the matrix and returns true if it is valid and false if it isn't.
cryptanalysis/xiao/affine.go:134
↓ 1 callers
Function
makeLastRound
()
constructions/bes/constants.go:135
↓ 1 callers
Function
makeMixColumns
()
constructions/bes/constants.go:106
↓ 1 callers
Function
makeOneMixColumns
()
constructions/bes/constants.go:86
↓ 1 callers
Function
makeOneSubBytes
()
constructions/bes/constants.go:10
↓ 1 callers
Function
makeRound
()
constructions/bes/constants.go:127
↓ 1 callers
Function
makeRoundConst
()
constructions/bes/constants.go:131
↓ 1 callers
Function
makeShiftRows
()
constructions/bes/constants.go:64
↓ 1 callers
Function
mbInverseEncoding
mbInverseEncoding encodes the output of a MB^(-1) Table / the input of a LowXORTable. All randomness is derived from the random source; round is the
constructions/chow/keygen_primitives.go:156
↓ 1 callers
Method
outputParasite
outputParasite returns the non-GF(2^8) part of the parasite on the output at position row.
cryptanalysis/chow/affine.go:103
↓ 1 callers
Function
parseBlockAffine
(in []byte)
constructions/full/full.go:18
↓ 1 callers
Method
permuteBy
permuteBy permutes the S-boxes according to the 128-by-128 permutation matrix perm. If forwards = true, the forwards permutation is used; else, the ba
cryptanalysis/xiao/sbox.go:37
↓ 1 callers
Function
rotw
(w uint32)
constructions/saes/saes.go:58
↓ 1 callers
Method
serialize
(out *[]byte)
constructions/full/full.go:56
↓ 1 callers
Method
shiftRows
shiftRows permutes the bytes of the first block of block, according to AES' ShiftRows operation.
constructions/chow/chow.go:73
↓ 1 callers
Method
stripScalars
stripScalars gets rid of unknown scalars in each block of the affine layer. It leaves it exactly equal to MixColumns, but there is an unknown scalar i
cryptanalysis/chow/affine.go:129
↓ 1 callers
Function
tyiEncoding
tyiEncoding encodes the output of a T-Box/Tyi Table / the input of a HighXORTable. All randomness is derived from the random source; round is the cur
constructions/chow/keygen_primitives.go:145
↓ 1 callers
Method
unpermute
unpermute transforms sm until it is equal to a compressed round matrix. sm is mutated to the compressed round matrix, and permIn and permOut are the p
cryptanalysis/toy/small_matrix.go:58
↓ 1 callers
Method
unpermuteStep
unpermuteStep is one step of the dynamic programming algorithm. It works by moving different twos to the diagonal and checking if this leads to a part
cryptanalysis/toy/small_matrix.go:69
↓ 1 callers
Method
whiten
whiten puts an xor-mask on the input to each S-box so that S(0x00) = 0x00.
cryptanalysis/xiao/sbox.go:53
Function
BenchmarkDeadEncrypt
A "Dead" Encryption is one based on serialized tables, like we'd have in a real use case.
constructions/xiao/xiao_test.go:147
Function
BenchmarkDeadEncrypt
A "Dead" Encryption is one based on serialized tables, like we'd have in a real use case.
constructions/chow/chow_test.go:164
Function
BenchmarkGenerateEncryptionKeys
(b *testing.B)
constructions/xiao/xiao_test.go:126
Function
BenchmarkGenerateEncryptionKeys
(b *testing.B)
constructions/chow/chow_test.go:143
Function
BenchmarkGolangEncrypt
(b *testing.B)
constructions/saes/saes_test.go:280
Function
BenchmarkLiveEncrypt
A "Live" Encryption is one based on table abstractions, so many computations are performed on-demand.
constructions/xiao/xiao_test.go:134
Function
BenchmarkLiveEncrypt
A "Live" Encryption is one based on table abstractions, so many computations are performed on-demand.
constructions/chow/chow_test.go:151
Function
BenchmarkStandardDecrypt
(b *testing.B)
constructions/saes/saes_test.go:266
Function
BenchmarkStandardEncrypt
(b *testing.B)
constructions/saes/saes_test.go:252
Function
BlockByteXORTables
Generate the XOR Tables for squashing the result of a BlockMatrix.
constructions/common/keygen_tools.go:52
Function
BlockNibbleXORTables
SliceEncoding(position, subPosition int) encoding.Nibble Encodes the output of a matrix slice. position: Position in the state array, counted in *byt
constructions/common/keygen_tools.go:25
Method
BlockSize
BlockSize returns the block size of AES. (Necessary to implement cipher.Block.)
constructions/xiao/xiao.go:25
Method
BlockSize
BlockSize returns the block size of AES. (Necessary to implement cipher.Block.)
constructions/full/full.go:79
Method
BlockSize
BlockSize returns the block size of BES. (Necessary to implement cipher.Block.)
constructions/bes/bes.go:28
Method
BlockSize
BlockSize returns the block size of AES. (Necessary to implement cipher.Block.)
constructions/toy/toy.go:14
Method
Decode
(in [16]byte)
constructions/toy/keygen.go:44
Method
Decode
(in [16]byte)
cryptanalysis/xiao/affine.go:44
Method
Decode
(in [16]byte)
cryptanalysis/xiao/sbox.go:31
Method
Decode
(in [16]byte)
cryptanalysis/toy/encoding.go:19
Method
Decode
(in [16]byte)
cryptanalysis/toy/encoding.go:47
Method
Decode
(in [16]byte)
cryptanalysis/toy/small_matrix.go:30
Method
Decode
(in [16]byte)
cryptanalysis/toy/affine.go:26
Method
Decode
(in byte)
cryptanalysis/toy/parasite.go:22
Method
Decode
(in [16]byte)
cryptanalysis/chow/affine.go:40
Method
Decode
(in byte)
cryptanalysis/chow/sbox.go:32
Method
Decode
(in [16]byte)
cryptanalysis/chow/sbox.go:43
Method
Decrypt
Decrypt decrypts the first block in src into dst. Dst and src may point at the same memory.
constructions/xiao/xiao.go:33
Method
Decrypt
Decrypt is not implemented.
constructions/full/full.go:99
Method
Encode
(in [16]byte)
constructions/toy/keygen.go:36
Method
Encode
(in [16]byte)
cryptanalysis/xiao/affine.go:40
Method
Encode
(in [16]byte)
cryptanalysis/xiao/sbox.go:27
Method
Encode
(in [16]byte)
cryptanalysis/xiao/xiao.go:43
Method
Encode
(in [16]byte)
cryptanalysis/toy/encoding.go:10
Method
Encode
(in [16]byte)
cryptanalysis/toy/small_matrix.go:22
Method
Encode
(in [16]byte)
cryptanalysis/toy/affine.go:22
Method
Encode
(in byte)
cryptanalysis/toy/parasite.go:13
Method
Encode
(in [16]byte)
cryptanalysis/chow/affine.go:36
Method
Encode
(in byte)
cryptanalysis/chow/sbox.go:28
Method
Encode
(in [16]byte)
cryptanalysis/chow/sbox.go:39
Method
Encrypt
(dst, src []byte)
cryptanalysis/chow/chow.go:59
Function
Example_encrypt
()
constructions/saes/saes_test.go:16
Function
GenerateMasks
GenerateMasks generates input and output encodings for a white-box AES construction.
constructions/common/keygen_primitives.go:36
← previous
next →
101–200 of 266, ranked by callers