[Cryptography] A new, fast and "unbreakable" encryption algorithm

Ismail Kizir ikizir at gmail.com
Wed Nov 18 16:15:09 EST 2015


Hello,

I've developed a new encryption algorithm, which dynamically changes
the key according to plaintext and practically impossible to break. I
also opened to public with MIT&GPL dual License.
It is also quite fast; ~80% faster than the fastest mode of AES
without cpu instruction set support.
I will present a paper on Turkish National Inet-tr 2015 Symposium on 3 December.

It is a very simple and yet efficient logic. Anyone who looks at the
self documented(in English) C code at
http://ismail-kizir.blogspot.com/2015/11/hohha-dynamic-xor-algorithm-source-code.html
 may understand why and how it is unbreakable.

I simply use the key as a jump table and, with every encrypted byte, I
change the jump table(the key) as a result of 3-4 parameters including
the last plaintext byte itself. Briefly, I encypt the plaintext with
the key and also dynamically encrypt the key with the plaintext.
The code is self documented in English.
On Linux simply
gcc HohhaDynamicXOR.c -O2 -Wall
./a.out
will make integrity checks and print benchmarks. It is production ready.

I know that a lot of people thinks that there is a "new amateur in
town claiming having invented an unbreakable encryption" :)
That's why, I am trying to explain all my logic, publicly to professionals.
It's not rocket science. You will "just understand" when you read:

Until today, we were looking from the "wrong side" I guess.

We were all thinking that we must have a "fixed" key which must never change!

Why?

I begun to ask that question: "Why the key must be fixed?" and changed
the paradigm.

And I decided to dynamically update the key in encyption and decryption process.


The essential logic of the algorithm is using the key as a "jump
table" which is dynamically updated with every "jump" we make.

To understand better how it functions, suppose that we don't have a
complex function.


Given the key body length(L) is a power of 2, and M is an integer to
tell us where we are in the "key body":

We just take the byte at position M of the key body, we XOR that byte
with the byte to be encrypted(X).

We increase the byte at position M and "jump to" (M+X)%L


So, every time we encrypt a byte, we also change the key. It's a bit
more complicated than this. But essentially this is the base logic. In
real function, we do more complex operations with more variables like
the salt(or nonce) value, the last byte we encrypted, the key
checksum(against related key attacks) etc.

Briefly, to decypher a ciphertext, a cracker needs to find out the
key, and, to find out the key, cracker needs to find out the
plaintext, because the key is dynamically updated according to
plaintext during encryption process: Impossible!

I just want Linux uses a "strong encryption algorithm" to prevent
States, besides inalphabet kids, from reading your files :)

I believe this algorithm is the future of the encryption.

Source code: http://ismail-kizir.blogspot.com/2015/11/hohha-dynamic-xor-algorithm-source-code.html


I will be glad to see my algorithm included in your products.
Please feel free to ask if you have any questions.

Regards
Ismail Kizir
CTO, Hohha Internet Services Ltd.


More information about the cryptography mailing list