CN105049199A - 一种密钥序列的获取方法和系统以及fpga - Google Patents
一种密钥序列的获取方法和系统以及fpga Download PDFInfo
- Publication number
- CN105049199A CN105049199A CN201510479143.XA CN201510479143A CN105049199A CN 105049199 A CN105049199 A CN 105049199A CN 201510479143 A CN201510479143 A CN 201510479143A CN 105049199 A CN105049199 A CN 105049199A
- Authority
- CN
- China
- Prior art keywords
- key sequence
- state
- key
- fpga
- pin
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Logic Circuits (AREA)
Abstract
本发明提供一种密钥序列的获取方法和系统以及FPGA。该方法包括:设置FPGA以及密钥序列装置,在所述FPGA中设置状态机,还包括:将所述FPGA与所述密钥序列装置相连;利用所述FPGA中的状态机,控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量以及所述设置的密钥长度来生成密钥序列、及向FPGA输出所生成的密钥序列。本方案能够提高获取密钥序列的速度。
Description
技术领域
本发明涉及计算机技术,特别涉及一种密钥序列的获取方法和系统以及FPGA。
背景技术
密钥序列也称为流密码,具有实现简单、便于硬件实现、加解密处理速度快、没有或只有有限的错误传播等特点,在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信等。
目前,获取密钥序列的方式是通过编写软件代码来实现。但是,软件代码的方式,速度较慢,而且安全性差。
发明内容
本发明提供一种密钥序列的获取方法和系统以及FPGA,能够提高获取速度。
一种密钥序列的获取方法,设置FPGA以及密钥序列装置,在所述FPGA中设置状态机,还包括:
将所述FPGA与所述密钥序列装置相连;
利用所述FPGA中的状态机,控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量以及所述设置的密钥长度来生成密钥序列、及向FPGA输出所生成的密钥序列。
所述在所述FPGA中设置状态机包括:在所述FPGA中,设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
所述利用所述FPGA中的状态机,控制所述密钥序列装置包括:
FPGA中的状态机进入加载IV状态,把密钥序列装置的IV向量加载使能信号设置为高电平,之后把初始向量传输给所述密钥序列装置,所述密钥序列装置获取初始向量;
FPGA中的状态机进入写密钥长度状态,确定密钥长度,把密钥长度的值传输给密钥序列装置,所述密钥序列装置获取密钥长度的值;
FPGA中的状态机进入等待状态,所述密钥序列装置根据获取的初始向量以及密钥长度的值生成密钥序列;
FPGA中的状态机进入读密钥状态,读取所述密钥序列装置传输来的密钥序列。
所述在所述FPGA中设置状态机进一步包括:在所述FPGA中,设置状态机的状态还包括空闲状态和复位状态;
在所述FPGA中的状态机进入加载IV状态之前进一步包括:
FPGA的状态机处于空闲状态,之后进入复位状态;在复位状态,FPGA的状态机设置所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后进入所述加载IV状态。
一种FPGA,包括:状态机、存储单元以及接口单元;
状态机,用于实现一个以上的状态,控制所述一个以上的状态的切换,并根据切换到的每个状态,通过接口单元控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述状态机返回所生成的密钥序列;并且,将接收到的密钥序列保存到所述存储单元中;
存储单元,用于接收外部发来的初始向量,向所述状态机提供所述初始向量,以及保存密钥序列;
接口单元,用于连接外部密钥序列装置,将所述外部密钥序列装置发来的密钥序列传输到所述存储单元。
所述状态机中包括:
第一实现子单元,用于设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
状态切换子单元,用于控制进入所述第一实现子单元设置的加载IV状态,通过所述接口单元把密钥序列装置的IV向量加载使能信号设置为高电平,把初始向量传输给所述密钥序列装置;之后,切换到所述第一实现子单元设置的写密钥长度状态,确定密钥长度,把密钥长度的值通过所述接口单元传输给密钥序列装置;之后,切换到所述第一实现子单元设置的等待状态;之后,切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列。
所述第一实现子单元,进一步设置状态机的状态包括空闲状态和复位状态;
所述状态切换子单元,进一步在执行所述控制进入所述第一实现子单元设置的加载IV状态之前,控制进入所述第一实现子单元设置的空闲状态,之后,切换到所述第一实现子单元设置的复位状态,在复位状态,通过所述接口单元设置外部所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后执行所述控制进入所述第一实现子单元设置的加载IV状态;以及,在执行所述切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列之后,切换回所述第一实现子单元设置的空闲状态。
所述存储单元为双端口RAM,所述双端口RAM包括:
第一端口,用于接收外部主机发来的初始向量,传输到RAM;
RAM,用于保存初始向量,以及保存密钥序列;
第二端口,用于接收所述状态机发来的密钥序列,传输到所述RAM。
所述接口单元包括:
时钟信号引脚,连接到外部密钥序列装置的时钟信号引脚;
复位信号引脚,连接到外部密钥序列装置的复位信号引脚,低电平有效;
第一IO引脚,连接到外部密钥序列装置的初始向量IV引脚;
第二IO引脚,连接到外部密钥序列装置的IV加载信号引脚,高电平有效;
第三IO引脚,连接到外部密钥序列装置的密钥序列长度信号引脚;
第四IO引脚,连接到外部密钥序列装置的密钥序列输出引脚;
所述状态机,具体在进入复位状态时,控制所述接口单元通过所述复位信号引脚向密钥序列装置输出低电平信号,对所述密钥序列装置进行复位;在进入加载IV状态时,控制所述接口单元通过第二IO引脚输出高电平,并通过第一IO引脚把初始向量传输给所述密钥序列装置;在进入写密钥长度状态时,控制所述接口单元通过第三IO引脚把密钥长度的值传输给密钥序列装置;在进入读密钥状态时,控制所述接口单元通过第四IO引脚接收密钥序列装置传输来的密钥序列。
一种密钥序列的获取系统,包括密钥序列装置以及上述任意一种FPGA;其中,
所述密钥序列装置,在所述FPGA状态机的控制下,依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述状态机返回所生成的密钥序列。
密钥序列装置包括Trivium模块;所述Trivium模块包括:
时钟信号引脚CLK,与所述FPGA的时钟信号引脚相连;
复位信号引脚RST,与所述FPGA的复位信号引脚相连;
初始向量IV引脚IV[79..0],与所述FPGA的第一IO引脚相连;
IV加载信号引脚IV_load,与所述FPGA的第二IO引脚相连;
密钥序列长度信号引脚KEY_len[31..0],与所述FPGA的第三IO引脚相连;
密钥序列输出引脚S_out,与所述FPGA的第四IO引脚相连。
本发明实施例提供的密钥序列的获取方法和系统以及FPGA,能够利用硬件FPGA与密钥序列装置配合,在FPGA中设置状态机,并通过状态机的状态的切换,来控制密钥序列装置执行生成密钥序列的各个处理,由于采用FPGA的状态机来控制,是一种硬件实现的方式,因此,相对于现有技术中利用软件代码的方式,则能够大大提高获取密钥序列的速度。
附图说明
图1是本发明一个实施例中密钥序列获取方法的流程图。
图2是本发明一个实施例中FPGA的结构示意图。
图3是本发明一个实施例中密钥序列获取系统的示意图。
图4是本发明一个实施例中FPGA与密钥序列装置的连接示意图。
图5是本发明又一个实施例中密钥序列获取方法的流程图。
图6是本发明一个实施例中FPGA的状态机示意图。
图7是本发明又一个实施例中密钥序列获取系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明一个实施例提出了一种密钥序列的获取方法,参见图1,包括:
101:设置FPGA以及密钥序列装置。
102:在所述FPGA中设置状态机。
103:将所述FPGA与所述密钥序列装置相连。
104:利用所述FPGA中的状态机,控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量以及所述设置的密钥长度来生成密钥序列、及向FPGA输出所生成的密钥序列。
可见,上述本发明实施例能够利用硬件FPGA与密钥序列装置配合,在FPGA中设置状态机,并通过状态机的状态的切换,来控制密钥序列装置执行生成密钥序列的各个处理,由于采用FPGA的状态机来控制,是一种硬件实现的方式,因此,相对于现有技术中利用软件代码的方式,则能够大大提高获取密钥序列的速度。
在具体的一种实现中,密钥序列装置在生成密钥序列时,需要执行获取初始向量、获取密钥长度的值、生成密钥序列、返回密钥序列的处理,因此,为了能够通过FPGA控制该四种处理,在本发明的一个实施例中,可以在所述FPGA中设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
这样,利用FPGA中的状态机控制所述密钥序列装置的具体过程则可以包括:
FPGA中的状态机进入加载IV状态,把密钥序列装置的IV向量加载使能信号设置为高电平,之后把初始向量传输给所述密钥序列装置,所述密钥序列装置获取初始向量;
FPGA中的状态机进入写密钥长度状态,确定密钥长度,把密钥长度的值传输给密钥序列装置,所述密钥序列装置获取密钥长度的值;
FPGA中的状态机进入等待状态,所述密钥序列装置根据获取的初始向量以及密钥长度的值生成密钥序列;
FPGA中的状态机进入读密钥状态,读取所述密钥序列装置传输来的密钥序列。
为了进一步完善FPGA中的状态机,以便能使FPGA的状态机在无需获取密钥序列时不控制密钥序列装置,以及在需要获取密钥序列时,能够控制密钥序列装置从初始的复位状态开始执行相应的处理过程,在本发明的一个实施例中,图1过程的步骤102中在所述FPGA中设置状态机进一步包括:在所述FPGA中,设置状态机的状态还包括空闲状态和复位状态;
在步骤103与步骤104之间,即所述FPGA中的状态机进入加载IV状态之前进一步包括:
FPGA的状态机处于空闲状态,之后进入复位状态;在复位状态,FPGA的状态机设置所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后进入所述加载IV状态。
本发明一个实施例还提出了一种FPGA,参见图2,包括:状态机201、存储单元202以及接口单元203;
状态机201,用于实现一个以上的状态,控制所述一个以上的状态的切换,并根据切换到的每个状态,通过接口单元203控制密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述状态机201返回所生成的密钥序列;并且,状态机201将接收到的密钥序列保存到所述存储单元202中;
存储单元202,用于接收外部发来的初始向量,向所述状态机201提供所述初始向量,以及保存密钥序列;
接口单元203,用于连接外部密钥序列装置,将所述外部密钥序列装置发来的密钥序列传输到所述存储单元202。
可见,上述本发明实施例的FPGA能够与密钥序列装置配合,通过状态机的状态的切换,来控制密钥序列装置执行生成密钥序列的各个处理,由于采用FPGA的状态机来控制,是一种硬件实现的方式,因此,相对于现有技术中利用软件代码的方式,则能够大大提高获取密钥序列的速度。
在本发明的一个实施例中,FPGA的状态机中包括:
第一实现子单元,用于设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
状态切换子单元,用于控制进入所述第一实现子单元设置的加载IV状态,通过所述接口单元把密钥序列装置的IV向量加载使能信号设置为高电平,把初始向量传输给所述密钥序列装置;之后,切换到所述第一实现子单元设置的写密钥长度状态,确定密钥长度,把密钥长度的值通过所述接口单元传输给密钥序列装置;之后,切换到所述第一实现子单元设置的等待状态;之后,切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列。
为了进一步完善FPGA中状态机的状态控制,在本发明一个实施例中,所述第一实现子单元,进一步设置状态机的状态包括空闲状态和复位状态;
所述状态切换子单元,进一步在执行所述控制进入所述第一实现子单元设置的加载IV状态之前,控制进入所述第一实现子单元设置的空闲状态,之后,切换到所述第一实现子单元设置的复位状态,在复位状态,通过所述接口单元设置外部所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后执行所述控制进入所述第一实现子单元设置的加载IV状态;以及,在执行所述切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列之后,切换回所述第一实现子单元设置的空闲状态。
为了能够更好地与外部主机和外部密钥序列装置分别进行信息交互,在本发明一个实施例中,FPGA的存储单元为双端口RAM,所述双端口RAM包括:
第一端口,用于接收外部主机发来的初始向量,传输到RAM;
RAM,用于保存初始向量,以及保存密钥序列;
第二端口,用于接收所述状态机发来的密钥序列,传输到所述RAM。
相应于FPGA中状态机对密钥序列装置的控制,FPGA的接口单元需要提供相应的连接引脚,因此,在本发明一个实施例中,所述接口单元包括:
时钟信号引脚,连接到外部密钥序列装置的时钟信号引脚;
复位信号引脚,连接到外部密钥序列装置的复位信号引脚,低电平有效;
第一IO引脚,连接到外部密钥序列装置的初始向量IV引脚;
第二IO引脚,连接到外部密钥序列装置的IV加载信号引脚,高电平有效;
第三IO引脚,连接到外部密钥序列装置的密钥序列长度信号引脚;
第四IO引脚,连接到外部密钥序列装置的密钥序列输出引脚;
基于上述接口单元的各个引脚,状态机实现控制密钥序列装置的过程包括:所述状态机,具体在进入复位状态时,控制所述接口单元通过所述复位信号引脚向密钥序列装置输出低电平信号,对所述密钥序列装置进行复位;在进入加载IV状态时,控制所述接口单元通过第二IO引脚输出高电平,并通过第一IO引脚把初始向量传输给所述密钥序列装置;在进入写密钥长度状态时,控制所述接口单元通过第三IO引脚把密钥长度的值传输给密钥序列装置;在进入读密钥状态时,控制所述接口单元通过第四IO引脚接收密钥序列装置传输来的密钥序列。
本发明一个实施例还提出了一种密钥序列的获取系统,参见图3,包括密钥序列装置301以及本发明任意一种实施例的FPGA302;其中,
所述密钥序列装置301,在所述FPGA302的状态机的控制下,依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述FPGA302的状态机返回所生成的密钥序列。
所述密钥序列装置包括所述Trivium模块,所述Trivium模块包括:
时钟信号引脚CLK,与所述FPGA的时钟信号引脚相连;
复位信号引脚RST,与所述FPGA的复位信号引脚相连;
初始向量IV引脚IV[79..0],与所述FPGA的第一IO引脚相连;
IV加载信号引脚IV_load,与所述FPGA的第二IO引脚相连;
密钥序列长度信号引脚KEY_len[31..0],与所述FPGA的第三IO引脚相连;
密钥序列输出引脚S_out,与所述FPGA的第四IO引脚相连。
图4是本发明一个实施例中FPGA与密钥序列装置的连接示意图。参见图4,在本发明的任意一种实施例中,FPGA的接口单元与密钥序列装置的连接可以采用如下方式实现:
在FPGA的接口单元中包括:
1、时钟信号引脚(记为图4中的CLK),连接到密钥序列装置的时钟信号引脚CLK;
2、复位信号引脚(记为图4中的RST),连接到密钥序列装置的复位信号引脚RST,低电平有效;
3、第一IO引脚(记为图4中的IO[79..0]),连接到密钥序列装置的初始向量IV引脚(记为图4中的IV[79..0]);
4、第二IO引脚(记为图4中的IO),连接到密钥序列装置的IV加载信号引脚(记为图4中的IV_load),高电平有效;
5、第三IO引脚(记为图4中的IO[31..0]),连接到密钥序列装置的密钥序列长度信号引脚(记为图4中的KEY_len[31..0]);
6、第四IO引脚(记为图4中的IO),连接到密钥序列装置的密钥序列输出引脚(记为图4中的S_out)。
为了更加清楚地体现本发明实施例中基于硬件FPGA中的状态机对密钥序列装置生成密钥序列进行控制的过程,下面举一个具体的例子进行说明,参见图5、图6和图7,以密钥序列装置为Trivium模块为例,包括:
501:预先在FPGA中设置双端口RAM以及状态机,并设置状态机的各个状态及各个状态的流转关系。
这里,参见图6,状态机中的状态包括:空闲状态(IDLE)、复位状态(RESET)、加载IV状态(Load_IV)、写密钥长度状态(Write_Len)、等待状态(WAIT)、读密钥状态(Read_Key),各个状态之间的切换关系可以参见图6所示。
502:将FPGA与Trivium模块相连。
这里,参见图4,FPAG的CLK连接到Trivium模块的CLK;
FPGA的RST连接到Trivium模块的RST;
FPGA的IO[79..0])连接到Trivium模块的IV[79..0];
FPGA的一个IO连接到Trivium模块的IV_load;
FPGA的IO[31..0]连接到Trivium模块的KEY_len[31..0];
FPGA的另一个IO连接到Trivium模块的S_out。
参见图4,除CLK引脚外,Trivium模块的多数引脚与FPGA的IO口连接,所有信号是时钟同步的,在上升沿被采样。各信号的功能如下:
CLK:输入信号,是Trivium模块的时钟信号,时钟频率为50MHz;
RST:输入信号,是Trivium模块的复位信号,低电平有效;
IV[79..0]:输入信号,80bit初始向量;
IV_load:输入信号,IV向量加载使能信号,高电平有效;
KEY_len[31..0]:输入信号,设置密钥序列的输出长度;
S_out:输出信号,密钥序列的输出。
503:FPGA的状态机首先进入IDLE状态。
504:FPGA的状态机进入RESET状态,将FPGA的RST置为低电平。
505:Trivium模块通过其RST检测到低电平信号,进行复位处理。
506:外部主机将初始向量IV通过双端口RAM的一个端口写入双端口RAM。
507:FPGA的状态机进入Load_IV,通过IO输出高电平信号。
508:Trivium模块通过其IV_load检测到高电平信号,准备接收初始向量IV。
509:FPGA从双端口RAM中读取初始向量IV,通过IO[79..0]向Trivium模块输出初始向量IV。
510:Trivium模块通过其IO[79..0]接收到初始向量IV。
511:FPGA进入Write_Len状态,通过IO[31..0]把密钥长度的值传输给Trivium模块,之后,进入WAIT状态。
512:Trivium模块通过其KEY_len[31..0]接收到密钥长度的值。
513:Trivium模块根据接收的初始向量IV以及密钥长度的值,生成密钥序列。
514:FPGA进入Read_Key状态。
515:Trivium模块通过S_out将生成的密钥序列传输给FPGA。
516:FPGA从与S_out相连的IO接收到密钥序列,通过双端口RAM的另一个端口,将密钥序列保存到双端口RAM中。
需要说明的是,在上述本发明的实施例中,对状态机各状态的编码可以采用格雷码的方式,从而可以有效的防止毛刺的产生,使系统稳定。
至此,则实现了利用FPGA的状态机来控制密钥序列的生成过程,硬件控制方式,大大提高了密钥序列的获取速度。
本发明的各个实施例至少具有如下的有益效果:
1、本发明实施例能够利用硬件FPGA与密钥序列装置配合,在FPGA中设置状态机,并通过状态机的状态的切换,来控制密钥序列装置执行生成密钥序列的各个处理,由于采用FPGA的状态机来控制,是一种硬件实现的方式,因此,相对于现有技术中利用软件代码的方式,则能够大大提高获取密钥序列的速度。
2、本发明实施例中,为了缓存数据的需要,FPGA中设置了一双端口RAM,外部主机和FPGA可以通过双端口RAM的两个端口对RAM进行独立的访问,使得设计更加灵活。
3、本发明的实施例中,对状态机各状态的编码可以采用格雷码的方式,从而可以有效的防止毛刺的产生,使系统稳定。
4、本发明的实施例中,可以利用硬件描述语言VHDL设计状态机对Trivium模块进行控制,符合IEEE-93标准,状态机可以移植到不同型号的FPGA中,使得设计灵活方便。本发明可以满足各种密码设备、信息安全产品的使用需求。
上述设备内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种密钥序列的获取方法,其特征在于,设置FPGA以及密钥序列装置,在所述FPGA中设置状态机,还包括:
将所述FPGA与所述密钥序列装置相连;
利用所述FPGA中的状态机,控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量以及所述设置的密钥长度来生成密钥序列、及向FPGA输出所生成的密钥序列。
2.根据权利要求1所述的方法,其特征在于,
所述在所述FPGA中设置状态机包括:在所述FPGA中,设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
所述利用所述FPGA中的状态机,控制所述密钥序列装置包括:
FPGA中的状态机进入加载IV状态,把密钥序列装置的IV向量加载使能信号设置为高电平,之后把初始向量传输给所述密钥序列装置,所述密钥序列装置获取初始向量;
FPGA中的状态机进入写密钥长度状态,确定密钥长度,把密钥长度的值传输给密钥序列装置,所述密钥序列装置获取密钥长度的值;
FPGA中的状态机进入等待状态,所述密钥序列装置根据获取的初始向量以及密钥长度的值生成密钥序列;
FPGA中的状态机进入读密钥状态,读取所述密钥序列装置传输来的密钥序列。
3.根据权利要求2所述的方法,其特征在于,所述在所述FPGA中设置状态机进一步包括:在所述FPGA中,设置状态机的状态还包括空闲状态和复位状态;
在所述FPGA中的状态机进入加载IV状态之前进一步包括:
FPGA的状态机处于空闲状态,之后进入复位状态;在复位状态,FPGA的状态机设置所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后进入所述加载IV状态。
4.一种FPGA,其特征在于,包括:状态机、存储单元以及接口单元;
状态机,用于实现一个以上的状态,控制所述一个以上的状态的切换,并根据切换到的每个状态,通过接口单元控制所述密钥序列装置依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述状态机返回所生成的密钥序列;并且,将接收到的密钥序列保存到所述存储单元中;
存储单元,用于接收外部发来的初始向量,向所述状态机提供所述初始向量,以及保存密钥序列;
接口单元,用于连接外部密钥序列装置,将所述外部密钥序列装置发来的密钥序列传输到所述存储单元。
5.根据权利要求4所述的FPGA,其特征在于,所述状态机中包括:
第一实现子单元,用于设置状态机的状态包括加载IV状态、写密钥长度状态、等待状态、读密钥状态;
状态切换子单元,用于控制进入所述第一实现子单元设置的加载IV状态,通过所述接口单元把密钥序列装置的IV向量加载使能信号设置为高电平,把初始向量传输给所述密钥序列装置;之后,切换到所述第一实现子单元设置的写密钥长度状态,确定密钥长度,把密钥长度的值通过所述接口单元传输给密钥序列装置;之后,切换到所述第一实现子单元设置的等待状态;之后,切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列。
6.根据权利要求5所述的FPGA,其特征在于,所述第一实现子单元,进一步设置状态机的状态包括空闲状态和复位状态;
所述状态切换子单元,进一步在执行所述控制进入所述第一实现子单元设置的加载IV状态之前,控制进入所述第一实现子单元设置的空闲状态,之后,切换到所述第一实现子单元设置的复位状态,在复位状态,通过所述接口单元设置外部所述密钥序列装置的复位信号为低电平,对所述密钥序列装置进行复位,之后执行所述控制进入所述第一实现子单元设置的加载IV状态;以及,在执行所述切换到所述第一实现子单元设置的读密钥状态,通过所述接口单元读取所述密钥序列装置传输来的密钥序列之后,切换回所述第一实现子单元设置的空闲状态。
7.根据权利要求4至6中任一所述的FPGA,其特征在于,
所述存储单元为双端口RAM,所述双端口RAM包括:
第一端口,用于接收外部主机发来的初始向量,传输到RAM;
RAM,用于保存初始向量,以及保存密钥序列;
第二端口,用于接收所述状态机发来的密钥序列,传输到所述RAM。
8.根据权利要求4至6中任一所述的FPGA,其特征在于,
所述接口单元包括:
时钟信号引脚,连接到外部密钥序列装置的时钟信号引脚;
复位信号引脚,连接到外部密钥序列装置的复位信号引脚,低电平有效;
第一IO引脚,连接到外部密钥序列装置的初始向量IV引脚;
第二IO引脚,连接到外部密钥序列装置的IV加载信号引脚,高电平有效;
第三IO引脚,连接到外部密钥序列装置的密钥序列长度信号引脚;
第四IO引脚,连接到外部密钥序列装置的密钥序列输出引脚;
所述状态机,具体在进入复位状态时,控制所述接口单元通过所述复位信号引脚向密钥序列装置输出低电平信号,对所述密钥序列装置进行复位;在进入加载IV状态时,控制所述接口单元通过第二IO引脚输出高电平,并通过第一IO引脚把初始向量传输给所述密钥序列装置;在进入写密钥长度状态时,控制所述接口单元通过第三IO引脚把密钥长度的值传输给密钥序列装置;在进入读密钥状态时,控制所述接口单元通过第四IO引脚接收密钥序列装置传输来的密钥序列。
9.一种密钥序列的获取系统,其特征在于,包括密钥序列装置以及如权利要求4至8中任一所述的FPGA;其中,
所述密钥序列装置,在所述FPGA状态机的控制下,依次执行初始向量的加载、密钥长度的设置、根据所述加载的初始向量及所述设置的密钥长度来生成密钥序列、向所述状态机返回所生成的密钥序列。
10.根据权利要求9所述的系统,其特征在于,密钥序列装置包括Trivium模块;所述Trivium模块包括:
时钟信号引脚CLK,与所述FPGA的时钟信号引脚相连;
复位信号引脚RST,与所述FPGA的复位信号引脚相连;
初始向量IV引脚IV[79..0],与所述FPGA的第一IO引脚相连;
IV加载信号引脚IV_load,与所述FPGA的第二IO引脚相连;
密钥序列长度信号引脚KEY_len[31..0],与所述FPGA的第三IO引脚相连;
密钥序列输出引脚S_out,与所述FPGA的第四IO引脚相连。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510479143.XA CN105049199A (zh) | 2015-08-07 | 2015-08-07 | 一种密钥序列的获取方法和系统以及fpga |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510479143.XA CN105049199A (zh) | 2015-08-07 | 2015-08-07 | 一种密钥序列的获取方法和系统以及fpga |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105049199A true CN105049199A (zh) | 2015-11-11 |
Family
ID=54455422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510479143.XA Pending CN105049199A (zh) | 2015-08-07 | 2015-08-07 | 一种密钥序列的获取方法和系统以及fpga |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105049199A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106781572A (zh) * | 2017-01-16 | 2017-05-31 | 青岛海信网络科技股份有限公司 | 一种交通诱导信息发布的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677399A (zh) * | 2008-09-18 | 2010-03-24 | 香港科技大学 | 基于流密码的安全编码方案的多媒体内容编码方法和系统 |
CN103701591A (zh) * | 2013-12-23 | 2014-04-02 | 中国科学院数学与系统科学研究院 | 一种序列密码实现方法和密钥流生成方法及装置 |
CN104202156A (zh) * | 2014-09-15 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种Trivium算法密钥序列生成器的设计方法 |
-
2015
- 2015-08-07 CN CN201510479143.XA patent/CN105049199A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101677399A (zh) * | 2008-09-18 | 2010-03-24 | 香港科技大学 | 基于流密码的安全编码方案的多媒体内容编码方法和系统 |
CN103701591A (zh) * | 2013-12-23 | 2014-04-02 | 中国科学院数学与系统科学研究院 | 一种序列密码实现方法和密钥流生成方法及装置 |
CN104202156A (zh) * | 2014-09-15 | 2014-12-10 | 浪潮电子信息产业股份有限公司 | 一种Trivium算法密钥序列生成器的设计方法 |
Non-Patent Citations (2)
Title |
---|
徐远泽 等: ""基于FPGA的eStream序列密码实现分析"", 《通信技术》 * |
戴强 等: ""面向流密码的反馈移位寄存器专用指令集扩展"", 《小型微型计算机系统》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106781572A (zh) * | 2017-01-16 | 2017-05-31 | 青岛海信网络科技股份有限公司 | 一种交通诱导信息发布的方法及装置 |
CN106781572B (zh) * | 2017-01-16 | 2019-09-17 | 青岛海信网络科技股份有限公司 | 一种交通诱导信息发布的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101854353B (zh) | 一种基于fpga的多芯片并行加密方法 | |
CN102609288B (zh) | 一种基于fpga/cpld的程序下载器 | |
CN101329663A (zh) | 一种实现管脚分时复用的装置及方法 | |
CN102694554A (zh) | 数据压缩设备、其操作方法以及包括该设备的数据处理装置 | |
EP3197054A1 (en) | Dynamic clock switching method and apparatus as well as computer readable medium | |
CN105183423A (zh) | 一种跨时钟域异步数据处理方法和装置 | |
CN105244054A (zh) | 一种适用于宇航用sram型fpga的抗单粒子瞬态加固寄存器 | |
CN109408427A (zh) | 一种跨时钟域数据处理方法及系统 | |
CN105425898A (zh) | 一种低功耗嵌入式系统 | |
CN105049199A (zh) | 一种密钥序列的获取方法和系统以及fpga | |
CN101207372A (zh) | 一种可实现固定小数采样率转换的方法及其装置 | |
CN105406839B (zh) | 一种电路和电子装置 | |
CN202995576U (zh) | 多通道模拟输出卡 | |
CN209946882U (zh) | 一种基于fpga的数据存储与转储系统 | |
CN108173569B (zh) | 一种卫星载荷用扩频码生成系统 | |
CN115333868B (zh) | 基于奇偶轮循的对称加密方法、解密方法、装置、设备 | |
CN105354150A (zh) | 一种内容匹配方法和装置 | |
CN104679147A (zh) | 一种基于vpx的存储板 | |
CN113452381A (zh) | 基于fpga的crc实现系统 | |
CN219716113U (zh) | 一种原型验证装置的外围电路结构 | |
CN110532815A (zh) | 一种基于cnfet的三值sram-puf电路 | |
Van Luan et al. | Implementation of the XY2-100 protocol on low-cost microcontroller | |
CN203457135U (zh) | 格雷码计数器装置 | |
CN202372977U (zh) | 基于fpga实现的usb主设备端接口结构 | |
CN114785587B (zh) | 一种基于fpga保障传输信息安全性的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20151111 |