1
																	.
																	 
																	A
																	 
																	"
																	cryptosystem
																	"
																	 
																	is
																	 
																	the
																	 
																	ordered
																	 
																	list
																	 
																	of
																	 
																	elements
																	 
																	of
																	 
																	finite
																	 
																	possible
																	 
																	plaintexts
																	,
																	 
																	finite
																	 
																	possible
																	 
																		
												
																	,
																	 
																	finite
																	 
																	possible
																	 
																	keys
																	,
																	 
																	and
																	 
																	the
																	 
																	encryption
																	 
																	and
																	 
																	decryption
																	 
																	algorithms
																	 
																	which
																	 
																	correspond
																	 
																	to
																	 
																	each
																	 
																	key
																	.
																	 
																	Keys
																	 
																	are
																	 
																	important
																	,
																	 
																	as
																	 
																	ciphers
																	 
																	without
																	 
																	variable
																	 
																	keys
																	 
																	can
																	 
																	be
																	 
																	trivially
																	 
																	broken
																	 
																	with
																	 
																	only
																	 
																	the
																	 
																	knowledge
																	 
																	of
																	 
																	the
																	 
																	cipher
																	 
																	used
																	 
																	and
																	 
																	are
																	 
																	therefore
																	 
																	useless
																	 
																	(
																	or
																	 
																	even
																	 
																	counter
																	-
																	productive
																	)
																	 
																	for
																	 
																	most
																	 
																	purposes
																	.
																	 
																	Historically
																	,
																	 
																	ciphers
																	 
																	were
																	 
																	often
																	 
																	used
																	 
																	directly
																	 
																	for
																	 
																	encryption
																	 
																	or
																	 
																	decryption
																	 
																	without
																	 
																	additional
																	 
																	procedures
																	 
																	such
																	 
																	as
																	 
																	authentication
																	 
																	or
																	 
																		
												
																	 
																	checks
																	.
																	 
																	
																	 
																	
																	2
																	.
																	 
																	Symmetric
																	 
																	key
																	 
																	ciphers
																	 
																	are
																	 
																	implemented
																	 
																	as
																	 
																	either
																	 
																	block
																	 
																	ciphers
																	 
																	or
																	 
																		
												
																	 
																	ciphers
																	.
																	 
																	A
																	 
																	block
																	 
																	cipher
																	 
																	enciphers
																	 
																	input
																	 
																	in
																	 
																	blocks
																	 
																	of
																	 
																	plaintext
																	 
																	as
																	 
																	opposed
																	 
																	to
																	 
																	individual
																	 
																	characters
																	,
																	 
																	the
																	 
																	input
																	 
																	form
																	 
																	used
																	 
																	by
																	 
																	a
																	 
																	stream
																	 
																	cipher
																	.
																	 
																	
																	 
																	
																	3
																	.
																	 
																	Stream
																	 
																	ciphers
																	,
																	 
																	in
																	 
																	contrast
																	 
																	to
																	 
																	the
																	 
																	'block'
																	 
																	type
																	,
																	 
																	create
																	 
																	an
																	 
																	arbitrarily
																	 
																		
												
																	 
																	stream
																	 
																	of
																	 
																	key
																	 
																	material
																	,
																	 
																	which
																	 
																	is
																	 
																	combined
																	 
																	with
																	 
																	the
																	 
																	plaintext
																	 
																	bit
																	-
																	by
																	-
																	bit
																	 
																	or
																	 
																	character
																	-
																	by
																	-
																	character
																	,
																	 
																	somewhat
																	 
																	like
																	 
																	the
																	 
																	one
																	-
																	time
																	 
																	pad
																	.
																	 
																	In
																	 
																	a
																	 
																	stream
																	 
																	cipher
																	,
																	 
																	the
																	 
																	output
																	 
																	stream
																	 
																	is
																	 
																	created
																	 
																	based
																	 
																	on
																	 
																	a
																	 
																	hidden
																	 
																	internal
																	 
																	state
																	 
																	which
																	 
																	changes
																	 
																	as
																	 
																	the
																	 
																	cipher
																	 
																	operates
																	.
																	 
																	
																	 
																	
																	4
																	.
																	 
																	A
																	 
																	significant
																	 
																	disadvantage
																	 
																	of
																	 
																	symmetric
																	 
																	ciphers
																	 
																	is
																	 
																	the
																	 
																	key
																	 
																	management
																	 
																		
												
																	 
																	to
																	 
																	use
																	 
																	them
																	 
																	securely
																	.
																	 
																	Each
																	 
																	distinct
																	 
																	pair
																	 
																	of
																	 
																	communicating
																	 
																	parties
																	 
																	must
																	,
																	 
																	ideally
																	,
																	 
																	share
																	 
																	a
																	 
																	different
																	 
																	key
																	,
																	 
																	and
																	 
																	perhaps
																	 
																	each
																	 
																	ciphertext
																	 
																	exchanged
																	 
																	as
																	 
																	well
																	.
																	 
																	
																	 
																	
																	5
																	.
																	 
																	Diffie
																	 
																	and
																	 
																	Hellman's
																	 
																	publication
																	 
																	sparked
																	 
																	widespread
																	 
																	academic
																	 
																	efforts
																	 
																	in
																	 
																	finding
																	 
																	a
																	 
																	practical
																	 
																		
												
																	-
																	key
																	 
																	encryption
																	 
																	system
																	.
																	 
																	This
																	 
																	race
																	 
																	was
																	 
																	finally
																	 
																	won
																	 
																	in
																	 
																	1978
																	 
																	by
																	 
																	Ronald
																	 
																	Rivest
																	,
																	 
																	Adi
																	 
																	Shamir
																	,
																	 
																	and
																	 
																	Len
																	 
																	Adleman
																	,
																	 
																	whose
																	 
																	solution
																	 
																	has
																	 
																	since
																	 
																	become
																	 
																	known
																	 
																	as
																	 
																	the
																	 
																	RSA
																	 
																	algorithm
																	.
																	 
																	
																	 
																	
																	6
																	.
																	 
																	The
																	 
																	goal
																	 
																	of
																	 
																		
												
																	 
																	is
																	 
																	to
																	 
																	find
																	 
																	some
																	 
																	weakness
																	 
																	or
																	 
																	insecurity
																	 
																	in
																	 
																	a
																	 
																	cryptographic
																	 
																	scheme
																	,
																	 
																	thus
																	 
																	permitting
																	 
																	its
																	 
																	subversion
																	 
																	or
																	 
																	evasion
																	.
																	 
																	
																	 
																	
																	7
																	.
																	 
																	Some
																	 
																	widely
																	 
																	known
																	 
																	cryptosystems
																	 
																	include
																	 
																	RSA
																	 
																	encryption
																	,
																	 
																	Schnorr
																	 
																	signature
																	,
																	 
																	El
																	-
																	Gamal
																	 
																	encryption
																	,
																	 
																	PGP
																	,
																	 
																	etc
																	.
																	 
																	More
																	 
																	complex
																	 
																	cryptosystems
																	 
																	include
																	 
																	electronic
																	 
																	cash
																	 
																	systems
																	,
																	 
																	signcryption
																	 
																	systems
																	,
																	 
																	etc
																	.
																	 
																	Some
																	 
																	more
																	 
																	'theoretical'
																	 
																	cryptosystems
																	 
																	include
																	 
																		
												
																	 
																	proof
																	 
																	systems
																	,
																	(
																	like
																	 
																	zero
																	-
																	knowledge
																	 
																	proofs
																	)
																	,
																	systems
																	 
																	for
																	 
																	secret
																	 
																	sharing
																	,
																	 
																	etc
																	.