1 |
= Marvin Encryption Scheme =
|
1 |
= Marvin Encryption Scheme =
|
2 |
\n
|
2 |
\n
|
3 |
== Story ==
|
3 |
== Story ==
|
4 |
[quote]
|
4 |
[quote]
|
5 |
[b][14:59] Marvin1: haz aisr uadu zraiar[/b]
|
5 |
[b][14:59] Marvin1: haz aisr uadu zraiar[/b]
|
6 |
[color=gray][14:59] Orfailius: glaives could be more 🗡[/color]
|
6 |
[color=gray][14:59] Orfailius: glaives could be more 🗡[/color]
|
7 |
[color=gray][14:59] Orfailius: 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡[/color]
|
7 |
[color=gray][14:59] Orfailius: 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡 🗡[/color]
|
8 |
[b][15:00] Marvin: io ua aiatdf osfpsufpdu osuf iaz pdns[/b]
|
8 |
[b][15:00] Marvin: io ua aiatdf osfpsufpdu osuf iaz pdns[/b]
|
9 |
[color=gray][15:00] Anarchid: dagger is an extremely fast alpha raider[/color]
|
9 |
[color=gray][15:00] Anarchid: dagger is an extremely fast alpha raider[/color]
|
10 |
[b][15:00] Marvin: kaz[/b]
|
10 |
[b][15:00] Marvin: kaz[/b]
|
11 |
[color=gray][15:00] DeinFreund: not even rot13 [/color]
|
11 |
[color=gray][15:00] DeinFreund: not even rot13 [/color]
|
12 |
[color=gray][15:00] Anarchid: oh look marvin is back[/color]
|
12 |
[color=gray][15:00] Anarchid: oh look marvin is back[/color]
|
13 |
[color=gray][15:00] Orfailius: who?[/color]
|
13 |
[color=gray][15:00] Orfailius: who?[/color]
|
14 |
[color=gray][15:00] Marvin: ,audtd kommst du in ein level[/color]
|
14 |
[color=gray][15:00] Marvin: ,audtd kommst du in ein level[/color]
|
15 |
[b][15:00] Marvin: gazdr[/b]
|
15 |
[b][15:00] Marvin: gazdr[/b]
|
16 |
[color=gray][15:01] Anarchid: anyway; dagger is an ultrafast alpha raider; its strenghts are speed and alpha, its weaknesses those of the raiders: low hp, low range, aoe[/color]
|
16 |
[color=gray][15:01] Anarchid: anyway; dagger is an ultrafast alpha raider; its strenghts are speed and alpha, its weaknesses those of the raiders: low hp, low range, aoe[/color]
|
17 |
[color=gray][15:01] DeinFreund: what is that cipher[/color]
|
17 |
[color=gray][15:01] DeinFreund: what is that cipher[/color]
|
18 |
[color=gray][15:01] Anarchid: among raiders it's special by being fast and alpha, so nerfing hp doesn't reduce its uniqueness[/color]
|
18 |
[color=gray][15:01] Anarchid: among raiders it's special by being fast and alpha, so nerfing hp doesn't reduce its uniqueness[/color]
|
19 |
[color=gray][15:02] DeinFreund: i think we should nerf Marvin's cipher[/color]
|
19 |
[color=gray][15:02] DeinFreund: i think we should nerf Marvin's cipher[/color]
|
20 |
[b][15:02] Marvin: im HATDODDADZAIDTSAWSZSDGFD[/b]
|
20 |
[b][15:02] Marvin: im HATDODDADZAIDTSAWSZSDGFD[/b]
|
21 |
[color=gray][15:02] Anarchid: it's not a cipher, look at the letter distribution[/color]
|
21 |
[color=gray][15:02] Anarchid: it's not a cipher, look at the letter distribution[/color]
|
22 |
[color=gray][15:02] Anarchid: "sdgfd"[/color]
|
22 |
[color=gray][15:02] Anarchid: "sdgfd"[/color]
|
23 |
[color=gray][15:02] Marvin: R3[/color]
|
23 |
[color=gray][15:02] Marvin: R3[/color]
|
24 |
[color=gray][15:03] Anarchid: repetitive letters, and repetitive letters placed closely on the keyboard[/color]
|
24 |
[color=gray][15:03] Anarchid: repetitive letters, and repetitive letters placed closely on the keyboard[/color]
|
25 |
[color=gray][15:03] DeinFreund: not on neo[/color]
|
25 |
[color=gray][15:03] DeinFreund: not on neo[/color]
|
26 |
[b][15:03] Marvin: jazsits uatdud[/b]
|
26 |
[b][15:03] Marvin: jazsits uatdud[/b]
|
27 |
[color=gray][15:03] DeinFreund: not on dvorak[/color]
|
27 |
[color=gray][15:03] DeinFreund: not on dvorak[/color]
|
28 |
[color=gray][15:03] Anarchid: it's like trying to get a random number and getting 31321233123[/color]
|
28 |
[color=gray][15:03] Anarchid: it's like trying to get a random number and getting 31321233123[/color]
|
29 |
[b][15:03] Marvin: hazf[/b]
|
29 |
[b][15:03] Marvin: hazf[/b]
|
30 |
[b][15:03] Marvin1: nahdoazg[/b]
|
30 |
[b][15:03] Marvin1: nahdoazg[/b]
|
31 |
[color=gray][15:03] Anarchid: because your idea of getting a random number is mashing on a keyboard[/color]
|
31 |
[color=gray][15:03] Anarchid: because your idea of getting a random number is mashing on a keyboard[/color]
|
32 |
[color=gray][15:03] Anarchid: and keyboard is not random[/color]
|
32 |
[color=gray][15:03] Anarchid: and keyboard is not random[/color]
|
33 |
[color=gray][15:03] Marvin: ok marvin1[/color]
|
33 |
[color=gray][15:03] Marvin: ok marvin1[/color]
|
34 |
[color=gray][15:03] Marvin1: haha[/color]
|
34 |
[color=gray][15:03] Marvin1: haha[/color]
|
35 |
[color=gray][15:03] Marvin: ):[/color]
|
35 |
[color=gray][15:03] Marvin: ):[/color]
|
36 |
[color=gray][15:03] Anarchid: he's mashing numbers on a qwerty[/color]
|
36 |
[color=gray][15:03] Anarchid: he's mashing numbers on a qwerty[/color]
|
37 |
[color=gray][15:03] Anarchid: *buttons[/color]
|
37 |
[color=gray][15:03] Anarchid: *buttons[/color]
|
38 |
[b][15:04] Marvin: ok haidctd komm,laudf.q[/b]
|
38 |
[b][15:04] Marvin: ok haidctd komm,laudf.q[/b]
|
39 |
[color=gray][15:04] DeinFreund: it could be an interesting cipher[/color]
|
39 |
[color=gray][15:04] DeinFreund: it could be an interesting cipher[/color]
|
40 |
[color=gray][15:04] Marvin: ![/color]
|
40 |
[color=gray][15:04] Marvin: ![/color]
|
41 |
[b][15:04] Marvin: oaf[/b]
|
41 |
[b][15:04] Marvin: oaf[/b]
|
42 |
[color=gray][15:04] DeinFreund: whose characters are distributed by qwertz mashing distribution[/color]
|
42 |
[color=gray][15:04] DeinFreund: whose characters are distributed by qwertz mashing distribution[/color]
|
43 |
[color=gray][15:04] Marvin: Anarchid komm[/color]
|
43 |
[color=gray][15:04] Marvin: Anarchid komm[/color]
|
44 |
[color=gray][15:05] DeinFreund: maybe characters are encoded by the geometric distance between the letters[/color]
|
44 |
[color=gray][15:05] DeinFreund: maybe characters are encoded by the geometric distance between the letters[/color]
|
45 |
[color=gray][15:05] Anarchid: oh qwertz[/color]
|
45 |
[color=gray][15:05] Anarchid: oh qwertz[/color]
|
46 |
[b][15:05] Marvin: hdzagsdiats jatdjatd[/b]
|
46 |
[b][15:05] Marvin: hdzagsdiats jatdjatd[/b]
|
47 |
[color=gray][15:05] Anarchid: yes that explains why so many z[/color]
|
47 |
[color=gray][15:05] Anarchid: yes that explains why so many z[/color]
|
48 |
[color=gray][15:05] DeinFreund: with highly frequent characters having low ids[/color]
|
48 |
[color=gray][15:05] DeinFreund: with highly frequent characters having low ids[/color]
|
49 |
[color=gray][15:05] DeinFreund: i need to implement that cipher now[/color]
|
49 |
[color=gray][15:05] DeinFreund: i need to implement that cipher now[/color]
|
50 |
[b][15:05] Marvin: jerted[/b]
|
50 |
[b][15:05] Marvin: jerted[/b]
|
51 |
[color=gray][15:05] DeinFreund: it'd fool Anarchid[/color]
|
51 |
[color=gray][15:05] DeinFreund: it'd fool Anarchid[/color]
|
52 |
[color=gray][15:05] DeinFreund: then it'd fool everyone[/color]
|
52 |
[color=gray][15:05] DeinFreund: then it'd fool everyone[/color]
|
53 |
[color=gray][15:05] Marvin: i[/color]
|
53 |
[color=gray][15:05] Marvin: i[/color]
|
54 |
[b][15:05] Marvin1: ksgdiazdtdudt[/b]
|
54 |
[b][15:05] Marvin1: ksgdiazdtdudt[/b]
|
55 |
[color=gray][15:06] Marvin: ? [/color]
|
55 |
[color=gray][15:06] Marvin: ? [/color]
|
56 |
[color=gray][15:06] Marvin: < [/color]
|
56 |
[color=gray][15:06] Marvin: < [/color]
|
57 |
[color=gray][15:07] Anarchid: how do you compute geometric distances?[/color]
|
57 |
[color=gray][15:07] Anarchid: how do you compute geometric distances?[/color]
|
58 |
[b][15:07] Marvin: kfzfe[/b]
|
58 |
[b][15:07] Marvin: kfzfe[/b]
|
59 |
[/quote]
|
59 |
[/quote]
|
60 |
\n
|
60 |
\n
|
61 |
== Hint ==
|
61 |
== Hint ==
|
62 |
{{{String lines[] = new String[]{
|
62 |
{{{String lines[] = new String[]{
|
63 |
"qwertzuiop",
|
63 |
"qwertzuiop",
|
64 |
"asdfghjkl",
|
64 |
"asdfghjkl",
|
65 |
"yxcvbnm"
|
65 |
"yxcvbnm"
|
66 |
};
|
66 |
};
|
67 |
int distanceVerticalPerLine = 4;
|
67 |
int distanceVerticalPerLine = 4;
|
68 |
int distanceHorizontalPerColumn = 1;
|
68 |
int distanceHorizontalPerColumn = 1;
|
69 |
int splitCharacterDistance = 8;
|
69 |
int splitCharacterDistance = 8;
|
70 |
//split distances > this into multiple characters because keyboard too small
|
70 |
//split distances > this into multiple characters because keyboard too small
|
71 |
String mostFrequentLetters = "etaoinsrhldcumfpgwybvkxjqz";
|
71 |
String mostFrequentLetters = "etaoinsrhldcumfpgwybvkxjqz";
|
72 |
//distances for letters, characters not in this list remain plaintext
|
72 |
//distances for letters, characters not in this list remain plaintext
|
73 |
}}}
|
73 |
}}}
|
74 |
\n
|
74 |
\n
|
75 |
[quote][15:07] Anarchid: how do you compute geometric distances?[/quote]
|
75 |
[quote][15:07] Anarchid: how do you compute geometric distances?[/quote]
|
76 |
https://upload.wikimedia.org/wikipedia/commons/b/b6/Lower_Manhattan_from_Jersey_City_November_2014_panorama_3.jpg
|
76 |
https://upload.wikimedia.org/wikipedia/commons/b/b6/Lower_Manhattan_from_Jersey_City_November_2014_panorama_3.jpg
|
77 |
\n
|
77 |
\n
|
78 |
== Example ==
|
78 |
== Example ==
|
79 |
{{{now we can finally speak in marvin}}}
|
79 |
{{{now we can finally speak in marvin}}}
|
80 |
{{{ahlbtr krtt afhb ldjnvrtlkrvn kvaadumk ie cfstlaqtf}}}
|
80 |
{{{ahlbtr krtt afhb ldjnvrtlkrvn kvaadumk ie cfstlaqtf}}}
|
81 |
|
81 |
same
meaning:
|
|
|
82 |
{{{fbxwhg yqww xbmh wfroudszumut duffszsy bf ietkvrfku}}}
|
82 |
\n
|
83 |
\n
|
83 |
== FIFDHDMMVM ==
|
84 |
== FIFDHDMMVM ==
|
84 |
fitwataavnmdecvnbgsea fb assfysxalbb awrjecmjz
|
85 |
fitwataavnmdecvnbgsea fb assfysxalbb awrjecmjz
|
85 |
\n
|
86 |
\n
|
86 |
gfiikz qqygh jjeznngkvcnsnnszr kvcduifg jcxhjfifg otd sg yvygzscedvfituii fiotzss eecewhwtgge uh jeeeuf tuzwxhss nmbhxhhwzifiiih
|
87 |
gfiikz qqygh jjeznngkvcnsnnszr kvcduifg jcxhjfifg otd sg yvygzscedvfituii fiotzss eecewhwtgge uh jeeeuf tuzwxhss nmbhxhhwzifiiih
|
87 |
\n
|
88 |
\n
|
88 |
gmvyn snmm duikvcew xhdd gygkrtt ru myahkrejkrkh vmdfifrr tlll baarrwe jzwiuufifs goj hppp hjfifajhhc
|
89 |
gmvyn snmm duikvcew xhdd gygkrtt ru myahkrejkrkh vmdfifrr tlll baarrwe jzwiuufifs goj hppp hjfifajhhc
|