March 13th, 2012, 12:55 PM
Public key algorithm
I've build a small site with an experimental asymmetric encryption algorithm. I've tried to contact to different people without result, so I post it here in the hope more people looks at it.
It's experimental and needs cryptanalysis, but the key sizes and amount of information needed to perform key agreement and document signature can be really small.
The description is at:
www dot asymmetricscrambler dot ezhostingx dot com (no URL since I'm a new user...)
If you want a quick glance to start criticizing it go straight to the 'Network-like brief description'.
I'll appreciate support and contributions.
March 14th, 2012, 12:59 PM
Ok :) Let's return to the oooold ansi times. As long as I can post an image with the network description I will do in ascii. The network follows:
I've inserted a link because the mathematical description, thoght it's not really complex is 5 pages long. In the address avove there are just documents, it's not a forum nor even a blog, so I wanted to discuss the algorigthm here, and give it some dissemination if possible.
| +--------+ P: Permute bits
+---+ | | output[p]=input[(p*(N-1)/2)mod N]
| P | +---+-----------+ |
+---+ | | | | R:Rotation matrix
| | | | | First row filled with input
+----| K | R | | Each row is the preceding
k1 | | | | rotated right one position
| | | | Output: xor of rows where
+---+-----------+ | bit in K is 1 (lsb on top)
+--------------+ | Key agreement:
| | Va=X(I,a),Vb=X(I,b)
| | r=X(Va,X(b,I))
| +--------+ r=X(Vb,X(a,I))
+---+ | | Secret values are a, b
| P | +---+-----------+ | Transmitted values are Va, Vb
+---+ | | | |
| | | | | Hash signature:
+----| K | R | | s=X(H,J), H=hash to sign
k2 | | | | Check:
| | | | X(X(I,a),s)=X(X(I,H),X(a,J))
+---+-----------+ | Secret value is J
| | Public values are X(a,J),x(I,a)
| | N safe prime, n=N/log2(N)
. . each line is N bits wide
| P | +---+-----------+
+---+ | | |
| | | |
+----| K | R |
kn | | |
| | |
(c) Daniel Nager - daniel.nager at gmail.com
It's experimental, but the goal is to have N-bit security with N-bit transmissions in a key agreement, not N/2-bit security. So perhaps 83 bits will be safe, even 59 will be extremely hard to break.
March 17th, 2012, 02:01 PM
Here is the explanation in pseudocode:
N number of bits
r=0 ; all bits 0
for i in 0..N-1 do
if bit(a,(i*(N-1)/2)mod N)=1 then
b=ror(b) ; bitwise rotate right
input b, a
for i in 0..n-1 do
a and b are N bit arrays, n is the number of rounds
The following holds:
where I is an arbitrary N-bit array and a,b the secret values
of each part.
In a diffie-hellman like key agreement Va=X(I,a) and Vb=X(I,b) is
sent in each direction and the secret key is calculated