bench_pairing.py 文件源码

python
阅读 19 收藏 0 点赞 0 评论 0

项目:ecpy 作者: elliptic-shiho 项目源码 文件源码
def main():
  l = 2201426263
  p = 6 * l - 1
  F = ExtendedFiniteField(p, "x^2+x+1")
  E = EllipticCurve(F, 0, 1)
  i = 3
  while True:
    y = E.get_corresponding_y(i)
    if y != None:
      P = E(i, y)
      if (l * P).is_infinity():
        break
    i += 1
  print(P)

  rand = [randint(2**31, 2**32) for _ in xrange(10)]
  count = 20

  weil_time = []
  print("[+] Weil Pairing: ")
  for x in rand:
    r = timeit("bench_pairing.do_test()",
               setup="import bench_pairing; from ecpy import EllipticCurve, ExtendedFiniteField; bench_pairing.init_test('weil', [%r, %r, %r.distortion_map(), %r])" % (E, P, x*P, l),
               number=count)
    weil_time += [r]
    show_results("weil", r, count)

  print("[+] Tate Pairing: ")
  tate_time = []
  for x in rand:
    r = timeit("bench_pairing.do_test()",
               setup="import bench_pairing; from ecpy import EllipticCurve, ExtendedFiniteField; bench_pairing.init_test('tate', [%r, %r, %r.distortion_map(), %r, 2])" % (E, P, x*P, l), number=count)
    tate_time += [r]
    show_results("tate", r, count)

  print("=" * 64)
  show_results("weil", sum(weil_time), count * 10)
  show_results("tate", sum(tate_time), count * 10)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号