Files
ritmex-bot/docs/lighter/poseidon_crypto-main/hash/poseidon2_goldilocks/config.go
T

175 lines
5.5 KiB
Go

package poseidon2
import g "github.com/elliottech/poseidon_crypto/field/goldilocks"
const (
WIDTH = 12
RATE = 8
OUT = 4
D = 7
// Generated by `poseidon2_round_numbers_128`
ROUNDS_F = 8
ROUNDS_F_HALF = 4
ROUNDS_P = 22
)
var (
// Generated randomly for ROUNDS_F
EXTERNAL_CONSTANTS = [ROUNDS_F][WIDTH]g.Element{
{
g.NewElement(15492826721047263190),
g.NewElement(11728330187201910315),
g.NewElement(8836021247773420868),
g.NewElement(16777404051263952451),
g.NewElement(5510875212538051896),
g.NewElement(6173089941271892285),
g.NewElement(2927757366422211339),
g.NewElement(10340958981325008808),
g.NewElement(8541987352684552425),
g.NewElement(9739599543776434497),
g.NewElement(15073950188101532019),
g.NewElement(12084856431752384512),
},
{
g.NewElement(4584713381960671270),
g.NewElement(8807052963476652830),
g.NewElement(54136601502601741),
g.NewElement(4872702333905478703),
g.NewElement(5551030319979516287),
g.NewElement(12889366755535460989),
g.NewElement(16329242193178844328),
g.NewElement(412018088475211848),
g.NewElement(10505784623379650541),
g.NewElement(9758812378619434837),
g.NewElement(7421979329386275117),
g.NewElement(375240370024755551),
},
{
g.NewElement(3331431125640721931),
g.NewElement(15684937309956309981),
g.NewElement(578521833432107983),
g.NewElement(14379242000670861838),
g.NewElement(17922409828154900976),
g.NewElement(8153494278429192257),
g.NewElement(15904673920630731971),
g.NewElement(11217863998460634216),
g.NewElement(3301540195510742136),
g.NewElement(9937973023749922003),
g.NewElement(3059102938155026419),
g.NewElement(1895288289490976132),
},
{
g.NewElement(5580912693628927540),
g.NewElement(10064804080494788323),
g.NewElement(9582481583369602410),
g.NewElement(10186259561546797986),
g.NewElement(247426333829703916),
g.NewElement(13193193905461376067),
g.NewElement(6386232593701758044),
g.NewElement(17954717245501896472),
g.NewElement(1531720443376282699),
g.NewElement(2455761864255501970),
g.NewElement(11234429217864304495),
g.NewElement(4746959618548874102),
},
{
g.NewElement(13571697342473846203),
g.NewElement(17477857865056504753),
g.NewElement(15963032953523553760),
g.NewElement(16033593225279635898),
g.NewElement(14252634232868282405),
g.NewElement(8219748254835277737),
g.NewElement(7459165569491914711),
g.NewElement(15855939513193752003),
g.NewElement(16788866461340278896),
g.NewElement(7102224659693946577),
g.NewElement(3024718005636976471),
g.NewElement(13695468978618890430),
},
{
g.NewElement(8214202050877825436),
g.NewElement(2670727992739346204),
g.NewElement(16259532062589659211),
g.NewElement(11869922396257088411),
g.NewElement(3179482916972760137),
g.NewElement(13525476046633427808),
g.NewElement(3217337278042947412),
g.NewElement(14494689598654046340),
g.NewElement(15837379330312175383),
g.NewElement(8029037639801151344),
g.NewElement(2153456285263517937),
g.NewElement(8301106462311849241),
},
{
g.NewElement(13294194396455217955),
g.NewElement(17394768489610594315),
g.NewElement(12847609130464867455),
g.NewElement(14015739446356528640),
g.NewElement(5879251655839607853),
g.NewElement(9747000124977436185),
g.NewElement(8950393546890284269),
g.NewElement(10765765936405694368),
g.NewElement(14695323910334139959),
g.NewElement(16366254691123000864),
g.NewElement(15292774414889043182),
g.NewElement(10910394433429313384),
},
{
g.NewElement(17253424460214596184),
g.NewElement(3442854447664030446),
g.NewElement(3005570425335613727),
g.NewElement(10859158614900201063),
g.NewElement(9763230642109343539),
g.NewElement(6647722546511515039),
g.NewElement(909012944955815706),
g.NewElement(18101204076790399111),
g.NewElement(11588128829349125809),
g.NewElement(15863878496612806566),
g.NewElement(5201119062417750399),
g.NewElement(176665553780565743),
},
}
// Generated randomly for ROUNDS_P
INTERNAL_CONSTANTS = [ROUNDS_P]g.Element{
g.NewElement(11921381764981422944),
g.NewElement(10318423381711320787),
g.NewElement(8291411502347000766),
g.NewElement(229948027109387563),
g.NewElement(9152521390190983261),
g.NewElement(7129306032690285515),
g.NewElement(15395989607365232011),
g.NewElement(8641397269074305925),
g.NewElement(17256848792241043600),
g.NewElement(6046475228902245682),
g.NewElement(12041608676381094092),
g.NewElement(12785542378683951657),
g.NewElement(14546032085337914034),
g.NewElement(3304199118235116851),
g.NewElement(16499627707072547655),
g.NewElement(10386478025625759321),
g.NewElement(13475579315436919170),
g.NewElement(16042710511297532028),
g.NewElement(1411266850385657080),
g.NewElement(9024840976168649958),
g.NewElement(14047056970978379368),
g.NewElement(838728605080212101),
}
// Taken from Plonk3 Poseidon2 implementation. https://github.com/Plonky3/Plonky3/blob/eeb4e37b20127c4daa871b2bad0df30a7c7380db/goldilocks/src/poseidon2.rs#L28
MATRIX_DIAG_12_U64 = [WIDTH]g.Element{
g.NewElement(0xc3b6c08e23ba9300),
g.NewElement(0xd84b5de94a324fb6),
g.NewElement(0x0d0c371c5b35b84f),
g.NewElement(0x7964f570e7188037),
g.NewElement(0x5daf18bbd996604b),
g.NewElement(0x6743bc47b9595257),
g.NewElement(0x5528b9362c59bb70),
g.NewElement(0xac45e25b7127b68b),
g.NewElement(0xa2077d7dfbb606b5),
g.NewElement(0xf3faac6faee378ae),
g.NewElement(0x0c6388b51545e883),
g.NewElement(0xd27dbb6944917b60),
}
)