There are two quite distinct categories of application for hash functions in computing. Both are of the highest use and importance.
|
|
- Zoe Dixon
- 5 years ago
- Views:
Transcription
1 Hash Functions A hash function for type T is a mapping h defined for all instances t of T such that: h(t) is a non negative integer for each t in T. h is not one to one. There are two quite distinct categories of application for hash functions in computing. Both are of the highest use and importance. These are: Secure electronic signatures Fast access lookup tables Technically, any hash function can be used in either type of application. But to make the application perform well, carefully selected hash functions must be used. Selecting a hash function that performs well is usually somewhat complicated, and always data dependent. The performance of a hash function in security is directly related to the enigma attribute of the hash function. Note that a non one to one mapping is theoretically not invertible. The equation v = h(t) cannot be solved for t. But, it is still possible to "reverse engineer" a hash function, that is, find specific key values that map to a given hash value, perhaps by guessing or trial and error. A hash function that is relatively difficult to reverse engineer has relatively high enigma. The performance of a hash function in fast access tables is related to the pseudo random attribute. A function whose hash values appear relatively highly random with respect to the key values has relatively high pseudorandomness. We explore these ideas in the following examples. Example The slide shows code for a function defined for String objects S. unsigned int hval(0), i; for (i = 0; i < S.Size(); ++i) hval += S[i] 'a'; /* Sample function values: f(a) = 0 f(b) = 1 f(abcd) = = 6 f(badc) = = 6 f(dcba) = 6 if S1 = permutation of S2 then f(s1) == f(s2) */ The return value for input S is the sum of the character values of the elements of S, normalized so that 'a' has value zero. This code defines a mapping f defined on type T = String that has non negative integer values, is not one to one (because, for example, f(ab) = f(ba) while ab!= ba). Therefore, f is indeed a hash function for type T. This hash function is not very good for either fast access or security, however. Pseudo randomness is very poor, because related String objects get mapped to the same hash value. (In fact, any permutation of string S maps to the same hash value as S.) Enigma is not good either, because the hash value gives easily derived hints and constraints on the key value. For example, the hash value 6 cannot be the value of any key with more than six letters other than 'a'. In principle, though, this is a hash function and hence can be plugged in to any application where hashing of String objects is needed. We will proceed to find hash functions with improved performance. Improved Example This slide depicts an upgrade of the algorithm shown in the previous slide. unsigned int hval(0), i; /* sample values: f(a) = 0 f(b) = 0 1/5
2 for (i = 0; i < S.Size(); ++i) hval += i * (S[i] 'a'); f(ab) = 1 f(abcd) = (0 * 0) + (1 * 1) + (2 * 2) + (3 * 3) = 14 f(badc) = (0 * 1) + (1 * 0) + (2 * 3) + (3 * 2) = 12 f(dcba) = (0 * 3) + (1 * 2) + (2 * 1) + (3 * 0) = 4 */ An attempt has been made to address the low enigma and randomness of the original. The upgraded function sums the character values as before, except weighted by the index, so that the same character value will contribute differentially to the hash value, depending on its location in the string. For example, S[2] = 'f' will contribute 2 x 5 = 10, while S[3] = 'f' will contribute 3 x 5 = 15 to the hash value. This upgrade still does not have excellent pseudo randomness or enigma, although the former can be made acceptable by applying a prime divisor (discussed later in the chapter). Much more work would be needed to attain acceptable enigma. Useful Example This slide depicts a second upgrade that replaces the accumulation operation += i * (S[i] 'a') with a process I have named the Marsaglia Mixer after its discoverer, Professor George Marsaglia of the FSU Department of Statistics. A few values of this hash function are also shown. From this limited evidence, it does appear to have significantly better pseudo randomness than the previous versions. unsigned int i; long unsigned int bigval = S.Element(0); for (i = 1; i < S.Size(); ++i) bigval = ((bigval & 65535) * 18000) + (bigval >> 16) + S[i]; bigval = ((bigval & 65535) * 18000) + (bigval >> 16); return bigval & 65535; /* some values: f(a) = f(b) = f(abcd) = f(bacd) = f(dcba) = f(x) = f(xx) = f(xxx) = f(xxxx) = f(xxxxx) = */ In fact, the mixer itself was shown by Marsaglia to be a very good generator of pseudo random numbers, in principle about as good as can be achieved. (Statisticians use words like "about" without blinking. Nothing is absolute.) The relative pseudo randomness of the Marsaglia Mixer does depend on the discovery of "magic numbers" such as Marsaglia uncovered two that he recommends: and We use for our hash functions and for pseudo random number generation. (See xran.cpp.) This hash function also seems to have decent enigma, certainly better than the previous examples, but there has been no formal study of the mixer in this direction. The use of the mixer for secure signatures in this class is for convenience and to make the use of hashing understandable. Neither I nor Marsaglia would recommend the mixer for signatures where real security is needed. We will use the mixer to define secure signatures in the Password Server project and to define hash tables in the Internet Router project. Let us now look at the details of the Marsaglia Mixer algorithm. Useful Example The Algorithm The first remarkable thing about this code is the use of unsigned long internally, while unsigned int is the return value. The unsigned long type is a 32 bit word, while the unsigned int type is not guaranteed to be more than 16 bits. This hash function is intended to be used only for values in the unsigned int range [ ) = [ ] = [ ] = [ ) The mixer uses a 32 bit word space as its "mixing bowl", but returns only a 16 bit word. The 32 bit value bigval is tossed, turned, and folded like dough in the mixing bowl, and the return value is a small spoonful taken from the result. 2/5
3 The ascii value of the first (index zero) element of the string is used to initialize bigval. Then for each succeeding element, bigval is replaced with (bigval's lower order 16 bits) x (the magic number) + (bigval's higher order 16 bits, padded with 16 zeros) + (the ascii value of the next character) and, after all the elements have been inserted into the mix, the mixer algorithm is cranked one more time. Finally, the lower order 16 bits (officially, the truncation of bigval back down to a 16 bit word) is returned. unsigned int i; long unsigned int bigval = S.Element(0); // S[0] or '\0' for (i = 1; i < S.Size(); ++i) bigval = ((bigval & 65535) * 18000) // low16 * magic_number + (bigval >> 16) // high16 + S[i]; bigval = ((bigval & 65535) * 18000) + (bigval >> 16); // bigval = low16 * magic_number + high16 return bigval & 65535; // return low16 This algorithm was developed by Professor George Marsaglia of FSU Statistics Department. It is one of the best known pseudo random number generators. The name "Marsaglia Mixer" is due to RC Lacher. Yikes, don't get caught in that thing. Improving and Using Pseudo Randomness The pseudo randomness of any hash function can be increased significantly, often dramatically, by the postprocessing trick of dividing by a (fairly large) prime number and taking the remainder as a hash value. (Also, there is likely an increase in enigma, as long as the prime number is kept secret. What is desirable for security, however, is a hash function with such good enigma that the hashing algorithm can be made public without compromising the security of signatures.) In fast access table applications, using hash functions, this post processing trick is always recommended and, in this course, always used. An automated version of the Sieve of Eratosthenes makes the discovery of large prime numbers convenient, as you will see when we study hash tables. For hash tables, the hash functions used in this course, consisting of the Marsaglia Mixer followed by large prime division, are world class. The post processing works similar to the following example. unsigned int hash_function (const T& t) unsigned int hval; // whatever unsigned int improved_hash_function (const T& t) return hash_function(t) % P; // P is a prime number The improved hash function has excellent pseudo randomness for most types T. Improving and Using Enigma Improving enigma, from the level of the Marsaglia Mixer up to a level appropriate for modern computer security, is a full time job somebody else's job. The National Institute of Standards and Technology (NIST) is a US government agency whose job (one of many) is to set standards and distribute technology for computer security products. The Secure Hashing Algorithm (SHA) and its successors, developed by NIST, are in wide use. SSH is a derivative of SHA. 3/5
4 Exactly how does a secure signature work? Let's look at passwords. The login process for a computer system is designed to accomplish two things, identification and authentication. A user is identified by the username and authenticated by a password. Authentication is the process of proving to the system that the identity entered by the user is in fact the identity of that user. Authentication gives the system "trust" that you are who you say you are. Authentication is accomplished by storing the hash value of the user's password. The key value, that is, the clear text of the user's password, is never stored. The system can only check passwords by computing the hash value of the entered password and comparing it with the stored value. If these two hash values agree, the user is authenticated by the system. Reference Applied Cryptography Protocols, Algorithms, and Source Code in C by Bruce Schneier. Marsaglia KISS As architectures have moved to full support of 64 bit words and these sizes: Size of bool Size of char Size of short Size of int Size of long = 1 bytes = 1 bytes = 2 bytes = 4 bytes = 8 bytes Size of unsigned char = 1 bytes Size of unsigned short = 2 bytes Size of unsigned int = 4 bytes Size of unsigned long = 8 bytes Size of float Size of double Size of long double = 4 bytes = 8 bytes = 16 bytes the need for 64 bit hash values has grown. The following is an upgrade of the MM to 64 bit: unsigned long Crank(unsigned long word) // requires sizeof(unsigned long) >= 8 word ^= (word << 13); word ^= (word >> 17); word ^= (word << 5); word = 69069*word ; unsigned long KISS (const char* S) size_t i, length; unsigned long bigval = 0; if (S) length = strlen(s); bigval = S[0]; for (i = 1; i < length; ++i) bigval = Crank(bigval) + S[i]; bigval = Crank(bigval); return bigval; Producing fast hash functions with good pseudo randomness is important for applications such as hash tables as well as esoteric areas such as experimental high energy physics. Producing hash functions with over the top excellent enigma is important for information security. Both of these areas are rich and active areas of research, in government (NIST primarily interested in security, National Labs primarily interested in randomness), universities, and the private sector. 4/5
5 5/5
Cryptography (Overview)
Cryptography (Overview) Some history Caesar cipher, rot13 substitution ciphers, etc. Enigma (Turing) Modern secret key cryptography DES, AES Public key cryptography RSA, digital signatures Cryptography
More informationKurose & Ross, Chapters (5 th ed.)
Kurose & Ross, Chapters 8.2-8.3 (5 th ed.) Slides adapted from: J. Kurose & K. Ross \ Computer Networking: A Top Down Approach (5 th ed.) Addison-Wesley, April 2009. Copyright 1996-2010, J.F Kurose and
More informationComputer Networks. Network Security and Ethics. Week 14. College of Information Science and Engineering Ritsumeikan University
Computer Networks Network Security and Ethics Week 14 College of Information Science and Engineering Ritsumeikan University Security Intro for Admins l Network administrators can break security into two
More informationח'/סיון/תשע "א. RSA: getting ready. Public Key Cryptography. Public key cryptography. Public key encryption algorithms
Public Key Cryptography Kurose & Ross, Chapters 8.28.3 (5 th ed.) Slides adapted from: J. Kurose & K. Ross \ Computer Networking: A Top Down Approach (5 th ed.) AddisonWesley, April 2009. Copyright 19962010,
More informationReview: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements
Review: Exam 1 9/20/06 CS150 Introduction to Computer Science 1 1 Your First C++ Program 1 //*********************************************************** 2 // File name: hello.cpp 3 // Author: Shereen Khoja
More informationDLD VIDYA SAGAR P. potharajuvidyasagar.wordpress.com. Vignana Bharathi Institute of Technology UNIT 1 DLD P VIDYA SAGAR
UNIT I Digital Systems: Binary Numbers, Octal, Hexa Decimal and other base numbers, Number base conversions, complements, signed binary numbers, Floating point number representation, binary codes, error
More informationMath 302 Introduction to Proofs via Number Theory. Robert Jewett (with small modifications by B. Ćurgus)
Math 30 Introduction to Proofs via Number Theory Robert Jewett (with small modifications by B. Ćurgus) March 30, 009 Contents 1 The Integers 3 1.1 Axioms of Z...................................... 3 1.
More informationMaciej Sobieraj. Lecture 1
Maciej Sobieraj Lecture 1 Outline 1. Introduction to computer programming 2. Advanced flow control and data aggregates Your first program First we need to define our expectations for the program. They
More informationLecture 30. Cryptography. Symmetric Key Cryptography. Key Exchange. Advanced Encryption Standard (AES) DES. Security April 11, 2005
Lecture 30 Security April 11, 2005 Cryptography K A ciphertext Figure 7.3 goes here K B symmetric-key crypto: sender, receiver keys identical public-key crypto: encrypt key public, decrypt key secret Symmetric
More informationBits and Bytes. Bit Operators in C/C++
Bits and Bytes The byte is generally the smallest item of storage that is directly accessible in modern computers, and symbiotically the byte is the smallest item of storage used by modern programming
More informationEncryption. INST 346, Section 0201 April 3, 2018
Encryption INST 346, Section 0201 April 3, 2018 Goals for Today Symmetric Key Encryption Public Key Encryption Certificate Authorities Secure Sockets Layer Simple encryption scheme substitution cipher:
More informationData Encryption Standard (DES)
Data Encryption Standard (DES) Best-known symmetric cryptography method: DES 1973: Call for a public cryptographic algorithm standard for commercial purposes by the National Bureau of Standards Goals:
More informationComputer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2
Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up
More informationChapter 8 Security. Computer Networking: A Top Down Approach. 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012
Chapter 8 Security A note on the use of these ppt slides: We re making these slides freely available to all (faculty, students, readers). They re in PowerPoint form so you see the animations; and can add,
More informationBasic Concepts and Definitions. CSC/ECE 574 Computer and Network Security. Outline
CSC/ECE 574 Computer and Network Security Topic 2. Introduction to Cryptography 1 Outline Basic Crypto Concepts and Definitions Some Early (Breakable) Cryptosystems Key Issues 2 Basic Concepts and Definitions
More informationDigital Signatures. KG November 3, Introduction 1. 2 Digital Signatures 2
Digital Signatures KG November 3, 2017 Contents 1 Introduction 1 2 Digital Signatures 2 3 Hash Functions 3 3.1 Attacks.................................... 4 3.2 Compression Functions............................
More informationReals 1. Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method.
Reals 1 13 Reals Floating-point numbers and their properties. Pitfalls of numeric computation. Horner's method. Bisection. Newton's method. 13.1 Floating-point numbers Real numbers, those declared to be
More informationLecture 10, Zero Knowledge Proofs, Secure Computation
CS 4501-6501 Topics in Cryptography 30 Mar 2018 Lecture 10, Zero Knowledge Proofs, Secure Computation Lecturer: Mahmoody Scribe: Bella Vice-Van Heyde, Derrick Blakely, Bobby Andris 1 Introduction Last
More informationCS 261 Fall Mike Lam, Professor Integer Encodings
CS 261 Fall 2018 Mike Lam, Professor https://xkcd.com/571/ Integer Encodings Integers Topics C integer data types Unsigned encoding Signed encodings Conversions Integer data types in C99 1 byte 2 bytes
More informationChapter 6: Contemporary Symmetric Ciphers
CPE 542: CRYPTOGRAPHY & NETWORK SECURITY Chapter 6: Contemporary Symmetric Ciphers Dr. Lo ai Tawalbeh Computer Engineering Department Jordan University of Science and Technology Jordan Why Triple-DES?
More informationA Mathematical Proof. Zero Knowledge Protocols. Interactive Proof System. Other Kinds of Proofs. When referring to a proof in logic we usually mean:
A Mathematical Proof When referring to a proof in logic we usually mean: 1. A sequence of statements. 2. Based on axioms. Zero Knowledge Protocols 3. Each statement is derived via the derivation rules.
More informationZero Knowledge Protocols. c Eli Biham - May 3, Zero Knowledge Protocols (16)
Zero Knowledge Protocols c Eli Biham - May 3, 2005 442 Zero Knowledge Protocols (16) A Mathematical Proof When referring to a proof in logic we usually mean: 1. A sequence of statements. 2. Based on axioms.
More informationPublic Key Algorithms
Public Key Algorithms 1 Public Key Algorithms It is necessary to know some number theory to really understand how and why public key algorithms work Most of the public key algorithms are based on modular
More informationNetwork Working Group. Category: Standards Track September The SRP Authentication and Key Exchange System
Network Working Group T. Wu Request for Comments: 2945 Stanford University Category: Standards Track September 2000 Status of this Memo The SRP Authentication and Key Exchange System This document specifies
More informationMessage Authentication and Hash function 2
Message Authentication and Hash function 2 Concept and Example 1 SHA : Secure Hash Algorithm Four secure hash algorithms, SHA-11, SHA-256, SHA-384, and SHA-512. All four of the algorithms are iterative,
More informationIntroduction to Modern Cryptography. Benny Chor
Introduction to Modern Cryptography Benny Chor Identification (User Authentication) Fiat-Shamir Scheme Lecture 12 Tel-Aviv University 4 January 2010 Model and Major Issues Alice wishes to prove to Bob
More informationPhysics 306 Computing Lab 5: A Little Bit of This, A Little Bit of That
Physics 306 Computing Lab 5: A Little Bit of This, A Little Bit of That 1. Introduction You have seen situations in which the way numbers are stored in a computer affects a program. For example, in the
More informationKinds Of Data CHAPTER 3 DATA REPRESENTATION. Numbers Are Different! Positional Number Systems. Text. Numbers. Other
Kinds Of Data CHAPTER 3 DATA REPRESENTATION Numbers Integers Unsigned Signed Reals Fixed-Point Floating-Point Binary-Coded Decimal Text ASCII Characters Strings Other Graphics Images Video Audio Numbers
More informationComputers and Security
The contents of this Supporting Material document have been prepared from the Eight units of study texts for the course M150: Date, Computing and Information, produced by The Open University, UK. Copyright
More informationCSci 1113, Fall 2015 Lab Exercise 4 (Week 5): Write Your Own Functions. User Defined Functions
CSci 1113, Fall 2015 Lab Exercise 4 (Week 5): Write Your Own Functions User Defined Functions In previous labs, you've encountered useful functions, such as sqrt() and pow(), that were created by other
More informationModular Arithmetic. is just the set of remainders we can get when we divide integers by n
20181004 Modular Arithmetic We are accustomed to performing arithmetic on infinite sets of numbers. But sometimes we need to perform arithmetic on a finite set, and we need it to make sense and be consistent
More informationOutput: For each size provided as input, a figure of that size is to appear, followed by a blank line.
Problem 1: Divisor Differences Develop a program that, given integers m and k satisfying m > k > 0, lists every pair of positive integers (i,j) such that j i = k and both i and j are divisors of m. Input:
More informationLab 6. Review of Variables, Formatting & Loops By: Dr. John Abraham, Professor, UTPA
Variables: Lab 6 Review of Variables, Formatting & Loops By: Dr. John Abraham, Professor, UTPA We learned that a variable is a name assigned to the first byte of the necessary memory to store a value.
More informationProgramming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Programming in C++ Indian Institute of Technology, Kharagpur
Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Programming in C++ Indian Institute of Technology, Kharagpur Lecture 14 Default Parameters and Function Overloading
More informationTLSnotary - a mechanism for independently audited https sessions
TLSnotary - a mechanism for independently audited https sessions September 10, 2014 1 Abstract TLSnotary allows a client to provide evidence to a third party auditor that certain web traffic occurred between
More informationThe type of all data used in a C++ program must be specified
The type of all data used in a C++ program must be specified A data type is a description of the data being represented That is, a set of possible values and a set of operations on those values There are
More informationScientific Computing: An Introductory Survey
Scientific Computing: An Introductory Survey Chapter 13 Random Numbers and Stochastic Simulation Prof. Michael T. Heath Department of Computer Science University of Illinois at Urbana-Champaign Copyright
More informationPart I Anton Gerdelan
Hash Part I Anton Gerdelan Review labs - pointers and pointers to pointers memory allocation easier if you remember char* and char** are just basic ptr variables that hold an address
More informationLecture 5: Arithmetic and Algebra Steven Skiena. skiena
Lecture 5: Arithmetic and Algebra Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena How Long is Long? Today s PCs are
More informationCrypto for Hackers. Eijah. v1.00 August 7 th, 2015
Crypto for Hackers Eijah v1.00 August 7 th, 2015 Hello World Shall we play a game? Joshua/WOPR Who am I? Founder Programmer Hacker 4 Last year at Defcon Saving Cyberspace by Reinventing File Sharing We
More informationSuccessful vs. Unsuccessful
Hashing Search Given: Distinct keys k 1, k 2,, k n and collection T of n records of the form (k 1, I 1 ), (k 2, I 2 ),, (k n, I n ) where I j is the information associated with key k j for 1
More informationReview of Data Representation & Binary Operations Dhananjai M. Rao CSA Department Miami University
Review of Data Representation & Binary Operations Dhananjai M. Rao () CSA Department Miami University 1. Introduction In digital computers all data including numbers, characters, and strings are ultimately
More information1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM
1. NUMBER SYSTEMS USED IN COMPUTING: THE BINARY NUMBER SYSTEM 1.1 Introduction Given that digital logic and memory devices are based on two electrical states (on and off), it is natural to use a number
More informationSecurity+ Guide to Network Security Fundamentals, Third Edition. Chapter 11 Basic Cryptography
Security+ Guide to Network Security Fundamentals, Third Edition Chapter 11 Basic Cryptography Objectives Define cryptography Describe hashing List the basic symmetric cryptographic algorithms 2 Objectives
More informationCore Security Services and Bootstrapping in the Cherubim Security System
Core Security Services and Bootstrapping in the Cherubim Security System Charles Willis cfwillis@uiuc.edu Technical Report 2 July 1998 University of Illinois at Urbana-Champaign Department of Computer
More informationCSCI 454/554 Computer and Network Security. Topic 2. Introduction to Cryptography
CSCI 454/554 Computer and Network Security Topic 2. Introduction to Cryptography Outline Basic Crypto Concepts and Definitions Some Early (Breakable) Cryptosystems Key Issues 2 Basic Concepts and Definitions
More informationTest 2 Review. (b) Give one significant advantage of a nonce over a timestamp.
Test 2 Review Name Student ID number Notation: {X} Bob Apply Bob s public key to X [Y ] Bob Apply Bob s private key to Y E(P, K) Encrypt P with symmetric key K D(C, K) Decrypt C with symmetric key K h(x)
More informationLearning Log Title: CHAPTER 3: ARITHMETIC PROPERTIES. Date: Lesson: Chapter 3: Arithmetic Properties
Chapter 3: Arithmetic Properties CHAPTER 3: ARITHMETIC PROPERTIES Date: Lesson: Learning Log Title: Date: Lesson: Learning Log Title: Chapter 3: Arithmetic Properties Date: Lesson: Learning Log Title:
More informationOutline. Cryptography. Encryption/Decryption. Basic Concepts and Definitions. Cryptography vs. Steganography. Cryptography: the art of secret writing
Outline CSCI 454/554 Computer and Network Security Basic Crypto Concepts and Definitions Some Early (Breakable) Cryptosystems Key Issues Topic 2. Introduction to Cryptography 2 Cryptography Basic Concepts
More informationRethinking Authentication. Steven M. Bellovin
Rethinking Authentication Steven M. https://www.cs.columbia.edu/~smb Why? I don t think we understand the real security issues with authentication Our defenses are ad hoc I regard this as a step towards
More informationC++ Basics. Brian A. Malloy. References Data Expressions Control Structures Functions. Slide 1 of 24. Go Back. Full Screen. Quit.
C++ Basics January 19, 2012 Brian A. Malloy Slide 1 of 24 1. Many find Deitel quintessentially readable; most find Stroustrup inscrutable and overbearing: Slide 2 of 24 1.1. Meyers Texts Two excellent
More informationKey Exchange. References: Applied Cryptography, Bruce Schneier Cryptography and Network Securiy, Willian Stallings
Key Exchange References: Applied Cryptography, Bruce Schneier Cryptography and Network Securiy, Willian Stallings Outlines Primitives Root Discrete Logarithm Diffie-Hellman ElGamal Shamir s Three Pass
More informationCryptography. What is Cryptography?
Cryptography What is Cryptography? Cryptography is the discipline of encoding and decoding messages. It has been employed in various forms for thousands of years, and, whether or not you know it, is used
More informationCryptography. Summer Term 2010
Cryptography Summer Term 2010 Harald Baier Chapter 3: Pseudo Random Bit Generators and Stream Ciphers Contents Random bits and pseudo random bits Stream ciphers Harald Baier Cryptography h_da, Summer Term
More informationData Types and Variables in C language
Data Types and Variables in C language Disclaimer The slides are prepared from various sources. The purpose of the slides is for academic use only Operators in C C supports a rich set of operators. Operators
More informationSecurity: Cryptography
Security: Cryptography Computer Science and Engineering College of Engineering The Ohio State University Lecture 38 Some High-Level Goals Confidentiality Non-authorized users have limited access Integrity
More informationCIT 590 Homework 6 Fractions
CIT 590 Homework 6 Fractions Purposes of this assignment: Get you started in Java and Eclipse Get you comfortable using objects in Java Start looking at some common object uses in Java. General Idea of
More informationASYMMETRIC (PUBLIC-KEY) ENCRYPTION. Mihir Bellare UCSD 1
ASYMMETRIC (PUBLIC-KEY) ENCRYPTION Mihir Bellare UCSD 1 Recommended Book Steven Levy. Crypto. Penguin books. 2001. A non-technical account of the history of public-key cryptography and the colorful characters
More informationTest 2 Review. 1. (10 points) Timestamps and nonces are both used in security protocols to prevent replay attacks.
Test 2 Review Name Student ID number Notation: {X} Bob Apply Bob s public key to X [Y ] Bob Apply Bob s private key to Y E(P, K) Encrypt P with symmetric key K D(C, K) Decrypt C with symmetric key K h(x)
More informationPassword. authentication through passwords
Password authentication through passwords Human beings Short keys; possibly used to generate longer keys Dictionary attack: adversary tries more common keys (easy with a large set of users) Trojan horse
More informationCOMP4128 Programming Challenges
Multi- COMP4128 Programming Challenges School of Computer Science and Engineering UNSW Australia Table of Contents 2 Multi- 1 2 Multi- 3 3 Multi- Given two strings, a text T and a pattern P, find the first
More informationP2_L8 - Hashes Page 1
P2_L8 - Hashes Page 1 Reference: Computer Security by Stallings and Brown, Chapter 21 In this lesson, we will first introduce the birthday paradox and apply it to decide the length of hash, in order to
More informationCS61A Lecture #39: Cryptography
Announcements: CS61A Lecture #39: Cryptography Homework 13 is up: due Monday. Homework 14 will be judging the contest. HKN surveys on Friday: 7.5 bonus points for filling out their survey on Friday (yes,
More informationCS Computer Networks 1: Authentication
CS 3251- Computer Networks 1: Authentication Professor Patrick Traynor 4/14/11 Lecture 25 Announcements Homework 3 is due next class. Submit via T-Square or in person. Project 3 has been graded. Scores
More informationUser Authentication. Modified By: Dr. Ramzi Saifan
User Authentication Modified By: Dr. Ramzi Saifan Authentication Verifying the identity of another entity Computer authenticating to another computer Person authenticating to a local/remote computer Important
More informationDr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010
CS 494/594 Computer and Network Security Dr. Jinyuan (Stella) Sun Dept. of Electrical Engineering and Computer Science University of Tennessee Fall 2010 1 Public Key Cryptography Modular Arithmetic RSA
More informationprintf( Please enter another number: ); scanf( %d, &num2);
CIT 593 Intro to Computer Systems Lecture #13 (11/1/12) Now that we've looked at how an assembly language program runs on a computer, we're ready to move up a level and start working with more powerful
More informationCryptography Functions
Cryptography Functions Lecture 3 1/29/2013 References: Chapter 2-3 Network Security: Private Communication in a Public World, Kaufman, Perlman, Speciner Types of Cryptographic Functions Secret (Symmetric)
More informationComputer Science 136 Spring 2004 Professor Bruce. Final Examination May 19, 2004
Computer Science 136 Spring 2004 Professor Bruce Final Examination May 19, 2004 Question Points Score 1 10 2 8 3 15 4 12 5 12 6 8 7 10 TOTAL 65 Your name (Please print) I have neither given nor received
More information2.2 - Making Decisions
2.2 - Making Decisions So far we have only made programs that execute the statements in order, starting with the statements at the top of the screen and moving down. However, you can write programs that
More informationUNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering. Introduction to Cryptography ECE 597XX/697XX
UNIVERSITY OF MASSACHUSETTS Dept. of Electrical & Computer Engineering Introduction to Cryptography ECE 597XX/697XX Part 10 Digital Signatures Israel Koren ECE597/697 Koren Part.10.1 Content of this part
More informationBits, Words, and Integers
Computer Science 52 Bits, Words, and Integers Spring Semester, 2017 In this document, we look at how bits are organized into meaningful data. In particular, we will see the details of how integers are
More informationLecture 16. Reading: Weiss Ch. 5 CSE 100, UCSD: LEC 16. Page 1 of 40
Lecture 16 Hashing Hash table and hash function design Hash functions for integers and strings Collision resolution strategies: linear probing, double hashing, random hashing, separate chaining Hash table
More informationHashing. October 19, CMPE 250 Hashing October 19, / 25
Hashing October 19, 2016 CMPE 250 Hashing October 19, 2016 1 / 25 Dictionary ADT Data structure with just three basic operations: finditem (i): find item with key (identifier) i insert (i): insert i into
More informationHashing. Manolis Koubarakis. Data Structures and Programming Techniques
Hashing Manolis Koubarakis 1 The Symbol Table ADT A symbol table T is an abstract storage that contains table entries that are either empty or are pairs of the form (K, I) where K is a key and I is some
More informationEEC-682/782 Computer Networks I
EEC-682/782 Computer Networks I Lecture 23 Wenbing Zhao wenbingz@gmail.com http://academic.csuohio.edu/zhao_w/teaching/eec682.htm (Lecture nodes are based on materials supplied by Dr. Louise Moser at UCSB
More informationExam Informatik D-MATH/D-PHYS :00 11:00
Exam Informatik D-MATH/D-PHYS 25. 1. 2013 09:00 11:00 Dr. Bernd Gartner Examinee: Last name:... First name:... Stud. no.:... With my signature I attest, that I was able to sit the exam under regular conditions
More informationCMSC 341 Lecture 16/17 Hashing, Parts 1 & 2
CMSC 341 Lecture 16/17 Hashing, Parts 1 & 2 Prof. John Park Based on slides from previous iterations of this course Today s Topics Overview Uses and motivations of hash tables Major concerns with hash
More informationCrypto-systems all around us ATM machines Remote logins using SSH Web browsers (https invokes Secure Socket Layer (SSL))
Introduction (Mihir Bellare Text/Notes: http://cseweb.ucsd.edu/users/mihir/cse207/) Cryptography provides: Data Privacy Data Integrity and Authenticity Crypto-systems all around us ATM machines Remote
More informationSECURITY IN NETWORKS
SECURITY IN NETWORKS GOALS Understand principles of network security: Cryptography and its many uses beyond con dentiality Authentication Message integrity WHAT IS NETWORK SECURITY? Con dentiality: only
More informationTHE LOGIC OF COMPOUND STATEMENTS
CHAPTER 2 THE LOGIC OF COMPOUND STATEMENTS Copyright Cengage Learning. All rights reserved. SECTION 2.5 Application: Number Systems and Circuits for Addition Copyright Cengage Learning. All rights reserved.
More informationExcerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997
Excerpt from: Stephen H. Unger, The Essence of Logic Circuits, Second Ed., Wiley, 1997 APPENDIX A.1 Number systems and codes Since ten-fingered humans are addicted to the decimal system, and since computers
More informationAlgorithms (III) Yu Yu. Shanghai Jiaotong University
Algorithms (III) Yu Yu Shanghai Jiaotong University Review of the Previous Lecture Factoring: Given a number N, express it as a product of its prime factors. Many security protocols are based on the assumed
More informationOne of the most important areas where quantifier logic is used is formal specification of computer programs.
Section 5.2 Formal specification of computer programs One of the most important areas where quantifier logic is used is formal specification of computer programs. Specification takes place on several levels
More informationMatrices. A Matrix (This one has 2 Rows and 3 Columns) To add two matrices: add the numbers in the matching positions:
Matrices A Matrix is an array of numbers: We talk about one matrix, or several matrices. There are many things we can do with them... Adding A Matrix (This one has 2 Rows and 3 Columns) To add two matrices:
More informationAlgorithms (III) Yijia Chen Shanghai Jiaotong University
Algorithms (III) Yijia Chen Shanghai Jiaotong University Review of the Previous Lecture Factoring: Given a number N, express it as a product of its prime factors. Many security protocols are based on the
More informationASYMMETRIC (PUBLIC-KEY) ENCRYPTION. Mihir Bellare UCSD 1
ASYMMETRIC (PUBLIC-KEY) ENCRYPTION Mihir Bellare UCSD 1 Recommended Book Steven Levy. Crypto. Penguin books. 2001. A non-technical account of the history of public-key cryptography and the colorful characters
More informationDistributed Systems. 26. Cryptographic Systems: An Introduction. Paul Krzyzanowski. Rutgers University. Fall 2015
Distributed Systems 26. Cryptographic Systems: An Introduction Paul Krzyzanowski Rutgers University Fall 2015 1 Cryptography Security Cryptography may be a component of a secure system Adding cryptography
More informationOther Uses of Cryptography. Cryptography Goals. Basic Problem and Terminology. Other Uses of Cryptography. What Can Go Wrong? Why Do We Need a Key?
ryptography Goals Protect private communication in the public world and are shouting messages over a crowded room no one can understand what they are saying 1 Other Uses of ryptography Authentication should
More informationBits and Bytes. Data Representation. A binary digit or bit has a value of either 0 or 1; these are the values we can store in hardware devices.
Bits and Bytes 1 A binary digit or bit has a value of either 0 or 1; these are the values we can store in hardware devices. A byte is a sequence of 8 bits. A byte is also the fundamental unit of storage
More informationLAB 7 Writing Assembly Code
Goals To Do LAB 7 Writing Assembly Code Learn to program a processor at the lowest level. Implement a program that will be used to test your own MIPS processor. Understand different addressing modes of
More informationUser Authentication. Modified By: Dr. Ramzi Saifan
User Authentication Modified By: Dr. Ramzi Saifan Authentication Verifying the identity of another entity Computer authenticating to another computer Person authenticating to a local/remote computer Important
More informationEncryption Providing Perfect Secrecy COPYRIGHT 2001 NON-ELEPHANT ENCRYPTION SYSTEMS INC.
Encryption Providing Perfect Secrecy Presented at Calgary Unix Users Group. November 27, 2001 by: Mario Forcinito, PEng, PhD With many thanks to Prof. Aiden Bruen from the Mathematics Department, University
More information1 Security quizz [5 points]
Université de Nice-Sophia Antipolis M1 Info Cryptography & security 2017 2018 Nom : Pr enom : Examen de december 2017 Durée : 1h30 Note : The exam contains independant parts. Please answer directely on
More informationProject 3: RPN Calculator
ECE267 @ UIC, Spring 2012, Wenjing Rao Project 3: RPN Calculator What to do: Ask the user to input a string of expression in RPN form (+ - * / ), use a stack to evaluate the result and display the result
More informationCSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University. Name: ID#: Section #: Score: / 4
CSE 215: Foundations of Computer Science Recitation Exercises Set #4 Stony Brook University Name: ID#: Section #: Score: / 4 Unit 7: Direct Proof Introduction 1. The statement below is true. Rewrite the
More informationUNIT 1: INTEGERS Definition Absolute Value of an integer How to compare integers
UNIT 1: INTEGERS 1.1. Definition Integers are the set of whole numbers and their opposites. The number line is used to represent integers. This is shown below. The number line goes on forever in both directions.
More informationReal Numbers finite subset real numbers floating point numbers Scientific Notation fixed point numbers
Real Numbers We have been studying integer arithmetic up to this point. We have discovered that a standard computer can represent a finite subset of the infinite set of integers. The range is determined
More informationcs109: Programming Paradigms C++ FS 2015
UNIVERSITÄT BASEL Thorsten Möller Alexander Haesen Mihai Rapcea cs109: Programming Paradigms C++ FS 2015 Exercise 1 Deadline: 29.03.2015 23:59:59 Note: Please upload answers to the questions and source
More informationCS3235 Seventh set of lecture slides
CS3235 Seventh set of lecture slides Hugh Anderson National University of Singapore School of Computing October, 2007 Hugh Anderson CS3235 Seventh set of lecture slides 1 Warp 9... Outline 1 Public Key
More information