krypto kod

16 views
Skip to first unread message

Kubik

unread,
Jan 24, 2012, 4:32:41 PM1/24/12
to Bratislava Clojure
takze hor sa do toho, ked som zacinal pisat tuto spravu mal som pocit
ze to prehanam tak pekne poporiadku zacnem Stage1 (S1) a potom pekne
dalej
nateraz pre jednopduchost zacnime starym dobrtym Caesar-om a jeho
transpozicnou sifrou majme:
0 - povodny text
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a 1 - sifrovany text
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
tj pre A => B ,... , Ceasar z posunom 1ao je isto zrejme je ich 26
vratane incidencie A = A xD
takze S1 by mal byt maly programcek kt. f(M) = C kde pre
M je povodna sprava
C je kodovana sprava
a f(A) = B
a potom budeme pokracovat logickym krokom S2 Vigenère cipher = le
Chiffre indéchiffrable co je vlastne vsetkych 26 Ceasarov naraz t.j.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
----------------------------------------------------------------------
B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
tu f(M, k) = C kde k je klucove slovo/heslo a kazde jeho pismeno
oznacuje riadok z kt. sa ma kodovat napr.:
k = bmx
M = takzeakozatialok
******
bmxbmxbmxbmxbmxb (16znakov)
takzeakozatialok (16znakov)
f(t, b) = u
f(a, a) = a
f(k, x) = h
C =

Kubik

unread,
Jan 24, 2012, 4:33:59 PM1/24/12
to Bratislava Clojure
BTW ... C = umhaqxlawbffbxll

Peter Hanak

unread,
Jan 24, 2012, 6:11:17 PM1/24/12
to Bratislava Clojure
takze (defn translate [M]
(take 26 (drop M (cycle "ABCDEFGHJKLMNOPQRSTUVWXYZ"))))

definuje funkciu, vytvori postupnost pismen abecedy posunutu o M

On 24 Jan, 22:33, Kubik <jakub....@gmail.com> wrote:
> BTW ... C = umhaqxlawbffbxll
>
> On 24. Jan, 22:32 h., Kubik <jakub....@gmail.com> wrote:
>
>
>
>
>
>
>
> > takze hor sa do toho, ked som zacinal pisat tuto spravu mal som pocit
> > ze to prehanam tak pekne poporiadku zacnem Stage1 (S1) a potom pekne
> > dalej
> > nateraz pre jednopduchost zacnime starym dobrtym Caesar-om a jeho
> > transpozicnou sifrou majme:
> > 0 - povodny text
> >  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
> > a 1 - sifrovany text
> >  B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
> > tj pre A => B ,... , Ceasar z posunom 1ao je isto zrejme je ich 26
> > vratane incidencie A = A xD
> > takze S1 by mal byt maly programcek kt. f(M) = C kde pre
> > M je povodna sprava
> > C je kodovana sprava
> > a f(A) = B
> > a potom budeme pokracovat logickym krokom S2 Vigenčre cipher = le

Peter Hanak

unread,
Jan 25, 2012, 1:56:20 AM1/25/12
to Bratislava Clojure
Kedze si nespominam na funkciu, ktora by premienala pismena na ich
numericku hodnotu musim si vytvorit mapu podobnu multiplexoru (def mpx
{:A 1, :B 2, :C 3, :D 4, :E 5, :F 6, :G 7, :H 8, :I 9, :J 10, :K
11, :L 12, :M 13, :N 14, :O 15, :P 16, :Q 17, :R 18, :S 19, :T 20, :U
21, :V 22, :W 23, :X 24, :Y 25, :Z 26})
a vyhladavat v nej bud (:B mpx), alebo (mpx :B).

Na prechadzanie abecedou si vytvorim vektor vektorov: povodnej spravy,
cize nieco ako
[
[b t]
[m a]
[x k]
]
do ktoreho dam pary znakov z klucoveho slova/hesla a

Peter Hanak

unread,
Jan 25, 2012, 11:57:43 AM1/25/12
to Bratislava Clojure
alebo radsej (interleave "message" (cycle "password")), co vytvori
prepletenu postupnost heslo, sprava.

(first (drop (mpx :S) (drop (mpx :T) (cycle
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"))))

(rest (rest message)) posunie tuto postupnost o dve hodnoty doprava

(defn encode [M K]
(first (drop (- M 1) (drop (- K 1) (cycle
"ABCDEFGHIJKLMNOPQRSTUVWXYZ")))))

Kubik

unread,
Jan 25, 2012, 5:36:14 PM1/25/12
to Bratislava Clojure
asi takto vyzera ceasar v c#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ceasar
{
class Program
{
private const string alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static void Main(string[] args)
{
string s = encode("halo", 'C'); //result = JCNQ
}

private static string encode(string message, char key)
{
message = message.ToUpper();
string result = "";
foreach (char ch in message)
{
result += alphabet[(ch - 65 + key - 65) %
alphabet.Count()];
}
return result;

Kubik

unread,
Jan 25, 2012, 6:12:46 PM1/25/12
to Bratislava Clojure
   user=> (Integer/parseInt "A" 16)      ; hex
   10
   user=> (Integer/parseInt "1010" 2)    ; bin
   10
   user=> (Integer/parseInt "10" 8)      ; oct
   8
   user=> (Integer/parseInt "8")         ; dec
   8

(defn parse-integer [str]
(try (Integer/parseInt str)
(catch NumberFormatException nfe 0)))

Kubik

unread,
Jan 26, 2012, 1:27:53 PM1/26/12
to Bratislava Clojure
F# edd s celou Consoloe mierne mozno komplikovane ale aka bola slina
take je xD pre velky uspech poslem funkcne f# pravdepodobne  prereq.
win z .net 4

open System

let line = Console.WriteLine("Message: ") let message =
Console.ReadLine().ToUpper() let line2 = Console.WriteLine("Key: ")
let key = Console.ReadLine().ToUpper() let alphabet  =
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"

let Foo max =
    let rec Loop i =
        if i < max then
            let encrypt =
Console.Write(alphabet.Chars((Convert.ToInt32(message.Chars(i)) - 65 +
Convert.ToInt32(key.Chars(0)) - 65) % alphabet.Length))
            Loop (i+1)
    Loop 0
Foo message.Length
> > > > > > > a potom budeme pokracovat logickym krokom S2 Vigenère cipher = le

Kubik

unread,
Jan 26, 2012, 1:54:44 PM1/26/12
to Bratislava Clojure
Message has been deleted

Peter Hanak

unread,
Feb 2, 2012, 6:56:40 PM2/2/12
to Bratislava Clojure
Takze riesenie vyzera asi takto:

(defn encode [M K]
(char (+ (mod (+ (- (int M) 64) (- (int K) 65)) 25)
64)))

(apply str (let [m "TAKZEAKOZATIALOK"
k "BMK"
c (map encode m (cycle k))]
c))

=> "UMIBQXLBXBGGBXML"

vstup treba zadavat rucne a je tam jedna numericka chyba, ale malo by
to zatial stacit. :)

Peter Hanak

unread,
Feb 2, 2012, 7:24:25 PM2/2/12
to Bratislava Clojure
a ked sa da modulo 26, tak to sedi perfektne

Peter Hanak

unread,
Feb 5, 2012, 3:37:57 AM2/5/12
to Bratislava Clojure
Toto som nasiel na rosettacode.org:

(let [A (into #{}
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
A-map (zipmap A (take 52 (drop 26 (cycle A))))]

(defn rot13[in-str]
(reduce str (map #(if (A %1) (A-map %1) %1) in-str))))

(rot13 "The Quick Brown Fox Jumped Over The Lazy Dog!") ;; produces
"Gur Dhvpx Oebja Sbk Whzcrq Bire Gur Ynml Qbt!"

Koduje to spravu o 13 znakov, ale zatial som nepochopil princip. Ma
niekdo nejaky napad?

Kubik

unread,
Feb 19, 2012, 9:20:32 AM2/19/12
to Bratislava Clojure
Reply all
Reply to author
Forward
0 new messages