msieve | C library implementing a suite of algorithms to factor
kandi X-RAY | msieve Summary
kandi X-RAY | msieve Summary
msieve is a C library. msieve has no bugs, it has no vulnerabilities and it has low support. You can download it from GitHub.
Msieve is the result of my efforts to understand and optimize how integers are factored using the most powerful modern algorithms. This documentation corresponds to version 1.51 of the Msieve library. Do not expect to become a factoring expert just by reading it. I've included a relatively complete list of references that you can and should look up if you want to treat the code as more than a black box to solve your factoring problems.
Msieve is the result of my efforts to understand and optimize how integers are factored using the most powerful modern algorithms. This documentation corresponds to version 1.51 of the Msieve library. Do not expect to become a factoring expert just by reading it. I've included a relatively complete list of references that you can and should look up if you want to treat the code as more than a black box to solve your factoring problems.
Support
Quality
Security
License
Reuse
Support
msieve has a low active ecosystem.
It has 7 star(s) with 2 fork(s). There are 2 watchers for this library.
It had no major release in the last 6 months.
msieve has no issues reported. There are no pull requests.
It has a neutral sentiment in the developer community.
The latest version of msieve is current.
Quality
msieve has 0 bugs and 0 code smells.
Security
msieve has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
msieve code analysis shows 0 unresolved vulnerabilities.
There are 0 security hotspots that need review.
License
msieve does not have a standard license declared.
Check the repository for any license declaration and review the terms closely.
Without a license, all rights are reserved, and you cannot use the library in your applications.
Reuse
msieve releases are not available. You will need to build from source code and install.
Installation instructions are not available. Examples and code snippets are available.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of msieve
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of msieve
msieve Key Features
No Key Features are available at this moment for msieve.
msieve Examples and Code Snippets
No Code Snippets are available at this moment for msieve.
Community Discussions
No Community Discussions are available at this moment for msieve.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install msieve
You can download it from GitHub.
Support
Q. I want to factor much bigger numbers. Can't Msieve solve problems larger than you say? Q. I'm trying to break my ex-girlfriend's RSA key with Msieve, and it's not working. What's wrong? A. The quadratic sieve really is not appropriate for factoring numbers over ~110 digits in size. On a fast modern CPU, a 110-digit QS factor- ization takes nearly 120 hours for Msieve, and the time increases steeply beyond that. If you have really big factorization needs, there are several packages that you can use to make up for the low-performance parts of Msieve's NFS code:. See later for a list of web resources that give an idea of the largest actual factorizations that Msieve has performed. Q. Can you make Msieve network aware? Can you make it a client-server thingy? Can I use the internet to factor numbers? A. The demo application for the Msieve library is just that, a demo. I don't know anything about network programming and I'm not qualified to build a client-server application that's safe in the face of internet threats. If you have these kinds of smarts, you can use Msieve in your own code and I'll help as much as I can. The demo is good enough for people with a few machines on a small private LAN, and this is ~100% of the user community right now. Q. Where's all the documentation on how your library actually works? A. There really isn't any. Msieve is a spare-time project, and I have so little spare time that if I tried to produce formal documents on the internals of the library then I'd never have time to actually work on those internals. The parts of the code that are relatively stable have extensive in-line documentation, but whatever I happen to be working on currently is pretty much comment-free. If you have specific questions about how a specific part of the code works, just ask... Q. How can I modify Msieve to work on a cluster? A. Distributed sieving is so easy that you don't need high-performance parallel programming techniques or message passing libraries to do it. If you're lucky enough to have a cluster then the batch scheduling system that comes with the cluster is more than enough to implement cluster-aware sieving. Of course if you have access to that much firepower you owe it to yourself to use an NFS package of some sort. Q. Can you modify Msieve to run on multi-core processors? A. As described above, the really intensive part of the QS and NFS algorithms is the sieving, and it's a waste of effort to multithread that. You won't save any time compared to just running two copies of Msieve. The final stage can benefit from multithreading, and the intensive parts of that are already multithread-aware. This can be improved, but multithreading more parts of the library is a low priority for me. Q. Why put Msieve into the public domain and not make it GPL? Wouldn't GPL-ed code protect your work and encourage contributions? A. Msieve is a learning exercise, not a collaborative effort per se. I don't expect other developers to help, though many have and it's appreciated. As for protection, there's only one way to generate income from this code: use it to win factoring contests. While the number field sieve can win factoring contests, you personally do not have the resources to do so. So there's no reason to put licensing restrictions on this code. Q. Your multiple precision library sucks. Why didn't you use GMP? A. I know it sucks. Using GMP would have left MSVC users in the cold, and even building GMP is a major exercise that requires essentially a complete and up-to-date unix environment. The nice thing about sieve- based factoring is that for big factorizations the actual multiple precision math takes about 1% of the total runtime, so it actually doesn't matter all that much which low-level multiple precision library is used. Actually, the parts of the code that use my own library are pretty old, and new development does require GMP. This became necessary after modifications to the NFS code started to require arithmetic on very large numbers, so GMP is now a requirement. One of my eventual goals is to phase out (most of) my own bignum library in favor of GMP.
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page