In the early days of satellite television, the video signals weren't encrypted and anyone with a satellite dish could watch whatever was being shown. Well, this didn't work because all of the networks using satellites didn't want the satellite dish owners to be able to receive their satellite feed for no cost while cable subscribers had to pay for the channel, they were losing money. So, they started encrypting the video signal with a system called Videocipher (later replaced by Videocipher II).
What the Videocipher encryption system did was to convert the signal into digital form, encrypt it, and send the data over the satellite. If the satellite dish owner had a Videocipher box, and paid for the channel, then the box would descramble (unencrypt) the signal and return it to its original, useful form.
This was done by using a key that was invertible. It was very important that they key be invertible, or there would be no way to return the encrypted data to its original form.
The same thing can be done using matrices.
Encryption Process
- Convert the text of the message into a stream of numerical values.
- Place the data into a matrix.
- Multiply the data by the encoding matrix.
- Convert the matrix into a stream of numerical values that contains the encrypted message.
Example
Consider the message "Red Rum"
A message is converted into numeric form according to some scheme. The easiest scheme is to let space=0, A=1, B=2, ..., Y=25, and Z=26. For example, the message "Red Rum" would become 18, 5, 4, 0, 18, 21, 13.
This data was placed into matrix form. The size of the matrix depends on the size of the encryption key. Let's say that our encryption matrix (encoding matrix) is a 2x2 matrix. Since I have seven pieces of data, I would place that into a 4x2 matrix and fill the last spot with a space to make the matrix complete. Let's call the original, unencrypted data matrix A.
18 | 5 | ||||||||||||
A = | 4 | 0 | |||||||||||
18 | 21 | ||||||||||||
13 | 0 |
There is an invertible matrix which is called the encryption matrix or the encoding matrix. We'll call it matrix B. Since this matrix needs to be invertible, it must be square.
This could really be anything, it's up to the person encrypting the matrix. I'll use this matrix.
B = | 4 | -2 | |||||||||
-1 | 3 |
The unencrypted data is then multiplied by our encoding matrix. The result of this multiplication is the matrix containing the encrypted data. We'll call it matrix X.
67 | -21 | |||||||||||
X = A B = | 16 | -8 | ||||||||||
51 | 27 | |||||||||||
52 | -26 |
The message that you would pass on to the other person is the the stream of numbers 67, -21, 16, -8, 51, 27, 52, -26.
Decryption Process
- Place the encrypted stream of numbers that represents an encrypted message into a matrix.
- Multiply by the decoding matrix. The decoding matrix is the inverse of the encoding matrix.
- Convert the matrix into a stream of numbers.
- Conver the numbers into the text of the original message.
Example
The message you need to decipher is in the encrypted data stream 67, -21, 16, -8, 51, 27, 52, -26.
The encryption matrix is not transmitted. It is known by the receiving party so that they can decrypt the message. Other times, the inverse is known by the receiving party. The encryption matrix can not be sent with the data, otherwise anyone could grab the data and decode the information. Also, by not having the decoding matrix, someone intercepting the message doesn't know what size of matrix to use.
The receiving end gets the encrypted message and places it into matrix form.
67 | -21 | ||||||||||
X = | 16 | -8 | |||||||||
51 | 27 | ||||||||||
52 | -26 |
The receiver must calculate the inverse of the encryption matrix. This would be the decryption matrix or the decoding matrix.
B-1 = | 0.3 | 0.2 | |||||||
0.1 | 0.4 |
The receiver then multiplies the encrypted data by the inverse of the encryption matrix. The result is the original unencrypted matrix.
18 | 5 | |||||||||||||
A = X B-1 = | 4 | 0 | ||||||||||||
18 | 21 | |||||||||||||
13 | 0 |
The receiver then takes the matrix and breaks it apart into values 18, 5, 4, 0, 18, 21, 13, 0 and converts each of those into a character according to the numbering scheme. 18=R, 5=E, 4=D, 0=space, 18=R, 21=U, 13=M, 0=space.
Trailing spaces will be discarded and the message is received as intended: "RED RUM"
Jean, you have a great post! detailed and very organized!!!!!!
ReplyDeleteThanks a lot!