Sage 是一个免费的、开源的数学软件系统。在我们学习密码学或者数论线代等等数学问题的过程中,用来进行一些复杂的数学运算很好用,比如求离散对数等等。下面就来介绍一下如何在你的电脑上使用docker快速部署sagemath,以及如何使用sage。

之所以选择Docker安装,是因为我刚学了docker,是因为docker部署对系统版本啥的统统没有要求,环境啥的都在容器里也不需要你自己配置,只需一行命令就能快速部署,非常方便。缺点就是要先安装docker,不过网安方面你要漏洞复现啥的多少都要用到docker,早晚要装的。Docker的安装过程网上一搜一大把,这里就不多赘述了。下面来看如何部署使用Sage。

部署Sagemath镜像

系统:Linux系统,这里是kali,只要是linux应该没啥区别

软件要求:docker

首先启动docker:

systemctl start docker

然后就直接通过命令把Sega容器镜像从Dockerhub上拉取下来:

 docker pull sagemath/sagemath

然后就等待镜像拉取就行了,大概4个多g,耐心等待一会:

 

拉取完毕后在镜像目录就能看到了:

Sage的启动和简单利用

通过以下命令在命令行中启动sagemath:

docker run -it sagemath/sagemath:latest

效果如下:

 

 或者我们拉取的sage镜像里是内置了jupyter notebook的,我们也可以通过如下命令在网页段打开jupyter来使用,更加直观一点:

docker run -p8888:8888 sagemath/sagemath:latest sage-jupyter

通过它给我们的网址在浏览器中访问就可以了 :

 

关于Sage的使用,首先Sage是基于python的,python程序在Sage中都能运行。

关于具体使用,这里是官方的教程文档:http://www.sagemath.org/doc/tutorial/index.html 

也有国内大佬翻译的版本,比如:欢迎来到Sage教程! [Lainme's Blog]

示例:求离散对数

以notebook的形式为例,new一个Sage的程序:

 输入求离散对数所需的三个参数,即h=p的x次mod g当中的h,p,g,然后调用Sega提供的函数discrete_log(h,mod(g,p))即可,非常简单:

不同运算需要的相关函数见教程。

命令行也是一样的,就直接输入命令就行了 

 以上就是Sage基础的安装使用过程,希望有所帮助。

 

 

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐