zoukankan      html  css  js  c++  java
  • 从数学到密码学(八)

    数学基础(三)

    从本节起,我们开始进入大学数学的领域--近世代数(也称抽象代数)。

    先给出几个基本概念/定义。

    [代数运算]:对于集合A的任意元素a、b,如果按某一运算法则(通常用某个记号,比如*来表示)进行运算,可以得到唯一的结果c∈A,则称运算法则*为集合A上的一个二元代数运算。
    说明:
    1、代数运算的实质是:定义域和值域都在同一集合上的映射(或函数)。
    2、在此语境下,我们也说“集合A在运算法则*下封闭”,或“集合A对运算法则*封闭”,这些说法都是等价的。
    3、我们讨论的代数运算都只涉及2个元素,所以通常省去“二元”,称为代数运算,或者简称运算。
    4、需要明确的是,*只是一个运算符号,一个记号而已,我们可以用+、^等符号代替它。在上述定义中,我们既不知道也不关心它具体是怎样运算的,所以理论上可以随便用个符号代替(当然在讨论某一个例时,要尽量使用大家都认可的符号)。我们真正关注的是,在此定义下,该运算法则具有哪些通用的代数学上的性质可以为我们所用。可以想见,这些性质与具体运算法则无关,却普遍适用--这正是抽象的威力。

    [代数系统]:若集合A具有代数运算*(即对*运算封闭),则称(A,*)是代数系统
    说明:
    1、具有代数运算的集合或者对运算封闭的集合就是代数系统。代数运算和代数系统是一体两面。
    2、有时候,在明确知道代数运算*的情况下,可以省略运算符号,直接称A是代数系统。事实上,我们所讨论都是代数系统,因为没有代数运算的集合没有多大用处。

    举例:对于整数集Z,加法运算(用加号+表示)和乘法运算(用乘号*表示)都是Z上的代数运算(很简单,是吧)
    比如,取a=2、b=3,由加法运算法则,得到结果5,即2+3=5,由乘法运算法则,则得到结果6,即2*3=6,这说明(Z,+)、(Z,*)构成代数系统。
    一个集合上可以有多个代数运算,比如整数集Z上同时定义了加法和乘法运算。

    对于商集Z/~={[0]、[1]、[2]、…、[n-1]},在Z/~上定义等价类之间的运算法则+:[i]+[j]≡[i+j],其中i、j为等价类的代表元素
    说明:
    1、≡读作“定义为”
    2、具体运算如下:取两个等价类中的代表元素,将它们相加,然后再做[自然映射]([自然映射]不记得?请看前面的内容)
    3、≡左边方括号[]之间的+表示等价类之间的运算,是新定义的运算法则的记号,≡右边的+(在方括号号[]中)表示普通的加法运算。
    4、参与运算的对象是等价类,结果也是等价类。但是两个等价类“相加”(即进行+运算)能否得到唯一的等价类,还不明确,因为同一等价类可以有多个代表元素,它们相加后可能有多个结果,对应的等价类也可能有多种结果。

    幸运的是,+的运算结果是唯一的(这是Z/~能走入密码学的基础),请见下面

    定理:+是Z/~上的代数运算
    证明:设A、B是等价类,i、j是A的代表元素,s、t是B的代表元素,故i~j,s~t,根据~的定义,i-j=k*n,s-t=l*n(其中k、l∈Z,n是模--还记得吗,~必须与某一个自然数n相关联),两式相加,得(i+s)-(j+t)=(k+l)*n,这正是[i]+[s]=[j]+[t]

    定理:对于元素A,B,C∈Z/~,有(A+B)+C=A+(B+C)--左边等号表示A先加B,得到的结果再加C
    证明:设A=[i],B=[j],C=[k],则
     (A+B)+C
    =([i]+[j])+[k]
    =[i+j]+[k]
    =[i+j+k]
    =[i]+[j+k]
    =[i]+([j]+[k])
    =A+(B+C)
    说明:上述情况下,称“运算+是可结合的”,或“+满足结合律”。

    定理:[0]是Z/~中的特殊元素,满足:[0]+[i]=[i]+[0]=[i],其中i为Z/~中任意等价类的代表元素
    证明:[0]+[i]=[0+i]=[i]=[i+0]=[i]+[0]

    定理:对于任意元素A∈Z/~,都存在一个元素B∈Z/~,满足:A+B=[0]=B+A
    证明:设A=[i],很明显只要取B=[-i]就能够满足:A+B=[i+(-i)]=[0]=[(-i)+i]+B+A

    [群]:对于集合G,给定G上的一个运算法则+,满足下列四个条件,则称(G,+)或G为一个群
    1、G对运算+是封闭的,即对任意元素a、b∈G,有唯一确定的元素c∈G,满足c=a+b
    2、G对运算+是可结合的,即对任意a、b、c∈G,满足a+(b+c)=(a+b)+c
    3、G中有一元素e,对任意a∈G,满足a+e=e+a=a
    4、对于任意a∈G,都有一个b∈G,满足a+b=b+a=e
    说明:
    1、条件3中的e称为单位元或恒等元,条件4中的b称为a的可逆元(或逆元),有时记为a-1
    2、条件4成立的前提,是条件3中的单位元存在
    3、单位元是相对具体运算而言,如果G中存在另外一个代数运算_,则“对于任意a,a_e=e_a=e”可能不成立,即e可以不是运算_的单位元。
    4、再次强调,+只是运算法则的一个记号,我们完全可以用+、-、*来代替

    根据上面的四个定理,Z/~对于运算+构成一个群。我们说,(Z/~,+)是一个群。或者在不引起混淆的情况下,省去+称Z/~是一个群。

    此外,对于Z/~,运算+还满足另一个性质:对于任意A、B∈Z/~,A+B=B+A
    证明:设A=[i],B=[j],则A+B=[i]+[j]=[i+j]=[j+i]=[j]+[i]=B+A
    说明:上述情况下,称运算+是可交换的,或+满足交换律。称Z/~(相对运算+)是交换群,有时候又称为可换群。

    Z/~作为一个群,其元素个数是有限的,故称为有限群。

    说明:对于群Z/~,为了突出它与模n的关系,我们常简记为Zn。后面将一直使用这个记号,请注意。

  • 相关阅读:
    Python基础—字符串
    Python基础—函数
    2019918练手爬虫日记
    python基础—列表
    Python urllib详解
    安装TesseractOCR显示无效的路径
    Sql server 关于ID突然自增问题解决方案
    Sql server 登陆后无法找不到数据库怎么解决
    Python常用语句及流程控制
    jquery cookie操作
  • 原文地址:https://www.cnblogs.com/efzju/p/2125618.html
Copyright © 2011-2022 走看看