如何评价开源数学软件 SageMath ?

如何评价开源数学软件 SageMath ?

· json · rss
Subscribe:

About

我们评价一个东西的时候要和它的竞品分析。

sagemath的竞品,我敲过的有两个,分别是magma和mathematica。

首先,我个人主观评价一下,我最喜欢的是sagemath。

因为我敲代码敲的比较多,对于代码类的更容易上手。

magma更像一个没完成的半成品,如果一份密码学作业要求使用magma,那这份作业多半来自于悉尼大学。它的各种怪癖让人难以忍受。

在美国高校中,我了解到的大致是sagemath和mathematica五五开。

在中国高校的话,sagemath用的更多,因为没几个学校有付费版的mathematica.

功能完整性上来说,sagemath可能还是不如mathematica.


不过对于密码学人来说,sagemath还是很不错的,但是总得来说文档的更新速度小于代码更新的速度。

例如对于多项式离散对数问题,比较快速的方法就是 index calculus法,可以将DLP的指数复杂度降到亚指数时间.但是在官方文档里面,并没有提到指数演算法。

于是我在github上找到了一个对于index_calculus的实现,结果发现代码的核心来自于sagemath库。

我查阅sagemath的源码才知道在9.4版本中,已经将默认的BSGS算法修改成了index_calculus法。只不过文档还没有更新上去。

但是你如果使用mathematica的话,算法就不透明, mathematica并没有开源,如果出现一些需要一些特定算法才能实现的问题,你很难知道mathematica是否采用到了正确的算法。

我今年提了一个反馈并附上了代码,完成了对于hill密码的KPA攻击,他们的回应很迅速,也指出了我的代码的不足之处。(大致是参数检验问题,一旦封装进入黑盒之后,需要尽可能地把用户地可能输入都覆盖进入),后续由其他人来完成代码。


总结,这是一个快速成长,且开源的数学软件。