>Whoops...looks like I've started a new thread here. ;-)
>
>Hashing:
>
>What's green and red and goes a hundred miles an hour?  You guessed it, a
>frog in a blender.  When you "hash" a password, that's essentially what
>you're doing - putting it in a blender and making something completely
>different that no one would immediately recognize.  And just like our poor
>frog (nod to PETA there), once it's gone through the blender, we will never,
>ever get a frog back from the goo.  It's (theoretically) mathematically
>impossible to un-hash a hashed password (I know there are programs out there
>that do this, but I'm talking about MD5 hashing - can't be undone in this
>day and age...but has anyone else been following quantum computing?  Scary
>stuff...).

Good description.

>
>Encryption:
>
>In encryption, we're "disguising" our frog to look like something else, with
>the *intention* of removing the disguise at some point and getting our
>original frog back.  The technical term used is "key."  We use a public key
>to encrypt, and a private key to decrypt.  The point is, we get the original
>thing back in a useable form, and not just a lump of goo.

Encryption isn't the only means to hide information, although for 
many years, it has been the main one to consider.  In the specific 
context of encryption, I would make the distinction that there are 
two basic types:

       Symmetrical:  the same key is used for both encryption and decryption.
                     much faster than asymmetrical.
       Asymmetrical: different keys are used for encryption and decryption.
                     whether or not the encryption or decryption key is
                     public depends on the application.  There is a mathematical
                     relationship between the public and private keys, but it's
                     one-way.

There are two fundamental cryptographic applications: authentication, 
where I am trying to make my "signature" or other identifying 
information verifiable and tamper-proof, and confidentiality, where I 
am trying to conceal my message content from unauthorized people. The 
two can overlap -- there are applications where the message content 
can  be read, but must be tamper-proof.

In authentication with asymmetrical cryptography, you use the 
SENDER's PRIVATE key to encrypt information that is known to the 
sender (e.g., your name). The sender decrypts with your PUBLIC key, 
and, if the correct information is decrypted, assumes the 
communication is authentic.

To get confidentiality with asymmetrical cryptography, you encrypt 
the confidential information with the RECEIVER's public key, and he 
decrypts with his PRIVATE key.

With asymmetric cryptography, you need a public/private key for each 
direction of transmission.  For performance reasons, asymmetrical 
cryptography is often used to negotiate a symmetric session key, 
which is used for the bulk of the traffic.

>
>On the Cisco router, we have a command "service password-encryption."  Well,
>what we're *really* doing is hashing.

Precisely.

>We're not using a public key to
>encrypt - we're hashing the password into an unrecognizeable lump of goo.
>When the router prompts us for a password, we enter it, and then the
>password we enter is run through the same blender - the same hashing
>algorithm.  If the result is green and red and going a hundred miles an hour
>(which is what the router is looking for), then we're let in.  If the result
>is blue and yellow and going a hundred miles an hour, then it obviously
>wasn't a frog we put into the blender.
>

Advanced mechanisms that may be worth knowing about are steganography 
and covert channels. Both are ways of sneaking information around 
firewalls. Steganography is the art of hiding something in plain 
sight, or, at least, without formal cryptography.  Historically, it 
involved such things as  secret inks.  Today, you might see 
steganography used to hide textual information in a JPEG...every Nth 
pixel is actually a bit in a text message.

Covert channels are really nasty. They send information using a 
mechanism that we normally think contains no information.  For 
example, we might delay packets for controlled amounts of time. 
Simplifying and avoiding details of how it's implemented, 
conceptually the inter-packet gap is one time longer than the 
standard, it is signaling an "A," if it is two times longer, it's a 
"B", etc.  Alternatively, you might hide information in the size of a 
TCP window, or the number of bytes sent before sending a flush 
request.

_________________________________
FAQ, list archives, and subscription info: http://www.groupstudy.com/list/cisco.html
Report misconduct and Nondisclosure violations to [EMAIL PROTECTED]

Reply via email to