450 likes | 627 Vues
EE 6331, Spring, 2009 Advanced Telecommunication. Zhu Han Department of Electrical and Computer Engineering Class 20 Apr. 9 th , 2009. Outline. Review ARQ Linear Code Scrambler Cyclic Code Encryption Basics. Automatic Repeat-reQuest (ARQ). Alice and Bob on their cell phones
E N D
EE 6331, Spring, 2009Advanced Telecommunication Zhu Han Department of Electrical and Computer Engineering Class 20 Apr. 9th, 2009
Outline Review ARQ Linear Code Scrambler Cyclic Code Encryption Basics ECE6331
Automatic Repeat-reQuest (ARQ) • Alice and Bob on their cell phones • Both Alice and Bob are talking • What if Alice couldn’t understand Bob? • Bob asks Alice to repeat what she said • What if Bob hasn’t heard Alice for a while? • Is Alice just being quiet? • Or, have Bob and Alice lost reception? • How long should Bob just keep on talking? • Maybe Alice should periodically say “uh huh” • … or Bob should ask “Can you hear me now?” ECE6331
Error Correcting Codes • Adding redundancy to the original message • To detect and correct errors • Crucial when it’s impossible to resend the message (interplanetary communications, storage..) and when the channel is very noisy (wireless communication) Message = [1 1 1 1] Message = [1 1 0 1] Noise = [0 0 1 0] ECE6331
Parity Check • Add one bit so that xor of all bit is zero • Send, correction, miss • Add vertically or horizontally • Applications: ASCII, Serial port transmission ECE6331
Even More Dots Allows: Error DETECTION for Hamming Distance = 2. Error CORRECTION for Hamming Distance =1. • For Hamming distances greater than 2 an error gives a false correction. • For Hamming distance of 2 there is an error detected, but it can not be corrected. ECE6331
Another Example: Encoding To encode our message But why? we multiply this matrix You can verify that: Hamming[1 0 0 0]=[1 0 0 0 0 1 1] Hamming[0 1 0 0]=[0 1 0 0 1 0 1] Hamming[0 0 1 0]=[0 0 1 0 1 1 0] Hamming[0 0 0 1]=[0 0 0 1 1 1 1] By our message Where multiplication is the logical AND And addition is the logical XOR ECE6331
Example: Add noise • If our message is Message = [0 1 1 0] • Our Multiplying yields Code = [0 1 1 0 0 1 1] Lets add an error, so Pick a digit to mutate Code => [0 1 0 0 0 1 1] ECE6331
Example: Testing the message The matrix used to decode is: To test if a code is valid: • Does Decoder*CodeT =[0 0 0] • Yes means its valid • No means it has error/s • We receive the erroneous string: Code = [0 1 0 0 0 1 1] • We test it: Decoder*CodeT =[0 1 1] • And indeed it has an error ECE6331
Example: Repairing the message • To repair the code we find the collumn in the decoder matrix whose elements are the row results of the test vector • We then change • We trim our received code by 3 elements and we have our original message. [0 1 1 0 0 1 1] => [0 1 1 0] • Decoder*codeT is [ 0 1 1] • This is the third element of our code • Our repaired code is [0 1 1 0 0 1 1] ECE6331
Coding Gain Example ECE6331
ARQ, FEC, HEC • ARQ • Forward Error Correction (error correct coding) • Hybrid Error Correction Error detection code tx rx ACK/NACK Error correction code tx rx Error detection/ Correction code tx rx ACK/NACK ECE6331
Important Hamming Codes • Hamming (7,4,3)-code. It has 16 codewords of length 7. It can be used to send 27=128 messages and can be used to correct1 error. • Golay (23,12,7) -code. It has 4 096 codewords. It can be usedto transmit 8 3888 608 messages and can correct 3 errors. • Quadratic residue (47,24,11)-code. It has16 777 216codewords and can be used to transmit 140 737 488 355 238messages and correct 5 errors. ECE6331
Reed–Muller code ECE6331
Scrambling • Example 7.2 • Exercise: 100000000000 ECE6331
Scrambling Example • Scrambler • Descrambler ECE6331
Cyclic code • Cyclic codes are of interest and importance because • They posses rich algebraic structure that can be utilized in a variety of ways. • They have extremely concise specifications. • They can be efficiently implemented using simple shift register • Many practically important codes are cyclic • In practice, cyclic codes are often used for error detection (Cyclic redundancy check, CRC) • Used for packet networks • When an error is detected by the receiver, it requests retransmission • ARQ ECE6331
BASICDEFINITION of Cyclic Code ECE6331
FREQUENCY of CYCLIC CODES ECE6331
EXAMPLE of a CYCLIC CODE ECE6331
POLYNOMIALS over GF(q) ECE6331
EXAMPLE ECE6331
Cyclic Code Encoder ECE6331
Cyclic Code Decoder • Divider • Similar structure as multiplier for encoder ECE6331
Cyclic Redundancy Checks (CRC) ECE6331
Example of CRC ECE6331
Checking for errors ECE6331
Capability of CRC • An error E(X) is undetectable if it is divisible by G(x). The following can be detected. • All single-bit errors if G(x) has more than one nonzero term • All double-bit errors if G(x) has a factor with three terms • Any odd number of errors, if P(x) contain a factor x+1 • Any burst with length less or equal to n-k • A fraction of error burst of length n-k+1; the fraction is 1-2^(-(-n-k-1)). • A fraction of error burst of length greater than n-k+1; the fraction is 1-2^(-(n-k)). • Powerful error detection; more computation complexity compared to Internet checksum ECE6331
BCH Code • Bose, Ray-Chaudhuri, Hocquenghem • Multiple error correcting ability • Ease of encoding and decoding • Page 653 • Most powerful cyclic code • For any positive integer m and t<2^(m-1), there exists a t-error correcting (n,k) code with n=2^m-1 and n-k<=mt. • Industry standards • (511, 493) BCH code in ITU-T. Rec. H.261 “video codec for audiovisual service at kbit/s” a video coding a standard used for video conferencing and video phone. • (40, 32) BCH code in ATM (Asynchronous Transfer Mode) ECE6331
BCH Performance ECE6331
Reed-Solomon Codes • An important subclass of non-binary BCH • Page 654 • Wide range of applications • Storage devices (tape, CD, DVD…) • Wireless or mobile communication • Satellite communication • Digital television/Digital Video Broadcast(DVB) • High-speed modems (ADSL, xDSL…) ECE6331
1971: Mariner 9 • Mariner 9 used a [32,6,16] Reed-Mullercode to transmit its grey images of Mars. camera rate: 100,000 bits/second transmission speed:16,000 bits/second ECE6331
1979+: Voyagers I & II • Voyagers I & II used a [24,12,8] Golay code to send its color images of Jupiter and Saturn. • Voyager 2 traveled further to Uranus and Neptune. Because of the higher error rate it switched to the more robust Reed-Solomon code. ECE6331
Modern Codes • More recently Turbo codeswere invented, which are used in 3G cell phones, (future) satellites,and in the Cassini-Huygens spaceprobe [1997–]. • Other modern codes: Fountain, Raptor, LT, online codes… • Next, next class ECE6331
Error Correcting Codes imperfectness of a given code as the difference between the code's required Eb/No to attain a given word error probability (Pw), and the minimum possible Eb/No required to attain the same Pw, as implied by the sphere-packing bound for codes with the same block size k and code rate r. ECE6331
Encryption • Encryption is a translation of data into a secret code. Encryption is the most effective way to achieve data security. To read an encrypted file, you must have access to a secret key that enables you to decrypt it. Unencrypted data is called plain text; encrypted data is referred to as cipher (text). • Encryption can be used to ensure secrecy, but other techniques are still needed to make communications secure: authentication, authorization, and message integrity. • Message integrity - both parties will always wish to be confident that a message has not been altered during transmission. The encryption makes it difficult for a third party to read a message, but that third party may still be able to alter it in a useful way. • Authentication is a way to ensure users are who they say they are - that the user who attempts to perform functions in a system is in fact the user who is authorized to do so. • Authorization protects computer resources (data, files, programs, devices) by allowing those resources to be used by resource consumers having been granted authority to use them. • Digital rights management etc. ECE6331
Encryption – cipher taxonomy CIPHERS ROTORMACHINES CLASSICALCIPHERS MODERN CIPHERS PRIVATE KEY SUPERPOSITION PUBLIC KEY Quantum CIPHERS TRANSPOSITION ECE6331
Transposition Method • Da Vinci’s code • Ex. I am a student I m s u e t a a t d n ECE6331
Substitution Method • Shift Cipher (Caesar’s Cipher) I CAME I SAW I CONQUERED H BZLD H TZV H BNMPTDSDC Julius Caesar to communicate with his army Language, wind talker ECE6331
Rotor Machine • The primary component is a set of rotors, also termed wheels or drums, which are rotating disks with an array of electrical contacts on either side. The wiring between the contacts implements a fixed substitution of letters, scrambling them in some complex fashion. On its own, this would offer little security; however, after encrypting each letter, the rotors advance positions, changing the substitution. By this means, a rotor machine produces a complex polyalphabetic substitution cipher. • German Enigma machine used during World War II for submarine. Movie U571, Italian Job ECE6331
Key ECE6331
Public Key System - RSA • Named after its inventors Ron Rivest, Adi Shamir and Len Adleman • Base on Number Theory y=ex (mod N) => x=?? • If the size of N is 100, it takes 100 billion years to decipher with 1GHz computer. • Applications • Digital Signatures • Digital Cash: Movie, swordfish • Timestamping Services: Movie, entrapment • Election • Movie, mercury rising ECE6331
Encryption – cipher taxonomy • Historical pen and paper ciphers used in the past are sometimes known as classical ciphers. They include substitution ciphers and transposition ciphers. • During the early 20th century, more sophisticated machines for encryption were used, rotor machines, which were more complex than previous schemes. • Encryption methods can be divided into symmetric key algorithms and asymmetric key algorithms. In a symmetric key algorithm (DES, AES), the sender and receiver must have a shared key set up in advance and kept secret from all other parties; the sender uses this key for encryption, and the receiver uses the same key for decryption. • In an asymmetric key algorithm(RSA), there are two separate keys: a public key is published and enables any sender to perform encryption, while a private key is kept secret by the receiver and enables him to perform decryption. ECE6331
Quantum Cryptography • Use physics law, if the signal is measured (eavesdropped), the receiver can always detected. ECE6331
Mission is really impossible When you see it, the information has been already changed ECE6331