github.com/yinchengtsinghua/golang-Eos-dpos-Ethereum@v0.0.0-20190121132951-92cc4225ed8e/crypto/bn256/google/constants.go (about)

     1  
     2  //此源码被清华学神尹成大魔王专业翻译分析并修改
     3  //尹成QQ77025077
     4  //尹成微信18510341407
     5  //尹成所在QQ群721929980
     6  //尹成邮箱 yinc13@mails.tsinghua.edu.cn
     7  //尹成毕业于清华大学,微软区块链领域全球最有价值专家
     8  //https://mvp.microsoft.com/zh-cn/PublicProfile/4033620
     9  //版权所有2012 Go作者。版权所有。
    10  //此源代码的使用受BSD样式的控制
    11  //可以在许可文件中找到的许可证。
    12  
    13  package bn256
    14  
    15  import (
    16  	"math/big"
    17  )
    18  
    19  func bigFromBase10(s string) *big.Int {
    20  	n, _ := new(big.Int).SetString(s, 10)
    21  	return n
    22  }
    23  
    24  //u是确定质点的bn参数:1868033³。
    25  var u = bigFromBase10("4965661367192848881")
    26  
    27  //P是一个基本字段:36U_+36U³+24U²+6U+1。
    28  var P = bigFromBase10("21888242871839275222246405745257275088696311157297823662689037894645226208583")
    29  
    30  //order是G_和G癓中的元素数:36U_+36U³+18U²+6U+1。
    31  var Order = bigFromBase10("21888242871839275222246405745257275088548364400416034343698204186575808495617")
    32  
    33  //xitopmins1over6是ξ^((p-1)/6),其中ξ=i+9。
    34  var xiToPMinus1Over6 = &gfP2{bigFromBase10("16469823323077808223889137241176536799009286646108169935659301613961712198316"), bigFromBase10("8376118865763821496583973867626364092589906065868298776909617916018768340080")}
    35  
    36  //xitopmins1over3是ξ^((p-1)/3),其中ξ=i+9。
    37  var xiToPMinus1Over3 = &gfP2{bigFromBase10("10307601595873709700152284273816112264069230130616436755625194854815875713954"), bigFromBase10("21575463638280843010398324269430826099269044274347216827212613867836435027261")}
    38  
    39  //xitopmins1over2是ξ^((p-1)/2),其中ξ=i+9。
    40  var xiToPMinus1Over2 = &gfP2{bigFromBase10("3505843767911556378687030309984248845540243509899259641013678093033130930403"), bigFromBase10("2821565182194536844548159561693502659359617185244120367078079554186484126554")}
    41  
    42  //xitopsquaredminus1 over3是ξ^((p²-1)/3),其中ξ=i+9。
    43  var xiToPSquaredMinus1Over3 = bigFromBase10("21888242871839275220042445260109153167277707414472061641714758635765020556616")
    44  
    45  //xito2squaredminus2 over3是ξ^((2p²-2)/3),其中ξ=i+9(单位的三次根,mod p)。
    46  var xiTo2PSquaredMinus2Over3 = bigFromBase10("2203960485148121921418603742825762020974279258880205651966")
    47  
    48  //xitopsquaredminus1 over6是ξ^((1p²-1)/6),其中ξ=i+9(1的立方根,mod p)。
    49  var xiToPSquaredMinus1Over6 = bigFromBase10("21888242871839275220042445260109153167277707414472061641714758635765020556617")
    50  
    51  //xito2pMinus2over3是ξ^((2p-2)/3),其中ξ=i+9。
    52  var xiTo2PMinus2Over3 = &gfP2{bigFromBase10("19937756971775647987995932169929341994314640652964949448313374472400716661030"), bigFromBase10("2581911344467009335267311115468803099551665605076196740867805258568234346338")}