序列密码--A5-1算法

A5-1算法

基本原理

A5-1算法用于蜂窝式移动电话系统中的语音加密,主要用于用于的手机到基站之间的加密通信。通信内容到基站后先脱密变成明文,然后在进行基站到基站之间、以及基站到用户手机之间的信息加密,完成通信内容在通信过程的加密保护。
  每次通话的时候,基站会产生一个64比特的随机数,与我们手机sim卡内本身带的一个密码利用一种加密算法生成一个密钥,这个密钥就是这次通话过程中使用的主密钥,此密钥的生命周期为这一次通话的开始到结束。一旦通话完成,那么这个密钥也就没有用了。
  该加密算法把整个通讯的数据划分为每一帧来进行加密。每一帧是有228比特,其中发送端给接收端的数据114比特,接收端反馈给发送端的数据有114比特。除了上面提出的基站给出的64比特的总密钥,针对每一帧的加密,还有一种叫做会话密钥,这种会话密钥每加密一帧都会改变,会话密钥的生成是由帧号来决定的。每一次的会话密钥都会产生一个228比特的乱数来加密这一帧的数据。加密的方式是异或。帧号一共用22比特的二进制数来表示,也就是说一次通话只能传递2^22次方的通讯数据,因为每一次通话只有这么多帧可以进行加密数据并且传递。

A5-1算法基于三个线性移位反馈寄存器实现的。三个LFSR的级数分别是19 22 23。
f1(x) = x^19 + x^18 + x^17 + x^14 + 1
f2(x) = x^22 + x^21 + 1
f3(x) = x^23 + x^22 + x^21 + x^8 + 1
三个反馈多项式如上所示。

所用工具

根据上面所讲的,如果要实现a5-1的加密算法,我们需要哪些工具:首先是明文,其次是64位的密钥,三个LFSR,以及帧号。
  算法的输入应该就是三个LFSR的初始值,算法的输出就是我们加密明文所需要的乱数。

实现步骤

算法总体来说分为三个部分,初始化,运算,输出乱数



首先是初始化部分:
(1)将三个寄存器内的所有位全都赋值为0
(2)将三个寄存器做64次的移位操作,每第i次操作,寄存器的反馈内容都先与密钥中的第i位进行异或,然后把这样异或的结果作为寄存器此次的反馈内容。三个LSFR都要并行的做这样的工作64次。
(2)将三个寄存器做22次的移位操作,没第i次操作,寄存器的反馈项都先与帧序号的第i位进行异或,将异或的结果作为寄存器的最终反馈内容,同样,三个LSFR也都要并行做22次。
上述三步做完,A5-1加密算法的初始化操作也就做完了。另外需要注意的是,A5-1加密算法的LSFR是左移操作,并且,密钥和帧号都是从最低位到最高位编号。
当初始化步骤完成的时候,此时三个LSFR的状态合称为S0状态。

接下来是计算和输出部分:
大家可以看到,上面的逻辑结构图中,有一个叫做钟控的部分,他有三个输出三个输入,三个输入是分别来三个LSFR的某一个固定位,输出0或者1, 输出0表示此次这个LSFR不会工作,也就是不会发生移动等等,输出的是1的话,那么这个LSFR此次就会移动一位并且得出反馈的结果。也就是说这个钟控在控制着三个LSFR的工作与否。
首先根据钟控的方式三个LSFR连续移动100次,但是不输出乱数,此时应该只是做一个混乱的操作。因为LSFR在移动过程中,每一位寄存器内的数值都会不一样,所以在钟控决定每个寄存器运行与否的结果时也会不相同。
接下来会三个LSFR会接着进行连续的114次的移动,也是根据钟控的方式。这一次的移动过程中,三个寄存器将分别把最高位寄存器的值输出,然后三个值做异或运算,形成第i个乱数。这次114次移动会生成一个114位的乱数,用于对手机到基站这一段的数据加密。
之后再进行一次100次的移动和114次的移动,结果和上面说的相同,最终产生的114位密钥用于基站到手机这段的通讯数据加密。

关于钟控:
钟控将第一个寄存器的第八位,第二个寄存器的第10位,第三个寄存器的第10位。抽取这三个位用于控制三个LSFR的动作与否。他们决定的原则类似少数服从多数,三位一共有8种排列方式,当三位中1的个数多余0的个数时,那么这三位是1的对应的寄存器将会移动, 为0的不会,如果三位数中0的个数多余1的个数时,那么三位之中是0的对应的寄存器将会移动。

根据上面的步骤就可以算出当我们把通讯数据切割成每一帧,然后对每一帧进行加密传输的时候,所需要的那个加密的乱数是怎么得来的。至于加密过程很简单,就是明文和乱数的异或操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Guide to BluetoothSecurity原文 本出版物可免费从以下网址获得:https://doi.o...
    公子小水阅读 8,217评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,881评论 18 139
  • 本文主要介绍移动端的加解密算法的分类、其优缺点特性及应用,帮助读者由浅入深地了解和选择加解密算法。文中会包含算法的...
    苹果粉阅读 11,568评论 5 29
  • 杭州市翠苑一小 四一班 七色花假日小队 2017年8月17日,暑假,骄阳似火。杭州市翠苑第一小学四一班...
    无名同学阅读 489评论 0 2
  • 第一次使用Markdown,哈哈看看效果 试试语法 无序 有序 斜体 粗体 开始记录今天的回报工作。 上午起来 ...
    yeban阅读 247评论 0 1