-
-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG: Application crashes with default values #17
Comments
The button "Increase" is intended to be pushed only after a factorization job has been created or loaded. I think this is a bug, in that the button should be disabled until those steps have been taken. So I have fixed this. Regarding the second crash, yeah, this is a mistake on my part. This is because it is missing some .dll libraries it takes a dependency on. I don't know how I missed this, or what I was thinking, I should have realized the executable wasn't going to run correctly without those .dlls. I went ahead and updated the GNFS-master\GNFS-master\Binaries\Release\ directory with the latest build that includes the disabling the Increase button until a factorization job is created, as mentioned above. I think the version that was there was a few versions out of date. This new version require .NET 5.0 or later. I hope that's okay. Youll notice there are a WHOLE LOT more files in that Release directory now. This is a result of using the new .NET 5.0 version. I wish it wasnt so, but I see no way around it. But just run the GNFS_Winforms.exe executable as before. Since you cloned down the repository, you should be able to 'pull' the latest changes from the master branch to receive these changes. Regarding modulus size: 3072 bit? As in semiprime contains some 924 digits? If yes, then that RSA number should be sufficiently secure, provided that the primes were picked at random and are not too close to each other. 2048 is a pretty common size that is considered secure. I will say my library has no hope for factoring a 3072 bit semiprime, or even a 1024 bit semiprime for that matter. In fact, my implementation is not fastest or most efficient factorization project out there. Its goal was to be readable and understandable, not necessarily efficient. The other factorization libraries that are efficient, have much of their critical areas written in assembly, and the rest in C++, so they are not exactly friendly for reading and understanding the algorithm. Anyways, the state-of-the-art factorization project for factoring large semiprime numbers is CADO-NFS. If you are intending to do an serious factorization, you should consider using that. |
Thank you for fixing this so quickly! I pulled the repository and exectuting NIST Special Publication 800-57 Part 1 Revision 5 - Recommendation for Key Management says, that I don't want to factorize a 3072 bit RSA modulus, but thank you for mentioning CADO-NFS, I will take a look that that as well :) To make your application more easy to use, it might be helpful to describe or show the steps in screenshots or a small video how to factorize an example value for I don't really understand how to use the application. When I use Output after 1):
Output after 2) (cancelled manually after 52s):
When I then follow steps 3 and 4 I get:
|
Try increasing the smoothness bound to 1600 or 5000 or so, and set the polynomial base to 90. |
Description
Hi there and thank you for the hard work! I would really like to test the program out, but after cloning the whole repository and starting GNFS-master\GNFS-master\Binaries\Release\GNFS-Winforms.exe I get two errors.
Error/Exception Message
Using default values and clicking on "increase" shows this message:
System.NullReferenceException: Object reference not set to an instance of an object.
at GNFS_Winforms.MainForm.btnIncreaseSmoothnessBound_Click(Object sender, EventArgs e)
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam): ENCOUNTERED A UNTRAPPED THREAD EXCEPTION
Clicking on create, the program crashes and the output.log says:
[243.2024 @ 08:54:08] Processing thread LAUNCHED.
[243.2024 @ 08:54:08] [New factorization job creation initialization for N = 3218147...]
[243.2024 @ 08:54:08] System.IO.FileNotFoundException: Could not load file or assembly 'ExtendedArithmetic.Polynomial, Version=2022.152.744.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'ExtendedArithmetic.Polynomial, Version=2022.152.744.0, Culture=neutral, PublicKeyToken=null'
at GNFSCore.GNFS..ctor()
at GNFSCore.GNFS..ctor(CancellationToken cancelToken, LogMessageDelegate logFunction, BigInteger n, BigInteger polynomialBase, Int32 polyDegree, BigInteger primeBound, Int32 relationQuantity, Int32 relationValueRange)
at GNFS_Winforms.MainForm.<>c__DisplayClass41_0.<btnCreate_Click>b__0()
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].
: CAUGHT A UNHANDLED APPLICATION EXCEPTION
Screenshots
My goal here is to show my colleagues why we need in RSA a modulus$|n| \geq 3072$ bit and I would like to the factorization for small $n$ with your implementation.
Thank you!
The text was updated successfully, but these errors were encountered: