Tải bản đầy đủ
Appendix B. Projects for Teaching Cryptography and Network Security
Section B.1. Research Projects
[Page 654 (continued)]
B.1. Research Projects
An effective way of reinforcing basic concepts from the course and for teaching students research skills
is to assign a research project. Such a project could involve a literature search as well as an Internet
search of vendor products, research lab activities, and standardization efforts. Projects could be
assigned to teams or, for smaller projects, to individuals. In any case, it is best to require some sort of
project proposal early in the term, giving the instructor time to evaluate the proposal for appropriate
topic and appropriate level of effort. Student handouts for research projects should include
format for the proposal
format for the final report
schedule with intermediate and final deadlines
list of possible project topics
The students can select one of the listed topics or devise their own comparable project. The instructor's
supplement includes a suggested format for the proposal and final report as well as a list of fifteen
possible research topics.
file:///D|/1/0131873164/app02lev1sec1.html [14.10.2007 09:42:24]
Section B.2. Programming Projects
B.2. Programming Projects
The programming project is a useful pedagogical tool. There are several attractive features of standalone programming projects that are not part of an existing security facility:
The instructor can choose from a wide variety of cryptography and network security concepts to
The projects can be programmed by the students on any available computer and in any
appropriate language; they are platform and language independent.
The instructor need not download, install, and configure any particular infrastructure for standalone projects.
There is also flexibility in the size of projects. Larger projects give students more a sense of
achievement, but students with less ability or fewer organizational skills can be left behind. Larger
projects usually elicit more overall effort from the best students. Smaller projects can have a higher
concepts-to-code ratio, and because more of them can be assigned, the opportunity exists to address a
variety of different areas.
Again, as with research projects, the students should first submit a proposal. The student handout
should include the same elements listed in Section A.1. The instructor's manual includes a set of twelve
possible programming projects.
The following individuals have supplied the research and programming projects suggested in the
instructor's manual: Henning Schulzrinne of Columbia University; Cetin Kaya Koc of Oregon State
University; and David M. Balenson of Trusted Information Systems and George Washington University.
file:///D|/1/0131873164/app02lev1sec2.html [14.10.2007 09:42:25]
Section B.3. Laboratory Exercises
[Page 655 (continued)]
B.3. Laboratory Exercises
Professor Sanjay Rao and Ruben Torres of Purdue University have prepared a set of laboratory exercises
that are part of the instructor's supplement. These are implementation projects designed to be
programmed on Linux but could be adapted for any Unix environment. These laboratory exercises
provide realistic experience in implementing security functions and applications.
file:///D|/1/0131873164/app02lev1sec3.html [14.10.2007 09:42:25]
Section B.4. Writing Assignments
[Page 655 (continued)]
B.4. Writing Assignments
Writing assignments can have a powerful multiplier effect in the learning process in a technical discipline
such as cryptography and network security. Adherents of the Writing Across the Curriculum (WAC)
movement (http://wac.colostate.edu) report substantial benefits of writing assignments in
facilitating learning. Writing assignments lead to more detailed and complete thinking about a particular
topic. In addition, writing assignments help to overcome the tendency of students to pursue a subject
with a minimum of personal engagement, just learning facts and problem-solving techniques without
obtaining a deep understanding of the subject matter.
The instructor's supplement contains a number of suggested writing assignments, organized by chapter.
Instructors may ultimately find that this is the most important part of their approach to teaching the
material. I would greatly appreciate any feedback on this area and any suggestions for additional writing
file:///D|/1/0131873164/app02lev1sec4.html [14.10.2007 09:42:25]
Section B.5. Reading/Report Assignments
[Page 656 (continued)]
B.5. Reading/Report Assignments
Another excellent way to reinforce concepts from the course and to give students research experience is
to assign papers from the literature to be read and analyzed. The instructor's supplement includes a
suggested list of papers, one or two per chapter, to be assigned. All of the papers are readily available
either via the Internet or in any good college technical library. The instructor's supplement also includes
a suggested assignment wording.
file:///D|/1/0131873164/app02lev1sec5.html [14.10.2007 09:42:25]
In studying the Imperium, Arrakis, and the whole culture which produced
Maud'Dib, many unfamiliar terms occur. To increase understanding is a laudable
goal, hence the definitions and explanations given below.
Dune, Frank Herbert
Some of the terms in this glossary are from the Internet Security Glossary [RFC 2828]. These are
indicated in the glossary by an asterisk.
A form of cryptosystem in which encryption and decryption are performed using two different
keys, one of which is referred to as the public key and one of which is referred to as the private
key. Also known as public-key encryption.
The process of verifying an identity claimed by or for a system entity.
Additional information appended to a message to enable the receiver to verify that the message
should be accepted as authentic. The authenticator may be functionally independent of the
content of the message itself (e.g., a nonce or a source identifier) or it may be a function of the
message contents (e.g., a hash value or a cryptographic checksum).
A characteristic of an encryption algorithm in which a small change in the plaintext or key gives
rise to a large change in the ciphertext. For a hash code, the avalanche effect is a characteristic
in which a small change in the message gives rise to a large change in the message digest.
Program that consumes system resources by replicating itself.
This cryptanalytic attack attempts to find two values in the domain of a function that map to the
same value in its range
file:///D|/1/0131873164/app03.html (1 von 10) [14.10.2007 09:42:27]
A procedure used during symmetric block encryption that makes an output block dependent not
only on the current plaintext input block and key, but also on earlier input and/or output. The
effect of block chaining is that two instances of the same plaintext input block will produce
different ciphertext blocks, making cryptanalysis more difficult.
A symmetric encryption algorithm in which a block of plaintext bits (typically 64 or 128) is
transformed as a whole into a ciphertext block of the same length.
A sequence of eight bits. Also referred to as an octet.
An algorithm for encryption and decryption. A cipher replaces a piece of information (an element
in plaintext) with another object, with the intent to conceal meaning. Typically, the replacement
rule is governed by a secret key.
The output of an encryption algorithm; the encrypted form of a message or data.
An unvarying rule for replacing a piece of information (e.g., letter, word, phrase) with another
object, not necessarily of the same sort. Generally, there is no intent to conceal meaning.
Examples include the ASCII character code (each character is represented by 7 bits) and
frequency-shift keying (each binary value is represented by a particular frequency).
Secure because the time and/or cost of defeating the security are too high to be feasible.
A cryptographic technique that seeks to make the relationship between the statistics of the
ciphertext and the value of the encryption key as complex as possible. This is achieved by the
use of a complex scrambling algorithm that depends on the key and the input.
A communications channel that enables the transfer of information in a way unintended by the
file:///D|/1/0131873164/app03.html (2 von 10) [14.10.2007 09:42:27]
designers of the communications facility.
The branch of cryptology dealing with the breaking of a cipher to recover information, or forging
encrypted information that will be accepted as authentic.
An authenticator that is a cryptographic function of both the data to be authenticated and a
secret key. Also referred to as a message authentication code (MAC).
The branch of cryptology dealing with the design of algorithms for encryption and decryption,
intended to ensure the secrecy and/or authenticity of messages.
The study of secure communications, which encompasses both cryptography and cryptanalysis.
The translation of encrypted text or data (called ciphertext) into original text or data (called
plaintext). Also called deciphering.
A technique in which chosen plaintexts with particular XOR difference patterns are encrypted.
The difference patterns of the resulting ciphertext provide information that can be used to
determine the encryption key.
A cryptographic technique that seeks to obscure the statistical structure of the plaintext by
spreading out the influence of each individual plaintext digit over many ciphertext digits.
An authentication mechanism that enables the creator of a message to attach a code that acts as
a signature. The signature is formed by taking the hash of the message and encrypting the
message with the creator's private key. The signature guarantees the source and integrity of the
A two-letter sequence. In English and other languages, the relative frequency of various digrams
in plaintext can be used in the cryptanalysis of some ciphers. Also called digraph.
file:///D|/1/0131873164/app03.html (3 von 10) [14.10.2007 09:42:27]
discretionary access control*
An access control service that enforces a security policy based on the identity of system entities
and their authorizations to access system resources. (See: access control list, identity-based
security policy, mandatory access control.) This service is termed "discretionary" because an
entity might have access rights that permit the entity, by its own volition, to enable another
entity to access some resource.
One integer is said to be a devisor of another integer if there is no remainder on division.
The conversion of plaintext or data into unintelligible form by means of a reversible translation,
based on a translation table or algorithm. Also called enciphering.
A dedicated computer that interfaces with computers outside a network and has special security
precautions built into it in order to protect sensitive files on computers within the network. It is
used to service outside network, especially Internet, connections and dial-in lines.
greatest common divisor
The greatest common divisor of two integers, a and b, is the largest positive integer that divides
both a and b. One integer is said to divide another integer if there is no remainder on division.
A function that maps a variable-length data block or message into a fixed-length value called a
hash code. The function is designed in such a way that, when protected, it provides an
authenticator to the data or message. Also referred to as a message digest.
A decoy system designed to lure a potential attacker away from critical systems. A form of
A random block of data that is used to begin the encryption of multiple blocks of plaintext, when
a block-chaining encryption technique is used. The IV serves to foil known-plaintext attacks.
An individual who gains, or attempts to gain, unauthorized access to a computer system or to
gain unauthorized privileges on that system.
file:///D|/1/0131873164/app03.html (4 von 10) [14.10.2007 09:42:27]
intrusion detection system
A set of automated tools designed to detect unauthorized access to a host system.
The name given to Project Athena's code authentication service.
key distribution center
A system that is authorized to transmit temporary session keys to principals. Each session key is
transmitted in encrypted form, using a master key that the key distribution center shares with
the target principal.
Logic embedded in a computer program that checks for a certain set of conditions to be present
on the system. When these conditions are met, it executes some function resulting in
mandatory access control
A means of restricting access to objects based on fixed security attributes assigned to users and
to files and other objects. The controls are mandatory in the sense that they cannot be modified
by users or their programs.
A form of active wiretapping attack in which the attacker intercepts and selectively modifies
communicated data in order to masquerade as one or more of the entities involved in a
A long-lasting key that is used between a key distribution center and a principal for the purpose
of encoding the transmission of session keys. Typically, the master keys are distributed by
noncryptographic means. Also referred to as a key-encrypting key.
This is a cryptanaltytic attack that attempts to find a value in each of the range and domain of
the composition of two functions such that the forward mapping of one through the first function
is the same as the inverse image of the other through the second functionquite literally meeting
in the middle of the composed function.
A process used to verify the integrity of a message.
file:///D|/1/0131873164/app03.html (5 von 10) [14.10.2007 09:42:27]
message authentication code (MAC)
A kind of integer arithmetic that reduces all numbers to one of a fixed set [0 ... n 1] for some
number n. Any integer outside this range is reduced to one in this range by taking the remainder
after division by n.
mode of operation
A technique for enhancing the effect of a cryptographic algorithm or adapting the algorithm for
an application, such as applying a block cipher to a sequence of data blocks or a data stream.
A capability that enforces access control across multiple levels of classification of data.
Repeated use of an encryption function, with different keys, to produce a more complex mapping
from plaintext to ciphertext.
A sequence of four bits.
An identifier or number that is used only once.
A function that is easily computed, but the calculation of its inverse is infeasible.
A secret data value, usually a character string, that is used as authentication information. A
password is usually matched with a user identifier that is explicitly presented in the
authentication process, but in some cases the identity may be implicit.
file:///D|/1/0131873164/app03.html (6 von 10) [14.10.2007 09:42:27]