mirror of
https://github.com/J08nY/std-curves.git
synced 2026-01-07 20:43:59 -05:00
1502 lines
46 KiB
JSON
1502 lines
46 KiB
JSON
{
|
|
"name": "other",
|
|
"desc": "An assortment of some other curves.",
|
|
"curves": [
|
|
{
|
|
"name": "M-221",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD",
|
|
"bits": 221
|
|
},
|
|
"form": "Montgomery",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x01c93a"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x04"
|
|
},
|
|
"y": {
|
|
"raw": "0x0f7acdd2a4939571d1cef14eca37c228e61dbff10707dc6c08c5056d"
|
|
}
|
|
},
|
|
"order": "0x040000000000000000000000000015A08ED730E8A2F77F005042605B",
|
|
"cofactor": "0x8"
|
|
},
|
|
{
|
|
"name": "M-383",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45",
|
|
"bits": 383
|
|
},
|
|
"form": "Montgomery",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x1f82fe"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x0c"
|
|
},
|
|
"y": {
|
|
"raw": "0x1ec7ed04aaf834af310e304b2da0f328e7c165f0e8988abd3992861290f617aa1f1b2e7d0b6e332e969991b62555e77e"
|
|
}
|
|
},
|
|
"order": "0x10000000000000000000000000000000000000000000000006C79673AC36BA6E7A32576F7B1B249E46BBC225BE9071D7",
|
|
"cofactor": "0x08"
|
|
},
|
|
{
|
|
"name": "M-511",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45",
|
|
"bits": 511
|
|
},
|
|
"form": "Montgomery",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x081806"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x05"
|
|
},
|
|
"y": {
|
|
"raw": "0x2fbdc0ad8530803d28fdbad354bb488d32399ac1cf8f6e01ee3f96389b90c809422b9429e8a43dbf49308ac4455940abe9f1dbca542093a895e30a64af056fa5"
|
|
}
|
|
},
|
|
"order": "0x100000000000000000000000000000000000000000000000000000000000000017B5FEFF30C7F5677AB2AEEBD13779A2AC125042A6AA10BFA54C15BAB76BAF1B",
|
|
"cofactor": "0x08"
|
|
},
|
|
{
|
|
"name": "E-222",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffff8b",
|
|
"bits": 222
|
|
},
|
|
"form": "Edwards",
|
|
"params": {
|
|
"c": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0x27166"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x19b12bb156a389e55c9768c303316d07c23adab3736eb2bc3eb54e51"
|
|
},
|
|
"y": {
|
|
"raw": "0x1c"
|
|
}
|
|
},
|
|
"order": "0xffffffffffffffffffffffffffff70cbc95e932f802f31423598cbf",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "E-382",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97",
|
|
"bits": 382
|
|
},
|
|
"form": "Edwards",
|
|
"params": {
|
|
"c": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef8e1"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x196f8dd0eab20391e5f05be96e8d20ae68f840032b0b64352923bab85364841193517dbce8105398ebc0cc9470f79603"
|
|
},
|
|
"y": {
|
|
"raw": "0x11"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffffffffffffffffffffffffffffffffffffffd5fb21f21e95eee17c5e69281b102d2773e27e13fd3c9719",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "E-521",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/647.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
"bits": 521
|
|
},
|
|
"form": "Edwards",
|
|
"params": {
|
|
"c": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa4331"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x752cb45c48648b189df90cb2296b2878a3bfd9f42fc6c818ec8bf3c9c0c6203913f6ecc5ccc72434b1ae949d568fc99c6059d0fb13364838aa302a940a2f19ba6c"
|
|
},
|
|
"y": {
|
|
"raw": "0x0c"
|
|
}
|
|
},
|
|
"order": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd15b6c64746fc85f736b8af5e7ec53f04fbd8c4569a8f1f4540ea2435f5180d6b",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "Curve25519",
|
|
"category": "other",
|
|
"desc": "Curve from https://cr.yp.to/ecdh.html",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed",
|
|
"bits": 255
|
|
},
|
|
"form": "Montgomery",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x76d06"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x09"
|
|
},
|
|
"y": {
|
|
"raw": "0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9"
|
|
}
|
|
},
|
|
"order": "0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed",
|
|
"cofactor": "0x08",
|
|
"characteristics": {
|
|
"discriminant": "3789438435840",
|
|
"j_invariant": "39240375672115510010799456308813573486606784421612167109713554819120306934551",
|
|
"trace_of_frobenius": "-221938542218978828286815502327069187962"
|
|
}
|
|
},
|
|
{
|
|
"name": "Curve448",
|
|
"category": "other",
|
|
"desc": "Curve from https://datatracker.ietf.org/doc/html/rfc7748",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
"bits": 448
|
|
},
|
|
"form": "Montgomery",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x262a6"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x05"
|
|
},
|
|
"y": {
|
|
"raw": "0x7d235d1295f5b1f66c98ab6e58326fcecbae5d34f55545d060f75dc28df3f6edb8027e2346430d211312c4b150677af76fd7223d457b5b1a"
|
|
}
|
|
},
|
|
"order": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3",
|
|
"cofactor": "0x04",
|
|
"characteristics": {}
|
|
},
|
|
{
|
|
"name": "Curve22103",
|
|
"category": "other",
|
|
"desc": "Curve from https://github.com/relic-toolkit/relic",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffd",
|
|
"bits": 221
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x155555555555555555555555555555555555555555555552174084FF"
|
|
},
|
|
"b": {
|
|
"raw": "0x1425ED097B425ED097B425ED097B425ED097B425ED0BBA9428427967"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0xCB476FE081B61F56A60B1D1B34FB7207D072EF25DADF377731049B0"
|
|
},
|
|
"y": {
|
|
"raw": "0x36429404D97E1E217BAD2E5601F6551F95D8FE9481BD454D1F3E7B6"
|
|
}
|
|
},
|
|
"order": "0x3FFFFFFFFFFFFFFFFFFFFFFFFFFF5CD04695A145C3067CF4AAE2025",
|
|
"cofactor": "0x08"
|
|
},
|
|
{
|
|
"name": "Curve4417",
|
|
"category": "other",
|
|
"desc": "Curve from https://github.com/relic-toolkit/relic",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffb",
|
|
"bits": 226
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x4648D10B419379D50F4BA01869D9AE363285E01FE66920878EE075B0"
|
|
},
|
|
"b": {
|
|
"raw": "0x4C4DCEDFAC09383A0311B98EE9637415B9134B4115FDB760C1A3D419"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0xFF9D7EDD97D523012FFAACA32B7C90F1A8E026F21972C789A8484A2B"
|
|
},
|
|
"y": {
|
|
"raw": "0x3E9036ADC1A41FCE2F2CA08E2D1BE4F6D97E30CA7761DB1F3E2F2CE96"
|
|
}
|
|
},
|
|
"order": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4A75594D4923FC93D42713CDAF",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "Curve1174",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2013/325.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7",
|
|
"bits": 251
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x486BE25B34C8080922B969257EEB54C404F914A29067A5560BB9AEE0BC67A6D"
|
|
},
|
|
"b": {
|
|
"raw": "0xE347A25BF875DD2F1F12D8A10334D417CC15E77893A99F4BF278CA563072E6"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x3BE821D63D2CD5AFE0504F452E5CF47A60A10446928CEAECFD5294F89B45051"
|
|
},
|
|
"y": {
|
|
"raw": "0x66FE4E7B8B6FE152F743393029A61BFB839747C8FB00F7B27A6841C07532A0"
|
|
}
|
|
},
|
|
"order": "0x1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF77965C4DFD307348944D45FD166C971",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "Curve67254",
|
|
"category": "other",
|
|
"desc": "Curve from https://github.com/relic-toolkit/relic",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff97",
|
|
"bits": 382
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x2E32419A32377AF8E7F03148A106D112C8C2E26D31A89F46B743DEED322C7ADC3024AFE4B5AFD8DB7180281586549F4A"
|
|
},
|
|
"b": {
|
|
"raw": "0x22F6EF3BE72A67FDC236D7173727CD2AF6D02A195753C44BDF451369B02EA0F963D9A775CAE6DC3AE9CCABB7F183C1AD"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x141946416199FDDA96EC1F1AC80058AA3F0CE96B1BCD023E97BAE542FE3404B4738DB9B81A13698339387672ECA360C0"
|
|
},
|
|
"y": {
|
|
"raw": "0xD51BF79D968F4A076022E750F821058E2B5073697B639EDD355EBF8AD32352B1EFA9478DE7EB5662EF0D26EF6EEA795"
|
|
}
|
|
},
|
|
"order": "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD5FB21F21E95EEE17C5E69281B102D2773E27E13FD3C9719",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"category": "other",
|
|
"cofactor": "0x8",
|
|
"desc": "",
|
|
"field": {
|
|
"bits": 283,
|
|
"p": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff45",
|
|
"type": "Prime"
|
|
},
|
|
"form": "Montgomery",
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x5"
|
|
},
|
|
"y": {
|
|
"raw": "0x1eebe07dc1871896732b12d5504a32370471965c7a11f2c89865f855ab3cbd7c224e3620c31af3370788457dd5ce46df"
|
|
}
|
|
},
|
|
"name": "Curve383187",
|
|
"order": "0x1000000000000000000000000000000000000000000000000e85a85287a1488acd41ae84b2b7030446f72088b00a0e21",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x38251"
|
|
},
|
|
"b": {
|
|
"raw": "0x01"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "Ed25519",
|
|
"category": "other",
|
|
"desc": "Curve from https://ed25519.cr.yp.to",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed",
|
|
"bits": 255
|
|
},
|
|
"form": "TwistedEdwards",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec"
|
|
},
|
|
"d": {
|
|
"raw": "0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A"
|
|
},
|
|
"y": {
|
|
"raw": "0x6666666666666666666666666666666666666666666666666666666666666658"
|
|
}
|
|
},
|
|
"order": "0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed",
|
|
"cofactor": "0x08",
|
|
"characteristics": {
|
|
"discriminant": "604592382411166409359847682163448376412977399592556651652337986082875105857",
|
|
"j_invariant": "39240375672115510010799456308813573486606784421612167109713554819120306934551",
|
|
"trace_of_frobenius": "-221938542218978828286815502327069187962"
|
|
}
|
|
},
|
|
{
|
|
"name": "Ed448",
|
|
"category": "other",
|
|
"desc": "Curve from https://datatracker.ietf.org/doc/html/draft-ietf-lwig-curve-representations-23",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
"bits": 448
|
|
},
|
|
"form": "TwistedEdwards",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0xd78b4bdc7f0daf19f24f38c29373a2ccad46157242a50f37809b1da3412a12e79ccc9c81264cfe9ad080997058fb61c4243cc32dbaa156b9"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x79a70b2b70400553ae7c9df416c792c61128751ac92969240c25a07d728bdc93e21f7787ed6972249de732f38496cd11698713093e9c04fc"
|
|
},
|
|
"y": {
|
|
"raw": "0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffff80000000000000000000000000000000000000000000000000000001"
|
|
}
|
|
},
|
|
"order": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "Ed448-Goldilocks",
|
|
"category": "other",
|
|
"desc": "Curve from https://eprint.iacr.org/2015/625.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
"bits": 448
|
|
},
|
|
"form": "TwistedEdwards",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffffffffffffffffffffffffffffffffffffffffffffffff6756"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa955555555555555555555555555555555555555555555555555555555"
|
|
},
|
|
"y": {
|
|
"raw": "0xae05e9634ad7048db359d6205086c2b0036ed7a035884dd7b7e36d728ad8c4b80d6565833a2a3098bbbcb2bed1cda06bdaeafbcdea9386ed"
|
|
}
|
|
},
|
|
"order": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffff7cca23e9c44edb49aed63690216cc2728dc58f552378c292ab5844f3",
|
|
"cofactor": "0x04"
|
|
},
|
|
{
|
|
"name": "Curve41417",
|
|
"category": "other",
|
|
"desc": "Curve from https://cr.yp.to/talks/2013.09.16/slides-djb-20130916-a4.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffef",
|
|
"bits": 414
|
|
},
|
|
"form": "TwistedEdwards",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0xe21"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x1a334905141443300218c0631c326e5fcd46369f44c03ec7f57ff35498a4ab4d6d6ba111301a73faa8537c64c4fd3812f3cbc595"
|
|
},
|
|
"y": {
|
|
"raw": "0x22"
|
|
}
|
|
},
|
|
"order": "0x7ffffffffffffffffffffffffffffffffffffffffffffffffffeb3cc92414cf706022b36f1c0338ad63cf181b0e71a5e106af79",
|
|
"cofactor": "0x08"
|
|
},
|
|
{
|
|
"name": "Fp254BNa",
|
|
"category": "other",
|
|
"desc": "Curve used in: https://eprint.iacr.org/2010/354.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x2370fb049d410fbe4e761a9886e502417d023f40180000017e80600000000001",
|
|
"bits": 254
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x05"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x01"
|
|
},
|
|
"y": {
|
|
"raw": "0xd45589b158faaf6ab0e4ad38d998e9982e7ff63964ee1460342a592677cccb0"
|
|
}
|
|
},
|
|
"order": "0x2370fb049d410fbe4e761a9886e502411dc1af70120000017e80600000000001",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "16030569034403128277756688287498649515636838101184337499778392980116222236113",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "126611883464401272108868536818127077377",
|
|
"embedding_degree": "12",
|
|
"anomalous": false,
|
|
"supersingular": false,
|
|
"cm_disc": "284987893944944502715674458444420435832981068983435327675576459482874497379",
|
|
"conductor": "15",
|
|
"torsion_degrees": [
|
|
{
|
|
"r": 2,
|
|
"least": 3,
|
|
"full": 3
|
|
},
|
|
{
|
|
"r": 3,
|
|
"least": 2,
|
|
"full": 6
|
|
},
|
|
{
|
|
"r": 5,
|
|
"least": 24,
|
|
"full": 24
|
|
},
|
|
{
|
|
"r": 7,
|
|
"least": 6,
|
|
"full": 6
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Fp254n2BNa",
|
|
"category": "other",
|
|
"desc": "Curve used in: https://eprint.iacr.org/2010/354.pdf",
|
|
"field": {
|
|
"type": "Extension",
|
|
"base": "0x2370fb049d410fbe4e761a9886e502417d023f40180000017e80600000000001",
|
|
"bits": 508,
|
|
"degree": 2,
|
|
"poly": [
|
|
{
|
|
"power": 2,
|
|
"coeff": "0x01"
|
|
},
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x05"
|
|
}
|
|
]
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"poly": [
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x00"
|
|
}
|
|
]
|
|
},
|
|
"b": {
|
|
"poly": [
|
|
{
|
|
"power": 1,
|
|
"coeff": "0x2370fb049d410fbe4e761a9886e502417d023f40180000017e80600000000000"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"poly": [
|
|
{
|
|
"power": 1,
|
|
"coeff": "0xa1cf585585a61c6e9880b1f2a5c539f7d906fff238fa6341e1de1a2e45c3f72"
|
|
},
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x19b0bea4afe4c330da93cc3533da38a9f430b471c6f8a536e81962ed967909b5"
|
|
}
|
|
]
|
|
},
|
|
"y": {
|
|
"poly": [
|
|
{
|
|
"power": 1,
|
|
"coeff": "0x0ee97d6de9902a27d00e952232a78700863bc9aa9be960C32f5bf9fd0a32d345"
|
|
},
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x17abd366ebbd65333e49c711a80a0cf6d24adf1b9b3990eedcc91731384d2627"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"order": "0x2370fb049d410fbe4e761a9886e502411dc1af70120000017e80600000000001",
|
|
"cofactor": "0x2370fb049d410fbe4e761a9886e50241dc42cf101e0000017e80600000000001"
|
|
},
|
|
{
|
|
"name": "Fp254BNb",
|
|
"category": "other",
|
|
"desc": "Curve used in https://www.iacr.org/archive/eurocrypt2011/66320047/66320047.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x2523648240000001ba344d80000000086121000000000013a700000000000013",
|
|
"bits": 254
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x2523648240000001ba344d80000000086121000000000013a700000000000012"
|
|
},
|
|
"y": {
|
|
"raw": "0x01"
|
|
}
|
|
},
|
|
"order": "0x2523648240000001ba344d8000000007ff9f800000000010a10000000000000d",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "16798108731015832284940804142231733909889187121439069848933715426072753862995",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "129607518034317099905336561907183648775",
|
|
"embedding_degree": "12",
|
|
"anomalous": false,
|
|
"supersingular": false,
|
|
"cm_disc": "67192434924063329139763216568926935639427140967721962295829525142383831810117",
|
|
"conductor": "1",
|
|
"torsion_degrees": [
|
|
{
|
|
"r": 2,
|
|
"least": 3,
|
|
"full": 3
|
|
},
|
|
{
|
|
"r": 3,
|
|
"least": 2,
|
|
"full": 2
|
|
},
|
|
{
|
|
"r": 5,
|
|
"least": 8,
|
|
"full": 8
|
|
},
|
|
{
|
|
"r": 7,
|
|
"least": 6,
|
|
"full": 6
|
|
}
|
|
]
|
|
},
|
|
"aliases": [
|
|
"bn/bn254"
|
|
]
|
|
},
|
|
{
|
|
"name": "Fp224BN",
|
|
"category": "other",
|
|
"desc": "Curve described in https://www.iso.org/standard/80241.html",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffff107288ec29e602c4520db42180823bb907d1287127833",
|
|
"bits": 224
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x03"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x01"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0xfffffffffff107288ec29e602c4420db4218082b36c2accff76c58ed",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "26959946667149205758383469736921695435015736735261155141423417420035",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "5192296858534689624111674181427015",
|
|
"embedding_degree": "12",
|
|
"anomalous": false,
|
|
"supersingular": false,
|
|
"cm_disc": "11982198518732980337059319883076308505307343156261666272668832029853",
|
|
"conductor": "3",
|
|
"torsion_degrees": [
|
|
{
|
|
"r": 2,
|
|
"least": 3,
|
|
"full": 3
|
|
},
|
|
{
|
|
"r": 3,
|
|
"least": 2,
|
|
"full": 6
|
|
},
|
|
{
|
|
"r": 5,
|
|
"least": 8,
|
|
"full": 8
|
|
},
|
|
{
|
|
"r": 7,
|
|
"least": 2,
|
|
"full": 6
|
|
},
|
|
{
|
|
"r": 11,
|
|
"least": 10,
|
|
"full": 10
|
|
},
|
|
{
|
|
"r": 13,
|
|
"least": 2,
|
|
"full": 12
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Fp256BN",
|
|
"category": "other",
|
|
"desc": "Curve described in https://www.iso.org/standard/80241.html",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffcf0cd46e5f25eee71a49f0cdc65fb12980a82d3292ddbaed33013",
|
|
"bits": 256
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x03"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x01"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffcf0cd46e5f25eee71a49e0cdc65fb1299921af62d536cd10b500d",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "115792089237314936872688561244471742058375878355761205198700409522629664514275",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "340282366920936614211651523200128901127",
|
|
"embedding_degree": "12",
|
|
"anomalous": false,
|
|
"supersingular": false,
|
|
"cm_disc": "2058526030885598877736685533235053192147392138027217263024844384743637907429",
|
|
"conductor": "15",
|
|
"torsion_degrees": [
|
|
{
|
|
"r": 2,
|
|
"least": 3,
|
|
"full": 3
|
|
},
|
|
{
|
|
"r": 3,
|
|
"least": 2,
|
|
"full": 6
|
|
},
|
|
{
|
|
"r": 5,
|
|
"least": 24,
|
|
"full": 24
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Fp384BN",
|
|
"category": "other",
|
|
"desc": "Curve described in https://www.iso.org/standard/80241.html",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffff2a96823d5920d2a127e3f6fbca024c8fbe29531892c79534f9d306328261550a7cabd7cccd10b",
|
|
"bits": 384
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x03"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x01"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffffffffff2a96823d5920d2a127e3f6fbca023c8fbe29531892c795356487d8ac63e4f4db17384341a5775",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "39402006196394479212278605372068645601647601647604977711041989197213181721117185302456933847594895764913993728967131",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "6277101735386680763835754795021643429033562911502587034007",
|
|
"embedding_degree": "12",
|
|
"anomalous": false,
|
|
"supersingular": false
|
|
}
|
|
},
|
|
{
|
|
"name": "Fp512BN",
|
|
"category": "other",
|
|
"desc": "Curve described in https://www.iso.org/standard/80241.html",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffff9ec7f01c60ba1d8cb5307c0bbe3c111b0ef455146cf1eacbe98b8e48c65deab236fe1916a55ce5f4c6467b4eb280922adef33",
|
|
"bits": 512
|
|
},
|
|
"form": "Weierstrass",
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x03"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x01"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffffffffffffffffff9ec7f01c60ba1d8cb5307c0bbe3c111b0ef445146cf1eacbe98b8e48c65deab2679a34a10313e04f9a2b406a64a5f519a09ed",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"discriminant": "13407807929942597099574024998205830437246153344875111580494527427714590099881795845981157516604994291639750834285779043186149750164319950153126044364562435",
|
|
"j_invariant": "0",
|
|
"trace_of_frobenius": "115792089237316195423570985008687840101103879741288409693302319863988063823175"
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-160",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e1f",
|
|
"bits": 160
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e1c"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c841"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c5d89f4f2dd72349ee61f7",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-192",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cd13",
|
|
"bits": 192
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cd10"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d36a6"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628c5dca19490dd3e6fd7979a7a3",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-224",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbedf",
|
|
"bits": 224
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbedc"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13a03"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dd2439be5b2b827a9ffbea7240e5cd",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-256",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139c0b",
|
|
"bits": 256
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139c08"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13641146434e1"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dc1cd0fbec42e940b37a88d9caeca198a64437",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-288",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a098b",
|
|
"bits": 288
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a0988"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13641146433fbcc939f36"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dc1cd12903ba214366757b7a5240b2a637e2065a850855",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-320",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3408b3",
|
|
"bits": 320
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3408b0"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13641146433fbcc939dce249b40a4"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dc1cd129024e09489bd44fda941042cccc7286009777663bb29671",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-384",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a437b",
|
|
"bits": 384
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a4378"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13641146433fbcc939dce249b3ef97d2fe363630c7791"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc73b7669162524b60c73ee73e6dfe7059f510370fe7870d8599",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "ssc-512",
|
|
"category": "other",
|
|
"desc": "A prime order curve from MIRACL: https://github.com/miracl/MIRACL/blob/master/docs/miracl-explained/miracl-standard-curves.md. Has no generator specified.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c5ef",
|
|
"bits": 512
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c5ec"
|
|
},
|
|
"b": {
|
|
"raw": "0xadf85458a2bb4a9aafdc5620273d3cf1d8b9c583ce2d3695a9e13641146433fbcc939dce249b3ef97d2fe363630c75d8f681b202aec4617ad3df1ed5d5fd6a8d"
|
|
}
|
|
},
|
|
"order": "0xc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b235a2359c4afbc9eb7987f1c9ab37e42599188c4b7dc6269b830d80897f57a5f71",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Tweedledum",
|
|
"category": "other",
|
|
"desc": "Tweedledum pairing friendly curve from <https://github.com/daira/tweedle>.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x40000000000000000000000000000000038aa1276c3f59b9a14064e200000001",
|
|
"bits": 255
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x05"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x40000000000000000000000000000000038aa1276c3f59b9a14064e200000000"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0x40000000000000000000000000000000038aa127696286c9842cafd400000001",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Tweedledee",
|
|
"category": "other",
|
|
"desc": "Tweedledee pairing friendly curve from <https://github.com/daira/tweedle>.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x40000000000000000000000000000000038aa127696286c9842cafd400000001",
|
|
"bits": 255
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x05"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x40000000000000000000000000000000038aa127696286c9842cafd400000000"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0x40000000000000000000000000000000038aa1276c3f59b9a14064e200000001",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "TwistedEdwards",
|
|
"name": "JubJub",
|
|
"category": "other",
|
|
"desc": "JubJub curve from <https://z.cash/technology/jubjub/>.",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001",
|
|
"bits": 255
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000"
|
|
},
|
|
"d": {
|
|
"raw": "0x2a9318e74bfa2b48f5fd9207e6bd7fd4292d7f6d37579d2601065fd6d6343eb1"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b"
|
|
},
|
|
"y": {
|
|
"raw": "0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa"
|
|
}
|
|
},
|
|
"order": "0xe7db4ea6533afa906673b0101343b00a6682093ccc81082d0970e5ed6f72cb7",
|
|
"cofactor": "0x08"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Pallas",
|
|
"category": "other",
|
|
"desc": "Pallas curve from the [Pasta curves](https://electriccoin.co/blog/the-pasta-curves-for-halo-2-and-beyond/).",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001",
|
|
"bits": 255
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x05"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Vesta",
|
|
"category": "other",
|
|
"desc": "Vesta curve from the [Pasta curves](https://electriccoin.co/blog/the-pasta-curves-for-halo-2-and-beyond/).",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001",
|
|
"bits": 255
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x00"
|
|
},
|
|
"b": {
|
|
"raw": "0x05"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000"
|
|
},
|
|
"y": {
|
|
"raw": "0x02"
|
|
}
|
|
},
|
|
"order": "0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"name": "MDC201601",
|
|
"category": "other",
|
|
"desc": "The Million Dollar Curve",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xf13b68b9d456afb4532f92fdd7a5fd4f086a9037ef07af9ec13710405779ec13",
|
|
"bits": 256
|
|
},
|
|
"form": "Edwards",
|
|
"params": {
|
|
"c": {
|
|
"raw": "0x01"
|
|
},
|
|
"d": {
|
|
"raw": "0x571304521965b68a7cdfbfccfb0cb9625f1270f63f21f041ee9309250300cf89"
|
|
}
|
|
},
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0xb681886a7f903b83d85b421e03cbcf6350d72abb8d2713e2232c25bfee68363b"
|
|
},
|
|
"y": {
|
|
"raw": "0xca6734e1b59c0b0359814dcf6563da421da8bc3d81a93a3a7e73c355bd2864b5"
|
|
}
|
|
},
|
|
"order": "0x3c4eda2e7515abed14cbe4bf75e97f534fb38975faf974bb588552f421b0f7fb",
|
|
"cofactor": "0x04",
|
|
"properties": {
|
|
"j_invariant": "0x2089683f289cb2a9798ce7341bfedb9079106ce1d8d6810a06d07e572576e62f",
|
|
"trace": "0x1c99c6a600321dcb15f21c46fd0b60c28",
|
|
"embedding_degree": "0x3c4eda2e7515abed14cbe4bf75e97f534fb38975faf974bb588552f421b0f7fa",
|
|
"cm_discriminant": "-0x24bb73e2ad3d18402aae6500a8bc42e34e3b02843c2db6b231fa0846c51cfa83"
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-R-256",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xf1fd178c0b3ad58f10126de8ce42435b3961adbcabc8ca6de8fcf353d86e9c03",
|
|
"bits": 256
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xf1fd178c0b3ad58f10126de8ce42435b3961adbcabc8ca6de8fcf353d86e9c00"
|
|
},
|
|
"b": {
|
|
"raw": "0xbada55bada55bada55bada55bada55bada55bada55bada55bada55bada55bd48"
|
|
}
|
|
},
|
|
"order": "0xf1fd178c0b3ad58f10126de8ce42435a1a8e3837861aa0efa0e52aec7379c967",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-VR-224",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xffffffffffffffffffffffffffffffff000000000000000000000001",
|
|
"bits": 224
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe"
|
|
},
|
|
"b": {
|
|
"raw": "0xbada55ecfd9ca54c0738b8a6fb8cf4ccf84e916d83d6da1b78b622351e11ab4e"
|
|
}
|
|
},
|
|
"order": "0xffffffffffffffffffffffffffff0d44ef1096b2b67b7a3dcee7b079",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"seed": "0x3cc520e9434349df680a8f4bcadda648d693b2907b216ee55cb4853db68f9165"
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-VR-256",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
|
|
"bits": 256
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc"
|
|
},
|
|
"b": {
|
|
"raw": "0xbada55ecd8bbead3add6c534f92197deb47fceb9be7e0e702a8d1dd56b5d0b0c"
|
|
}
|
|
},
|
|
"order": "0xffffffff00000000fffffffffffffffebedc2797003336661a49d76a903bdb91",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"seed": "0x3adcc48e36f1d1926701417f101a75f000118a739d4686e77278325a825aa3c6"
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-VR-384",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff",
|
|
"bits": 384
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc"
|
|
},
|
|
"b": {
|
|
"raw": "0xbada55ec3be2ad1f9eeea5881ecf95bbf3ac392526f01d4cd13e684c63a17cc4d5f271642ad83899113817a61006413d"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffffffffffffffffffffffffffffffffffffffeefe1169b82ff7e5032c683f766fae57359cfc5fc25ffce37",
|
|
"cofactor": "0x01",
|
|
"characteristics": {
|
|
"seed": "0xca9ebd338a9ee0e6862fd329062abc06a793575a1c744f0ec24503a525f5d06e"
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-VPR-224",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xffffffffffffffffffffffffffffffff000000000000000000000001",
|
|
"bits": 224
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x7144ba12ce8a0c3befa053edbada555a42391fc64f052376e041c7d4af23195ebd8d83625321d452e8a0c3bb0a048a26115704e45dceb346a9f4bd9741d14d49"
|
|
},
|
|
"b": {
|
|
"raw": "0x5c32ec7fc48ce1802d9b70dbc3fa574eaf015fce4e99b43ebe3468d6efb2276ba3669aff6ffc0f4c6ae4ae2e5d74c3c0af97dce17147688dda89e734b56944a2"
|
|
}
|
|
},
|
|
"order": "0xffffffffffffffffffffffffffff473fa5d3e9bf40a95a8d3f014add",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "BADA55-VPR2-224",
|
|
"category": "other",
|
|
"desc": "BADA55 curve from the https://bada55.cr.yp.to/bada55-20150927.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xffffffffffffffffffffffffffffffff000000000000000000000001",
|
|
"bits": 224
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x8f0ff20e1e3cf4905d492e04110683948bfc236790bbb59e6e6b33f24f348ed2e16c64ee79f9fd27e9a367ff6415b41189e4fb6bada555455dc44c4f87011eef"
|
|
},
|
|
"b": {
|
|
"raw": "0xe85067a95547e30661c854a43ed80f36289043ffc73da78a97e37fb96a2717009088656b948865a660ff3959330d8a1ca1e4de31b7b7d496a4cde555e57d05c"
|
|
}
|
|
},
|
|
"order": "0xffffffffffffffffffffffffffffdf5c0319f61dc6ccebe902bc220f",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"name": "FourQ",
|
|
"category": "other",
|
|
"desc": "Curve used in https://eprint.iacr.org/2015/565.pdf",
|
|
"field": {
|
|
"type": "Extension",
|
|
"base": "0x7fffffffffffffffffffffffffffffff",
|
|
"bits": 127,
|
|
"degree": 2,
|
|
"poly": [
|
|
{
|
|
"power": 2,
|
|
"coeff": "0x01"
|
|
},
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x01"
|
|
}
|
|
]
|
|
},
|
|
"form": "TwistedEdwards",
|
|
"params": {
|
|
"a": {
|
|
"poly": [
|
|
{
|
|
"power": 0,
|
|
"coeff": "0x00"
|
|
}
|
|
]
|
|
},
|
|
"d": {
|
|
"poly": [
|
|
{
|
|
"power": 1,
|
|
"coeff": "0x5e472f846657e0fcb3821488f1fc0c8d"
|
|
},
|
|
{
|
|
"power": 0,
|
|
"coeff": "0xe40000000000000142"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"order": "0x29cbc14e5e0a72f05397829cbc14e5dfbd004dfe0f79992fb2540ec7768ce7",
|
|
"cofactor": "0x188"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Tom-256",
|
|
"category": "other",
|
|
"desc": "Tom-256 curve from https://eprint.iacr.org/2021/1183.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xffffffff0000000100000000000000017e72b42b30e7317793135661b1c4b117",
|
|
"bits": 256
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xffffffff0000000100000000000000017e72b42b30e7317793135661b1c4b114"
|
|
},
|
|
"b": {
|
|
"raw": "0xb441071b12f4a0366fb552f8e21ed4ac36b06aceeb354224863e60f20219fc56"
|
|
}
|
|
},
|
|
"order": "0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff",
|
|
"cofactor": "0x01",
|
|
"generator": {
|
|
"x": {
|
|
"raw": "0x03"
|
|
},
|
|
"y": {
|
|
"raw": "0x5a6dd32df58708e64e97345cbe66600decd9d538a351bb3c30b4954925b1f02d"
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Tom-384",
|
|
"category": "other",
|
|
"desc": "Tom-384 curve from https://eprint.iacr.org/2021/1183.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0xfffffffffffffffffffffffffffffffffffffffffffffffeaf5f689f8669fb41b08d5f5edffd26599c434bbd978917c5",
|
|
"bits": 384
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0x821dfdc940e7f074ac481f8b2870c48962cce56abd72dfc42813a944cea15df78dc0a2d97fbf031ed26c9076826940ba"
|
|
},
|
|
"b": {
|
|
"raw": "0x9b5b584b655fdcb087d37f8c4fee893c0499223db5e004c674ea0dee48a4ec0c9e9f684099f2a51c62a2cce400cb1e4b"
|
|
}
|
|
},
|
|
"order": "0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff",
|
|
"cofactor": "0x01"
|
|
},
|
|
{
|
|
"form": "Weierstrass",
|
|
"name": "Tom-521",
|
|
"category": "other",
|
|
"desc": "Tom-521 curve from https://eprint.iacr.org/2021/1183.pdf",
|
|
"field": {
|
|
"type": "Prime",
|
|
"p": "0x200000000000000000000000000000000000000000000000000000000000000002c54be78524c33584f734a266748b2063accf5028e6778dc5056476d0690853249",
|
|
"bits": 521
|
|
},
|
|
"params": {
|
|
"a": {
|
|
"raw": "0xef6432c21701cc48c63fb9263e14ba76d4a94ba14d173b134e3032b0e2e543180eb6725125992a7d00162a5f57d21918b0766364eeb53c53bb12f405dac1d527e2"
|
|
},
|
|
"b": {
|
|
"raw": "0x3cbc65d1e0245d79703b18e9aaea1ac6d67f87a2cd4bd84b9e6df6a45a979c481825ca5a857270fc890352f9fac7fd6020deaabb28d099718f0f77a4eec222871d"
|
|
}
|
|
},
|
|
"order": "0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
|
|
"cofactor": "0x01"
|
|
}
|
|
]
|
|
}
|