Non-commutative cryptography
Non-commutative cryptography is the area of cryptology where the cryptographic primitives, methods and systems are based on algebraic structures like semigroups, groups and rings which are non-commutative. One of the earliest applications of a non-commutative algebraic structure for cryptographic purposes was the use of braid groups to develop cryptographic protocols. Later several other non-commutative structures like Thompson groups, polycyclic groups, Grigorchuk groups, and matrix groups have been identified as potential candidates for cryptographic applications. In contrast to non-commutative cryptography, the currently widely used public-key cryptosystems like RSA cryptosystem, Diffie–Hellman key exchange and elliptic curve cryptography are based on number theory and hence depend on commutative algebraic structures.
Non-commutative cryptographic protocols have been developed for solving various cryptographic problems like key exchange, encryption-decryption, and authentication. These protocols are very similar to the corresponding protocols in the commutative case.
Some non-commutative cryptographic protocols
In these protocols it would be assumed that G is a non-abelian group. If w and a are elements of G the notation wa would indicate the element a−1wa.Protocols for key exchange
Protocol due to Ko, Lee, et al.
The following protocol due to Ko, Lee, et al., establishes a common secret key K for Alice and Bob.- An element w of G is published.
- Two subgroups A and B of G such that ab = ba for all a in A and b in B are published.
- Alice chooses an element a from A and sends wa to Bob. Alice keeps a private.
- Bob chooses an element b from B and sends wb to Alice. Bob keeps b private.
- Alice computes K = a = wba.
- Bob computes K = b''=wab.
- Since ab = ba, K = K. Alice and Bob share the common secret key K''.
Anshel-Anshel-Goldfeld protocol
- Elements a1, a2,..., ak, b1, b2,..., bm from G are selected and published.
- Alice picks a private x in G as a word in a1, a2,..., ak; that is, x = x.
- Alice sends b1x, b2x,..., bmx to Bob.
- Bob picks a private y in G as a word in b1, b2,..., bm; that is y = y.
- Bob sends a1y, a2y,..., aky to Alice.
- Alice and Bob share the common secret key K = x−1y−1xy.
- Alice computes x = y−1 xy. Pre-multiplying it with x−1, Alice gets K.
- Bob computes y = x−1yx. Pre-multiplying it with y−1 and then taking the inverse, Bob gets K.
Stickel's key exchange protocol
- Let G be a public non-abelian finite group.
- Let a, b be public elements of G such that ab ≠ ba. Let the orders of a and b be N and M respectively.
- Alice chooses two random numbers n < N and m < M and sends u = ambn to Bob.
- Bob picks two random numbers r < N and s < M and sends v = arbs to Alice.
- The common key shared by Alice and Bob is K = am + rbn + s.
- Alice computes the key by K = amvbn.
- Bob computes the key by K = arubs.
Protocols for encryption and decryption
- Let G be a non-commutative group. Let A and B be public subgroups of G such that ab = ba for all a in A and b in B.
- An element x from G is chosen and published.
- Bob chooses a secret key b from A and publishes z = xb as his public key.
- Alice chooses a random r from B and computes t = zr.
- The encrypted message is C =, where H is some hash function and denotes the XOR operation. Alice sends C to Bob.
- To decrypt C, Bob recovers t as follows: b = xrb = xbr = r = zr = t. The plain text message send by Alice is P = H = m.
Protocols for authentication
- Let G be a non-commutative group and let A and B be subgroups of G such that ab = ba for all a in A and b in B.
- An element w from G is selected and published.
- Alice chooses a private s from A and publishes the pair where t = w s.
- Bob chooses an r from B and sends a challenge w′ = wr to Alice.
- Alice sends the response w′′ = s to Bob.
- Bob checks if w′′ = tr. If this true, then the identity of Alice is established.
Security basis of the protocols
- The conjugacy decision problem : Given two elements u and v in a group G determine whether there exists an element x in G such that v = ux, that is, such that v = x−1 ux.
- The conjugacy search problem: Given two elements u and v in a group G find an element x in G such that v = ux, that is, such that v = x−1 ux.
Platform groups
A non-commutative group that is used in a particular cryptographic protocol is called the platform group of that protocol. Only groups having certain properties can be used as the platform groups for the implementation of non-commutative cryptographic protocols. Let G be a group suggested as a platform group for a certain non-commutative cryptographic system. The following is a list of the properties expected of G.- The group G must be well-known and well-studied.
- The word problem in G should have a fast solution by a deterministic algorithm. There should be an efficiently computable "normal form" for elements of G.
- It should be impossible to recover the factors x and y from the product xy in G.
- The number of elements of length n in G should grow faster than any polynomial in n.
Examples of platform groups
Braid groups
Let n be a positive integer. The braid group Bn is a group generated by x1, x2,..., xn−1 having the following presentation:Thompson's group
Thompson's group is an infinite group F having the following infinite presentation:Grigorchuk's group
Let T denote the infinite rooted binary tree. The set V of vertices is the set of all finite binary sequences. Let A denote the set of all automorphisms of T. The Grigorchuk's group Γ is the subgroup of A generated by the automorphisms a, b, c, d defined as follows:Artin group
An Artin group A is a group with the following presentation:where and.