yafu安装使用方法以及mismatched parens解决方法

yafu用于自动整数因式分解,在RSA中,当p、q的取值差别过大或过于相近的时候,使用yafu能够快速的把n值分解出p、q值,原理是使用Fermat方法与Pollard rho方法等。linux

再摘录官方的一段简介(又懒得翻译了)。git

YAFU (with assistance from other free software) uses the most powerful modern algorithms (and implementations of them) to factor input integers in a completely automated way. The automation within YAFU is state-of-the-art, combining factorization algorithms in an intelligent and adaptive methodology that minimizes the time to find the factors of arbitrary input integers. Most algorithm implementations are multi-threaded, allowing YAFU to fully utilize multi- or many-core processors (including SNFS, GNFS, SIQS, and ECM).

YAFU is primarily a command-line driven tool. You provide the number to factor and, via screen output and log files, YAFU will provide you the factors. There is also an interactive environment similar to MATLAB or PARI/GP, where you can type commands and store results. YAFU is very customizable, through the optional use of many many command line parameters and a very capable expression interpreter.

-------------------------------------------------github

1. windows安装express

https://sourceforge.net/projects/yafu/windows

如今最新版本是1.34版本,下载后解压便可。less

解压后有yafu-Win32.exe和yafu-x64.exe,推荐使用64位的。ide

 

2. linux安装spa

https://github.com/DarkenCode/yafu.net

(哈,pcat最近没时间写,先占个空)命令行

 

3. yafu使用方法

使用cmd进入yafu的解压目录(为了方便的话,本身能够把该目录加入到环境变量。)

输入yafu-x64进入命令行

最经常使用的命令是factor(n),将n值分解

如分解23333333333333

factor(23333333333333)

很快获得:

fac: factoring 23333333333333
fac: using pretesting plan: normal
fac: no tune info: using qs/gnfs crossover of 95 digits
div: primes less than 10000
fmt: 1000000 iterations
Total factoring time = 0.2805 seconds


***factors found***

P2 = 31
P12 = 752688172043

ans = 1

 

4. 使用yafu的时候遇到mismatched parens

这是由于在命令行里不支持过长的位数,因此咱们只要把n的值从文件中去读取便可。

新建一个文件pcat.txt,内容里写上n的值,如:

966808932627497190635859236054960349099463975227350564265384373280336699853387254070662881265937565163000758606154308757944030571837175048514574473061401566330836334647176655282619268592560172726526643074499534129878217409046045533656897050117438496357231575999185527675071002803951800635220029015932007465117818739948903750200830856115668691007706836952244842719419452946259275251773298338162389930518838272704908887016474007051397194588396039111216708866214614779627566959335170676055025850932631053641576566165694121420546081043285806783239296799795655191121966377590175780618944910532816988143056757054052679968538901460893571204904394975714081055455240523895653305315517745729334114549756695334171142876080477105070409544777981602152762154610738540163796164295222810243309051503090866674634440359226192530724635477051576515179864461174911975667162597286769079380660782647952944808596310476973939156187472076952935728249061137481887589103973591082872988641958270285169650803792395556363304056290077801453980822097583574309682935697260204862756923865556397686696854239564541407185709940107806536773160263764483443859425726953142964148216209968437587044617613518058779287167853349364533716458676066734216877566181514607693882375533

注意:最后面必定要换行,否则会出现eof; done processing batchfile

而后运行命令为

yafu-x64 "factor(@)" -batchfile pcat.txt

很快获得:

***factors found***

PRP617 = 31093551302922880999883020803665536616272147022877428745314830867519351013248914244880101094365815998050115415308439610066700139164376274980650005150267949853671653233491784289493988946869396093730966325659249796545878080119206283512342980854475734097108975670778836003822789405498941374798016753689377992355122774401780930185598458240894362246194248623911382284169677595864501475308194644140602272961699230282993020507668939980205079239221924230430230318076991507619960330144745307022538024878444458717587446601559546292026245318907293584609320115374632235270795633933755350928537598242214216674496409625928997877221
PRP617 = 31093551302922880999883020803665536616272147022877428745314830867519351013248914244880101094365815998050115415308439610066700139164376274980650005150267949853671653233491784289493988946869396093730966325659249796545878080119206283512342980854475734097108975670778836003822789405498941374798016753689377992355122774401780930185598458240894362246194248623911382284169677595864501475308194644140602272961699230282993020507668939980205079239221924230430230318076991507619960330144745307022538024878444458717587446601559546292026245318907293584609320115374632235270795633933755350928537598242214216674496409625928797450473

ans = 1

注意:运行后,pcat.txt就会消失了。

相关文章
相关标签/搜索