{ "name": "Barreto-Naehrig", "desc": "BN (Barreto, Naehrig curves) from: A Family of Implementation-Friendly BN Elliptic Curves - .", "curves": [ { "name": "bn158", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x24240D8241D5445106C8442084001384E0000013", "bits": 158 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000011" } }, "generator": { "x": { "raw": "0x24240D8241D5445106C8442084001384E0000012" }, "y": { "raw": "0x0000000000000000000000000000000000000004" } }, "order": "0x24240D8241D5445106C7E3F07E0010842000000D", "cofactor": "0x01", "characteristics": { "discriminant": "206327671360737302491015800744139033450590902371", "j_invariant": "0", "trace_of_frobenius": "454233058419889982668807", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "825310685442949209964062748743497713912381440069", "conductor": "1", "torsion_degrees": [ { "r": 2, "least": 3, "full": 3 }, { "r": 3, "least": 2, "full": 6 }, { "r": 5, "least": 12, "full": 12 }, { "r": 7, "least": 6, "full": 6 } ] } }, { "name": "bn190", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x240001B0000948001E60004134005F10005DC0003A800013", "bits": 190 }, "form": "Weierstrass", "params": { "a": { "raw": "0x000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x000000000000000000000000000000000000000000001001" } }, "generator": { "x": { "raw": "0x240001B0000948001E60004134005F10005DC0003A800012" }, "y": { "raw": "0x000000000000000000000000000000000000000000000040" } }, "order": "0x240001B0000948001E600040D4005CD0005760003180000D", "cofactor": "0x01", "characteristics": { "discriminant": "882718062907666288196217719514349254081211436024346574435", "j_invariant": "0", "trace_of_frobenius": "29710571568175507457408237575", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "392319139070073905864985653114187382750741137407664805213", "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": 6, "full": 6 }, { "r": 13, "least": 4, "full": 12 }, { "r": 17, "least": 4, "full": 4 }, { "r": 19, "least": 9, "full": 18 } ] } }, { "name": "bn222", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x23DC0D7DC02402CDE486F4C00015B5215C0000004C6CE00000000067", "bits": 222 }, "form": "Weierstrass", "params": { "a": { "raw": "0x00000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x00000000000000000000000000000000000000000000000000000101" } }, "generator": { "x": { "raw": "0x23DC0D7DC02402CDE486F4C00015B5215C0000004C6CE00000000066" }, "y": { "raw": "0x00000000000000000000000000000000000000000000000000000010" } }, "order": "0x23DC0D7DC02402CDE486F4C00015555156000000496DA00000000061", "cofactor": "0x01", "characteristics": { "discriminant": "3776454638595735622662624104352071470606035506175466834584696299191", "j_invariant": "0", "trace_of_frobenius": "1943310227059934816526534243778567", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "1678424283820326943405610713045364882123768329418561201311628394541" } }, { "name": "bn254", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x2523648240000001BA344D80000000086121000000000013A700000000000013", "bits": 254 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x2523648240000001BA344D80000000086121000000000013A700000000000012" }, "y": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000001" } }, "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": [ "other/Fp254BNb" ] }, { "name": "bn286", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x240900D8991B25B0E2CB51DDA534A205391892080A008108000853813800138000000013", "bits": 286 }, "form": "Weierstrass", "params": { "a": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x240900D8991B25B0E2CB51DDA534A205391892080A008108000853813800138000000012" }, "y": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x240900D8991B25B0E2CB51DDA534A205391831FC099FC0FC0007F081080010800000000D", "cofactor": "0x01", "characteristics": { "discriminant": "70004402153711663438486789763681164697717379781714415888917198592851957854802452412755", "j_invariant": "0", "trace_of_frobenius": "8366863340207706741299716820480866394308615", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "280017608614846653753947159054724658790869510759994323347962053071691010938343415349317", "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": 2, "full": 6 } ] } }, { "name": "bn318", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x24009000D800900024075015F015F0075000008F411E808F4000000004E484E4800000000000101B", "bits": 318 }, "form": "Weierstrass", "params": { "a": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x24009000D800900024075015F015F0075000008F411E808F4000000004E484E4800000000000101A" }, "y": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x24009000D800900024075015F015F0075000008EE11DC08EE000000004DB84DB8000000000000FE5", "cofactor": "0x01", "characteristics": { "discriminant": "300391510669785740008207650393722453451551004041839877989597999344720209212220677955394396490075", "j_invariant": "0", "trace_of_frobenius": "548079839685593379889100768354473324754975588407", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "1201566042679142960032830601574889813806204016166811432118706403998991736080528238496822610378805" } }, { "name": "bn350", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0AD0F6A0530FD78443FDF01A3FF64084000004E0000013", "bits": 350 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0AD0F6A0530FD78443FDF01A3FF64084000004E0000012" }, "y": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x23FFB80035FFEE24020A01CAFD738EC3F24B475EBC0A70F70052F7D78413FE08173FF7C07E0000042000000D", "cofactor": "0x01", "characteristics": { "discriminant": "1290053601431926622698139429963477963560185337848708333001329190095450433717605248005163618066274214476115", "j_invariant": "0", "trace_of_frobenius": "35917316178020966140770026648761406645010658995732487", "embedding_degree": "12", "anomalous": false, "supersingular": false } }, { "name": "bn382", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x240026400F3D82B2E42DE125B00158405B710818AC00000840046200950400000000001380052E000000000000000013", "bits": 382 }, "form": "Weierstrass", "params": { "a": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x240026400F3D82B2E42DE125B00158405B710818AC00000840046200950400000000001380052E000000000000000012" }, "y": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x240026400F3D82B2E42DE125B00158405B710818AC000007E0042F008E3E00000000001080046200000000000000000D", "cofactor": "0x01", "characteristics": { "discriminant": "5540996953667913971058039301942914304734176495422447785045292539108217242186829586959562222833658991069414454982995", "j_invariant": "0", "trace_of_frobenius": "2353932232174051770881173201777159236219815696568919523335", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "22163987814671655884232157207771657218936705981689791140178816224200694916976437174636471732098416148581088900415557", "conductor": "1", "torsion_degrees": [ { "r": 2, "least": 3, "full": 3 }, { "r": 3, "least": 2, "full": 2 } ] } }, { "name": "bn414", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF60544845142000765EFFF7C0000021138004DFFFFFD900000000000013", "bits": 414 }, "form": "Weierstrass", "params": { "a": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF60544845142000765EFFF7C0000021138004DFFFFFD900000000000012" }, "y": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x240024000D7EE23F2823CA035D31B144364C75E59AEFFF605447E513F00070607FF82000001F9080041FFFFFDF0000000000000D", "cofactor": "0x01", "characteristics": { "discriminant": "23798378007415224600523786020682647333689401448557870707284910146274969430638668827605864233418695199132888067995603277183315", "j_invariant": "0", "trace_of_frobenius": "154267229207681125708793071161652324726038701923943665681563655" } }, { "name": "bn446", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x2400000000000000002400000002D00000000D800000021C0000001800000000870000000B0400000057C00000015C000000132000000067", "bits": 446 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101" } }, "generator": { "x": { "raw": "0x2400000000000000002400000002D00000000D800000021C0000001800000000870000000B0400000057C00000015C000000132000000066" }, "y": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" } }, "order": "0x2400000000000000002400000002D00000000D800000021C00000017A0000000870000000AD400000054C000000156000000126000000061", "cofactor": "0x01", "characteristics": { "discriminant": "102211695604069718983520304652693874995639508460729604902280098199792736381528662976886082950231100101353700265360419596271313310490295", "j_invariant": "0", "trace_of_frobenius": "10109980000181489923001201093401906549415298505746886291297633566727", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "16353871296651155037363248744431019999302321353716736784364815711966433421844578816704853223993239939954615430517437259951758228901085", "conductor": "5", "torsion_degrees": [ { "r": 2, "least": 3, "full": 3 }, { "r": 3, "least": 2, "full": 6 }, { "r": 5, "least": 24, "full": 24 }, { "r": 7, "least": 3, "full": 6 }, { "r": 11, "least": 6, "full": 6 }, { "r": 13, "least": 3, "full": 12 } ] } }, { "name": "bn478", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D28085442328002888F96F2944D7DED781430FFD780065FFF010020FFFD900013", "bits": 478 }, "form": "Weierstrass", "params": { "a": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D28085442328002888F96F2944D7DED781430FFD780065FFF010020FFFD900012" }, "y": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x23FFFFFFFFFFFFFEDFFFFFFFEE0001B3600000006BFFF5DB835FFF5D2807F442328002888F9872944D7E0578112F7FD780062FFF07001F7FFDF0000D", "cofactor": "0x01", "characteristics": { "discriminant": "438995889888186407347652991425301965681188858026820794321677547168174289793337316790981018819616267513532082540968716717668009346359904036714835", "j_invariant": "0", "trace_of_frobenius": "662567649291894123450065105820326672097321614256273183056335502227537927" } }, { "name": "bn510", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x2400000000000000003F000000000001B0002958000000000237000C0F0000084000F8100151A400073800242D00001380019440000000000888000000000013", "bits": 510 }, "form": "Weierstrass", "params": { "a": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101" } }, "generator": { "x": { "raw": "0x2400000000000000003F000000000001B0002958000000000237000C0F0000084000F8100151A400073800242D00001380019440000000000888000000000012" }, "y": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" } }, "order": "0x2400000000000000003F000000000001B0002958000000000237000C0F000007E000F8100151A40006E400242D000010800181E000000000073800000000000D", "cofactor": "0x01", "characteristics": { "discriminant": "1885472990148177717128295978135615557087890561449182466062048685887447869640291029478850359875117134356442109712418887586250126028988200000205538791824995", "j_invariant": "0", "trace_of_frobenius": "43422033463993573283847164979847511362503473044959842495500254821277109321735" } }, { "name": "bn542", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A2084511080008D000090510005110800108138025380001B00000084000001380000013", "bits": 542 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A2084511080008D000090510005110800108138025380001B00000084000001380000012" }, "y": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x2400090000D80009000024000090001B01B1B051090510001B00D8001B0510D8A207E510FC0008700009051000510FC000FC108025080001B0000007E00000108000000D", "cofactor": "0x01", "characteristics": { "discriminant": "8098075721811414878105028299024751526203735822988204570759586766702677409513512479452243326535098163859087683174740008257961979909363199815965376947448202431297875", "j_invariant": "0", "trace_of_frobenius": "2845711812853053972806387468884004947678235462567670984735634579507964130977906695" } }, { "name": "bn574", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2808400041FFFE73FFF7C000210000000000001380004DFFFD90000000000000000000000013", "bits": 574 }, "form": "Weierstrass", "params": { "a": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2808400041FFFE73FFF7C000210000000000001380004DFFFD90000000000000000000000012" }, "y": { "raw": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x2400023FFFFB7FFF4C00002400167FFFEE01AEE014423FAEFFFB5C000A200050FFFF2807E0003EFFFE85FFF820001F80000000000010800041FFFDF000000000000000000000000D", "cofactor": "0x01", "characteristics": { "discriminant": "34780870876742995377456858134373496984033068311331682913917171552933960384313251034752424287877192201334219790531446172327873978399527076876359580494778958227471204544936275", "j_invariant": "0", "trace_of_frobenius": "186496302581962721809830439849867378820456264884631045871326327118225203759963374092295", "embedding_degree": "12", "anomalous": false, "supersingular": false, "cm_disc": "139123483506971981509827432537493987936132273245326731655668686211735841537253004139009510655206186842615069331685934821932675457333223676459566995651997607706124854805659717", "conductor": "1", "torsion_degrees": [ { "r": 2, "least": 3, "full": 3 } ] } }, { "name": "bn606", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D94482DF27FFFC9AEDF0000000036512100245142137FFFFFB75D7BD900000000000000246C844E13", "bits": 606 }, "form": "Weierstrass", "params": { "a": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002" } }, "generator": { "x": { "raw": "0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D94482DF27FFFC9AEDF0000000036512100245142137FFFFFB75D7BD900000000000000246C844E12" }, "y": { "raw": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001" } }, "order": "0x23FFFFFFFFFFFEE00000000000036000000241AFFB7FFFFFF275E0024000001B1440000D9447CDF27FFFC9AEE08000000036511F8024513F107FFFFFB75D81DF00000000000000246C7E420D", "cofactor": "0x01", "characteristics": { "discriminant": "149382560479715729921650870888843346324510370210262391936546251975130529782979972747938509514543700633492700155237654428326390908646123885612873792268661751975617273279725264282339155", "j_invariant": "0", "trace_of_frobenius": "12222215858006915839141401255556695821975177558367937484927312121315564820050836996405726215" } }, { "name": "bn638", "category": "bn", "desc": "", "field": { "type": "Prime", "p": "0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55C00086520021E55BFFFFF51FFFF4EB800000004C80015ACDFFFFFFFFFFFFECE00000000000000067", "bits": 638 }, "form": "Weierstrass", "params": { "a": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" }, "b": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101" } }, "generator": { "x": { "raw": "0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55C00086520021E55BFFFFF51FFFF4EB800000004C80015ACDFFFFFFFFFFFFECE00000000000000066" }, "y": { "raw": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010" } }, "order": "0x23FFFFFDC000000D7FFFFFB8000001D3FFFFF942D000165E3FFF94870000D52FFFFDD0E00008DE55600086550021E555FFFFF54FFFF4EAC000000049800154D9FFFFFFFFFFFFEDA00000000000000061", "cofactor": "0x01", "characteristics": { "discriminant": "641593209463000238284923228689168801117629789043238356871360716989515584497239494051781991794253619096481315470262367432019698642631650152075067922231951354925301839708740457083469793688592055", "j_invariant": "0", "trace_of_frobenius": "800995136978371572363525747477255032258950408689114271367829691469194143147501961435441086332935" } } ] }