So I really like prime numbers and Julian has been silent or dead, at least in my eyes. I've always wanted to write a 10k digit semiprime generator and a calculator. Now I've got the right motivation... or you can say the program can have greater purpose.
First of all I'll just break my safety really quick. Since we'll be talking about how to prove that you are who you say you are even on the internet, you need to know this. it's probably nothing but I noticed something about semiprimes that could mean factorization with the number of trial divisions equal to the length of the semiprime in digits times 9 (worst case scenario). And a little more at each step. It can't be real, it's too simple. I'm really really lazy so if you're interested let me know... you'll have to build quite a little program to test it out on large numbers though. I'm not talking to you about this particular concern unless you're a programmer so FUCK OFF. I've had no errors with the algorithm for the smaller semiprimes. Like I said it's probably nothing though, really.
So you can release a secure semiprime preferably when you're not yet a threat. It'll be trustworthy through social media and what not. You know what that means though right? It means you can only prove that you're alive once by revealing one of the factors. You can't just release another semiprime with the factor to the first one and claim that the new semiprime is yours. I can take your factor and include a semiprime of my own. You'd be fucked then.
There are some cool solutions though. One, not very good, you can generate a finite amount of these things and release them all at once. We'd copy them down somewhere safe and when you're asked to prove your identity we'll divide everything with your factors and find one that works. What if we need to know that you're you more than a thousand times? Messages add up. And whatever the case, you'll have to release all the proof out into the public so we can know what's been factored because you may be having conversations with different people. Note that you can never release anymore semiprimes because we'll never know who they came from, especially as the days go by.
Chain them together. Build a cryptographic relationship between all contiguous semiprimes in the ladder. This way you just need to save someone's first released and you can run the program to move along the chain and verify that only the one with the factors could have came up with that new semiprime. I'm playing with a couple ideas and I'll be following one simple rule. All primes must be random (+-~ln(n) of course) and every link must be as secure as the semiprimes used here themselves. I keep breaking the rule so that's challenge one. It's possible to add more information into the system so that it's not just the factors that define the next semiprime without showing the new factors. For example you can add, surprise surprise, another semiprime whose purpose is to contain information. It works but it's not pretty. Working on it...
You can actually (probably) use
kgpg but that's not easy to deal with and you're limited on the number sizes. We need this. We need something straight up and simple. And beautiful. C is a great language for this because you just can't convert strings into arrays in C++ without including ten directives and writing an extra million lines of code. This project must use only the basics so that anyone can verify that there's no backdoor. It has to be tiny and modular. Can't use functions... for safety reasons. I don't want the user relying too much on operating system calls. This means the user must provide (good) seeds for the random number generation. And the user must see 0-9 printed out in the terminal because keyboards may be logged from the inside, in the motherboards, and with software on the machine. You should be able to select a number and middle click to paste. Nice and simple. And maybe the user can provide their own random numbers whole. I really like that little machine which generates random numbers using the noise in some electronic components. It even watches the temperature so the heat won't bend the output stream.
I believe gpg adds two when it determines that a candidate prime is composite. I don't think they consider the savings with the wheel factorization of 30 to be worth the extra code. And well... they'll have to find n on that wheel too. I found a fast way. I'll use my algorithm and eliminate 73.33% of all numbers instead of just 1/2. I'll add the digits of the random 5k digit string and mod 3. I'll probably divide the candidate prime by all primes <=65536 or maybe more. Starting the division process with 7. Any composite is more likely to be divisible by small numbers. I haven't figured out which probabilistic test I want to use yet but I won't give up simplicity for speed, so users can you know... easily check for backdoors.
File encryption may be a later feature. I'm thinking about a really simple format for this. Just scramble some information using the primes/s and include the semiprime with the output file. Nice and easy. Anyway so this whole thing will take a while.