Skip to content

Instantly share code, notes, and snippets.

@gunyarakun
Created April 5, 2015 21:29
Show Gist options
  • Save gunyarakun/b925140004655806f41a to your computer and use it in GitHub Desktop.
Save gunyarakun/b925140004655806f41a to your computer and use it in GitHub Desktop.
Kriptos solving script (K4 is not solved)
def decode_Vigenere(keyword, source)
s = 'KRYPTOSABCDEFGHIJLMNQUVWXZ'
t = []
keyword.each_char {|c|
i = s.index(c)
t << s[i..-1] + s[0...i]
}
r = []
d = 0
source.each_char.with_index {|c, i|
if c.match(/[A-Z]/)
r << s[t[(i - d) % keyword.length].index(c)]
else
r << c
d += 1
end
}
puts r.join('')
end
def decode_k3(source)
source = source.gsub(/[^A-Za-z?]/, '')
i = 191
r = []
while true
r << source[i]
i = (i + 192) % source.length
if r.length >= source.length
break
end
end
puts r.join('')
end
def decode_k4(source)
source = source.gsub(/[^A-Za-z]/, '')
r = []
source.each_char.with_index {|c, i|
# Rewrite this line!
r << c
}
a = r.join('')
unless a[63, 11] == 'BERLINCLOCK'
puts "NO! #{a[63, 11]}"
end
puts a
end
decode_Vigenere('PALIMPSEST', <<EOT
EMUFPHZLRFAXYUSDJKZLDKRNSHGNFIVJ
YQTQUXQBQVYUVLLTREVJYQTMKYRDMFD
EOT
)
decode_Vigenere('ABSCISSA', <<EOT
VFPJUDEEHZWETZYVGWHKKQETGFQJNCE
GGWHKK?DQMCPFQZDQMMIAGPFXHQRLG
TIMVMZJANQLVKQEDAGDVFRPJUNGEUNA
QZGZLECGYUXUEENJTBJLBQCRTBJDFHRR
YIZETKZEMVDUFKSJHKFWHKUWQLSZFTI
HHDDDUVH?DWKBFUFPWNTDFIYCUQZERE
EVLDKFEZMOQQJLTTUGSYQPFEUNLAVIDX
FLGGTEZ?FKZBSFDQVGOGIPUFXHHDRKF
FHQNTGPUAECNUVPDJMQCLQUMUNEDFQ
ELZZVRRGKFFVOEEXBDMVPNFQXEZLGRE
DNQFMPNZGLFLPMRJQYALMGNUVPDXVKP
DQUMEBEDMHDAFMJGZNUPLGESWJLLAETG
EOT
)
decode_k3(<<EOT
ENDyaHrOHNLSRHEOCPTEOIBIDYSHNAIA
CHTNREYULDSLLSLLNOHSNOSMRWXMNE
TPRNGATIHNRARPESLNNELEBLPIIACAE
WMTWNDITEENRAHCTENEUDRETNHAEOE
TFOLSEDTIWENHAEIOYTEYQHEENCTAYCR
EIFTBRSPAMHNEWENATAMATEGYEERLB
TEEFOASFIOTUETUAEOTOARMAEERTNRTI
BSEDDNIAAHTTMSTEWPIEROAGRIEWFEB
AECTDDHILCEIHSITEGOEAOSDDRYDLORIT
RKLMLEHAGTDHARDPNEOHMGFMFEUHE
ECDMRIPFEIMEHNLSSTTRTVDOHW?
EOT
)
decode_k4(<<EOT
OBKR
UOXOGHULBSOLIFBBWFLRVQQPRNGKSSO
TWTQSJQSSEKZZWATJKLUDIAWINFBNYP
VTTMZFPKWGDKZXTJCDIGKUHUAUEKCAR
EOT
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment