1 
   2 [ Please note that this file has not been updated for OpenSSH and 
   3   covers the ssh-1.2.12 release from Dec 1995 only. ]
   4 
   5 Ssh (Secure Shell) is a program to log into another computer over a
   6 network, to execute commands in a remote machine, and to move files
   7 from one machine to another.  It provides strong authentication and
   8 secure communications over insecure channels.  It is inteded as a
   9 replacement for rlogin, rsh, rcp, and rdist.
  10 
  11 See the file INSTALL for installation instructions.  See COPYING for
  12 license terms and other legal issues.  See RFC for a description of
  13 the protocol.  There is a WWW page for ssh; see http://www.cs.hut.fi/ssh.
  14 
  15 This file has been updated to match ssh-1.2.12.
  16 
  17 
  18 FEATURES
  19 
  20  o  Strong authentication.  Closes several security holes (e.g., IP,
  21     routing, and DNS spoofing).  New authentication methods: .rhosts
  22     together with RSA based host authentication, and pure RSA
  23     authentication.
  24 
  25  o  Improved privacy.  All communications are automatically and
  26     transparently encrypted.  RSA is used for key exchange, and a
  27     conventional cipher (normally IDEA, DES, or triple-DES) for
  28     encrypting the session.  Encryption is started before
  29     authentication, and no passwords or other information is
  30     transmitted in the clear.  Encryption is also used to protect
  31     against spoofed packets.
  32 
  33  o  Secure X11 sessions.  The program automatically sets DISPLAY on
  34     the server machine, and forwards any X11 connections over the
  35     secure channel.  Fake Xauthority information is automatically
  36     generated and forwarded to the remote machine; the local client
  37     automatically examines incoming X11 connections and replaces the
  38     fake authorization data with the real data (never telling the 
  39     remote machine the real information).
  40 
  41  o  Arbitrary TCP/IP ports can be redirected through the encrypted channel
  42     in both directions (e.g., for e-cash transactions).
  43 
  44  o  No retraining needed for normal users; everything happens
  45     automatically, and old .rhosts files will work with strong
  46     authentication if administration installs host key files.
  47 
  48  o  Never trusts the network.  Minimal trust on the remote side of
  49     the connection.  Minimal trust on domain name servers.  Pure RSA
  50     authentication never trusts anything but the private key.
  51 
  52  o  Client RSA-authenticates the server machine in the beginning of
  53     every connection to prevent trojan horses (by routing or DNS
  54     spoofing) and man-in-the-middle attacks, and the server
  55     RSA-authenticates the client machine before accepting .rhosts or
  56     /etc/hosts.equiv authentication (to prevent DNS, routing, or
  57     IP-spoofing).
  58 
  59  o  Host authentication key distribution can be centrally by the
  60     administration, automatically when the first connection is made
  61     to a machine (the key obtained on the first connection will be
  62     recorded and used for authentication in the future), or manually
  63     by each user for his/her own use.  The central and per-user host
  64     key repositories are both used and complement each other.  Host
  65     keys can be generated centrally or automatically when the software
  66     is installed.  Host authentication keys are typically 1024 bits.
  67 
  68  o  Any user can create any number of user authentication RSA keys for
  69     his/her own use.  Each user has a file which lists the RSA public
  70     keys for which proof of possession of the corresponding private
  71     key is accepted as authentication.  User authentication keys are
  72     typically 1024 bits.
  73 
  74  o  The server program has its own server RSA key which is
  75     automatically regenerated every hour.  This key is never saved in
  76     any file.  Exchanged session keys are encrypted using both the
  77     server key and the server host key.  The purpose of the separate
  78     server key is to make it impossible to decipher a captured session by
  79     breaking into the server machine at a later time; one hour from
  80     the connection even the server machine cannot decipher the session
  81     key.  The key regeneration interval is configurable.  The server
  82     key is normally 768 bits.
  83 
  84  o  An authentication agent, running in the user's laptop or local
  85     workstation, can be used to hold the user's RSA authentication
  86     keys.  Ssh automatically forwards the connection to the
  87     authentication agent over any connections, and there is no need to
  88     store the RSA authentication keys on any machine in the network
  89     (except the user's own local machine).  The authentication
  90     protocols never reveal the keys; they can only be used to verify
  91     that the user's agent has a certain key.  Eventually the agent
  92     could rely on a smart card to perform all authentication
  93     computations.
  94 
  95  o  The software can be installed and used (with restricted
  96     functionality) even without root privileges.
  97 
  98  o  The client is customizable in system-wide and per-user
  99     configuration files.  Most aspects of the client's operation can
 100     be configured.  Different options can be specified on a per-host basis.
 101 
 102  o  Automatically executes conventional rsh (after displaying a
 103     warning) if the server machine is not running sshd.
 104 
 105  o  Optional compression of all data with gzip (including forwarded X11
 106     and TCP/IP port data), which may result in significant speedups on
 107     slow connections.
 108 
 109  o  Complete replacement for rlogin, rsh, and rcp.
 110 
 111 
 112 WHY TO USE SECURE SHELL
 113 
 114 Currently, almost all communications in computer networks are done
 115 without encryption.  As a consequence, anyone who has access to any
 116 machine connected to the network can listen in on any communication.
 117 This is being done by hackers, curious administrators, employers,
 118 criminals, industrial spies, and governments.  Some networks leak off
 119 enough electromagnetic radiation that data may be captured even from a
 120 distance.
 121 
 122 When you log in, your password goes in the network in plain
 123 text.  Thus, any listener can then use your account to do any evil he
 124 likes.  Many incidents have been encountered worldwide where crackers
 125 have started programs on workstations without the owners knowledge
 126 just to listen to the network and collect passwords.  Programs for
 127 doing this are available on the Internet, or can be built by a
 128 competent programmer in a few hours.
 129 
 130 Any information that you type or is printed on your screen can be
 131 monitored, recorded, and analyzed.  For example, an intruder who has
 132 penetrated a host connected to a major network can start a program
 133 that listens to all data flowing in the network, and whenever it
 134 encounters a 16-digit string, it checks if it is a valid credit card
 135 number (using the check digit), and saves the number plus any
 136 surrounding text (to catch expiration date and holder) in a file.
 137 When the intruder has collected a few thousand credit card numbers, he
 138 makes smallish mail-order purchases from a few thousand stores around
 139 the world, and disappears when the goods arrive but before anyone
 140 suspects anything.
 141 
 142 Businesses have trade secrets, patent applications in preparation,
 143 pricing information, subcontractor information, client data, personnel
 144 data, financial information, etc.  Currently, anyone with access to
 145 the network (any machine on the network) can listen to anything that
 146 goes in the network, without any regard to normal access restrictions.
 147 
 148 Many companies are not aware that information can so easily be
 149 recovered from the network.  They trust that their data is safe
 150 since nobody is supposed to know that there is sensitive information
 151 in the network, or because so much other data is transferred in the
 152 network.  This is not a safe policy.
 153 
 154 Individual persons also have confidential information, such as
 155 diaries, love letters, health care documents, information about their
 156 personal interests and habits, professional data, job applications,
 157 tax reports, political documents, unpublished manuscripts, etc.
 158 
 159 One should also be aware that economical intelligence and industrial
 160 espionage has recently become a major priority of the intelligence
 161 agencies of major governments.  President Clinton recently assigned
 162 economical espionage as the primary task of the CIA, and the French
 163 have repeatedly been publicly boasting about their achievements on
 164 this field.
 165 
 166 
 167 There is also another frightening aspect about the poor security of
 168 communications.  Computer storage and analysis capability has
 169 increased so much that it is feasible for governments, major
 170 companies, and criminal organizations to automatically analyze,
 171 identify, classify, and file information about millions of people over
 172 the years.  Because most of the work can be automated, the cost of
 173 collecting this information is getting very low.  
 174 
 175 Government agencies may be able to monitor major communication
 176 systems, telephones, fax, computer networks, etc., and passively
 177 collect huge amounts of information about all people with any
 178 significant position in the society.  Most of this information is not
 179 sensitive, and many people would say there is no harm in someone
 180 getting that information.  However, the information starts to get
 181 sensitive when someone has enough of it.  You may not mind someone
 182 knowing what you bought from the shop one random day, but you might
 183 not like someone knowing every small thing you have bought in the last
 184 ten years.
 185 
 186 If the government some day starts to move into a more totalitarian
 187 direction (one should remember that Nazi Germany was created by
 188 democratic elections), there is considerable danger of an ultimate
 189 totalitarian state.  With enough information (the automatically
 190 collected records of an individual can be manually analyzed when the
 191 person becomes interesting), one can form a very detailed picture of
 192 the individual's interests, opinions, beliefs, habits, friends,
 193 lovers, weaknesses, etc.  This information can be used to 1) locate
 194 any persons who might oppose the new system 2) use deception to
 195 disturb any organizations which might rise against the government 3)
 196 eliminate difficult individuals without anyone understanding what
 197 happened.  Additionally, if the government can monitor communications
 198 too effectively, it becomes too easy to locate and eliminate any
 199 persons distributing information contrary to the official truth.
 200 
 201 Fighting crime and terrorism are often used as grounds for domestic
 202 surveillance and restricting encryption.  These are good goals, but
 203 there is considerable danger that the surveillance data starts to get
 204 used for questionable purposes.  I find that it is better to tolerate
 205 a small amount of crime in the society than to let the society become
 206 fully controlled.  I am in favor of a fairly strong state, but the
 207 state must never get so strong that people become unable to spread
 208 contra-offical information and unable to overturn the government if it
 209 is bad.  The danger is that when you notice that the government is
 210 too powerful, it is too late.  Also, the real power may not be where
 211 the official government is.
 212 
 213 For these reasons (privacy, protecting trade secrets, and making it
 214 more difficult to create a totalitarian state), I think that strong
 215 cryptography should be integrated to the tools we use every day.
 216 Using it causes no harm (except for those who wish to monitor
 217 everything), but not using it can cause huge problems.  If the society
 218 changes in undesirable ways, then it will be to late to start
 219 encrypting.
 220 
 221 Encryption has had a "military" or "classified" flavor to it.  There
 222 are no longer any grounds for this.  The military can and will use its
 223 own encryption; that is no excuse to prevent the civilians from
 224 protecting their privacy and secrets.  Information on strong
 225 encryption is available in every major bookstore, scientific library,
 226 and patent office around the world, and strong encryption software is
 227 available in every country on the Internet.
 228 
 229 Some people would like to make it illegal to use encryption, or to
 230 force people to use encryption that governments can break.  This
 231 approach offers no protection if the government turns bad.  Also, the
 232 "bad guys" will be using true strong encryption anyway.  Good
 233 encryption techniques are too widely known to make them disappear.
 234 Thus, any "key escrow encryption" or other restrictions will only help
 235 monitor ordinary people and petty criminals.  It does not help against
 236 powerful criminals, terrorists, or espionage, because they will know
 237 how to use strong encryption anyway.  (One source for internationally
 238 available encryption software is http://www.cs.hut.fi/crypto.)
 239 
 240 
 241 OVERVIEW OF SECURE SHELL
 242 
 243 The software consists of a number of programs.
 244 
 245    sshd         Server program run on the server machine.  This
 246                 listens for connections from client machines, and
 247                 whenever it receives a connection, it performs
 248                 authentication and starts serving the client.
 249 
 250    ssh          This is the client program used to log into another
 251                 machine or to execute commands on the other machine.
 252                 "slogin" is another name for this program.
 253 
 254    scp          Securely copies files from one machine to another.
 255 
 256    ssh-keygen   Used to create RSA keys (host keys and user
 257                 authentication keys).
 258 
 259    ssh-agent    Authentication agent.  This can be used to hold RSA
 260                 keys for authentication.
 261 
 262    ssh-add      Used to register new keys with the agent.
 263 
 264    make-ssh-known-hosts
 265                 Used to create the /etc/ssh_known_hosts file.
 266 
 267 
 268 Ssh is the program users normally use.  It is started as
 269 
 270   ssh host
 271 
 272 or
 273 
 274   ssh host command
 275 
 276 The first form opens a new shell on the remote machine (after
 277 authentication).  The latter form executes the command on the remote
 278 machine.
 279 
 280 When started, the ssh connects sshd on the server machine, verifies
 281 that the server machine really is the machine it wanted to connect,
 282 exchanges encryption keys (in a manner which prevents an outside
 283 listener from getting the keys), performs authentication using .rhosts
 284 and /etc/hosts.equiv, RSA authentication, or conventional password
 285 based authentication.  The server then (normally) allocates a
 286 pseudo-terminal and starts an interactive shell or user program.
 287 
 288 The TERM environment variable (describing the type of the user's
 289 terminal) is passed from the client side to the remote side.  Also,
 290 terminal modes will be copied from the client side to the remote side
 291 to preserve user preferences (e.g., the erase character).
 292 
 293 If the DISPLAY variable is set on the client side, the server will
 294 create a dummy X server and set DISPLAY accordingly.  Any connections
 295 to the dummy X server will be forwarded through the secure channel,
 296 and will be made to the real X server from the client side.  An
 297 arbitrary number of X programs can be started during the session, and
 298 starting them does not require anything special from the user.  (Note
 299 that the user must not manually set DISPLAY, because then it would
 300 connect directly to the real display instead of going through the
 301 encrypted channel).  This behavior can be disabled in the
 302 configuration file or by giving the -x option to the client.
 303 
 304 Arbitrary IP ports can be forwarded over the secure channel.  The
 305 program then creates a port on one side, and whenever a connection is
 306 opened to this port, it will be passed over the secure channel, and a
 307 connection will be made from the other side to a specified host:port
 308 pair.  Arbitrary IP forwarding must always be explicitly requested,
 309 and cannot be used to forward privileged ports (unless the user is
 310 root).  It is possible to specify automatic forwards in a per-user
 311 configuration file, for example to make electronic cash systems work
 312 securely.
 313 
 314 If there is an authentication agent on the client side, connection to
 315 it will be automatically forwarded to the server side.
 316 
 317 For more infomation, see the manual pages ssh(1), sshd(8), scp(1),
 318 ssh-keygen(1), ssh-agent(1), ssh-add(1), and make-ssh-known-hosts(1)
 319 included in this distribution.
 320 
 321 
 322 X11 CONNECTION FORWARDING
 323 
 324 X11 forwarding serves two purposes: it is a convenience to the user
 325 because there is no need to set the DISPLAY variable, and it provides
 326 encrypted X11 connections.  I cannot think of any other easy way to
 327 make X11 connections encrypted; modifying the X server, clients or
 328 libraries would require special work for each machine, vendor and
 329 application.  Widely used IP-level encryption does not seem likely for
 330 several years.  Thus what we have left is faking an X server on the
 331 same machine where the clients are run, and forwarding the connections
 332 to a real X server over the secure channel.
 333 
 334 X11 forwarding works as follows.  The client extracts Xauthority
 335 information for the server.  It then creates random authorization
 336 data, and sends the random data to the server.  The server allocates
 337 an X11 display number, and stores the (fake) Xauthority data for this
 338 display.  Whenever an X11 connection is opened, the server forwards
 339 the connection over the secure channel to the client, and the client
 340 parses the first packet of the X11 protocol, substitutes real
 341 authentication data for the fake data (if the fake data matched), and
 342 forwards the connection to the real X server.
 343 
 344 If the display does not have Xauthority data, the server will create a
 345 unix domain socket in /tmp/.X11-unix, and use the unix domain socket
 346 as the display.  No authentication information is forwarded in this
 347 case.  X11 connections are again forwarded over the secure channel.
 348 To the X server the connections appear to come from the client
 349 machine, and the server must have connections allowed from the local
 350 machine.  Using authentication data is always recommended because not
 351 using it makes the display insecure.  If XDM is used, it automatically
 352 generates the authentication data.
 353 
 354 One should be careful not to use "xin" or "xstart" or other similar
 355 scripts that explicitly set DISPLAY to start X sessions in a remote
 356 machine, because the connection will then not go over the secure
 357 channel.  The recommended way to start a shell in a remote machine is
 358 
 359   xterm -e ssh host &
 360 
 361 and the recommended way to execute an X11 application in a remote
 362 machine is
 363 
 364   ssh -n host emacs &
 365 
 366 If you need to type a password/passphrase for the remote machine,
 367 
 368   ssh -f host emacs
 369 
 370 may be useful.
 371 
 372 
 373 
 374 RSA AUTHENTICATION
 375 
 376 RSA authentication is based on public key cryptograpy.  The idea is
 377 that there are two encryption keys, one for encryption and another for
 378 decryption.  It is not possible (on human timescale) to derive the
 379 decryption key from the encryption key.  The encryption key is called
 380 the public key, because it can be given to anyone and it is not
 381 secret.  The decryption key, on the other hand, is secret, and is
 382 called the private key.
 383 
 384 RSA authentication is based on the impossibility of deriving the
 385 private key from the public key.  The public key is stored on the
 386 server machine in the user's $HOME/.ssh/authorized_keys file.  The
 387 private key is only kept on the user's local machine, laptop, or other
 388 secure storage.  Then the user tries to log in, the client tells the
 389 server the public key that the user wishes to use for authentication.
 390 The server then checks if this public key is admissible.  If so, it
 391 generates a 256 bit random number, encrypts it with the public key,
 392 and sends the value to the client.  The client then decrypts the
 393 number with its private key, computes a 128 bit MD5 checksum from the
 394 resulting data, and sends the checksum back to the server.  (Only a
 395 checksum is sent to prevent chosen-plaintext attacks against RSA.)
 396 The server checks computes a checksum from the correct data,
 397 and compares the checksums.  Authentication is accepted if the
 398 checksums match.  (Theoretically this indicates that the client
 399 only probably knows the correct key, but for all practical purposes
 400 there is no doubt.)
 401 
 402 The RSA private key can be protected with a passphrase.  The
 403 passphrase can be any string; it is hashed with MD5 to produce an
 404 encryption key for IDEA, which is used to encrypt the private part of
 405 the key file.  With passphrase, authorization requires access to the key
 406 file and the passphrase.  Without passphrase, authorization only
 407 depends on possession of the key file.
 408 
 409 RSA authentication is the most secure form of authentication supported
 410 by this software.  It does not rely on the network, routers, domain
 411 name servers, or the client machine.  The only thing that matters is
 412 access to the private key.  
 413 
 414 All this, of course, depends on the security of the RSA algorithm
 415 itself.  RSA has been widely known since about 1978, and no effective
 416 methods for breaking it are known if it is used properly.  Care has
 417 been taken to avoid the well-known pitfalls.  Breaking RSA is widely
 418 believed to be equivalent to factoring, which is a very hard
 419 mathematical problem that has received considerable public research.
 420 So far, no effective methods are known for numbers bigger than about
 421 512 bits.  However, as computer speeds and factoring methods are
 422 increasing, 512 bits can no longer be considered secure.  The
 423 factoring work is exponential, and 768 or 1024 bits are widely
 424 considered to be secure in the near future.
 425 
 426 
 427 RHOSTS AUTHENTICATION
 428 
 429 Conventional .rhosts and hosts.equiv based authentication mechanisms
 430 are fundamentally insecure due to IP, DNS (domain name server) and
 431 routing spoofing attacks.  Additionally this authentication method
 432 relies on the integrity of the client machine.  These weaknesses is
 433 tolerable, and been known and exploited for a long time.
 434 
 435 Ssh provides an improved version of these types of authentication,
 436 because they are very convenient for the user (and allow easy
 437 transition from rsh and rlogin).  It permits these types of
 438 authentication, but additionally requires that the client host be
 439 authenticated using RSA.  
 440 
 441 The server has a list of host keys stored in /etc/ssh_known_host, and
 442 additionally each user has host keys in $HOME/.ssh/known_hosts.  Ssh
 443 uses the name servers to obtain the canonical name of the client host,
 444 looks for its public key in its known host files, and requires the
 445 client to prove that it knows the private host key.  This prevents IP
 446 and routing spoofing attacks (as long as the client machine private
 447 host key has not been compromized), but is still vulnerable to DNS
 448 attacks (to a limited extent), and relies on the integrity of the
 449 client machine as to who is requesting to log in.  This prevents
 450 outsiders from attacking, but does not protect against very powerful
 451 attackers.  If maximal security is desired, only RSA authentication
 452 should be used.
 453 
 454 It is possible to enable conventional .rhosts and /etc/hosts.equiv
 455 authentication (without host authentication) at compile time by giving
 456 the option --with-rhosts to configure.  However, this is not
 457 recommended, and is not done by default.
 458 
 459 These weaknesses are present in rsh and rlogin.  No improvement in
 460 security will be obtained unless rlogin and rsh are completely
 461 disabled (commented out in /etc/inetd.conf).  This is highly
 462 recommended.
 463 
 464 
 465 WEAKEST LINKS IN SECURITY
 466 
 467 One should understand that while this software may provide
 468 cryptographically secure communications, it may be easy to
 469 monitor the communications at their endpoints.
 470 
 471 Basically, anyone with root access on the local machine on which you
 472 are running the software may be able to do anything.  Anyone with root
 473 access on the server machine may be able to monitor your
 474 communications, and a very talented root user might even be able to
 475 send his/her own requests to your authentication agent.
 476 
 477 One should also be aware that computers send out electromagnetic
 478 radition that can sometimes be picked up hundreds of meters away.
 479 Your keyboard is particularly easy to listen to.  The image on your
 480 monitor might also be seen on another monitor in a van parked behind
 481 your house.
 482 
 483 Beware that unwanted visitors might come to your home or office and
 484 use your machine while you are away.  They might also make
 485 modifications or install bugs in your hardware or software.
 486 
 487 Beware that the most effective way for someone to decrypt your data
 488 may be with a rubber hose.
 489 
 490 
 491 LEGAL ISSUES
 492 
 493 As far as I am concerned, anyone is permitted to use this software
 494 freely.  However, see the file COPYING for detailed copying,
 495 licensing, and distribution information.
 496 
 497 In some countries, particularly France, Russia, Iraq, and Pakistan,
 498 it may be illegal to use any encryption at all without a special
 499 permit, and the rumor has it that you cannot get a permit for any
 500 strong encryption.
 501 
 502 This software may be freely imported into the United States; however,
 503 the United States Government may consider re-exporting it a criminal
 504 offence.
 505 
 506 Note that any information and cryptographic algorithms used in this
 507 software are publicly available on the Internet and at any major
 508 bookstore, scientific library, or patent office worldwide.
 509 
 510 THERE IS NO WARRANTY FOR THIS PROGRAM.  Please consult the file
 511 COPYING for more information.
 512 
 513 
 514 MAILING LISTS AND OTHER INFORMATION
 515 
 516 There is a mailing list for ossh.  It is ossh@sics.se.  If you would
 517 like to join, send a message to majordomo@sics.se with "subscribe
 518 ssh" in body.
 519 
 520 The WWW home page for ssh is http://www.cs.hut.fi/ssh.  It contains an
 521 archive of the mailing list, and detailed information about new
 522 releases, mailing lists, and other relevant issues.
 523 
 524 Bug reports should be sent to ossh-bugs@sics.se.
 525 
 526 
 527 ABOUT THE AUTHOR
 528 
 529 This software was written by Tatu Ylonen <ylo@cs.hut.fi>.  I work as a
 530 researcher at Helsinki University of Technology, Finland.  For more
 531 information, see http://www.cs.hut.fi/~ylo/.  My PGP public key is
 532 available via finger from ylo@cs.hut.fi and from the key servers.  I
 533 prefer PGP encrypted mail.
 534 
 535 The author can be contacted via ordinary mail at
 536   Tatu Ylonen
 537   Helsinki University of Technology
 538   Otakaari 1
 539   FIN-02150 ESPOO
 540   Finland
 541 
 542   Fax. +358-0-4513293
 543 
 544 
 545 ACKNOWLEDGEMENTS
 546 
 547 I thank Tero Kivinen, Timo Rinne, Janne Snabb, and Heikki Suonsivu for
 548 their help and comments in the design, implementation and porting of
 549 this software.  I also thank numerous contributors, including but not
 550 limited to Walker Aumann, Jurgen Botz, Hans-Werner Braun, Stephane
 551 Bortzmeyer, Adrian Colley, Michael Cooper, David Dombek, Jerome
 552 Etienne, Bill Fithen, Mark Fullmer, Bert Gijsbers, Andreas Gustafsson,
 553 Michael Henits, Steve Johnson, Thomas Koenig, Felix Leitner, Gunnar
 554 Lindberg, Andrew Macpherson, Marc Martinec, Paul Mauvais, Donald
 555 McKillican, Leon Mlakar, Robert Muchsel, Mark Treacy, Bryan
 556 O'Sullivan, Mikael Suokas, Ollivier Robert, Jakob Schlyter, Tomasz
 557 Surmacz, Alvar Vinacua, Petri Virkkula, Michael Warfield, and
 558 Cristophe Wolfhugel.
 559 
 560 Thanks also go to Philip Zimmermann, whose PGP software and the
 561 associated legal battle provided inspiration, motivation, and many
 562 useful techniques, and to Bruce Schneier whose book Applied
 563 Cryptography has done a great service in widely distributing knowledge
 564 about cryptographic methods.
 565 
 566 
 567 Copyright (c) 1995 Tatu Ylonen, Espoo, Finland.