[密码学]利用docker安装与使用sagemath
Sage 是一个免费的、开源的数学软件系统。在我们学习密码学或者数论线代等等数学问题的过程中,用来进行一些复杂的数学运算很好用,比如求离散对数等等。下面就来介绍一下如何在你的电脑上使用docker快速部署sagemath,以及如何使用sage。之所以选择Docker安装,是因为我刚学了docker,是因为docker部署对系统版本啥的统统没有要求,环境啥的都在容器里也不需要你自己配置,只需一行命令
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基础的安装使用过程,希望有所帮助。
更多推荐
所有评论(0)