信息安全原理与数学基础-代数结构、同态映射、形式语言

  • 算术(arithmetic):研究的是具体的运算法则和性质
  • 代数(algebra):算数的一般化,用字母等符号代替数

代数结构与抽象代数

代数结构(algebraic structure):在一个对象集合上定义若干运算,并设定若干公理描述运算的性质,例如命题演算系统就是代数结构

抽象代数(abstract algebra):抛弃代数结构中对象集合与运算的具体意义,研究运算的一般规律

运算

运算是SnS^nSS的一个函数,成为nn元运算,常用*代表二元运算,(x,y)*(x,y)常记作xyx*y。常用Δ\Delta表示一元运算

运算的基本性质:

  • 普遍性:SS中的所有元素都可以参与运算
  • xyz(xy=z)\forall x\forall y\exist z(x*y=z)
  • 单值性:相同的元素运算结果也相同且唯一
  • xyxy((x=xy=y)(xy=xy))\forall x\forall y\forall x'\forall y'((x=x'\wedge y=y')\rightarrow(x*y=x'*y'))
  • 封闭性:任何元素参与运算的结果也是SS中的元素
  • xyz(xy=zzS)\forall x\forall y\exist z(x*y=z\rightarrow z\in S)

二元运算的一般性质

  • 结合律
  • xyz(x,y,zSx(yz)=(xy)z)\forall\mathrm{x}\forall\mathrm{y}\forall\mathrm{z}\left(\mathrm{x},\mathrm{y},\mathrm{z}\in\mathrm{S}\rightarrow\mathrm{x}*(\mathrm{y}*\mathrm{z})=(\mathrm{x}*\mathrm{y})*\mathrm{z}\right)
  • 交换律
  • xy(x,ySxy=yx)\forall\mathrm{x}\forall\mathrm{y}\left(\mathrm{x},\mathrm{y}\in\mathrm{S}\rightarrow\mathrm{x}*\mathrm{y}=\mathrm{y}*\mathrm{x}\right)
  • *运算对#运算满足分配分配律,如果:
  • xyz(x,y,zSx(y#z)=(xy)#(xz))\forall\mathrm{x}\forall\mathrm{y}\forall\mathrm{z}\left(\mathrm{x},\mathrm{y},\mathrm{z}\in\mathrm{S}\rightarrow\mathrm{x}*(\mathrm{y}\#\mathrm{z})=(\mathrm{x}*\mathrm{y})\#(\mathrm{x}*\mathrm{z})\right)

代数结构的定义

非空集合SS,称作代数结构的载体

载体SS上的若干运算

一组刻画载体上各运算的公理

例如:

  • <N,+>是一个代数结构
  • <ρ(A),,,\rho(A),\cup,\cap,\sim​>是一个代数结构

幺元(identity element)

代数结构<S,><S,*>中的元素ee,如果满足x(xe=ex=x)\forall\mathrm{x}\left(\mathrm{x}*\mathrm{e}=\mathrm{e}*\mathrm{x}=\mathrm{x}\right),则称ee为幺元。

如果仅满足x(xe=x)\forall x(x*e=x),称作右幺元

如果仅满足x(ex=x)\forall x(e*x=x)​,称作左幺元

一般情况下,左右幺元可能是不同元素,也有可能有多个。如果存在幺元,那么幺元是唯一的并且同时是左右幺元。

零元(zero element)

代数结构<S,><S,*>中的元素oo,如果满足x(xo=ox=o)\forall\mathrm{x}\left(\mathrm{x}*\mathrm{o}=\mathrm{o}*\mathrm{x}=\mathrm{o}\right),则称oo为零元。

如果仅满足x(xo=o)\forall x(x*o=o),称作右零元

如果仅满足x(ox=o)\forall x(o*x=o)​,称作左零元

一般情况下,左右零元可能是不同元素,也可能有多个。如果存在零元,那么零元是唯一的并且同时是左右零元

逆元(inverse element)

代数结构<S,><S,*>中的幺元ee,如果xy=ex*y=e,那么xx称作yy的左逆元,yy称作xx的右逆元。如果xy=yx=ex*y=y*x=e,那么x,yx,y互称逆元。xx的逆元通常记作x1x^{-1}​。

多于一个元素的载体集上零元没有逆元。若<S,><S,*>有幺元ee,零元oo,并且有S>1|S|>1,那么oo没有(左右)逆元。

在满足结合律的代数结构中,逆元是唯一的。

可约(cancelable)元素

<S,><S,*>中元素aa,如果对于任意x,ySx,y\in S​有

ax=ayx=y(左可约)xa=yax=y(右可约)\begin{aligned}&\mathrm{a*x=a*y\models x=y\text{(左可约)}}\\&\mathrm{x*a=y*a\models x=y\text{(右可约)}}\end{aligned}

aa是可约的。

在满足交换律的代数结构中,有逆元的元素是可约的。

同构

<{A,},>,<{1,0},><\{A,\emptyset\},\cup>,<\{1,0\},\vee>​中,除了符号外,结构完全相同,可以通过符号的变换(一一映射)相互转化。则我们称这两个代数结构是同构的

  • 同类型的代数结构:S=S|S|=|S'|且运算的元数相同
  • 同构的代数结构:存在SSS\rightarrow S'的一一映射hhSS中运算的像等于运算数像在SS'的运算结果h(xy)=h(x)h(y)h(x*y)=h(x)\circ h(y)。其中*SS中的运算,而\circSS'上的运算

同态映射(homomorphism)

代数结构之间,更为一般性的相似关系。

对于代数结构$<S,\Delta,#> $和 <S,Δ,#><S',\Delta',\#'>, 如果有函数 h:SSh:S\to S^{\prime}, 对SS中任意元素a,ba,b

h(Δ(a))=Δ(h(a)),h(a#b)=h(a)#h(b)h(\Delta(a))=\Delta^{\prime}\left(h(a)\right),h(a\#b)=h(a)\#^{\prime}h(b)

函数hh就称作代数结构SSSS'​的同态映射。

  • 如果hh是单射函数,称作单一同态
  • 如果hh是满射函数,称作满同态
  • 如果hh是双射函数,称作同构映射(isomorphism)

满同态映射

<Σ,><\Sigma^*,||><N,+><N,+>之间(||代表连接)存在满同态映射len(w)=wlen(w)=|w|

len(uv)=uv=u+v=len(u)+len(v)len(u||v)=|u||v|=|u|+|v|=len(u)+len(v)

表明了字符串连接和自然数加法之间的相似性,可以用连接操作来模拟加法运算

同余关系

代数结构<S,Δ,><S,\Delta,*>中,SS上的一个等价关系\sim,如果满足aba\sim b蕴含ΔaΔb\Delta a\sim \Delta b,则称\simSS上关于一元运算Δ\Delta的同余关系。如果满足ab,cda\sim b,c\sim d蕴含acbda*c\sim b*d,则称\simSS上关于二元运算*的同余关系。

等价类[x][x]_\sim称为同余类

代数结构的类型

<S,><S,*>满足结合律,则被称为半群(semigroup)

若半群含有幺元,则称为独异点(monoid)

若独异点每个元素都有逆元且没有零元,则称之为群(group)

若群满足交换律,则称为阿贝尔群(Abel group)。

环(ring):

  • <R,+,><R,+,*>,有两个二元运算
  • <R,+><R,+>是阿贝尔群
  • <R,><R,*>​是半群
  • *++可分配:a(b+c)=ab+ac,(b+c)a=ba+caa*(b+c)=a*b+a*c,(b+c)*a=b*a+c*a

域(field):

  • <F,+,><F,+,*>,有两个二元运算
  • <F,+,><F,+,*>是环
  • <F{o},><F-\{o\},*>​为阿贝尔群

S={0,1,2,3}S=\{0,1,2,3\},+解释为+ mod 4+\ mod\ 4*解释为 mod 4*\ mod\ 4

<S,+,><S,+,*>是环

S={0,1,2,3,4}S=\{0,1,2,3,4\},+解释为+ mod 5+\ mod\ 5*解释为 mod 5*\ mod\ 5

<S,+,><S,+,*>是域

形式语言

自然语言

以呼吸器官发声为基础来传递信息的符号系统,是大脑思维的符号化。

自然语言:自然地随着文化演化的语言

人工语言

以特定的目的与用途,人为创造的语言

国际辅助语言:世界语

数学语言、计算机语言

数学符号、逻辑语言

程序设计语言

语音(Phonetics):发音的体系

发音包括:音素、音节、语调

国际音标建立了标准的发音体系

语形(Morphology):书写的格式和规范

拼音文字:以发音为基础构字,一维表意串

genshin impact……

象形文字:以二维表意图形为基础构字

原、神、启、动……

句法(Syntax):规定句子组成的规则

语句的符号和意义都不可以穷举。

主谓宾定状补:小明正在树下读书

但是语法对于意义无能为力:书一下午读了3本小明

语义(Semantics):语句的含义

从符号语言还原思维:思维->语言->传递->语言->思维

共同理解和保持语义是人类交流的基础

语言交流存在语义损耗,因而有时说“一图胜千言”

如何形式化表达语义是目前研究的热点难题

语用(Pragmatics):使用环境和功能

不同的上下文环境中语句的应用,对语义的影响

语用的研究是自然语言处理NLP的重要内容

语言的定义

Chomsky:按照一定规律构成句子和符号串的有限或者无限集合

穷举法:只适合句子数目有限的语言

语法描述:通过有限的替换规则,生成语言中合格的句子

自动机:对输入的句子进行检验,区别哪些是语言中的句子,哪些不是语言中的句子

VV是有限集合,其中元素称为"字符",由VV中字符相连而成的有限序列成为“字符串”。不包含任何字符的串称为空串,记作ε\varepsilon,字符串所包含的字符个数称为长度,记作s|s|ε=0|\varepsilon|=0。包括空串的VV上的字符串全体记作VV^*

字符串连接:s=ab,t=cd,st=abcds=ab,t=cd,st=abcd

字符串n次幂:ss自身连接n次,s0=εs^0=\varepsilon

乘积:AB={stsAtB}AB=\{st|s\in A\wedge t\in B\}

幂运算:A0={ε},An=An1A=AAn1A^0=\{\varepsilon \},A^n=A^{n-1}A=AA^{n-1}

闭包:A=A0A1A2...A^*=A^0\cup A^1\cup A^2\cup...

正闭包:A+=A1A2A3...=A{ε}A^+=A^1\cup A^2\cup A^3\cup ...=A^*-\{\varepsilon\}

正则表达式

RE1:ε\varepsilon是正则式,对应正则集{ε}\{\varepsilon\}

RE2:xV\in V​,x是正则表达式,对应正则集{x}

RE3:如果a、b是正则表达式,则ab是正则式,对应正则集AB

RE4:如果a、b是正则式,则(a|b)是正则式,对应正则式A\cupB

RE5:如果a是正则式,则(a)*是正则式,对应正则集A*

例V={a,b}

  • ab*b描述了{ab,abb,abbb…}
  • ab*描述了{a,ab,abb,abbb…}
  • a*b*描述了{ε\varepsilon,a,b,aab,abb…}
  • (ab)*描述了{ε\varepsilon,ab,abab,ababab…}

短语结构语法

短语结构语法是一个四元组G=<V,S,v0\mathrm{v}_0,\vdash​>

V是字符集。S\subseteq​V,称做终结符,N=V-S称作非终结符。\vdash称作产生式关系,由w\vdash​w’的这样的产生式构成,表示w可以替换成w‘,分别称为左部和右部。v0N\mathrm{v}_0\in \mathrm{N},称为初始符,是替换的起点。

V*上的二元关系:

直接导出关系(x\rightarrowy)定义为x=awb,y=aw’b,且w\vdashw’是产生式,a,b\in​V*

\rightarrow关系的传递闭包\rightarrow^\infin,w\inS*是语法正确的句子当且仅当v0w\mathrm{v}_0\rightarrow^\infin \mathrm{w}

利用语法G产生的所有的正确构造的句子的集合称作为G的语言,记作L(G)

导出树

用多元有向树表示语言导出过程

  • 起始符v0\mathrm{v}_0作为树根
  • 每个子树的树根是某个生成式的左部
  • 子节点分别是生产式右部包含的符号
  • 适合所有产生式的左部仅有一个非终结符情形

例如V={v0\mathrm{v}_0,w,a,b,c},S={a,b,c}

产生式:v0\mathrm{v}_0\vdashaw;w\vdashbbw;w\vdashc

L(G)\subseteq​S*

可以对应正则表达式a(bb)*c

再例如V={v0\mathrm{v}_0,w,a,b,c},S={a,b,c}

产生式:v0av0b\mathrm{v}_0\vdash\mathrm{av}_0\mathrm{b}v0\mathrm{v}_0b\vdashbw;abc\vdashc

可以分析,第一个产生式产生形如anv0bna^nv_0b^n这样的串,第二个产生式结果形如vmabwbmv^mabwb^m,第三个产生式消除非终结符,结果L(G)形如amcbma^mcb^m​。L(G)不能用正则表达式表达,可见语言之间有某种类型上的差异

语法分类

  • 若对产生式没有任何约束,称作0型语言,无限制语法,产生递归可枚举语言,被图灵机识别
  • 如果所有产生式形如aAb\vdash​acb,A是非终结符,a,b,c是任意串,但c不能为空串,称作1型语言。是上下文相关语法,产生上下文相关语言,被线性有界自动机识别。
  • 如果所有产生式左部是一个非终结符,形如A\vdash​b(b是任意串),称作2型语言,是一种上下文无关语法。产生上下文无关语言,被下推自动机识别。为大多数程序设计语言的语法提供理论基础
  • 如果所有产生式左部是一个非终结符,右部最多一个非终结符,且只能在最右端,称作3型语言,是正则语法。产生正则语言,被有限状态自动机识别

BNF(Backus-Naur Form)范式

1960年提出的用于描述ALGO60语言。形式简单,仅包含三个符号:"::=“定义为,”|“或,”<>"用于区分非终结符。

BNF可以表示2、3型语法。BNF的产生式左部仅有一个非终结符,相同左部的产生式和并用"|“隔开,非终结符用”<>"标记

正则集合与正则语法

S是有限集合,L\subseteqS*,则L是正则集合,当且仅当:对某个正则语法G,有L=L(G)

我们可以从正则语法G构造对应正则集合的正则表达式,将G的语法组合为一个大图,其中仅包含v0\mathrm{v}_0​和终结符,称作主导图(master diagram),语法图中终结符对应正则表达式中的终结符。

句子识别

给定一个字符串,判定是否属于给定语法G的语言L(G)。对于正则语言和正则语法,可以通过一个识别机器来判定。

image-20240429142528781

机器

一个系统,接受输入,改变自身的状态,产生输出。状态指为了完成机器的任务而对输入序列进行的一种临时归类。机器状态会发生多次改变,最终停止在某个状态,并产生输出。若对于所有的输入,机器状态的数目有限,则被称为有限状态机。

有限状态机是一个五元组M(A,S,Y,s0\mathrm{s}_0,F)

  • A:输入字符的字母表
  • S:机器的有限状态集合
  • Y\subseteqS:被称为”接受“的一些状态
  • s0S\mathrm{s}_0\in S:初始状态
  • F:S×\timesA\rightarrow​S:状态转移函数

泵引理

长度超过状态数目的接受串w,都可以表示成w=xyz形式,而xym\mathrm{y}^mz都会被M接受

带输出的状态机

在有限状态机M(A,S,Y,s0\mathrm{s}_0,F)的基础上,去掉接收状态集合Y,增加输出字符的有限集合Z,输出函数G:S×\timesA\rightarrowZ。在状态转移的同时,输出一个字符。可以通过带输出的有限状态机实现二进制加法


信息安全原理与数学基础-代数结构、同态映射、形式语言
http://example.com/2024/04/25/Mathematical-base-and-theory-for-Information-security-Abstract-Algebra/
作者
Penner
发布于
2024年4月25日
许可协议