美文网首页
使用SageMath

使用SageMath

作者: 静析机言 | 来源:发表于2018-12-11 17:58 被阅读0次

             Sage(或称SageMath)是在GPL协议下发布的开源数学软件,并且整合了许多已有的开源软件包到一个基于Python的统一界面下。其目标是创造一个Magma,Maple,Mathematica和Matlab的开源替代品。

             Sage包含了从线性代数、微积分,到密码学、数值计算、组合数学、群论、图论、数论等各种初高等数学的计算功能。

    安装

    这里介绍在Kali-Linux-2018.2 64bit下的安装。

    官网下载地址:http://www.sagemath.org/download-linux.html

    根据自己的环境挑选安装包,我安装的是64位的包sage-8.1-Debian_GNU_Linux_8-x86_64.tar.bz2

    使用

    下载完以后,用下列命令

    tar xvf sage-8.1-Debian_GNU_Linux_8-x86_64.tar.bz2

    cd SageMath

    ./sage

    第一次进入会耗费比较长的时间,以后会好很多。进入后的界面如下所示。

    直接在sage:提示符后敲入命令即可。下面的例子,即为求2013的质因子


    如果想使用.sage代码的话,直接运行一下命令

    ./sageXXX.sage

    下图为执行cm5.sage的效果。



    写sage代码要求对相应函数十分熟,可以从官网上获取帮助:

    http://doc.sagemath.org/html/en/reference/genindex.html

    下面为cm5.sage文件内容,具体含义就不解释了

    A = 0xd9d8bd32fc078af28cb318a7ae07227accf335a1a02eddff421a50b7eceb9fd7

    B = 0xfffffffeffffffffffffffffffffffff000000000000000000000001

    M = 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff

    x = 0xfa00a8d4d5755ae92322a317c3b1895d935ed95a36b4e4589328d7b7214a5d35

    y = 0xaeeb0346ec45386861311d68619391181116843e51e91c7d80a17faa47792fe8

    x1 = 0x739ca3c42d60579b8ab304fe511eb7501343d3a951a85ec67e74cfb88fdde40b

    y1 = 0x3bcc7adbf46e9ce70453644e27b6947e7382c23c315f5ea7847f6cb4f10b62a2

    P = (x, y)

    Q = (x1, y1)

    F = FiniteField(M)

    E = EllipticCurve(F,[A,B])

    P = E.point(P)

    Q = E.point(Q)

    print factor(E.order())

    factors, exponents = zip(*factor(E.order()))

    primes = [2, 4, 2137, 7649, 63127, 33636409, 55866443, 194282080159,269685708029]

    dlogs = []

    for fac in primes:

        t = int(P.order()) / int(fac)

        dlog =discrete_log(t*Q,t*P,operation="+")

        dlogs += [dlog]

        print("factor:"+str(fac)+", Discrete Log: "+str(dlog)) 

    #The result after run

    l = crt(dlogs,primes)

    print(l)

    print P*l == Q

    相关文章

      网友评论

          本文标题:使用SageMath

          本文链接:https://www.haomeiwen.com/subject/uvmehqtx.html