I've been spending my spare time coming up with the basis for an encryption algorithm. I am completely unfamiliar with computer programming, but my time as a Network Technician left me incredibly familiar with binary. I was playing around with numbers on a paper at work one day (being a Network Tech is pretty boring when everything is working correctly) and I think I'm on to something.
Basically, I found that if you take a file, and "relate" the bytes of data unto themselves, you can come up with a string of 1s, 0s, Xs and Ys. Sound confusing? Let me give you an example
Byte A: 10100110 Byte B: 10111110 Take Byte A, and relate it to Byte B, with each bit being "related" to the corresponding bit of the other byte.
Using the following rules, we achieve a given output:
Bit A: 1 Bit B:1 Output: 1
Bit A: 1 Bit B:0 Output: 0
Bit A: 0 Bit B:1 Output: X
Bit A: 0 Bit B:0 Output: Y
So our example would be (1-1), (0-0), (1-1), (0-1), (0-1), (1-1), (1-1) (1-0)
OR (1),(Y),(1),(X),(X),(1),(1),(0) OR 1y1xx110
We repeat the process, this time relating the first half of our resulting string with the second half of it.
So our example would be (1-X) (Y-1) (1-1) (X-0)
We achieve a binary output by mapping the possible permutations to a value determined by turning a pass phrase into hex, and applying each digit of the resulting number to the starting value of the permutation mapping. Sounds confusing, (Not that I'm implying that it is difficult to understand, just that I'm absolutely dreadful at explaining things) right?
Allow me to illustrate this.
We have four possible characters in each digit. If we take them as permutations, rather than combinations, we have 16 possible outcomes. We can assign a starting value to those that is binary. For example: 1 followed by 1 returns 0000 if the corresponding hex digit is 0. If the hex digit was 4, the former would have returned 0100. For every two bytes encrypted, you exhaust a portion of the hex key. After the predetermined hex key is exhausted, you simply rotate the key a specific way according to a simple metric.
I've done a terrible job explaining it, but you can watch the following Youtube videos if you're actually interested in understanding this. I will warn you, I made this videos for people that are completely uneducated on the topic at hand. (Which you, more than likely, are not)
Intro Video: https://www.youtube.com/watch?v=wEIr9gBOJKs
Second Video: https://www.youtube.com/watch?v=6tItNdvX2K4