You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by micael <ca...@harbornet.com> on 2002/10/09 21:11:36 UTC

[OT} - Decoder Rings - RE: Struts project

Everyone at the time remembers waiting for these rings.   A good 
reminiscence, for you older coders, is in: 
http://www.irememberhamlet.com/captainmidnight.html.

The Captain Midnight decoder ring (which is an "encoder" ring as well) 
allows you to do a simple substitution cipher. It usually has two 
concentric wheels of letters, A through Z. You rotate the outside ring and 
substitute the letters in your message found on the outside ring with the 
letters directly below on the inside ring (see diagram). Here, the 
algorithm is to offset the alphabet and the key is the number of characters 
to offset it. Julius Caesar used this simple scheme, offsetting by 3 
characters (He would have put the "A" on the outer ring of letters over the 
"D" on the inner ring if he had owned a Captain Midnight decoder ring.) The 
word "EXPLORATORIUM" thus becomes "HASORUDWRULXP."
Such a scheme was easily broken and showed a certain level of naivete on 
Caesar's part concerning the enemy's intelligence.

The Secret Language
Ron Hipschman

When you were a kid, did you have a "Captain Midnight" decoder ring? With 
it, you could send messages to a friends that no one else could read. Or 
perhaps you remember using special symbols to write notes to your "squeeze" 
in class. If the note was intercepted , your teacher, could learn nothing 
about your romance.

In more serious uses, codes and ciphers are used by our military and 
diplomatic forces to keep confidential information from unauthorized eyes. 
Businesses also send data that has been encoded to try and protect trade 
secrets and back-room deals. After all, you wouldn't want your competitor 
to know that you were about to acquire their company with a leveraged buy-out.
The study of enciphering and encoding (on the sending end), and deciphering 
and decoding (on the receiving end) is calle cryptography from the Greek 
(kryptos), or hidden and (graphia), or writing. If you don't know Greek 
(and not many of us do) the above letters could be a form of code 
themselves! Although the distinction is fuzzy, ciphers are different from 
codes. When you substitute one word for another word or sentence, like 
using a foreign language dictionary, you are using a code. When you mix up 
or substitute existing letters, you are using a cipher. (I told you the 
difference was fuzzy, and you can combine codes and ciphers by substituting 
one word for another and then mixing up the result.) We'll concentrate on 
ciphers.

For a cipher to be useful, several things must be known at both the sending 
and receiving ends.
The algorithm or method used to encipher the original message (known as the 
plaintext).

The key used with the algorithm to allow the plaintext to be both 
enciphered and deciphered.

The period or time during which the key is valid.

By way of analogy, to get into your home you would put a key in a lock to 
open the door. This process (the use of a key and a lock) is the method or 
algorithm. Now this method only works if you have the proper key to stick 
in the lock, and your key will be valid only as long as you are the 
resident of the particular abode. The next resident will have the locks 
changed to a different key to make sure that you cannot enter even though 
you may know the method.

The selection of the above three items - algorithm, key and period - depend 
on your needs. If you are in the battlefield and are receiving current 
tactical data, you want an algorithm that makes it easy to decipher the 
message in the heat of battle. On the other hand, you must also assume that 
your opponent has intercepted your enciphered message and is busy trying to 
break it. Therefore you must choose an algorithm (method) that is 
complicated enough so that by the time your opponent figures it out, the 
data will be worthless. The easier the algorithm you choose, the more often 
you will have to change the key that unlocks the code - if you want to keep 
your enemy in the dark.

Ciphers are broken into two main categories; substitution ciphers and 
transposition ciphers. Substitution ciphers replace letters in the 
plaintext with other letters or symbols, keeping the order in which the 
symbols fall the same. Transposition ciphers keep all of the original 
letters intact, but mix up their order. The resulting text of either 
enciphering method is called the ciphertext. Of course, you can use both 
methods, one after the other, to further confuse an unintended receiver as 
well. To get a feel for these methods, let's take a look at some ciphers.

Substitution ciphers and decoder rings

We use substitution ciphers all the time. (Actually, substitution ciphers 
could properly be called codes in most cases.) Morse code, shorthand, 
semaphore, and the ASCII code with which these characters are being stored 
in inside my Macintosh are all examples. (ASCII stands for American 
Standard Code for Information Interchange, just in case you're interested.) 
The only difference between these and the spy codes is that the above 
examples are standardized so that everybody knows them.

The Captain Midnight decoder ring (which is an "encoder" ring as well) 
allows you to do a simple substitution cipher. It usually has two 
concentric wheels of letters, A through Z. You rotate the outside ring and 
substitute the letters in your message found on the outside ring with the 
letters directly below on the inside ring (see diagram). Here, the 
algorithm is to offset the alphabet and the key is the number of characters 
to offset it. Julius Caesar used this simple scheme, offsetting by 3 
characters (He would have put the "A" on the outer ring of letters over the 
"D" on the inner ring if he had owned a Captain Midnight decoder ring.) The 
word "EXPLORATORIUM" thus becomes "HASORUDWRULXP." Such a scheme was easily 
broken and showed a certain level of naivete on Caesar's part concerning 
the enemy's intelligence.



At 02:55 PM 10/9/2002 -0400, you wrote:
>Chuck:
>
>You're obviously not old enough to remember "decoder rings".  It's from
>an early kids' TV (and possibly dating back to radio, I can't remember)
>show called "Captain Midnight".  The Captain and his crew communicated
>via their secret decoder rings when they needed to, and if I remember,
>they could also magically decode any language/code any aliens were using
>as well.
>
>The show's sponsors (Ovaltine?) had a promo going where kids could buy
>the home version of the decoder ring.  My therapist tells me that most
>of my troubles stem from not being allowed to send in for one.
>
>-- Charlie
>
>-----Original Message-----
>From: chuckcavaness@attbi.com [mailto:chuckcavaness@attbi.com]
>Sent: Wednesday, October 09, 2002 2:33 PM
>To: Struts Users Mailing List
>Subject: RE: Struts project
>
>
>Not exactly sure what you mean by "decoder ring", but
>assuming you're referring to the O'Reilly book, I just
>got an email that it would be in stock at places on Nov.
>11. However, the Mastering Struts book from James
>Goodwill is already out and has got some decent reviews.
>I think the book from "Ted and the Gang" is due out
>around mid November as well.
>
>Chuck
> > When is this decoder ring going to arrive?  Is it on time?
> >
> > At 06:08 PM 10/9/2002 +0000, you wrote:
> > >That's actually Chapter 8 of my O'Reilly book. It never
> > >got posted for review because I was writing it literally right up to
> > >my deadline. However, it is included in the book.
> > >
> > >Chuck
> > > > Good work. You should also touch on taglibs which will be very
> > > > useful.
> > > >
> > > > Thanks
> > > > kirusshna
> > > >
> > > > -----Original Message-----
> > > > From: chuckcavaness@attbi.com [mailto:chuckcavaness@attbi.com]
> > > > Sent: Wednesday, October 09, 2002 8:11 AM
> > > > To: Struts Users Mailing List
> > > > Subject: Re: Struts project
> > > >
> > > > As Eddie mentioned, I ran out of time and the book was getting
> > > > large, so a few of the chapters were cut. I've decided to go ahead
>
> > > > and write a few of them and just make them freely available on
> > > > this list and several Struts-releated sites. I'm starting with the
>
> > > > Security chapter first and then probably will do the one on
> > > > Alternative Presentations. Each one should take about 2
> > > > to three weeks to write since I don't have an editor
> > > > banging me on the head :)
> > > >
> > > > Stay tuned...
> > > >
> > > > Chuck
> > > > > Thanks,
> > > > > just downloaded the entire book -
> > > > >
> > > > > eventhough some chapters seem to be missing:
> > > > > 8, 14,(chapter 14 was chapter 15), 17 and 19.
> > > > >
> > > > > If you got them,
> > > > > please send to Marcus.Biel@bmw.de
> > > > >
> > > > > thanks,
> > > > >
> > > > > marcus
> > > > > andrew.david.hill@gridnode.com schrieb:
> > > > > >
> > > > > > If you havent already, download and read the review copies of
> > > > > > Chuck's
> > > > struts
> > > > > > book on theserverside.
> > > > > > http://www2.theserverside.com/resources/strutsreview.jsp
> > > > > > A great resource for learning struts!
> > > > > >
> > > > > > So have they let you test drive the M5 yet? ;-)
> > > > > >
> > > > >
> > > > > --
> > > > > To unsubscribe, e-mail:
> > > > <ma...@jakarta.apache.org>
> > > > > For additional commands, e-mail:
> > > > <ma...@jakarta.apache.org>
> > > > >
> > > >
> > > > --
> > > > To unsubscribe, e-mail:
> > > > <ma...@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > > > <ma...@jakarta.apache.org>
> > > >
> > > >
> > > > --
> > > > To unsubscribe,
> > > e-mail:   <ma...@jakarta.apache.org>
> > > > For additional commands, e-mail:
> > > <ma...@jakarta.apache.org>
> > > >
> > >
> > >--
> > >To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > >For additional commands, e-mail:
> > ><ma...@jakarta.apache.org>
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> > <ma...@jakarta.apache.org>
> >
>
>--
>To unsubscribe, e-mail:
><ma...@jakarta.apache.org>
>For additional commands, e-mail:
><ma...@jakarta.apache.org>
>
>
>--
>To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
>For additional commands, e-mail: <ma...@jakarta.apache.org>




--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>