Subgroup DEFINITION: Let ( G , ⋆ ) (G, \star) be an Abelian group. A subset H ⊆ G H \subseteq G is a subgroup of G G if ( H , ⋆ ) (H, \star) is also a group. (H ≤ G H \le G ) // trivial subgroups: { 1 } , G ; { 0 } , G \{1\},G;\{0\},G
Multiplicative: G = ℤ 6 ∗ = { 1,5 } G = \mathbb{Z}_6^* = \{1,5\} has two subgroups { 1 } , G \{1\},G Additive: G = ℤ 6 = { 0,1,2,3,4,5 } G = \mathbb{Z}_6 = \{0,1,2,3,4,5\} has a non trivial subgroup H = { 0,2,4 } H = \{0,2,4\} THEOREM: Let ( G , ⋅ ) (G, \cdot) be an Abelian group. Let ⟨ g ⟩ = { g k : k ∈ ℤ } \langle g \rangle = \{g^k : k \in \mathbb{Z}\} be a subset of G G , where g ∈ G g \in G . Then ⟨ g ⟩ ≤ G \langle g \rangle \le G .
Closure: g a ⋅ g b = g a + b ∈ ⟨ g ⟩ g^a \cdot g^b = g^{a+b} \in \langle g \rangle Associative: g a ⋅ ( g b ⋅ g c ) = g a + b + c = ( g a ⋅ g b ) ⋅ g c g^a \cdot (g^b \cdot g^c) = g^{a+b+c} = (g^a \cdot g^b) \cdot g^c Identity element: g 0 ⋅ g a = g a ⋅ g 0 = g a g^0 \cdot g^a = g^a \cdot g^0 = g^a Inverse: g a ⋅ g − a = g − a ⋅ g a = g 0 g^a \cdot g^{-a} = g^{-a} \cdot g^a = g^0 Communicative: g a ⋅ g b = g a + b = g b + a = g b ⋅ g a g^a \cdot g^b = g^{a+b} = g^{b+a} = g^b \cdot g^a Cyclic Group DEFINITION: An Abelian group ( G , ⋅ ) (G, \cdot) is cyclic if there exists g ∈ G g \in G s.t. G = ⟨ g ⟩ G = \langle g \rangle .
g g is called a generator of G G .EXAMPLE: ℤ 10 ∗ = [ 1 ] 10 , [ 3 ] 10 , [ 7 ] 10 , [ 9 ] 10 = ⟨ [ 3 ] 10 ⟩ \mathbb{Z}_{10}^* = {[1]_{10}, [3]_{10}, [7]_{10}, [9]_{10}} = \langle [3]_{10} \rangle
g = [ 3 ] 10 g = [3]_{10} g 0 = [ 1 ] 10 , g 1 = [ 3 ] 10 , g 2 = [ 9 ] 10 , g 3 = [ 27 ] 10 = [ 7 ] 10 g^0 = [1]_{10}, g^1 = [3]_{10}, g^2 = [9]_{10}, g^3 = [27]_{10} = [7]_{10} REMARK: Let G G be a finite group and let g ∈ G g \in G . Then ⟨ g ⟩ = { g 1 , g 2 , … } \langle g \rangle = \{g^1, g^2, \dots\}
If G = ⟨ g ⟩ G = \langle g \rangle is a cyclic group of order m m , then G = { g 0 , g 1 , … , g m − 1 } = { g 1 , … , g m − 1 , g m } G = \{g^0, g^1, \dots, g^{m-1}\} = \{g^1, \dots, g^{m-1}, g^m\} . THEOREM: For any prime p p , the group ℤ p ∗ \mathbb{Z}_p^* is a cyclic group.
proof omitted (beyond the scope of the course) EXAMPLE: p = 23 p = 23 ; ℤ p ∗ \mathbb{Z}_p^* is a cyclic group of order 22 and has a subgroup of order 11
α = 5 ; ⟨ α ⟩ = { 5 , 2 , 10 , 4 , 20 , 8 , 17 , 16 , 11 , 9 , 22 , 18 , 21 , 13 , 19 , 3 , 15 , 6 , 7 , 12 , 14 , 1 , 5 , 2 } \alpha = 5; \langle\alpha\rangle = \{5, 2, 10, 4, 20, 8, 17, 16, 11, 9, 22, 18, 21, 13, 19, 3, 15, 6, 7, 12, 14, 1, 5, 2\} | ℤ p ∗ | = p − 1 = 22 ; o ( 5 ) | 22 ; o ( 5 ) ∈ { 1 , 2 , 11 , 22 } ; 5 1 = 5 , 5 2 = 2 , 5 11 = 22 |\mathbb{Z}_p^*| = p – 1 = 22; o(5) | 22; o(5) \in \{1, 2, 11, 22\}; 5^1 = 5, 5^2 = 2, 5^{11} = 22 g = 2 ; ⟨ g ⟩ = { g 1 , … } = { 2 , 4 , 8 , 16 , 9 , 18 , 13 , 3 , 6 , 12 , 1 } g = 2; \langle g \rangle = \{g^1, \dots\} = \{2, 4, 8, 16, 9, 18, 13, 3, 6, 12, 1\} is a subgroup of order q = 11 = ( p − 1 ) / 2 q = 11 = (p – 1)/2 EXAMPLE: ℤ p ∗ \mathbb{Z}_p^* is a cyclic group and G = ⟨ g ⟩ G = \langle g \rangle is a cyclic subgroup.
p = p= 179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624227998859p p is a prime; α = 2 \alpha = 2 ; o ( α ) = ( p − 1 ) / 2 : = q o(\alpha) = (p – 1)/2 := q // o ( α ) | ( p − 1 ) , o ( α ) ∈ { 1 , 2 , q , p } o(\alpha) | (p – 1), o(\alpha) \in \{1, 2, q, p\} ℤ p ∗ = ⟨ α ⟩ = { α 0 , α 1 , … , α p − 2 } = { α 1 , … , α p − 2 , α p − 1 } \mathbb{Z}_p^* = \langle \alpha \rangle = \{\alpha^0, \alpha^1, \dots, \alpha^{p-2}\} = \{\alpha^1, \dots, \alpha^{p-2}, \alpha^{p-1}\} is a cyclic group of order p − 1 p – 1 q = q = 89884656743115795386465259539451236680898848947115328636715040578866337902750481566354238661203768010560056939935696678829394884407208311246423715319737062188883946712432742638151109800623047059726541476042502884419075341171231440736956555270413618581675255342293149119973622969239 858152417678164812113999429q = ( p − 1 ) / 2 q = (p – 1)/2 is a prime; g = α 2 = 4 g = \alpha^2 = 4 G = ⟨ g ⟩ = { g 0 , g 1 , … , g q − 1 } G = \langle g \rangle = \{g^0, g^1, \dots, g^{q-1}\} = { α 0 , α 2 , … , α 2 q − 2 } = \{\alpha^0, \alpha^2, \dots, \alpha^{2q-2}\} = { α 2 , … , α 2 q − 2 , α 2 q } = \{\alpha^2, \dots, \alpha^{2q-2}, \alpha^{2q}\} is a subgroup of ℤ p ∗ \mathbb{Z}_p^* of order q q DLOG and CDH DEFINITION: Let G = ⟨ g ⟩ G = \langle g \rangle be a cyclic group of order q q . For every h ∈ G h \in G , there exists x ∈ { 0,1 , … , q − 1 } x \in \{0,1,\dots,q-1\} such that h = g x h = g^x . The integer x x is called the d iscrete log arithm (DLOG ) of h h with respect to g g .
Notation: x = log g h x = \log_g h DLOG Problem: G = ⟨ g ⟩ G = \langle g \rangle is a cyclic group of order q q
Input: q , G , g q, G, g and h ∈ G h \in G ; Output: log g h \log_g h CDH Problem: C omputational D iffie-H ellman
Input: q , G , g q, G, g and A = g a , B = g b A = g^a, B = g^b for a , b ← { 0,1 , … , q − 1 } a, b \leftarrow \{0,1,\dots,q-1\} ; Output: g a b g^{ab} Hardness of DLOG and CDH: If p = 2 q + 1 p = 2q + 1 is a safe prime and G G is the order q q subgroup of ℤ p ∗ \mathbb{Z}_p^* , then the best known algorithm for DLOG/CDH runs in time exp ( O ( ln q ln ln q ) ) \exp\left(O(\sqrt{\ln q \ln \ln q})\right) .
q ≈ 2 2048 q \approx 2^{2048} Diffie-Hellman Key Exchange CONSTRUCTION: G = ⟨ g ⟩ G = \langle g \rangle is a cyclic group of prime order q q
Alice: a ← ℤ q a \gets \mathbb{Z}_q , A = g a A = g^a ; send ( q , G , g , A ) (q, G, g, A) to BobBob: b ← ℤ q b \gets \mathbb{Z}_q , B = g b B = g^b ; send B B to Alice; output k = A b k = A^b Alice: output k = B a k = B^a Whitfield Diffie, Martin E. Hellman: New directions in Cryptography, IEEE Trans. Info. Theory, 1976Turing Award 2015
EXAMPLE: p = 23 p = 23 ; ℤ 23 ∗ = ⟨ 5 ⟩ \mathbb{Z}_{23}^* = \langle 5 \rangle ; G = ⟨ 2 ⟩ G = \langle 2 \rangle , q = | G | = 11 q = |G| = 11 , g = 2 g = 2
Combinatorics
1666, Leibniz (1646-1716), De Arte Combinatoria
Enumerative combinatorics
permutations, combinations, partitions of integers, generating functions, combinatorial identities, inequalities … Designs and configurations
block designs, triple systems, Latin squares, orthogonal arrays, configurations, packing, covering, tiling … Graphtheory
graphs, trees, planarity, coloring, paths, cycles, … Extremal combinatorics
extremal set theory, probabilistic method … Algebraic combinatorics
symmetricfunctions, group, algebra, representation, group actions … Sets and Functions DEFINITION: A set is an unordered collection of elements
a ∈ A ; a ∉ A a \in A; a \notin A ; roster method, set builder; empty set ∅ \emptyset , universal setA = B ; A ⊆ B ; A ⊂ B ; A ∪ B ; A ∩ B ; A ‾ A = B; A \subseteq B; A \subset B; A \cup B; A \cap B; \bar{A} DEFINITION: Let A , B ≠ ∅ A, B \neq \emptyset be two sets. A function (map) f : A → B f: A \to B assigns a unique element b ∈ B b \in B for all a ∈ A a \in A .
injective: f ( a ) = f ( b ) ⟹ a = b f(a) = f(b) \implies a = b surjective: f ( A ) = B f(A) = B bijective: injective and surjectiveCardinality of Sets DEFINITION: Let A A be a set. A A is a finite set if it has finitely many elements; Otherwise, A A is an infinite set .
The cardinality | A | |A| of a finite set A A is the number of elements in A A . EXAMPLE: ∅ , { 1 } , { x : x 2 − 2 x − 3 = 0 } , { a , b , c , … , z } \emptyset, \{1\}, \{x: x^2 – 2x – 3 = 0\}, \{a, b, c, …, z\} are all finite sets; ℕ , ℤ , ℚ , ℝ , ℂ \mathbb{N}, \mathbb{Z}, \mathbb{Q}, \mathbb{R}, \mathbb{C} are all infinite sets.
DEFINITION: Let A , B A, B be any sets. We say that A , B A, B have the same cardinality (| A | = | B | |A| = |B| ) if there is a bijection f : A → B f: A \to B .
We say that | A | ≤ | B | |A| \le |B| if there exists an injection f : A → B f: A \to B .If | A | ≤ | B | |A| \le |B| and | A | ≠ | B | |A| \neq |B| , we say that | A | < | B | |A| < |B| . THEOREM: Let A , B , C A, B, C be any sets. Then
| A | = | A | |A| = |A| | A | = | B | ⟹ | B | = | A | |A| = |B| \implies |B| = |A| | A | = | B | ∧ | B | = | C | ⟹ | A | = | C | |A| = |B| \land |B| = |C| \implies |A| = |C| EXAMPLE: | ℤ + | = | ℕ | = | ℤ | = | ℚ + | = | ℚ | |\mathbb{Z}^+| = |\mathbb{N}| = |\mathbb{Z}| = |\mathbb{Q}^+| = |\mathbb{Q}|
f : ℤ + → ℕ , x ↦ x − 1 f: \mathbb{Z}^+ \to \mathbb{N}, \quad x \mapsto x – 1 f : ℤ → ℕ , f ( x ) = { 2 x x ≥ 0 − ( 2 x + 1 ) x < 0 f: \mathbb{Z} \to \mathbb{N}, \quad f(x) = \begin{cases} 2x & x \ge 0 \\ -(2x + 1) & x < 0 \end{cases} EXAMPLE: | ℝ + | = | ℝ | = | ( 0,1 ) | = | [ 0,1 ] | |\mathbb{R}^+| = |\mathbb{R}| = |(0,1)| = |[0,1]|
f : ℝ → ℝ + , x ↦ 2 x f: \mathbb{R} \to \mathbb{R}^+, \quad x \mapsto 2^x f : ( 0,1 ) → ℝ , x ↦ tan ( π ( x − 1 / 2 ) ) f: (0,1) \to \mathbb{R}, \quad x \mapsto \tan(\pi(x – 1/2)) f : [ 0,1 ] → ( 0,1 ) f: [0,1] \to (0,1) f ( 1 ) = 2 − 1 , f ( 0 ) = 2 − 2 , f ( 2 − n ) = 2 − n − 2 , n = 1 , 2 , 3 , … f(1) = 2^{-1}, f(0) = 2^{-2}, f(2^{-n}) = 2^{-n-2}, n = 1, 2, 3, \dots f ( x ) = x f(x) = x for all other x x
迪菲-赫尔曼现在还在用吗
这数学符号密密麻麻的
同感,看着头晕
离散对数这问题还挺经典的。
密码学的基础问题
循环群这块有点抽象,得慢慢消化。
原来迪菲-赫尔曼是76年提出的
这数学符号看得我眼花缭乱的
同感,密密麻麻的
迪菲-赫尔曼当年拿图灵奖实至名归
这数学符号看得我头疼😵
同感,符号太多了
迪菲-赫尔曼这算法设计得真巧妙
确实设计得很巧妙
群论基础这块是不是得先补补抽象代数啊🤔
迪菲-赫尔曼交换过程讲得还行,就是例子数字太长了
这公式密度也太高了,子群生成元那块看了三遍才懂
迪菲-赫尔曼密钥交换这块讲得挺清楚
我也觉得讲得清楚
这公式看着头大,子群那部分到底咋理解啊?🤔