Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- P =: , (] , <:) |: |. 8 4 $ >: +: i.32
- iP =: +/ (i.64) ([ * =/~) P
- G =: |."1 }: |: i. 8 8
- G =: , (28 {. , G), (24 {. , |. G), (27 19 11 3)
- KP =: 13 16 10 23 0 4 2 27 14 5 20 9 22 18 11 3 25 7 15 6 26 19 12 1 40 51 30 36 46 54 29 39 50 44 32 47 43 48 38 55 33 52 45 41 49 35 28 31
- s =: 1, (14 $ 1, 6 $ 2), 1
- E =: |: i. 8 4
- E =: , |: (_1 |. _1 { E) , E , (1 |. 0 { E)
- P2 =: 15 6 19 20 28 11 27 16 0 14 22 25 4 17 30 9 1 7 23 13 31 26 2 8 18 12 29 5 21 10 3 24
- S =: 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
- S =: S, 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
- S =: S, 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
- S =: S, 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
- S =: S, 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
- S =: S, 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
- S =: S, 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
- S =: S, 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
- S =: 8 4 16 $ S
- f =: dyad : '|. #: S {~ < x, ((5{y)++:0{y), (+/(2^i.4)*}:}.y)' " 0 1
- fS =: monad : '}. |."1 (4 $ 1), (i.8) f 8 6 $, y' " 2
- chr2bin =: monad define
- dec =. 0 (3!:4) , y
- , |."1 }. (8 $ 1) , |."1 #: ,/ |: |. (2, #dec)$ <. dec (% , |~) 256
- )
- bin2chr =: monad define
- dec =. +/ |: (2^i.8) *"1 |."1 (8 ,~ <. 8 %~ # y) $, y
- 1 (3!:4) +/"1 (1 256) *"1 (2 ,~ <.(#dec)%2) $ dec
- )
- step =: monad define
- K =. > 0 { y
- L =. > 1 { y
- R =. > 2 { y
- (}. K); R ; L ~: P2 { , fS (0 { K) ~: E { R
- )
- encode =: dyad define
- key =. x
- binkey =. chr2bin key
- prmkey =. G { binkey
- C =. (28 {. prmkey) |.~"1 0 +/\s
- D =. (28 }. prmkey) |.~"1 0 +/\s
- K =. KP {"1 C ," 1 1 D
- plain =. y
- bin =. chr2bin plain
- prm =. P { bin
- L =. 32 {. prm
- R =. 32 }. prm
- result =. step^:(#K) K; L; R
- R =. > 1 { result
- L =. > 2 { result
- bin2chr iP { ,L,R
- )
- decode =: dyad define
- key =. x
- binkey =. chr2bin key
- prmkey =. G { binkey
- C =. (28 {. prmkey) |.~"1 0 +/\s
- D =. (28 }. prmkey) |.~"1 0 +/\s
- K =. |. KP {"1 C ," 1 1 D
- plain =. y
- bin =. chr2bin plain
- prm =. P { bin
- L =. 32 {. prm
- R =. 32 }. prm
- result =. step^:(#K) K; L; R
- R =. > 1 { result
- L =. > 2 { result
- bin2chr iP { ,L,R
- )
- plaintext =: 1!:1 < 'in.txt'
- plaintext =: (8,~ >. 8 %~ #plaintext) $, ' ',~^:(8 - 8| # plaintext) plaintext
- out =: 1!:21 < 'out.txt'
- ('habrhabr' encode"1 1 plaintext) 1!:2 out
- 1!:22 out
- cipher =: 1!:1 < 'out.txt'
- cipher =: (8,~ >. 8 %~ #cipher) $, cipher
- , 'habrhabr' decode"1 1 cipher
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement