By the end of this section, you should be able to give precise and thorough answers to the questions listed below. You may want to keep these questions in mind to focus your thoughts as you complete the section
What is the dimension of a subspace of ? What property of bases makes the dimension a well-defined number?
If is a subspace of with dimension , what must be true about any linearly independent subset of that contains exactly vectors?
If is a subspace of with dimension , what must be true about any subset of that contains exactly vectors and spans ?
When you use your credit card, you expect that the information that is transmitted is protected so others can't use your card. Similarly, when you create a password for your computer or other devices, you do so with the intention that it will be difficult for others to decipher.
Cryptology is the study of methods to maintain secure communication in the presence of other parties (cryptography), along with the study of breaking codes (cryptanalysis). In essence, cryptology is the art of keeping and breaking secrets. The creation of secure codes (cryptography) can provide confidentiality (ensure that information is available only to the intended recipients), data integrity (prevent data from being altered between the sender and recipient), and authentication (making sure that the information is from the correct source).
Modern cryptology uses mathematical theory that can be implemented with computer hardware and algorithms. The security of public key systems is largely based on mathematical problems that are very difficult to solve. For example, the security of the RSA system relies on the fact that it is computationally difficult to find prime factors of very large numbers, and elliptic curve cryptography relies on the difficulty of the discrete logarithm problem for elliptic curves. However, the continual increase in the power of computers threatens the security of these systems, and so cryptographic systems have to keep adapting to the newest technology. For example, Shor's Algorithm (which could run on a quantum computer) can solve the public key cryptographic systems that rely on the integer factorization problem or the discrete logarithm problem. So if a working quantum computer was ever developed, it would threaten the existing cryptographic systems. Lattice-based cryptography is a potential source of systems that may be secure even in such an environment. The security of these systems is dependent on the fact that the average case of the difficulty of certain problems in lattice theory is higher than the worst case problems that underpin current cryptosystems. As we will see later in this section, lattices are built on bases for subspace of .
A basis provides a system in which we can uniquely represent every vector in the space we are considering. More specifically, every vector in the space can be expressed as a linear combination of the vectors in the basis in a unique way. In order to be able to cover every point in the space, the basis has to span the space. In order to be able to provide a unique coordinate for each point, there should not be any extra vectors in the basis, which is achieved by linear independence of the vectors. For practical reasons, a basis simplifies many problems because we only need to solve the problem for each of the basis vectors. Solutions of the other cases usually follow because every vector in the space can be expressed as a unique linear combination of the basis vectors.
In problem (1) we should have noticed that a space can have more than one basis, but that any two bases contain the same number of elements. This is a critically important idea that we investigate in more detail in this problem in one specific case. Assume that is a subspace of that has a basis with two basis vectors. We want to see if any other basis for can have a different number of elements. Let us now consider a set of three vectors in . Our goal is to determine if can be a basis for . Since is a basis for , any vector in can be written as a linear combination of the vectors in . So we can write
(15.1)(15.2)(15.3)
for some scalars . If were to be a basis for , then would have to be a linearly independent set. To determine the independence or dependence of we consider the vector equation
In Preview Activity 15.1 we saw that a subspace of can have more than one basis. This prompts the question of how, if at all, are any two bases for a given space related. More specifically, is it possible to have two bases for a given subspace of that contain different numbers of vectors? As we will see the answer is no, which will lead us to the concept of dimension.
Let be a subspace of that has a basis of vectors. Since we have been calling bases minimal spanning sets, we should expect that any two bases for the same subspace have the same number of elements (otherwise one of the two bases would not be minimal). Our goal in this section is to prove that result β that any other basis of contains exactly vectors. The approach will be the same as was used in Preview Activity 15.1. We will let be a set of vectors in with and demonstrate that is a linearly dependent set. To argue linear dependence, let ,,, be scalars so that
Since is a basis, the vectors ,,, are linearly independent. So each coefficient in (15.7) is 0 and is a solution to the homogeneous system , where . Now is a matrix with , so not every column of is a pivot column. This means that has a nontrivial solution. It follows that the vector equation (15.6) has a nontrivial solution and so the vectors ,,, are linearly dependent. We summarize this in the following theorem.
Now let's return to the question of the number of elements in a basis for a subspace of . Recall that we are assuming that has a basis of vectors in . Suppose that is another basis for containing vectors.
This last theorem states that the number of vectors in a basis for a subspace space is a well-defined number. In other words, the number of vectors in a basis is an invariant of the subspace. This important number is given a name.
We denote the dimension of a subspace of by . As we will see later, any two vector spaces of the same dimension are basically the same vector space. So the dimension of a vector space is an important number that essentially tells us all we need to know about the structure of the space.
There are two items we need to confirm before we can state that a subset of a subspace of is a basis for : the set must be linearly independent and span . However, if we have the right number (namely, the dimension) of vectors in our set , then either one of these conditions will imply the other.
Since every vector in a subspace of can be written uniquely as a linear combination of vectors in a basis for the subspace, a basis provides us with the most efficient and convenient way to represent vectors in the subspace. Until now we have been given a set of vectors and have been asked to find a basis from that set, so an important question to address is how we can find a basis for a subspace of starting from scratch. Here is one way. If , then the dimension of is 0 and has no basis. So suppose . Start by choosing any nonzero vector in . Let . If spans , then is a basis for . If not, there is a vector in that is not in Span. Then is a linearly independent set. If Span, then is a basis for and we are done. If not, repeat the process. Since any basis for can contain at most vectors, we know the process must stop at some point. This process also allows us to construct a basis for a vector space that contains a given nonzero vector.
As Activity 15.6 illustrates, the number of vectors in a basis for Nul is the number of non-pivot columns in and the number of vectors in a basis for Col is the number of pivot columns of . We define the rank of a matrix (denoted rank()) to be the dimension of Col and the nullity of to be dimension of Nul . The dimension of the null space of is also called the nullity of (denoted nullity()) Using this terminology we have the Rank-Nullity Theorem.
There is also a row space of a matrix , which we define to be the span of the rows of . We can find the row space of by finding the column space of , so the row space is really nothing new. As it turns out, the dimension of the row space of is always equal to the dimension of the column space of , and justification for this statement is in the exercises.
The key idea in this section is the dimension of a vector space.
Any two bases for a vector space must contain the same number of vectors. Therefore, we can define the dimension of a vector space to be the number of vectors in any basis for .
If is a subspace of with dimension and is any linearly independent subset of with vectors, then is a basis for .
If is a subspace of with dimension and is any subset of with vectors that spans , then is a basis for .
The rank of a matrix is the dimension of its column space.
The Rank-Nullity Theorem states that if is an matrix, then ranknullity.
We can convert the language of the Rank-Nullity Theorem to matrix transformation language, as we show in this exercise. Let be the matrix transformation defined by the matrix .
Is it possible to find two subspaces and in such that and ? If possible, give an example and justify that they satisfy the conditions. If not possible, explain why not.
If possible, find a matrix whose column space has dimension 3 and null space has dimension 1. Explain how you found the matrix in addition to explaining why your answer works. If not possible, explain why it is not possible to find such a matrix.
If possible, find a matrix whose column space has the same dimension as its null space. Explain how you found the matrix in addition to explaining why your answer works. If not possible, explain why it is not possible to find such a matrix.
If possible, find a matrix so that Col Nul . Explain how you found the matrix in addition to explaining why your answer works. If not possible, explain why it is not possible to find such a matrix.
In this exercise we examine why the dimension of a row space of a matrix is the same as the dimension of the column space of the matrix. Let be an matrix.
Explain why row operations do not change the row space of a matrix. Then explain why if is the reduced row echelon form of , then Row Row , where Row is the row space of the matrix .
A cryptographic system (or cryptosystem) allows for secure communication between two or more parties. These systems take messages (called plaintext) and encrypt them in some way to produce what is called ciphertext. This is the scrambled information that is transmitted to the receiver, from which it should not be possible for someone who does not have the proper key to recover the original message. When the message is received by the intended recipient, it must be unscrambled or decrypted. Decryption is the process of converting ciphertext back to plaintext.
The Goldreich-Goldwasser-Halevi (GGH) public key cryptosystemβ30β uses lattices to encrypt plaintext. The security of the system depends on the fact that the Closest Vector Problem (CVP) is, in general, a very hard problem. To begin to understand these cryptosystems, we begin with lattices.
Lattices are closely related to spans of sets of vectors in . If we start with a linearly independent set in , we can create the span of β the set of all linear combinations
where ,,, are real numbers. This span creates a subspace of . If we restrict the set from which we choose the coefficients, we can create different types of structures. An important one is a lattice. The lattice defined by the linearly independent set is the set of linear combinations
where ,,, are integers. If the vectors in have integer components, then every point in will have integer entries. In these cases, is a subset of , as illustrated in Figure 15.9. Also, if we say that the lattice is full-rank. We will restrict ourselves to full-rank lattices in this project. A basis for a lattice is any set of linearly independent vectors that generates the lattice. There is a little special notation that is often used with lattices. If is a basis for , we associate to the matrix . We then use the notation to also refer to the lattice defined by .
We can draw pictures of lattices by plotting the terminal points of the lattice vectors. Draw all of the lattice points in on the square with vertices ,,, and .
Now let . A picture of is shown in Figure 15.9 with the basis vectors highlighted. As we have seen, is not the entire space . Is ? Justify your answer.
Project Activity 15.7 shows that even if is a basis for , it does not follow that is all of . So latices can be complicated, and problems in lattice theory can be very difficult.
The GGH cryptosystem relies on the fact that we can convert βgoodβ bases for lattices into βbadβ bases. We will not delve into the details of what separates a βgoodβ basis from a βbadβ one, but suffice it to say that a good basis is one in which the basis vectors are close to being perpendicularβ31β and are all short (that is, they have small norms), while any other basis is a bad basis. An example of a good basis is the basis for in Project Activity 15.7, and we will see later that is a bad basis for the same lattice. You should draw a picture of the vectors and to convince yourself that this is a bad basis for its lattice.
The GGH cryptosystem works with two keys β a public key and a private key. The keys are based on lattices. The general process of the GGH cryptosystem is as follows. Begin with a good basis of of vectors with integer components. Let be the matrix associated with . Let be a bad basis for which . Let be the matrix associated to the basis . The bad basis can be shared with anyone (the public key), but the good basis is kept secret (the private key). Start with a message with integer entries to send.
First we encrypt the message, which can be done by anyone who has the public key .
Create the message vector
that is in the lattice using the bad basis .
Choose a small error to add to to move off the lattice (small enough so that does not pass by another lattice point). This is an important step that will make the message difficult to decrypt without the key. Let . The vector is the ciphertext that is to be transmitted to the receiver.
Only someone who knows the basis can decode the ciphertext. This is done as follows.
Find the vector in the good basis that is closest to .
We interpret the vector as being the encoded vector without the error. So to recreate the original message vector we need to undo the encrypting using the bad basis . That is, we need to find the weights ,,, such that
There are several items to address before we can implement this algorithm. One is how we create a bad basis from that produces the same lattice. Another is how we find the vector in closest to a given vector. The latter problem is called the Closest Vector Problem (CVP) and is, in general, a very difficult problem. This is what makes lattice-based cryptosystems secure. We address the first of these items in the next activity, and the second a bit later.
The two bases and from Project Activity 15.8 are shown in Figure 15.10. This figure illustrates how the matrix transforms the basis , in which the vectors are perpendicular and short, to one in which the vectors are nearly parallel and significantly longer. So the matrix converts the βgoodβ basis into a βbadβ basis , keeping the lattice intact. This is a key idea in the GGH cryptosystem. What makes this work is the fact that both and have integer entries. The reason for this is that, for a matrix , we know that . If has integer entries and , then will also have integer entries. The number is called the determinant of , and matrices with determinant of or are called unimodular. That what happened in Project Activity 15.8 happens in the general case is the focus of the next activity.
We will restrict ourselves to matrices in this activity, but the results generalize to matrices. Let and be bases for with integer entries, and let and be the matrices associated to these bases. Show that if for some unimodular matrix with integer entries, then .
Project Activity 15.9 is the part we need for our lattice-based cryptosysystem. Although we won't show it here, the converse of the statement in Project Activity 15.9 is also true. That is, if and generate the same lattice, then for some unimodular matrix with integer entries.
There is one more item to address before we implement the GGH cryptosystem. That item is how to solve the Closest Vector Problem. There are some algorithms for approximating the closest vector in a basis. One is Babai's Closest Vector algorithm. This algorithm works in the following way. Consider a lattice with basis . To approximate the closest vector in the lattice to a vector , find the weights ,,, in such that . Then round the coefficients to the nearest integer. This algorithm works well for a good basis, but is unlikely to return a lattice point that is close to if the basis is a bad one.
Let be the private key, and let be the matrix whose columns are the vectors in . Let be the unimodular matrix . Let be our message and let be our error vector.
A picture of the message vector and the ciphertext vector are shown in Figure 15.11. Although the closest vector in the lattice to can be determined by the figure, actual messages are constructed in high dimensional spaces where a visual approach is not practical. Use Babai's algorithm to find the vector in that is closest to and compare to Figure 15.11.
The GGH cryptosystem works because the CVP can be reasonable solved using a good basis. That is, Babai's algorithm works if our basis is a good basis. To illustrate that a bad basis will not allow us to reproduce the original message vector, show that Babai's algorithm does not return the closest vector to using the bad basis .
Published in 1997 by Oded Goldreich, Shafi Goldwasser, and Shai Halevi.
This is also a good property in vector spaces. We will see in a later section that perpendicular basis vectors make calculations in vector spaces relatively easy. A similar thing is true in lattices, where we are able to solve certain variants of closest vector problem very efficiently.