2015-11-18 05:10:31

by Ismail Kizir

[permalink] [raw]
Subject: A new, fast and "unbreakable" encryption algorithm

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 a 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.
Other algorithm results are the output of the "openssl speed" command.
If I am right; you will not be disappointed to include "Hohha Dynamic
XOR Encryption Algorithm" on Linux Kernel.

I will be glad to see my algorithm included in Linux distributions.

Regards
Ismail Kizir


2015-11-18 19:31:24

by Sandy Harris

[permalink] [raw]
Subject: Re: A new, fast and "unbreakable" encryption algorithm

On Wed, Nov 18, 2015 at 12:10 AM, Ismail Kizir <[email protected]> wrote:

> I've developed a new encryption algorithm, which dynamically changes
> the key according to plaintext and practically impossible to break.

There is a very long history of crypto whose author considers is
secure being quickly broken. This happens to nearly all methods
devised by amateurs and quite a few from professionals.

Despite that, amateurs like me & (I presume) you keep trying.
This is probably a good thing. Here's one of mine:
https://aezoo.compute.dtu.dk/doku.php?id=enchilada

> I also opened to public with MIT&GPL dual License.

This is excellent. Many people make claims for their
algorithm without publishing details, which is ludicrous
since no-one can analyze it without those details. You
have avoided that pitfall.

> I will present a paper on a Turkish National Inet-tr 2015 Symposium

A paper describing the design would make analysis
much easier than doing it from source code, and
like every other algorithm yours will need lots of
analysis before it might become sensible for
people to trust it.

I suggest you subscribe to the crypto list:
http://www.metzdowd.com/mailman/listinfo/cryptography

Once your paper is published, post a link there
to invite analysis.

2015-11-18 19:39:51

by Ismail Kizir

[permalink] [raw]
Subject: Re: A new, fast and "unbreakable" encryption algorithm

Hello Sandy,

I agree every word you wrote.
That's why, I am trying to explain all my login 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 the
plaintext during encryption process: Impossible!


If you want to learn about the details, just take a look at the source
code I've published on this blog.


I believe this algorithm is the future of the encryption.


Use it! And please, let me know if you use: [email protected]

On Wed, Nov 18, 2015 at 9:31 PM, Sandy Harris <[email protected]> wrote:
> On Wed, Nov 18, 2015 at 12:10 AM, Ismail Kizir <[email protected]> wrote:
>
>> I've developed a new encryption algorithm, which dynamically changes
>> the key according to plaintext and practically impossible to break.
>
> There is a very long history of crypto whose author considers is
> secure being quickly broken. This happens to nearly all methods
> devised by amateurs and quite a few from professionals.
>
> Despite that, amateurs like me & (I presume) you keep trying.
> This is probably a good thing. Here's one of mine:
> https://aezoo.compute.dtu.dk/doku.php?id=enchilada
>
>> I also opened to public with MIT&GPL dual License.
>
> This is excellent. Many people make claims for their
> algorithm without publishing details, which is ludicrous
> since no-one can analyze it without those details. You
> have avoided that pitfall.
>
>> I will present a paper on a Turkish National Inet-tr 2015 Symposium
>
> A paper describing the design would make analysis
> much easier than doing it from source code, and
> like every other algorithm yours will need lots of
> analysis before it might become sensible for
> people to trust it.
>
> I suggest you subscribe to the crypto list:
> http://www.metzdowd.com/mailman/listinfo/cryptography
>
> Once your paper is published, post a link there
> to invite analysis.