Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Need help with Vigenere code

3 views
Skip to first unread message

vpisteve

unread,
Apr 18, 2002, 3:03:19 PM4/18/02
to
We're having quite a bit of trouble with an encrypted message that's
apparently usinge the Vigenere method of encoding.

If anyone's up for a challenge, would you mind helping us out? We're
really stuck on this.

The particular code is at
http://www.terrashape.com/mail/jburgess4713/mail13.htm , it's hiddent
text on the right (just Ctrl-A and it'll show up). We're thinking it's
double/encoded somehow, first substituting numbers for letters, then a
Vigenere.

If you're interested, the 'big picture' of the game we're in the midst
of is at http://groups.yahoo.com/group/jawbreak/ or
http://www.vpmusic.com/jawbreakers/quickstart.htm

Thanks for any help!

Steve P
Moderator-Jawbreakers

Richard Heathfield

unread,
Apr 18, 2002, 3:28:29 PM4/18/02
to
[No spoiler - just yanked out the ciphertext and translated it to Latin
letters in case it helps anyone out]

vpisteve wrote:
>
> We're having quite a bit of trouble with an encrypted message that's
> apparently usinge the Vigenere method of encoding.
>
> If anyone's up for a challenge, would you mind helping us out? We're
> really stuck on this.
>
> The particular code is at
> http://www.terrashape.com/mail/jburgess4713/mail13.htm , it's hiddent
> text on the right (just Ctrl-A and it'll show up). We're thinking it's
> double/encoded somehow, first substituting numbers for letters, then a
> Vigenere.

Here's the ciphertext:

18 22 26 1 20 22 2 13 14 18 15 4 24 13 19 2 8 18 15 19 10
11 20 17 11 9 23 11 17 7 13 13 9 3 9 20 10 6 10 13 10 1 9
23 21 16 8 13 8 6 22 15 25 7 1 6 14 17 18 21 19 26 18 15
16 17 8 6 4 18 18 12 13 17 9 5 26 20 17 9 23 7 17 5 18 8
14 5 10 21 12 14 26 16 23 5 21 9 21 15 24 17 9 2 26 26 20
17 9 23 1 14 12 23 17 20 7 16 8 13 15 24 13 14 18 21 16
14 1 15 20 3 18 7 22 17 25 2 13 6 9 5 10 13 16 24 4 15 16
1 9 9 4 14 26 1 1 21 16 5 10 14 8 15 7 22 24 17 1 16 11 18
15 13 16 9 23 12 15 19 5 23 11 15 16 1 8 2 26 26 2 17 9
17 14 17 20 3 14 6 11 19 9 9 1 8 13 4 16 17 21 5 13 14 20
22 18 14 3 5 24 16 16 10 21 5 16 7 1 6 22 15 8 21 4 2 7 8
9 2 21 13 23 11 9 14 21 20 7 16 20 3 16 9 22 8 9 20 13 8
12 5 16 4 1 6 9 11 23 5 18 21 11 18 9 7 21 23 22 15 20 17
11 9 23 11 15 12 17 26 6 5 10 1 17 20 10 15 7 5 2 8 21 17
16 16 19 13 10 1 5 10 12 13 12 18 8 11 16 2 26 26 12 20
17 8 10 1 20 2 1 14 23 5 2 7 1 6 13 14 7 5 17 20 10 2 15
18 16 2 23 5 2 2 17 7 11 17 17 5 11 13 22 22 15 12 17 13
19 20 1 17 4 22 16 5 10 14 8 9 3 15 15 26 17 20 10 11 9
20 4 23 23 23 10 14 16 8 13 14 20 1 19 23 22 15 8 14 16
14 26 8 9 8 1 10 3 23 15 26 17 20 10 15 7 5 2 8 9 15 24 1
14 23 13 17 16 23 15 14 3 16 1 20 17 14 26 5 16 5 13 26
23 3 5 18 6 9 11 16 15 7 1 6 22 15 17 5 3 25 10 8 20 3 15
8 14 15 26 20 2 19 10 16 20 17 24 13 19 13 9 26 1 10 10
22 15 12 13 26 23 7 9 1 17 13 19 23 17 20 24 25 10 22 15
12 19 26 3 13 9 1 17 23 22 12 1 5 13 17 26 1 4 17 23 10 3
14 10 25 19 8 10 8

If we assume a=1, b=2, etc, we get this:

rvzat vbmnr odxms bhros jktqk iwkqg
mmici tjfjm jaiwu phmhf voyga fnqru
szrop qhfdr rlmqi eztqi wgqer hneju
lnzpw euiuo xqibz ztqiw anlwq tgphm
oxmnr upnao tcrgv qybmf iejmp xdopa
iidnz aaupe jnhog vxqap kromp iwlos
ewkop ahbzz bqiqn qtcnf ksiia hmdpq
uemnt vrnce xppju epgaf vohud bghib
umwki nutgp tcpiv hitmh lepda fikwe
rukri guwvo tqkiw kolqz fejaq tjoge
bhuqp psmja ejlml rhkpb zzltq hjatb
anweb gafmn geqtj borpb webbq gkqqe
kmvvo lqmst aqdvp ejnhi coozq tjkit
dwwwj nphmn taswv ohnpn zhiha jcwoz
qtjog ebhio xanwm qpwon cpatq nzepe
mzwce rfikp ogafv oqecy jhtco hnozt
bsjpt qxmsm izajj volmz wgiaq mswqt
xyjvo lszcm iaqwv laemq zadqw jcnjy
shjh

--
Richard Heathfield : bin...@eton.powernet.co.uk
"Usenet is a strange place." - Dennis M Ritchie, 29 July 1999.
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
K&R answers, C books, etc: http://users.powernet.co.uk/eton

Richard Heathfield

unread,
Apr 18, 2002, 4:49:04 PM4/18/02
to
[update]

Richard Heathfield wrote:
>
> [No spoiler - just yanked out the ciphertext and translated it to Latin
> letters in case it helps anyone out]
>
> vpisteve wrote:
> >
> > We're having quite a bit of trouble with an encrypted message that's
> > apparently usinge the Vigenere method of encoding.
> >
> > If anyone's up for a challenge, would you mind helping us out? We're
> > really stuck on this.
> >

<snip>


>
> rvzat vbmnr odxms bhros jktqk iwkqg
> mmici tjfjm jaiwu phmhf voyga fnqru
> szrop qhfdr rlmqi eztqi wgqer hneju
> lnzpw euiuo xqibz ztqiw anlwq tgphm
> oxmnr upnao tcrgv qybmf iejmp xdopa
> iidnz aaupe jnhog vxqap kromp iwlos
> ewkop ahbzz bqiqn qtcnf ksiia hmdpq
> uemnt vrnce xppju epgaf vohud bghib
> umwki nutgp tcpiv hitmh lepda fikwe
> rukri guwvo tqkiw kolqz fejaq tjoge
> bhuqp psmja ejlml rhkpb zzltq hjatb
> anweb gafmn geqtj borpb webbq gkqqe
> kmvvo lqmst aqdvp ejnhi coozq tjkit
> dwwwj nphmn taswv ohnpn zhiha jcwoz
> qtjog ebhio xanwm qpwon cpatq nzepe
> mzwce rfikp ogafv oqecy jhtco hnozt
> bsjpt qxmsm izajj volmz wgiaq mswqt
> xyjvo lszcm iaqwv laemq zadqw jcnjy
> shjh

I could be wrong, of course, but this really doesn't appear to be
Vigenere. If it were, I'd expect the IOC to jump out much more than it
in fact does. The IOC histogram isn't exactly flat, but there are no
massive spikes, whereas you'd expect such spikes if it were Vigenere.

It might be simple monoalphabetic substitution. I haven't checked (yet).

ma...@wutka.com

unread,
Apr 18, 2002, 4:55:15 PM4/18/02
to
Richard Heathfield <bin...@eton.powernet.co.uk> wrote:
> [update]

> Richard Heathfield wrote:
>>
>> [No spoiler - just yanked out the ciphertext and translated it to Latin
>> letters in case it helps anyone out]
>>
>> vpisteve wrote:
>> >
>> > We're having quite a bit of trouble with an encrypted message that's
>> > apparently usinge the Vigenere method of encoding.
>> >
>> > If anyone's up for a challenge, would you mind helping us out? We're
>> > really stuck on this.
> <snip>

> I could be wrong, of course, but this really doesn't appear to be


> Vigenere. If it were, I'd expect the IOC to jump out much more than it
> in fact does. The IOC histogram isn't exactly flat, but there are no
> massive spikes, whereas you'd expect such spikes if it were Vigenere.


Unless I'm doing it wrong, I get a spike with a period of 6 (IOC=0.066).
My solver didn't come up with a good key, though. Maybe it isn't
Vigenere.
Mark


Matthew Russotto

unread,
Apr 18, 2002, 5:42:07 PM4/18/02
to
In article <3CBF3140...@eton.powernet.co.uk>,

Richard Heathfield <bin...@eton.powernet.co.uk> wrote:
>
>I could be wrong, of course, but this really doesn't appear to be
>Vigenere. If it were, I'd expect the IOC to jump out much more than it
>in fact does. The IOC histogram isn't exactly flat, but there are no
>massive spikes, whereas you'd expect such spikes if it were Vigenere.
>
>It might be simple monoalphabetic substitution. I haven't checked (yet).

If you look at the source, there's more structure to the message than
the result would indicate. Perhaps it's polyalphabetic, with each
source line in a different alphabet.
(disclaimer: haven't tried that yet)
--
Matthew T. Russotto mrus...@speakeasy.net
=====
Every time you buy a CD, a programmer is kicked in the teeth.
Every time you buy or rent a DVD, a programmer is kicked where it counts.
Every time they kick a programmer, 1000 users are kicked too, and harder.
A proposed US law called the CBDTPA would ban the PC as we know it.
This is not a joke, not an exaggeration. This is real.
http://www.cryptome.org/broadbandits.htm

Richard Heathfield

unread,
Apr 19, 2002, 3:29:06 AM4/19/02
to
ma...@wutka.com wrote:
>
> Richard Heathfield <bin...@eton.powernet.co.uk> wrote:

<snip>
>
> > I could be wrong, of course, but this really doesn't appear to be
> > Vigenere. If it were, I'd expect the IOC to jump out much more than it
> > in fact does. The IOC histogram isn't exactly flat, but there are no
> > massive spikes, whereas you'd expect such spikes if it were Vigenere.
>
> Unless I'm doing it wrong, I get a spike with a period of 6 (IOC=0.066).
> My solver didn't come up with a good key, though. Maybe it isn't
> Vigenere.

Maybe it isn't, and maybe it is. Dunno. What concerns me more is that
you get a spike and I don't. Could you explain your method, please? (I
think it's more likely that mine is wrong than that yours is.) Also, do
you get other (perhaps lesser) spikes at 12, 18, and other multiples?

vpisteve

unread,
Apr 19, 2002, 3:41:54 AM4/19/02
to
Actually, we've run numerous IOC analyses on this, and notice most periods
with factors of 3 yielding relatively high values. Of particular interest
are the results of an 18-character period (on the order of 9%), with 9
clocking in a distant 2nd. However no strong keywords jump out. I've even
done some manual frequency analysis on each of the keyword locations (for
N=9 & N=18) to see if I could make something fit that the software couldn't
see, but I'm still not having much luck.

I've also looked at a reverse alphanumeric translation (z=1, y=2, x=3,
etc.), and get similar results. Also, assuming a period of 18, we're
noticing a few strange double, triple, and quadruple character repetitions
that occur not only in the same position within each segment, but ONLY in
adjacent segments.

>From all of this, I'm almost convinced it's not a vigenere encryption, or at
least some additional encoding is being performed, perhaps in the
number/alpha translations before the vigenere is to be applied (and if so,
it looks to be more sophisticated than a simple reverse or rotation).

However, the strong correlation at a period of 18 is pretty damning, and
we've actually received hints that keyword(s) probably play a role. Knowing
all of this, can anyone advise any alternative paths (the possibilities are
probably countless, but I'm hoping something will jump out at someone).

I appreciate any assistance you could offer


ste...@vpmusic.com (vpisteve) wrote in message news:<3f290bfb.02041...@posting.google.com>...

Richard Heathfield

unread,
Apr 19, 2002, 4:57:27 AM4/19/02
to
vpisteve wrote:
>
<snip>


> >From all of this, I'm almost convinced it's not a vigenere encryption, or at
> least some additional encoding is being performed, perhaps in the
> number/alpha translations before the vigenere is to be applied (and if so,
> it looks to be more sophisticated than a simple reverse or rotation).

You need the algorithm. To get the algorithm, either convince the
cryppie that it's "not fair" (lame, I know) or, better, break into his
house when he's out, and steal the algorithm off his PC. Then it's /his/
turn to say "not fair", but that's lame too. :-)

You really do need the algorithm; without it, I can make up *any*
message of the correct length, and derive a key and algorithm such that
the ciphertext you showed is the result of the encryption - and that
gets you precisely nowhere.

Industrialists, politicians, and generals tend to have the resources to
find out the algorithm sneakily, which is why secure crypto *must not
rely* on the secrecy of the algorithm. You are probably not in their
fortunate position, and your cryppie is IMHO taking unfair advantage of
the fact.

<snip>

ma...@wutka.com

unread,
Apr 19, 2002, 8:28:42 AM4/19/02
to
Richard Heathfield <bin...@eton.powernet.co.uk> wrote:
> ma...@wutka.com wrote:
>>
>> Richard Heathfield <bin...@eton.powernet.co.uk> wrote:

> <snip>

> Maybe it isn't, and maybe it is. Dunno. What concerns me more is that


> you get a spike and I don't. Could you explain your method, please? (I
> think it's more likely that mine is wrong than that yours is.) Also, do
> you get other (perhaps lesser) spikes at 12, 18, and other multiples?

Basically, for a given period, I start at each possible offset (1st,
2nd, etc) and count the periodic characters (1st, 1+period,
1+2*period...) then compute an IC for the counts that started at the 1st
offset. Then I repeat the process for the 2nd offset and so on. Then I
average the ICs for all the starting offsets and that gives me the IC
for that period.

here it is in pseudo-code:

For p=1 to max_period
counts[] = 0
total_ic = 0
for i = 1 to p
for j=i to buf_len step p
counts[buffer[j]]++
end
total_ic = total_ic + compute_ic(counts)
end
print total_ic / p
end


Matthew Russotto

unread,
Apr 19, 2002, 9:43:25 AM4/19/02
to
In article <3CBFC742...@eton.powernet.co.uk>,

Richard Heathfield <bin...@eton.powernet.co.uk> wrote:
>
>Maybe it isn't, and maybe it is. Dunno. What concerns me more is that
>you get a spike and I don't. Could you explain your method, please? (I
>think it's more likely that mine is wrong than that yours is.) Also, do
>you get other (perhaps lesser) spikes at 12, 18, and other multiples?

I actually get a spike at 5, not at 6. And a big spike at 18. If
instead I watch for letter-frequency distributions which look reasonable
for English, I get them at multiples of 6.

It might be Vigenere plus a monoalphabetic cipher.

Matthew Russotto

unread,
Apr 19, 2002, 1:34:28 PM4/19/02
to
OK, a little more on that possible vignere. Crawling through the
ciphertext (with A=1, etc, for convenience) for matching combinations, I
found that the combination "GAF" appears 4 times, at positions 5 (mod 6)
each time. BZZ appears 3 times, at positions 1 (mod 6). QTJ appears 4
times, 0 (mod 6) -- and QTJOGEBH appears once. My thought is that
QTJOGEBH could be "yourself" or maybe 'theories'.

Dave Smith

unread,
Apr 19, 2002, 3:02:06 PM4/19/02
to
Matthew Russotto's suggestion that it might be a combination of
monoalphabetic and Vigenere has merit. I tried an example, using a period of
6, and got statistics similar to those of the original cryptogram. Here's
the example I used:

Plaintext:
WEHOLDTHESETRUTHSTOBESELFEVIDENTTHATALLMEN
ARECREATEDEQUALTHATTHEYAREENDOWEDBYTHEIRCR
EATORWITHCERTAINUNALIENABLERIGHTSTHATAMONG
THESEARELIFELIBERTYANDTHEPURSUITOFHAPPINES
STHATTOSECURETHESERIGHTSGOVERNMENTSAREINST
ITUTEDAMONGMENDERIVINGTHEIRJUSTPOWERSFORMT
HECONSENTOFTHEGOVERNEDTHATWHENEVERANYFORMO
FGOVERNMENTBECOMESDESTRUCTIVETOTHESEENDSIT
ISTHERIGHTOFTHEPEOPLETOALTERORTOABOLISHITA
NDTOINSTITUTENEWGOVERNMENTLAYINGITSFOUNDAT
IONONSUCHPRINCIPLESANDORGANIZINGITSPOWERSI
NSUCHFORMASTOTHEMSHALLSEEMMOSTLIKELYTOEFFE
CTTHEIRSAFETYANDHAPPINESS

Pseudo-plaintext from monoalphabetic substitution: (Key = Bridgehampton
fluzy)
yfglodkgfwfkbpkgwklafwfonfxcdfmkkghkhooifm
hbfsbfhkfdfvphokghkkgfrhbffmdlyfdarkgfcbsb
fhklbyckgsfbkhcmpmhocfmhaofbcegkwkghkhilme
kgfwfhbfocnfocafbkrhmdkgfjpbwpcklnghjjcmfw
wkghkklwfspbfkgfwfbcegkwelxfbmifmkwhbfcmwk
ckpkfdhilmeifmdfbcxcmekgfcbtpwkjlyfbwnlbik
gfslmwfmklnkgfelxfbmfdkghkygfmfxfbhmrnlbil
nelxfbmifmkafslifwdfwkbpskcxfklkgfwffmdwck
cwkgfbcegklnkgfjfljofklhokfblbklhalocwgckh
mdklcmwkckpkfmfyelxfbmifmkohrcmeckwnlpmdhk
clmlmwpsgjbcmscjofwhmdlbehmcqcmeckwjlyfbwc
mwpsgnlbihwklkgfiwghoowffiilwkocuforklfnnf
skkgfcbwhnfkrhmdghjjcmfww

Followed by polyalphabetic Vigenere substitution: (Keyword = RIGHTS)
PNMSHVBOLDYCSXQNPCCILDYGENDJWXDSQNACYWUPYE
YJLZUXYSLKYNGPURZZBSMMKZSNLTWDPNJHKCXNIILT
WPQSUQTSMZYTBPITIEYWIMFZRWLIVWXSCRZZBPOSFW
BOLDYZSNUJGXFKGMUCIPSKDYWRVIPHTSRUZZARITYO
NSMODCCELZITWSMMPXSKKNDOVTDMUEZNSRPZSNITPC
TSVRYVYQRTXAWUJMUUOKSLDYWKHAIOBRRFYTNVRIBC
XNYSFOWUQSGCXNKSQXSULKDYYSENYEWFLIAEIVRIBD
EMREYTDQLTDSWARPYOUNCRUHJSIEYCCSMMPXWUJDVC
TEQNYTTMMREFBOLQYDAWLREZFSLIETBTNHEGTEMJDZ
DLQSVENSIRICWULFXDONHTBXDSUOKUDMIRPFCXSKAC
TTSSFOGAMQUUDAIQHXNPSKETVPSJJUDMIRPBCGLIPU
DEVZZFCJOOPCCSMMBOXPUVPXWQOSPCFKAMHJBTLUGX
JSQNYUSENUYCIPSKZZARITYON

The Vigenere statistics show peak IOC at 6, 12, and 18, but no keyword
because there are no language-specific characteristics in the
pseudo-plaintext. If you have a source from which to get (or guess) the
Vigenere keyword, use it. Then decipher the result as monoalphabetic.

Regards,
Dave


Scryer

unread,
Apr 20, 2002, 3:16:23 AM4/20/02
to
ma...@wutka.com wrote in message news:<ToGv8.108367$VM5.66...@e3500-atl1.usenetserver.com>...

> > I could be wrong, of course, but this really doesn't appear to be
> > Vigenere. If it were, I'd expect the IOC to jump out much more than it
> > in fact does. The IOC histogram isn't exactly flat, but there are no
> > massive spikes, whereas you'd expect such spikes if it were Vigenere.
>
>
> Unless I'm doing it wrong, I get a spike with a period of 6 (IOC=0.066).
> My solver didn't come up with a good key, though. Maybe it isn't
> Vigenere.

You're right, Mark. The period is indeed 6, but it's not a Vig.
It's a sort of semi-reversed Quag III. I solved it, and posted the
answer in the relevant Yahoo newsgroup:
http://groups.yahoo.com/group/jawbreak/

Jim Gillogly

Kevin Stone

unread,
Apr 20, 2002, 4:11:10 AM4/20/02
to
Hi,

Any chance of the solution being posted here as well?


>> I solved it, and posted the...


Scryer

unread,
Apr 20, 2002, 8:55:24 AM4/20/02
to
"Kevin Stone" <ne...@brainbashers.com.spam> wrote in message news:<rt9w8.8483$ML.14...@news2-win.server.ntlworld.com>...

> Hi,
>
> Any chance of the solution being posted here as well?

I can do even better: I'll describe the algorithm, and leave it
a puzzle for a little longer for those who don't want to visit
the Yahoo group discussing the larger puzzle series.

It's like a Quagmire III (American Cryptogram Association term).
It's a polyalphabetic with keyed alphabets. The plaintext keyed
alphabet goes forward (as with a Quag 3), but the tableau keyed
alphabet, which uses the same key, goes backward, starting on
the top line at the right with the keyword and continuing to the
left with the rest of the alphabet. The next line is offset one
space to the *left*, not to the right as in Vigenere or Quag.
The period key is different from the tableau key -- this is a
two-key system.

The period key is 6, as we had conjectured from the I.C. and
Kasiski analyses. The key used for plaintext and tableau is
short and will appear in a dictionary, if you do it that way.

I used shotgun hillclimbing, as is my wont, and recovered both
keys simultaneously.

Scryer

unread,
Apr 22, 2002, 3:35:18 PM4/22/02
to
scr...@cryptogram.org (Scryer) wrote:
> It's like a Quagmire III (American Cryptogram Association term).
> It's a polyalphabetic with keyed alphabets. The plaintext keyed
> alphabet goes forward (as with a Quag 3), but the tableau keyed
> alphabet, which uses the same key, goes backward, starting on
> the top line at the right with the keyword and continuing to the
> left with the rest of the alphabet. The next line is offset one
> space to the *left*, not to the right as in Vigenere or Quag.
> The period key is different from the tableau key -- this is a
> two-key system.

The ACA usually provides a generous crib for ciphers at this
level of complexity, so here's one that should give you an
entry (assuming somebody's still trying it): the phrase "out
about the events in Phoenix" appears in the plaintext.

0 new messages