1998-02-18 - description of my stream cipher

Header Data

From: nobody@REPLAY.COM (Anonymous)
To: cypherpunks@toad.com
Message Hash: 86657251549d7fc521f4a9d96c2375316d1d72d23b9bb1e8f427251eb58ef564
Message ID: <199802180304.EAA02881@basement.replay.com>
Reply To: N/A
UTC Datetime: 1998-02-18 03:04:31 UTC
Raw Date: Tue, 17 Feb 1998 19:04:31 -0800 (PST)

Raw message

From: nobody@REPLAY.COM (Anonymous)
Date: Tue, 17 Feb 1998 19:04:31 -0800 (PST)
To: cypherpunks@toad.com
Subject: description of my stream cipher
Message-ID: <199802180304.EAA02881@basement.replay.com>
MIME-Version: 1.0
Content-Type: text/plain



Subject:      description of my stream cipher
From:         Jouni Vuorio <Jouni.Vuorio@vtoy.fi>
Date:         1998/02/17
Message-ID:   <34E9D794.371@vtoy.fi>
Newsgroups:   sci.crypt

[Subscribe to sci.crypt] 
[More Headers]


Here is description of my stream cipher, it operates one
byte at time, instead of one bit at time.
its key length is up to 255 bytes (2040 bits)

im sure that there are no need for longer description,
becourse that vb source code explanes details.
only thing that could be difficult to understund is
Asc(Mid(Text2, R2 - 1, 1)) that simppely means that
take asci value from text (in this case string text2)
starting from R2 - 1 and length of 1. i think that
everyone understunds the rest.


VB source code:

Initializing the substitution-box
On Error Resume Next

D = Len(Key)
R = 1

For R2 = 1 To 256
H1 = Asc(Mid(Text2, R2 - 1, 1))
K1 = Asc(Mid(Text2, R, 1))
K2 = Asc(Mid(Text2, D Mod Len(Text2), 1))
K3 = Asc(Mid(Text2, D * R Mod Len(Text2), 1))
K4 = Asc(Mid(Text2, R + D Mod Len(Text2), 1))

R1 = ((R1 + R2 + K + 1) Xor (R1 * R2 + 1)) Mod 256
R3 = ((R3 + R1 + 1) + R2 + (R1 * K + 1 Mod (R3 + R1 + 1))) Mod 256
R4 = (R4 + R3 + R1 + 1) ^ 2 Mod 256

R = R + 1
If (R - 1) = Len(Text2) Then R = 1

C = (C + (H1 + K1 + K2 + K3 + K4 + D + R1 + R3 + R4) Mod 256) Mod 256
C = C Mod 256


SBox = SBox & Chr(C Mod 255 + 1)
Next






On Error Resume Next

Key = Text2
texti = Text1
Text1 = ""


R = 1
S1 = Len(Key)
S2 = 11
For R2 = 1 To Len(texti)
C = Asc(Mid(texti, R2, 1)) - 1
K = (K + Asc(Mid(Key, R2 Mod Len(Key), 1))) Mod 256
K = (K + Asc(Mid(SBox, (((K * R2 Mod 256) - 255) * -1) Mod 257, 1))) Mod
256

R1 = ((R1 + R2 + K) Xor (R1 * R2)) Mod 256
R3 = ((R3 + R1) + R2 + (R1 * K Mod (R3 + R1))) Mod 256
R4 = (R4 + R3 + R1) ^ 2 Mod 256


F1 = (F1 + (Asc(Mid(SBox, R1 Mod 256, 1)) Mod 256) Mod 256)
F2 = (F2 + (Asc(Mid(SBox, R2 Mod 256, 1)) Mod 256) Mod 256)
F3 = (F3 + (Asc(Mid(SBox, R3 Mod 256, 1)) Mod 256) Mod 256)
F4 = (F4 + (Asc(Mid(SBox, R4 Mod 256, 1)) Mod 256) Mod 256)
F5 = (F5 + (Asc(Mid(SBox, K Mod 256, 1)) Mod 256) Mod 256)
temp = F1 + F2 + F3 + F4 + F5 + M Mod 256
F = (F + (Asc(Mid(SBox, temp, 1)) Mod 256) Mod 256)

M = M + 1
If M = 2 Then M = 0


If M = 0 Then C = C Xor ((F + K) Mod 256)
If M = 1 Then C = C Xor ((((F + K) Mod 256) - 255) * -1)


C = (C Mod 256) + 1


Mid(texti, R2, 1) = Chr(C)
Next



Text1 = texti

-- 
Jouni.vuorio@vtoy.fi             GSM 050-5456235
PahaeNTeist soNTaa viNTit peNTteihin aseNTavat...







Thread