The compatability problem, is really the solution working. If it's compatable with everything, then it is compatable with viruses. If you look at Windows, they have WIN32s and a list of graphics that are shared by many programs. Cancel, Okay, Boarders, Menus, Drop Downs etc.. There already is a list of programming rules that you must follow, to write a program for Windows, and not wind up with any Memory Violations, etc. The list of rules, doesn't work, or viruses wouldn't exist. Once upon a time, it almost came down to that. Then the government complained, that they couldn't crack Microsoft's Encryption.
I invented that encryption. It's simple signal simulation, and a graph function used to simulate an Oscilloscope, of all things. Basically, I simulated a voltage divider and used it as a mixer for 8 to 16 signals. Then I did it again for a second channel. Then I noticed when I have two mixed signals, the lines drawn by the computer intersect randomly from the two different signals. So, I could store 16 Double Long Integers, and based upon if or when I rounded off, the time step wouldn't allow two numbers to be exactly equal for a long long list of intersections, or I could control how accurately it would pick an intersection. If you based your intersection on the exact time step, where both signals voltages had to be absolutely equal, that almost never happens. So, the actual list of numbers you are working accumulate is 256 unique numbers. If any two match, all you do is dump the duplicate and search for the next unique number. Unless you've picked some harmonic, and random numbers do not include harmonics but, long decimals, the frequencies do not align as a frequency.
If I want to make code harder to crack, I can square 256 as a number, and draw that many different numbers to build a hash table. When you walk away from your computer, and are hitting any keys, about the time the screen saver comes on, I want to work that. The greater the computing power of the processor, the more itterations it can complete in a fair amount of time. As processors computing power increases to the next Generation CPU, the calculation can then be adjusted to increase, the absolute accuracy of the time step and two numbers/mixed signals. There is no fixed anything, and all regular frequencies are removed by randomly drawing from the 256 squared hash table. The hash table would contain 256 different numbers for every single character, and have 256 rows that started with 0. Then you can shuffle the 256 into any order, and it isn't important. Out of 256 possiblities of 0, 0 is one.
It's also possible that for every 256 characters in a file, you repeat the process. Then you have 16 frequencies for every 256 characters. So, the next file the software creates, is the frequency file/key file. Then in handshaking, one computer resolves the answer based upon frequencies generated by both computers. As to say the first 8 come from the bank, then the instruction on where to round off, and then your computer produces a result, or there's does, and in turn. It's like rolling dice, I draw randomly and ask you for the next solution, then he draws randomly once it's his turn to ask.
It typically stays too hard to figure out until the conversation is over.
So, once a programmer understands the function of sin and cos, they can write equations that go on and on and on for billion of itterations and produce numbers that seem random, but are not. They only need to be seeded with actual random numbers, and those seed numbers passed on. Even the order of operations can be altered in handshaking.