![应用密码学:原理、分析与Python实现](https://wfqqreader-1252317822.image.myqcloud.com/cover/378/52717378/b_52717378.jpg)
2.9.1 群
首先来了解一下群。
定义2.9.1 群(Group)
群表示一个特殊的集合,一般用符号表示,对于集合中的元素可以执行二元运算“.”,代数运算规则包括但不限于加减乘除,还可以是一些特殊规定的运算。一个集合成为群的前提是满足以下4个条件。
1)封闭性:对于所有群中任意元素
,
也属于
。
2)结合律:对于所有群中任意元素
,使得
成立。
3)单位元:群中存在一个单位元
,使得
成立。
4)逆元:群中每个元素都存在逆元素,对于每个群
中的
,在群中也存在一个元素
,使得总有
成立。
例如,整数集和整数的加法所构成的群,就满足以上4个条件。椭圆曲线也是建立在群上的。在第9章介绍椭圆曲线时会看到,因为群的元素是椭圆曲线上的点,通过椭圆曲线基本运算可知满足结合律,而单位元是无穷远点
,乘法单位元是1 。
如果一个群中元素是可数的,则这个群被称为有限群(Finite Group),群的阶(Order)等于群中元素的数量。否则,该群是一个无限群,群中的元素不可数。
而如果对于群中所有任意元素
,还满足交换律:
![](https://epubservercos.yuewen.com/3B24BD/31309821707952606/epubprivate/OEBPS/Images/tx03615.jpg?sign=1739123851-Rda2wLgCz81oFWANha9IFC1ZenhG1OQ2-0-51a988dd191588c106add27380468282)
那么群则被称为阿贝尔群(Abelian Group),也被称为交换群。
群的例子有很多,为了方便理解,下面列举几个群的例子和不是群的例子。
● 正整数集合在加法运算下,即
,不是一个群。因为没有单位元使得
,
。
● 正整数集合在乘法运算下,即
,不是一个群。因为其单位元是1 ,但是对于大于1 的整数而言,没有一个逆元属于
,以满足
,且
。
● 整数集合加法运算、实数集合加法运算
及有理数集合加法运算
,都满足构成群的条件,因此它们都是群。
例2.9.1 假设运算符“”被定义在
上,使得
。证明
是一个群。
解:想要证明是一个群,就需要证明它满足构成群的4个条件。假设对于任意元素
,很显然
,满足封闭性。
由于,也满足结合律。
因为,所以
,因此2是其单位元。
最后,可以发现,因此
是逆元。
满足构成群的4个条件,所以
是一个群。
定义2.9.2 子群(Subgroup)
若一个群的子集合按照与原群相同的结合规则构成一个群,则称该子集合形成原群的子群
。即:
![](https://epubservercos.yuewen.com/3B24BD/31309821707952606/epubprivate/OEBPS/Images/tx03825.jpg?sign=1739123851-oLPq8eum35qMF3578cnyo0StggC978p4-0-12bfcd92b09377879d082789332f8b77)
例如,前者就是后者的一个子群。
定义2.9.3 循环群(Cyclic Group)
设为一个群,若存在一个元素
,使得
,则
形成一个循环群。群
内任意一个元素所生成的群都是循环群,而且是
的子群。
例2.9.2 整数上的模加法。在群中,
在群里,
在群里。
模的单位群
,表示为
,其中
,比如群:
![](https://epubservercos.yuewen.com/3B24BD/31309821707952606/epubprivate/OEBPS/Images/tx01710.jpg?sign=1739123851-umDhetuF9h3uYNy61BNHZc0UwAXZD8yn-0-af8869cb6e13d174816023d88a0f9894)
在群里,
在群里。