I will be writing a series of posts that will introduce the necessary background of cryptography in a (hopefully) understandable way to anyone. The goal of these posts will be to lead an interactive online classroom discussion covering a wide-range of topics: basic group theory, prime groups, elliptic curves, public-private key cryptography schemes (Diffie-Helman, Elliptic Curve Cryptography, etc.), digital signing algorithms, quantum-resistant algorithms, shared secrets, and ring cryptography.
The goal is to utilize the Steem blockchain and the current Steemit interface to discover (via your participation!) a novel way for teaching by experts to experts and non-experts alike via the internet in an open and free manner, while compensating both teachers for their domain specific knowledge and students for good questions, interactive discussions, and answers.
These next few weeks will serve as my own template for this interactive learning experiment. Feel free to modify / adjust this if you would like to hold your own classes.
I hope you will participate as we all can learn together. Do not be shy jumping into any of my interactive lessons late while the course is in session. There will be ample opportunity for anyone to catch up or to follow along as they wish.
What Is a Mathematical Group?
The development of THEORETICAL and ABSTRACT MATHEMATICS is done by observing common patterns and then codifying the base structure in an axiomatical framework.
Group theory is fundamental to understanding and applying cryptography and understanding cryptographic schemes.
In the context of group theory, observation of the integers, real numbers, subsets of these, as well as symmetries and reflections of regular n-gons gave way to the axioms of a group.
So what are the common properties that each of these seemingly different objects possesses?
The first to note is that there is always some type of operation. In the case of the integers or real numbers, one can consider addition or multiplication. When studying the group properties of regular n-gons, one can think of the operations as a combination of rotations about the center or mirror reflections across some axis of the regular n-gon.
Consider the simplest regular n-gon, i.e. an equilateral triangle, with vertices labeled in a widdershins fashion.
A symmetry action is moving an object in such a way where you can lay it back on top of itself perfectly. Often, mathematicians will label vertices of an n-gon to be able to describe which symmetrical action occurred.
Notice that if we ignore the labelling on the vertices and rotate the triangle by 120 degrees (360 / 3 = 120) or apply a reflection across some axis, the we are looking at an equilateral triangle in the same position under some symmetrical action.
If instead we rotate the equilateral triangle by 90 degrees, we see that this is not a symmetrical action. We cannot take the triangle and lay it on top of its original form.
So what does the symmetry of this equilateral triangle mean in terms of a group? We need to first define some other notions of a group. Objects of a group are called elements. In this case, each of the 6 different possible triangles under some symmetry action are elements of this group.
Now, when you have elements in a group, you have some type of operation associated to the elements, whereas if you input two elements of a group G, you output another element of that same group G. This binary operation (due to having two inputs) is therefore said to be closed (since the output belong to the same set of all possible inputs).
Group Definition
A set G is a group under the operation, +, if and only if the following are true :
- There exists an identity element, e, such that for every element g in G, e + g = g and g + e = g (identity).
- If g1, g2 are in G, then g1 + g2 = g3 is also in G (closed).
- If g1, g2, and g3 are in G, then (g1 + g2) + g3 = g1 + (g2 + g3) (association).
- If g1 is in G, then there exists a unique element (-g1) such that g1 + (-g1) = e and (-g1) + g1 = e (inverse).
Unique Identity
It turns out that the identity element is unique.
Suppose G is any group with the identity e_1. Suppose another element e_2, different from e_1, satisfies the identity requirements.
Then, e_1*e_2 = e_1
. But, also, e_1*e_2 = e_2
and then we have e_1 = e_2
, which is a contradiction. Thus, our assumption that e_2 be different than e_1 is false, and we have uniqueness.
Additive Notation Versus Multiplicative Notation
Since groups only have one operation, one can equivalently use any symbol to denote the operation. Often, the symbols chosen were +
and *
, as these have natural meanings when we consider different groups.
Natural Additive Groups
The set of integers. 0 plays the role of the identity element. Remember from grade school when 0 + x = x + 0 = x for all x? That comes from group theory!
The set of integers modulo a number k. Modulo is a remainder function and is most commonly denoted with
%
. If we ask what is the the remainder of 42 mod 5, the result is 2. Mathematically, this is written as 42 mod 5 = 2 or 42 % 5 = 2. An example of a group is the set of integers modulo 6. If we take the set {0,1,2,3,4,5} and consider the standard addition operation, and perform modulo arithmetic on any value that is not in the set 0...5, we obtain a group. The inverses of 0,1,2,3,4,5 are 0,5,4,3,2,1, respectively, i.e. 2 + 4 = 0 (mod 6). Don't believe me? Try it out and see that all of the axioms are satisfied.The set of real numbers. Once more, 0 plays the role of the identity element. 0 + x = x + 0 = x for all x that is a real number. And -x is the inverse of x. If you add two real numbers together, the output will always be a real number. And associativity holds. Thus, all axioms are satisfied, and so the real numbers under addition are a group.
Integers of a multiple k. For example, k = 2, all the even integers. Or perhaps all integers of 55. We see that a and b are a multiple of k, then a = ck and b = dk for some c and some d. But then, a + b = ck + dk = (c + d)k. So, at the least, we see that we have closure. What is the identity in this group? Hint: we've seen it before. Do you see how this element is a multiple of any integer k?
Natural Multiplicative Groups
- Integers without 0,
(Z)^*
. - Rational Numbers without 0,
(Q)^*
. - Real numbers without 0,
(R)^*
. - Integers modulo n without 0,
(Z/nZ)^* or (Z_n)^*
.
In all these cases, the identity element is 1. Recall from grade school that 1*x = x*1 = x
for all x.
A special group used extensively in cryptographic systems is the set of integers modulo a prime number without 0. We will discuss these special cyclic groups in a later post.
Abelian Groups
Abelian groups are groups that have an additional property that make them special. This property is known as commutativity and for historical reasons is also termed abelianity. (This comes from often denoting the operation as multiplication (x) and then using concatenation to denote multiplication, so as to not have to write the additional symbol. Often, elements in a group were given names such as a and b, and so a new element would be called ab. From there, abelian was formed.)
Non-abelian Groups
Non-abelian groups are those which do not have commutavity. A simple example of a non-commutative group is by considering the symmetries of the square as a group. I will refer to the wiki page on groups that gives this example. For more info check the following link: https://en.wikipedia.org/wiki/Group_(mathematics)#Second_example:_a_symmetry_group.
Other Topics of Interests With Group Theory
Unfortunately, some of these topics do not fall into the purview of having to understand all the details behind cryptography. However, they are still interesting in their own right and are often more than tangentially related. Here is a non-complete list.
- Subgroups
- Normal Groups
- Normal Subgroups
- p-Sylow Groups
- Group Actions
- The Center of Group Actions
- The Monster Group
- Group Orbits
We will discuss some of these topics as necessary, unless there is significant interest by the community.
Conclusion
This concludes the introduction to group theory. We give the definition of a group and some standard examples. The important bits to understand is that there is fundamentally no difference between an additive group or a multiplicative group. Fundamentally, it is a matter of notation. For instance, if I were to write a + a = 2a
in terms of additive notation, then the equivalent representation in multiplicative notation is a^2
. This distinction will be important when we consider the group of points on an elliptic curve (additive group) versus a group of prime order in multiplicative notation.
Questions, anyone?
Thanks for helping me feel welcome in the steemit community. Although I'm not currently educated in cryptography I would like to learn. Thank you for taking the time to break it down. If the future post are as descriptive then I might be able to continue to follow along. Looking forward to learning more from your lessons.
Great idea! I look forward to following this series.
I hope we can get MathJax integrated into this site sooner rather than later so that this process can be a little bit less painful for both author and readers.
If we can get MathJax working, that'd be phenomenal! It'll save formatting issues a lot!
I voted for your post because I think that it is an extremely good idea. Unfortunately for me, I do not feel that I have sufficient time to participate just now. But I applaud your initiative!
Thanks! We'll see how this goes. I'm hoping that a week for each mini lesson will suffice. This will allow for ample time to have people ask questions before we move on to the next topics. Most of this is rather basic, but I would like offer my services as a mathematician to answer questions as I present the material that I believe represents the simplest introduction to advanced topics without going into all the other murky details.
Here are a two exercises.
Show that the set of even integers is a group.
Another group is a permutation group, also known as a symmetric group on n elements, denoted as
S_n
. This group permutes the elements in a list to some different order. Symmetric groups are important because it turns out that ALL groups can be realized as the subgroup of a symmetric group. This result is known as Cayley's Theorem. An example of a symmetric group isS_3
. Consider the natural ordering of a list as {1, 2, 3}. Now, we want to know how we can re-arrange this list. We can have {1, 2, 3}, {1, 3, 2}, {2, 1, 3}, {2, 3, 1}, {3, 1, 2}, and {3, 2, 1}. How do we go from {1, 2, 3} to {1, 3, 2} ? We permute the elements 2 and 3 in the ordered list. This permutation is denoted as (2 3). Notation-wise, we start from the right and say that 3 goes to 2 and then 2 wraps back to the beginning of 3. The group operation is taken as performing permutations in order starting from right to left. That is to say with (1 2)(1 3)(1 2)(2 3), we see that 3 goes to 2 in the right most permutation, and then 2 goes to 1, and then 1 goes back to 3. So 3 stays fixed. Similarly, 2 goes to 3 which goes to 1 which goes to 2. And so 2 stays fixed. Since we have only 3 elements, and 2 of them are fixed, the third also must be fixed. So (1 2)(1 3)(1 2)(2 3) is actually the identity permutation (written in a more complicated form). We denote the identity of any symmetric group as (1), and we see that the identity never permutes any of the elements. Question: what group permutation element moves {1, 2, 3} to {3, 2, 1} ?The set of even integers is an additive group. The identity is 0, since 0 + g = g for any integer g (even or otherwise). Addition is associative: if g1, g2, and g3 are even integers, then (g1 + g2) + g3 = g1 + (g2 + g3). Given an even integer g, its inverse is just -g. g + (-g) = 0. These seem pretty obvious. There's nothing else we need to say to show associativity and inverses, right?
For closure, suppose you've got two even integers, g1 and g2. Since they're even, you can factor out a 2 from each: g1 = 2m and g2 = 2 for some integers m and n. So, g1 + g2 = 2m + 2n = 2(m + n), and m + n is the sum of two integers, so it is also an integer, meaning the sum is an even integer.
The group permutation that moves {1, 2, 3} to {3, 2, 1} is (1 3).
1) Associativity can be taken from the integers, since we know the integers are associative, a subset of them will be as well. Inverses we do not automatically obtain, but it is obvious that if g = 2k in 2Z, for k in Z, then -g = -2k is also in 2Z. But, we need to explicitly state that and verify that it's the case.
Closure is done correctly. Good job!
2) Correct.
95/100, since you didn't explicitly state how the inverse of an even integer is also even.Oh, ok. Thanks
Great idea for an interactive class! I have been meaning to learn about cryptographic schemes, and this is helpful.
As long as they aren't algebraic geometric schemes. ;-P
That'll be a completely different course.