具体实施方式
以下使用实施例、参照附图来说明本发明的实施方式。此外,对于实质上相同的部分标注相同的参照号码,省略重复说明。
图1是光接入网络的框图。光接入网络10由光集线装置(以下称为OLT)1、光用户装置(以下称为ONT)2、光分路器3、OLT1和光分路器3之间的主干光纤8、以及光分路器3和ONT2之间的用户光纤9构成。ONT2连接到IP系统4以及TDM系统5。另外,OLT1连接到IP网络6以及TDM网络7。
来自TDM系统5的TDM信号通过光接入网络10收容在TDM网络7中。另外,来自IP系统4的信号通过光接入网络10收容在IP网络6中。将这些信号称为上行信号。
另外,相反,来自TDM网络7的TDM信号通过光接入网络10收容在TDM系统5中。另外,来自IP网络6的信号通过光接入网络10收容在IP系统4中。将这些信号称为下行信号。
此外,在以下说明的直至图7的框图中,信号流动方向(上行、下行)与图1吻合。
图2是OLT的框图。在通过光电转换模块71将来自主干光纤8的上行光信号转换成电信号后,通过OLT PON收发块72 GEM终结(terminate)。通过GEM终端将转换后的电信号转换成以太网信号以及TDM信号。以太网信号和TDM信号分别通过以太网PHY73以及TDM PHY74发送至IP网络6以及TDM网络7。
从IP网络6以及TDM网络7发送来的下行信号分别由以太网PHY73或TDM PHY74接收后,被发送至OLT PON收发块72。OLT PON收发决72进行GEM帧组合后,通过光电转换模块71发送至主干光纤8。MPU75、RAM76以及控制系接口77是用于控制OLT1的微控制器(micro)、RAM以及用于从外部向OLT1进行设定的接口。
图3是ONT的框图。在通过光电转换模块81将来自用户光纤9的下行光信号转换成电信号后,通过ONT PON收发块82GEM终结。ONT PON收发块82将被转换的电信号转换成以太网帧以及TDM信号。以太网帧以及TDM信号分别通过以太网PHY83以及TDM PHY84被发送至IP系统4以及TDM系统5。
来自IP系统4以及TDM系统5的上行信号分别由以太网PHY83或TDMPHY84接收后被发送至ONT PON收发块82。ONT PON收发块82进行GEM帧组合后,通过光电转换模块81发送至用户光纤9。MPU85、RAM86以及控制系接口87是用于控制ONT2的微控制器、RAM以及用于从外部向ONT2进行设定的接口。
图4是OLT的PON收发块的框图。在PON接收部90对来自光电转换模块71的上行PON帧信号进行同步处理和GEM切割处理后,将切割而得的有效载荷(payload)发送至接收GEM组合部91。接收GEM组合部91将切割成多个短期帧来发送的GEM进行组合。然后,存储在接收GEM缓冲器92中,根据OLT接收表93的表信息,将其分配至OLT上行Ethernet GEM终端部94和OLT上行TDM GEM终端部96。
OLT上行以太网GEM终端部94从GEM帧读取以太网帧并通过OLT上行以太网接口95将读取的以太网帧发送至以太网PHY73。OLT上行TDMGEM终端部96从GEM帧取出TDM信号,在所期望的定时通过OLT上行TDM接口97将取出的TDM信号发送至TDM PHY74。
关于下行信号,OLT下行TDM接口104从TDM PHY74接收TDM信号。OLT下行TDM GEM终端部103对TDM信号进行缓冲,生成GEM。OLT下行以太网接口106接收来自以太网PHY73的以太帧,OLT下行以太网GEM终端部105生成GEM。OLT发送调度器(scheduler)102控制OLT下行TDMGEM终端部103,并周期性地向发送GEM缓冲器101发送TDM的GEM。另外,OLT发送调度器102控制OLT下行以太网GEM终端部105,并在空闲时刻向发送GEM缓冲器101发送以太信号的GEM。OLT发送调度器102控制发送GEM缓冲器101,并周期性地向发送GEM组合部100转发TDM信号的GEM和以太信号的GEM。发送GEM组合部100将PON帧的有效载荷部分的GEM组合,转发至PON发送部99。PON发送部99在生成报头后进行PON帧的发送。
在进行OLT1和ONT2之间的距离测定即测距(ranging)时,测距控制部98在由OLT发送调度器102许可的定时从PON发送部99发送测距信号。来自ONT2的应答通过PON接收部90返回到测距控制部98,由此结束测距。
此外,经由MPU接口107,MPU75进行针对各控制块的控制。
图5是ONT的PON收发块的框图。PON接收部127接收来自光电转换模块81的下行信号。PON接收部127进行同步处理、GEM切割处理。接收GEM组合部126组合切割成多个短期帧并进行GEM的发送。在接收GEM缓冲器125中存储组合后的GEM,并按照ONT接收表124的表信息,将其分配至ONT下行以太网GEM终端部121和ONT下行TDM GEM终端部123。ONT下行以太网GEM终端部121从GEM取出以太网帧。以太网帧通过ONT下行以太网接口120被发送至以太网PHY83。ONT下行TDM GEM终端部123从GEM取出TDM信号,并在预定的定时通过ONT下行TDM接口122发送至TDM PHY84。
关于上行信号,ONT上行TDM接口134接收TDM信号。ONT上行TDMGEM终端部133对TDM信号进行缓冲并对组合GEM。ONT上行以太网接口136接收以太帧。ONT上行以太网GEM终端部135生成GEM。ONT发送调度器131控制ONT上行TDM GEM终端部133,并周期性地向发送GEM缓冲器132转发TDM的GEM。另外,ONT发送调度器131控制ONT上行以太网GEM终端部135,并在空闲时刻向发送GEM缓冲器132转发以太网的GEM。ONT发送调度器(Scheduler)131控制发送GEM缓冲器132,并周期性地向发送GEM组合部130转发TDM的GEM和以太网的GEM。发送GEM组合部130对PON帧的有效载荷部分的GEM进行组合,并转发给PON发送部129。PON发送部129生成报头后发送PON帧。
在请求了测距时,通过测距控制部128对PON接收部127接收到的测距请求信号进行处理,立即经由PON发送部129返回测距接收信号。
此外,MPU接口137经过对于MPU85的各控制块的控制。接收GEM组合部126废弃Idle GEM。
图6是OLT的PON接收部和PON发送部的框图,另外,图7是ONT的PON接收部和PON发送部的框图。在图6(a)中,OLT PON接收部90包括:解除上行信号的扰频(scramble)的解扰器(descrambler)901;取得解扰(descramble)信号的帧同步的帧同步部902;将信息字(word)与FEC奇偶校验位(parity)分离,进行信息字的纠错的FEC解码器903;PON帧终端部904;以及对密码进行解码的密码解码器905。在图6(b)中,OLT PON发送部99包括:在GEM中插入Idle GEM的非加密GEM插入部990;对下行信号进行加密的密码编码器991;将加密数据PON帧化的PON帧生成部992;在PON帧追加FEC奇偶校验位的FEC编码器993;插入帧同步信号的帧同步信号插入部994;以及扰频器(scrambler)995。
此外,非加密GEM插入部990也可以不配置在OLT PON发送部99,而配置在GEM组合部100。
图7(a)的ONT PON接收部127除了信号流动以外与图6(a)的OLT PON接收部90结构相同。另外,图7(b)的ONT PON发送部129除了信号流动以外与图6(b)的OLT PON发送部99结构相同。因此省略说明。
此外,在上行侧不采用密码时,不需要OLT PON接收部90的密码解码器905、ONT PON发送部129的非加密GEM插入部990以及密码编码器991。
图8是密码编码器(cipher encoder)部的框图。在图8中,密码编码器部991接收GEM数据,并发送加密GEM数据。密码编码器部991包括:接收GEM数据的加密对象判断部11;与加密对象判断部11连接的计算电路划分部12;对来自计算电路划分部12的ONU-ID(是ONT的ID,一般称为ONU-ID)返回密钥的加密密钥取得部17;对由计算电路划分部12划分的GEM数据进行加密的密码计算部15-A、B;选择两个密码计算结果中的一个的电路选择部20;对与加密对象判断部11连接的数据延迟存储器14的输出和电路选择部20的输出进行异或运算(排他的論理和)的EXOR部21;加密密钥取得部17参照的加密密钥表19;向计算电路划分部供给计数器值的密码计数器18;以及加密对象判断部11参照的加密ON/OFF表13。密码编码器部991可以包含将Port-ID和ONU-ID对应起来的Port-ID/ONU-ID对应表25。
加密在所有GEM有效载荷内的密码块单位中进行计算。加密密钥、加密ON/OFF按照每一个GEM而变化,在GEM内部的密码块单位中不变。
密钥、密码计数器是128bit,但是不是特别限定于128bit。如AES标准中规定那样,也可以是128bit以外的96bit或256bit。另外,以在计数器模式(counter mode)下使用AES密码为前提,但是也可以在其他模式下使用。不管如何,都可以削减密码计算电路的规模。
加密对象判断部11以接收GEM数据的报头内的Port-ID信息为关键词参照加密ON/OFF表13。加密对象判断部11根据加密ON/OFF表13判断其GEM是否为加密对象。加密对象判断部11对数据延迟存储器14转交GEM数据的同时转交判断结果(加密对象信息)。在判断为加密对象时,加密对象判断部11对计算电路划分部12转交加密执行指示、Port-ID、ONU-ID。ONU-ID可以从赋予前级的GEM报头的发送GEM组合部100接收,也可以通过该密码编码器部991从Port-ID得出ONU-ID。在后者的情况下从Port-ID/ONU-ID对应表25得出。
计算电路划分部12在接收到来自加密对象判断部11的加密执行指示时,计算应使相应GEM覆盖的加密式样(pattern)。计算电路划分部12对加密密钥取得部17送出ONU-ID而接收对应的ONU的加密密钥。另外,计算电路划分部12从密码计数器18接收密码计数器值。计算电路划分部12也可以向加密密钥取得部17转交Port-ID来代替ONU-ID。
计算电路划分部12向存在2面的密码计算部15-A、B中可开始计算的一方转交加密密钥、密码计数器值,并指示开始计算。也可以简单地交替使用密码计算A、密码计算B。计算电路划分部12按照密码块单位的定时进行划分。
加密密钥取得部17根据来自计算电路划分部12的ONU-ID,参照加密密钥表19来取得密钥。在接收Port-ID来代替ONU-ID时,加密密钥取得部17参照Port-ID/ONU-ID对应表25获取ONU-ID后,参照加密密钥表19来取得加密密钥。
密码计数器部18生成用于在计数器模式下使用AES密码的计数器值,并转交给计算电路划分部12。如在ITU-T标准G.984.3中规定,密码计数器部18的计数器值的生成条件是由映射GEM的PON帧的超帧计数器值、以及向该PON帧映射GEM报头的时隙(time slot)唯一决定的值。
密码计算部15根据AES标准在计数器模式下进行密码计算。输入128bit的密码计数器值、128bit的加密密钥,在预定的时间后(P时钟后)生成并输出128bit的加密式样。P需要AES方式上的循环计算数10以上的时间,通常是10~12时钟周期。该时间不依赖于计数器模式。
电路选择部20选择来自密码计算部15-A的输出、来自密码计算部15-B的输出。电路选择部20按照在计算电路划分部12划分的电路(scheme)来进行选择。在计算电路划分部的划分定时和在电路选择部的选择定时之间相差密码计算所需要的预定时间。数据延迟存储器14使接收GEM数据、加密对象信息缓冲延迟密码计算所需要的一定的固定时间后进行输出。
在GEM数据为加密对象时,EXOR部21对每一比特对来自电路选择部20的加密式样和来自数据延迟存储器14的GEM数据进行异或运算。在GEM数据不是加密对象时,不进行异或运算而直接输出GEM数据。关于是否为加密对象,根据从数据延迟存储器14接收GEM数据的同时接收的加密对象信息来决定。在密码块比16字节短的情况下,在加密式样中从上位侧的比特起与密码块长度相等的比特为有效,EXOR21进行与密码块数据的异或运算。忽视剩下的加密式样的比特。
参照图9~图11,说明非加密GEM插入部。这里,图9是根据GEM长度判断Idle GEM插入的非加密GEM插入部的框图。图10是根据密码块积算值判断非加密GEM插入的非加密GEM插入部的框图。图11是附带钩(hook)检测的非加密GEM插入部的框图。
在图9中,非加密GEM插入部990A接收来自发送GEM组合部100的GEM数据,并将发送GEM数据发送给密码编码器部。非加密GEM插入部990A由接收GEM数据的次发送GEM延迟存储器31、GEM长度检测部32、加密对象检测部34、发送GEM选择部38、Idle GEM生成部35以及发送调度部37构成。
非加密GEM插入部990A判断是否按照GEM来填充插入Idle GEM,并进行插入。非加密GEM插入部990A在判断时使用GEM长度。加密密钥、加密ON/OFF按照每一GEM而变化,在每一GEM内部的密码块单位中不变化。
次发送GEM延迟存储器31对于接收到的GEM数据在经过GEM选择部的判断而实际输出为止的期间,为了等待对接收GEM数据进行缓冲。次发送GEM延迟存储器31按照GEM数据的到达顺序进行缓冲并输出。次发送GEM延迟存储器31的缓冲时间(从输入到输出的延迟时间)不是一定的,而是根据填充(padding)插入了几个Idle GEM、没有接收到GEM数据的累计时间而动态地变化。因此,次发送GEM延迟存储器31具有即使在某种程度上动态地变化也不会溢出的充足的存储器容量。
GEM长度检测部32检测接收GEM长度(从GEM报头开头到GEM有效载荷结尾的长度),并转交给发送GEM选择部38。检测方法如下。
·从接收到的GEM数据内的GEM报头内的PLI字段(field)取得GEM长度。
·将由发送GEM组合部100组合的GEM长度与GEM数据一起通知给非加密对象GEM插入部990。
·在GEM数据之前预先将由发送GEM组合部100组合的GEM长度通知给非加密对象GEM插入部990。此时,不需要次发送GEM延迟存储器31。
与后级的密码编码器部内的加密对象判断部一样,加密对象检测部34根据接收GEM数据的报头内的Port-ID参照加密ON/OFF表,判断该GEM是否为加密对象。向发送GEM选择部转交判断结果(加密对象信息)。
Idle GEM生成部35生成由5字节的固定式样构成的Idle GEM。可以始终生成40bit份并全部同时(并列地)转交给发送GEM选择部,或者也可以以来自发送GEM选择部的指示为契机来生成。由于都是固定式样,因此可以忽视生成时间。
发送调度部37保存在发送GEM选择部判断的接收GEM数据、Idle GEM的发送调度。以在次发送GEM选择存储器中缓冲的第几个接收GEM数据后不插入/插入几个Idle GEM的形式来保存。
发送GEM选择部38根据从GEM长度检测部32取得的接收GEM长度判断是否在接收到的GEM数据后填充Idle GEM。在判断为填充时,从次发送GEM延迟存储器31读出GEM数据并输出GEM数据后插入由Idle GEM生成部生成的Idle GEM。
发送GEM选择部38实际发送GEM的定时是前GEM(也包括填充的IdleGEM)的发送完毕后,按照到此为止的累计填充量,从判断的定时可能偏移较长的时间。在此期间,在次发送GEM延迟存储器31中对符合的GEM数据列进行缓冲。然后,发送GEM选择部38保存关于在哪个GEM后面填充几个Idle GEM的信息。
在图10中,非加密GEM插入部990B是在图9的非加密GEM插入部990A中进一步追加密码块长度计算部33、发送GEM密码块长度存储部36而得到的结构。
非加密GEM插入部990B判断是否对每一个GEM填充插入Idle GEM,然后进行插入。非加密GEM插入部990B在进行判断时使用密码块单位的积算值。加密密钥、加密ON/OFF按照每一GEM而变化,在每一GEM内部的密码块单位中不变。
次发送GEM延迟存储器31对于接收到的GEM数据在经过GEM选择部的判断而实际输出为止的期间,为了等待对接收GEM数据进行缓冲。次发送GEM延迟存储器31按照GEM数据的到达顺序进行缓冲并输出。次发送GEM延迟存储器31的缓冲时间(从输入到输出的延迟时间)不是一定的,而是根据填充插入了几个Idle GEM、没有接收到GEM数据的累计时间而动态地变化。因此,次发送GEM延迟存储器31具有即使某种程度上动态地变化也不会溢出的充足的存储器容量。
次发送GEM延迟存储器31通过来自发送GEM选择部38的读出指示,按照一个GEM单位进行输出。
GEM长度检测部32检测接收GEM长度(从GEM报头开头到GEM有效载荷结尾的长度),并转交给发送GEM选择部38。以下举出可能的接收GEM长度检测方法。
·从接收到的GEM数据内的GEM报头内的PLI字段取得GEM长度。
·将由发送GEM组合部100组合的GEM长度与GEM数据一起通知给非加密对象GEM插入部。
·在GEM数据之前预先将由发送GEM组合部100组合的GEM长度通知给非加密对象GEM插入部。此时,不需要次发送GEM延迟存储器31。
密码块长度计算部33根据从GEM长度检测部32接收到的GEM长度计算密码块的结构,并转交给发送GEM选择部38。
如使用图17~图20在后面所述那样,密码块的结构是按照16字节来划分GEM有效载荷而得到的,通常为16字节,但是由于GEM长度可变,因此一个GEM的最后的密码块可以取1字节以上且16字节以下的任意值。
与后级的密码编码器部991内的加密对象判断部11一样,加密对象检测部34根据接收GEM数据的报头内的Port-ID参照加密ON/OFF表13,来判断该GEM是否为加密对象。加密对象检测部34向发送GEM选择部38转交判断结果(加密对象信息)。
Idle GEM生成部35生成由5字节的固定式样构成的Idle GEM。可以始终生成40bit份并全部同时(并列地)转交给发送GEM选择部,或者也可以以来自发送GEM选择部的指示为契机来生成。由于都是固定式样,因此可以忽视生成时间。
发送GEM密码块长度存储部36从发送GEM选择部接收并保存由发送GEM选择部38决定发送的最新的加密对象GEM的、包括最后的密码块在内的最新的Q个份的密码块的长度和总和Σ。发送GEM密码块长度存储部36将该保存值转交给GEM选择部38。
发送调度部37保存由发送GEM选择部38判断的接收GEM数据、IdleGEM的发送调度。以在次发送GEM选择存储器中缓冲的第几个接收GEM数据后不插入/插入几个Idle GEM的形式来保存。
发送GEM选择部38根据来自发送调度部的发送调度信息发送接收GEM数据、Idle GEM。在接收GEM数据的情况下,发送GEM选择部38从次发送GEM延迟存储器读出相应的GEM数据,并输出。在Idle GEM的情况下,发送GEM选择部38输出由Idle GEM生成部生成的Idle GEM。
在读出GEM数据时,发送GEM选择部38对次发送GEM延迟存储器31进行读出指示并以一个GEM单位读出。
发送GEM选择部38根据从密码块长度计算部33取得的接收GEM数据的密码块的结构、以及从发送GEM密码块长度存储部36取得的过去Q个份(在后面定义Q)的密码块的各个长度L1~LQ与夹在L1~LQ中的gemh的总和∑来判断是直接发送所接收到的GEM数据还是插入Idle GEM。
此时的判断条件是,根据从过去Q个密码块的开头的密码块的开始位置直至到达接收GEM数据的最初的密码块S为止的时钟周期数Ts是否为预定值P以上来决定。这里,Ts是Σ和gemh的加和值。另外,gemh是GEM报头接收所需要的时钟周期数。
发送GEM选择部38将判断结果转交给发送调度部以更新、存储发送调度信息。
发送GEM选择部38对于决定了发送的最新的GEM,计算包括最后的密码块在内的最新的Q个份的密码块的各个长度L1~LQ和夹在L1~LQ中的gemh的总和Σ,并转交给发送GEM密码块长度存储部36。
在该GEM的密码块数为1个等较少的情况下,可以跨越到一个之前的GEM、还可以进一步跨越到2个之前的GEM等过去多个GEM。
此外,在新决定了发送的GEM为非加密对象GEM或者Idle GEM时,发送GEM选择部38将在过去Q个份的最后的密码块长度LQ和总和Σ加上新的GEM长度Lgem或者gemh而得到的值作为最新的Q个份的新的Σ来进行更新,并转交给发送密码块长度存储部38。
在上述说明中Q为如下:
在密码编码器部991的密码计算部15为1面时:Q=1;
在密码编码器部991的密码计算部15为2面时:Q=2,相应于图8;
在密码编码器部991的密码计算部15为3面时:Q=3;
在图11中,非加密GEM插入部990C是在图9的非加密GEM插入部990A或图10的非加密GEM插入部990B追加了钩检测部39而得到的结构。因此,将非加密GEM插入部990A和非加密GEM插入部990B之间不共用的密码块长度计算部33、发送GEM密码块长度计算部36表现为用虚线包围的块。
为了将在16比特并列电路中产生的GEM间的钩结构始终保持为一定,非加密GEM插入部990C填充Idle GEM而进行补正。具体而言,非加密GEM插入部990C利用Idle GEM为5字节和奇数长度这一点。
在用16比特并列电路构成非加密GEM插入部990、密码编码器部991时,如后述的图19、图20所示,密码块、GEM报头成为钩。而且,由于GEM的长度可变,因此存在按照GEM开头从上位字节位置开始的情况和从下位字节位置开始的情况,钩的结构动态变化。
若照顾(care)钩的结构动态变化,则电路规模增大。由于这一点,为使钩的结构不动态地变化而使其固定,检测钩的发生,非加密GEM插入部990C通过填充插入Idle GEM来控制成一定的钩。
由此,可以将对钩的照顾限于最小限度来简化电路。为了使GEM开头始终如图19的状态那样位于上位字节位置,在接收到的GEM开头为下位字节位置时,非加密GEM插入部990C中断插入Idle GEM,使接收到的GEM开头从上位字节位置开始即可。
另外,相反,为了使GEM开头始终如图20的状态那样位于下位字节位置,在接收到的GEM开头为上位字节位置时,非加密GEM插入部990C中断插入Idle GEM,使接收到的GEM开头从下位字节位置开始即可。
钩检测部39检测接收到的GEM开头是否为以钩为开头,即检测是否从16比特中的下位字节位置开始,并转发给发GEM选择部38。
除了在非加密GEM插入部990A或者非加密GEM插入部990B的判断条件以外,发送GEM选择部38还根据来自加密对象检测部34的加密对象信息和来自钩检测部39的钩发生信息,判断是否在相应的GEM前插入Idle GEM,并进行插入。
非加密GEM插入部990C只要决定为如下任意一种情况并使在接收到的加密对象GEM开头位置的钩结构为一定的结构即可。
·在相应的GEM为加密对象,且在相应的GEM开头产生了钩时,在相应的GEM前插入Idle GEM。
·在相应的GEM为加密对象,且在相应的GEM开头没有产生钩时,在相应的GEM前插入Idle GEM。
或者,根据来自钩检测部的钩发生信息和来自GEM长度检测部的GEM长度检测相应GEM是否以钩为结尾,即检测是否在16比特中的上位字节位置结束,非加密GEM插入部990C也可以判断是否在相应GEM后面填充插入Idle GEM。此时与是否为加密对象无关。
此时也决定为如下任意一种情况即可。只要使此后接收的加密对象GEM的钩结构能够成型为一定即可。
·在GEM以钩结束时在该GEM后面填充插入Idle GEM。后述的图35以此为前提。
·在GEM不是以钩结束时在该GEM后面填充插入Idle GEM。
该判断与使用了图9、图10的说明中的判断条件独立,在图10的判断中即使判断为不填充插入Idle GEM,如果在该判断条件下进行填充插入,则进行填充插入。反之也相同。
参照图12至图16,说明各功能块参照的参照表。这里,图12是加密ON/OFF表的说明图。图13是加密ON/OFF表的辅助表的说明图。图14是加密密钥表的说明图。图15是加密密钥表的辅助表的说明图。图16是Port-ID/ONU-ID表。
在图12中,加密ON/OFF表13由地址和内容构成,并针对指定了地址的读出请求输出该地址的内容。地址的最大数为4096,具有所支持的Port-ID数的数量即可。内容是相应于地址的GEM的加密ON/OFF。Port-ID和地址的对应可以是如Port-ID号码和地址号码相同那样固定的对应,也可以是由图13的辅助表13a设定Port-ID号码和地址号码。
在图13中,加密ON/OFF表的辅助表13a由地址和内容构成,并针对指定了地址的读出请求输出该地址的内容。地址的最大数为4096,具有所支持的Port-ID数的数量即可。内容是相应于地址(Port-ID)的加密ON/OFF表的地址。
在图14中,加密密钥表19由地址和内容构成,并针对指定了地址的读出请求输出该地址的内容。地址的最大数为64,具有所支持的ONU-ID数的数量即可。内容是相应于地址的ONU的加密密钥。ONU-ID和地址的对应可以是如ONU-ID号码与地址号码相等那样固定的对应,也可以是用图15的辅助表19a设定ONU-ID号码和地址号码。
在图15中,加密密钥表的辅助表19b由地址和内容构成,并针对指定了地址的读出请求输出该地址的内容。地址的最大数为64,具有所支持的ONU-ID数的数量即可。内容是相应于地址(ONU-ID)的加密密钥表的地址。
在图16中,Port-ID/ONU-ID表25由地址和内容构成,并针对指定了地址的读出请求输出该地址的内容。地址的最大数为4096,具有所支持的Port-ID数的数量即可。内容是相应于地址的GEM的发送目的地ONT2的ONU-ID。但是,关于具有同时向多个ONT2的多播发送用的Port-ID的GEM,不是存储ONU-ID,而是存储表示是多播的内容(例如是全部(all)“1”)。多播发送用的Port-ID可以是多个。
参照图17至图20,说明GEM格式和信号流。这里,图17是在各1字节为串行的8比特序列时的GEM格式和密码块的说明图。图18是在各1字节为并行的8比特序列时的GEM格式和密码块的说明图。图19是在各2字节为并行的16比特序列、GEM开头在上位字节侧、GEM长度为奇数时的GEM格式和密码块的说明图。图20是各2字节为并行的16比特序列、GEM开头在下位字节侧、GEM长度为偶数时的GEM格式和密码块的说明图。
在图17中,GEM是从GEM开头起5字节为GEM报头,接着GEM报头的1字节~4090字节为GEM有效载荷。密码块长度为16字节,密码块#1~#m-1是16字节,但是最后的密码块#m是k(1≤k≤16)字节。
图18与图17的不同点仅在于将串行数据改为并行数据。
在图19中,由于GEM开头在上位字节侧,因此固定长度5字节的GEM报头在上位字节侧结束。在本说明书中,将这样在上位字节侧结束或在下位字节侧开始称为钩。另外,由于GEM长度为奇数,因此GEM结尾在上位字节侧结束,成为钩。另外,密码块#1~#m都是钩。此外,GEM结尾时刻的下位字节是下一个GEM的开头。
在图20中,GEM开头为下位字节,GEM报头呈现钩。由于GEM长度为偶数,因此密码块#m成为钩。GEM开头的上位字节是前一个GEM的结尾。
参照图21以及图22,说明密码计算面的必要面数。这里,图21是8比特并列电路的AES-128密码计算面的必要面数的说明图。图22是16比特并列电路的AES-128密码计算面的必要面数的说明图。
在图21中,AES-128需要10次循环计算,因此用1时钟进行一次循环计算,数据读入也需要1时钟,因此P=11。作为加密对象的GEM#1由5字节的报头、16字节的密码块#1、1字节的密码块#2构成,GEM#2~GEM#5都是由5字节的报头和1字节的密码块#1构成。这里,由于是用1时钟处理1字节的8比特并列电路,因此1字节等于1时钟,GEM#1的密码块#1可以在16时钟周期内用密码计算B面进行处理。但是,由于GEM#1的密码块#2以后的密码块都是1字节,因此考虑到报头5字节,密码计算的面数需要((5+1)×2=12>11)。
在图22中,在用1时钟处理2字节的1 6比特并列电路中,1时钟=2字节,报头处理需要2.5时钟,16字节的密码块需要8时钟(2.5+8=10.5<11),显然一个密码处理部是不够的。假设密码块为1字节(0.5时钟)的GEM连续的情形时,至少需要4面((2.5+0.5)×4=12>11)。
此外,在图21以及图22中,与AES-128密钥长度不同的AES-192(密钥长度192bit)、AES-256(密钥长度256bit)的循环计算也不同,是12次、14次,因此密码计算的面数发生变化。
参照图23以及图27,说明密码计算部的削减方法。这里,图23是基于加密对象GEM长度的Idle GEM插入所进行的2面化的说明图。图24是基于加密对象GEM长度的Idle GEM插入所进行的3面化的说明图。图25是根据密码块的积算信息非加密对象GEM插入所进行的1面化的说明图。图26是根据密码块的积算信息非加密对象GEM插入所进行的2面化的说明图。图27是根据密码块的积算信息非加密对象GEM插入所进行的3面化的说明图。
在图23中,接收GEM数据列、发送GEM数据列是图6或图7的非加密GEM插入部990接收/发送的数据。非加密GEM插入部990在接收GEM数据列中插入Idle GEM,试图延长短符号块,使密码计算保持充裕。
这里,设接收GEM数据列的GEM#1~#4都是加密对象。在加密对象的GEM#i的长度Lgem-i(以时钟周期的换算)未满预定值R时,非加密GEM插入部990在GEM#i和GEM#j之间填充插入一个以上的Idle GEM,以使直至下一个GEM#j开始为止的时间Lgem-i’(时钟周期)达到预定值R以上。在图23中,由于GEM#2、#3的长度Lgem-2、Lgem-3未满R,因此非加密GEM插入部990插入Idle GEM,以使直至下一个GEM#3、#4开始的时间Lgem-2’、Lgem-3’分别达到R以上。
此外,关于不是加密对象的GEM、或者长度为R以上的GEM,不需要Idle GEM的填充插入。
这里,P:密码计算所需要的时钟周期数;R:在P≤12时,满足R≥(P÷2)的值;在P≥12时,满足R≥(P-6)的值。
在8比特并列电路的情况下,由于用1周期处理1字节的数据,因此时钟周期数等于字节数。在16比特并列电路的情况下,由于用1周期处理2字节的数据,因此时钟周期数等于字节数的一半。在时钟周期数为奇数的情况下,Lgem-2’等舍去小数点以下后判断是否为P以上。
在8比特并列电路的情况下,由于所有Lgem-i都是6以上,因此如果是P≤12的密码计算电路,则不需要Idle GEM的填充插入。在16比特并列电路的情况下,由于所有Lgem-i都是3以上,因此如果是P≤6的密码计算电路,则不需要Idle GEM的填充插入。
根据此方法,通过在GEM#2和#3之间填充插入,出现斜线部的时间,可以避免在密码计算A面的重叠(overlap)。
此外,在图23中,实际上在GEM#3和#4之间不填充插入也没有问题。这是因为只根据GEM长度来进行填充判断。
在图24中,接收GEM数据列、发送GEM数据列是图6或者图7的非加密GEM插入部990接收/发送的数据。非加密GEM插入部990在接收GEM数据列中插入Idle GEM,试图延长短符号时钟,使密码计算充裕。
这里,设接收GEM数据列的GEM#1~#4都是加密对象。在加密对象的GEM#i的长度Lgem-i(以时钟周期的换算)未满预定值R时,非加密GEM插入部990在GEM#i和GEM#j之间填充插入一个以上的Idle GEM,以使直至下一个GEM#j开始为止的时间Lgem-i’(时钟周期)达到预定值R以上。在图24中,由于GEM#2、#3的长度Lgem-2、Lgem-3未满R,因此非加密GEM插入部990插入Idle GEM,以使直至下一个GEM#3、#4开始为止的时间Lgem-2’、Lgem-3’分别达到R以上。
此外,关于不是加密对象的GEM、或者长度为R以上的GEM,不需要Idle GEM的填充插入。
这里,R:在P≤18时,满足R≥P÷3;在P≥18时,R≥(P-6)÷2。
在8比特并列电路的情况下,由于用1周期处理1字节的数据,因此时钟周期数等于字节数。在16比特并列电路的情况下,由于用1周期处理2字节的数据,因此时钟周期数等于字节数的一半。在时钟周期数为奇数的情况下,Lgem-2’等舍去小数点以下后判断是否为P以上。
在8比特并列电路的情况下,由于所有Lgem-i都是6以上,因此如果是P≤18的密码计算电路,则不需要Idle GEM的填充插入。在16比特并列电路的情况下,由于所有Lgem-i都是3以上,因此如果是P≤9的密码计算电路,则不需要Idle GEM的填充插入。
根据此方法,通过在GEM#2和#3之间填充插入,出现斜线部的时间,可以避免在密码计算C面的重叠(overlap)。
此外,与图23一样,在图24中,实际上在GEM#3和#4之间不填充插入也没有问题。这也是因为只根据GEM长度来进行填充判断。
在图25中,非加密GEM插入部990插入单个或多个非加密对象的GEM,以使直至下一个密码块的长度T1、T1’、T1”、...达到P时钟周期份以上。即,按照每一个GEM,根据到此为止的1个密码块长度,判断是否插入非加密对象的GEM。这里,非加密对象的GEM是接收到的GEM数据,不是加密对象,或者是Idle GEM。另外,在前一个密码块加上报头部分。
这样的非加密GEM插入部990的后级的密码编码器部991,密码计算也可以是一面。
在图26中,非加密GEM插入部990插入单个或多个非加密对象的GEM,以使直至第二密码块的各个长度T2、T2’、T2”、...为P时钟周期份以上。即,按照每一个GEM,根据到此为止的2个密码块长度的积算值,判断是否插入非加密对象的GEM。另外,在前一个密码块加上报头部分。
这样的非加密GEM插入部990的后级的密码编码器部991,密码计算也可以是2面。另外,因为基于过去2密码块的积算值,因此不会发生在图23、图24说明的不需要的填充。
在图27中,非加密GEM插入部990插入单个或多个非加密对象的GEM,以使直至第3密码块的各个长度T3、T3’、T3”、...为P时钟周期份以上。即,按照每一个GEM,根据到此为止的3个密码块长度的积算值,判断是否插入非加密对象的GEM。另外,在前一个密码块加上报头部分。
这样的非加密GEM插入部990的后级的密码编码器部991,密码计算也可以是3面。
参照图28以及图32,详细说明发送GEM选择部的判断。这里,图28是判断Ts<P并插入Idle GEM的动作的说明图。图29是判断没有接收到GEM数据并插入Idle GEM的动作的说明图。图30是判断为接收到非加密对象的GEM时的动作说明图。图31是判断钩并插入Idle GEM的动作的说明图。图32是考虑钩判断Ts<P并插入Idle GEM的动作的说明图。
在图28中,作为前提,设Q=2(密码计算部2面)、接收GEM数据列的GEM#1、#2、#3、#4都是加密对象。另外,横轴是时间经过,纵轴是判断顺序。
发送GEM判断部38在发送GEM#2之前实施GEM#2的发送判断。L1是GEM#1的密码块#1的长度,L2是密码块#2的长度,Q=2,因此∑=L1+L2,Ts=Σ+gemh。这里,由于Ts≥P,因此发送GEM判断部38将GEM#2直接发送至密码编码器部991。发送GEM判断部38在此更新参数。此外,将此更新称为参数更新B1。即,设L1为GEM#1的密码块#2的长度(新L1←旧L2)、L2为GEM#2的密码块#1的长度、Σ=L1+L2+α。这里,α是GEM#2的报头长度,因此是gemh。
发送GEM判断部38在发送GEM#3之前实施GEM#3的发送判断。由于计算完Σ,因此发送GEM判断部38求出Ts=Σ+gemh。这里,由于Ts<P,因此发送GEM判断部38计算Idle GEM数。这里设为n个,则发送GEM判断部38向密码编码器部991发送n个Idle GEM。此外,GEM#3处于缓冲状态,直至填充完Idle GEM。发送GEM判断部38填充完n个Idle GEM后初次发送GEM#3。发送GEM判断部38在此更新参数。此外,将此更新称为参数更新A。即设L1为GEM#2的密码块#1的长度(新L1←旧L2)、L2为GEM#3的密码块#1的长度、Σ=L1+L2+α+n×gemh。这里,n×gemh是Idle GEM长度。
在Idle GEM填充中进一步到达下一个GEM#4、GEM#5、...。在到达的定时判断这些即可。或者,预先暂时保存这些各个GEM的加密对象、加密结构的信息,并在适当的定时(上一个GEM#3的发送开始定时)判断即可。图34的流程图是前者的情况,等到接收完毕上一个GEM#3,判断是否新接收GEM。
到GEM#3为止的发送调度确定发送判断后的GEM数据列。用虚线表示的GEM#4处于尚未确定是否将该数据列直接发送的状态。
在确定了发送Idle GEM时,之前的GEM#2的发送状态是发送待机中、发送中、或者正好发送完毕这些状态中的某一个,这是由再前一个GEM#1的发送状态来决定。如果GEM#1的状态是发送待机中或者发送中时,则GEM#2是发送待机中,如果GEM#1的状态是已经发送完毕,则GEM#2是发送中或者正好发送完毕中的某一个。
填充Idle GEM后发送是在发送完毕GEM#2之后。由于在GEM#2或IdleGEM在待机中时也进行下一个GEM#3的发送判断,因此需要保存能够发生排列的GEM个数的数量的发送调度信息(发送GEM的顺序、在该GEM后填充的Idle GEM的个数)。
在图29中,作为前提,设Q=2(密码计算部2面),设接收GEM数据列的GEM#1、#2、#3都是加密对象,设在GEM#2和#3之间未接收GEM。此外,最初的参数更新B1之前与图28的说明一样,因此省略说明。
接收GEM#2后,在没有接收下一个GEM时,由于未接收GEM,因此发送GEM判断部38判断插入Idle GEM。发送GEM判断部38在此更新参数。此外,将此更新称为参数更新C。即,设L1还是GEM#1的密码块#2的长度(新L1←旧L1)、L2为GEM#2的密码块#1的长度+gemh(新L2←旧L2+gemh)、Σ=L1+L2+α+gemh(新Σ←旧Σ+gemh)。
在插入Idle GEM后,在没有接收下一个GEM时,由于未接收GEM,因此发送GEM判断部38判断为插入Idle GEM,并重复进行上述处理。
另一方面,在接收到GEM#3时,发送GEM判断部38计算Ts。这里,由于Ts≥P,因此发送GEM判断部38将GEM#3直接发送给密码编码器部991。发送GEM判断部38在此实施参数更新B1。
在参数更新C中,在旧L2、旧Σ上加上所插入的Idle GEM的长度(gemh)来进行更新,但是也可以与参数更新A一样地进行计算。此时,不更新L1和L2,而是在判断了进行第k个Idle GEM插入的时刻在参数更新A中的n代入k来计算Σ。
在图30中,作为前提,设Q=2(密码计算部2面)、设接收GEM数据列的GEM#1、#2、#4都是加密对象,设GEM#3是非加密对象。此外,最初的参数更新B1之前与图28的说明相同,因此省略说明。
发送GEM判断部38在接收到GEM#3时检测到不是加密对象,直接发送给密码编码器部991。发送GEM判断部38在此实施参数更新B2。在参数更新B2中,在旧L2、旧Σ上加上GEM#3的长度(Lgem)来进行更新。
在接收到GEM#4时,发送GEM判断部38计算Ts。这里,由于Ts≥P,因此发送GEM判断部38将GEM#4直接发送给密码编码器部991。发送GEM判断部38在此实施参数更新B1。
参数更新B2可以与参数更新B1一样地进行计算。此时,不更新L1和L2,而在α中包含Lgem将“L1+L2+α”作为Σ来进行更新。
在图31中,作为前提,设Q=2(密码计算部2面)、16比特并列电路、接收GEM数据列的GEM#1、#2是加密对象、GEM#1、#2都是钩。
发送GEM判断部38设GEM#1的密码块#1的长度为L1、密码块#2的长度为L2、Σ为L1+L2+α。但是,由于密码块不跨越GEM报头,因此α=0。由于GEM#1的最后为钩,因此发送GEM判断部38判断为插入最后不是钩的Idle GEM。发送GEM判断部38实施参数更新C’。参数更新C’中,L1还是原来的L1,L2是旧L2+gemhB,Σ是旧Σ+gemhB。这里,gemhB是最后不是钩的Idle GEM。
发送GEM判断部38在GEM#2的发送判断中计算Ts。这里,由于Ts≥P,因此发送GEM判断部38将GEM#2直接发送给密码编码器部991。发送GEM判断部38在此实施参数更新B1。由于GEM#2的最后为钩,因此发送GEM判断部38判断为插入最后不是钩的Idle GEM。发送GEM判断部38实施参数更新C’。
此外,在参数更新C’中,在旧L2、旧Σ上加上插入的Idle GEM的长度(gemhB)来进行更新,但是也可以与参数更新B1一样地进行计算。此时,不更新L1和L2,而在α中包含GEM的长度(gemhB)将“L1+L2+α”作为∑来进行更新即可。此外,由于GEM#1的参数更新C’不跨越GEM报头,因此将α设为gemhB即可。由于在GEM#2的参数更新C’中跨越一个GEM报头,因此将α设为(gemh+gemhB)即可。
在图32中,作为前提,设Q=2(密码计算部2面)、16比特并列电路、接收GEM数据列的GEM#1、#2是加密对象、GEM#1、#2都是非钩。
发送GEM判断部38设GEM#1的密码块#1的长度为L1、密码块#2的长度为L2、Σ为L1+L2+α。但是,由于密码块不跨越GEM报头,因此α=0。由于GEM#1的最后为非钩,因此发送GEM判断部38在钩判断中不插入Idle GEM。
但是,在GEM#2的发送判断中,由于此时Ts<P,因此发送GEM判断部38判断为插入n(n=2m)个Idle GEM。发送GEM判断部38实施参数更新A’。在参数更新A’中,L1是旧L2、L2是下一个(GEM#2的密码块#1)的密码块长度、Σ是L1+L2+α+n/2×β。这里,β是Idle GEM的长度。
GEM#2储存在缓冲器中,直至发送完毕n个Idle GEM为止。
参照图33至图35,说明非加密GEM插入部990的动作。这里,图33是根据GEM长度进行判断的动作的说明图。图34是根据过去的密码块信息进行判断的动作的说明图。图35是根据过去的密码块信息和钩进行判断的动作的说明图。此外,在图33至图35中,串行记载的步骤是逐次处理,而并行记载的步骤是并行处理。
在图33中,非加密GEM插入部990首先对发送调度部37的发送调度信息进行初始化(S101)。非加密GEM插入部990的发送GEM选择部38根据发送调度信息来发送接收GEM、Idle GEM(S102)。发送GEM选择部38还判断是否接收了新的GEM数据(S103)。在没有新的GEM数据时,发送GEM选择部38决定插入Idle GEM(S104)。发送调度部37在发送调度信息中存储Idle GEM插入(S105)。与步骤104、105并行,非加密GEM插入部990等待相当于Idle GEM长度的时间(S107),并回到步骤103。此外,发送调度信息的初始化是在PON帧发送开始、每一PON1帧的开始定时、初始化中断插入发生时进行。
在步骤103中有新的GEM数据的接收时,发送GEM选择部38判断接收数据是否为加密对象(S108)。在是加密对象外的接收数据时,发送GEM选择部38判断为不以Idle GEM进行填充(S109)。发送调度部37在发送调度信息中存储接收GEM(S110)。与这些步骤109、110并行,非加密GEM插入部990等待相当于接收GEM长度的时间(S112),并回到步骤103。
在步骤S108中是加密对象时(是),发送GEM选择部38判断接收GEM长度是否为R以上(S113),如果为“是”,则移动至步骤109。在步骤113中如果是“否”,则发送GEM选择部38判断为用Idle GEM进行填充(S114)。发送GEM选择部38计算应填充的Idle GEM的个数n(S115)。而且,发送调度部37在发送调度信息中存储接收GEM和应填充的Idle GEM的个数n(S117)。与步骤114~117并行,非加密GEM插入部990等待相当于接收GEM和n个Idle GEM的时间(S118),回到步骤103。此外,R可以根据后级的密码编码器部中的密码计算所需要的时间P(时钟周期数)预先计算。
在前级的发送GEM组合部100中,做成在没有应输出的GEM时输出IdleGEM的结构的情况下,非加密GEM插入部能够接收Idle GEM。在接收到IdleGEM时,作为非加密对象的5字节的GEM来处理。
此外,实际发送GEM的定时是发送完毕前GEM(还包括填充的Idle GEM)后,根据到此为止的累计填充量,从判断的定时可能滞后较长的时间。在此期间,在次发送GEM延迟存储器31中对相应的GEM数据列进行缓冲。非加密GEM插入部990在发送调度部37中追加、保存关于在哪个GEM后面填充几个Idle GEM的信息。
在图34中,非加密GEM插入部990首先对发送GEM密码块长度存储部36的参数和发送调度部37的发送调度信息进行初始化(S201)。非加密GEM插入部990的发送GEM选择部38根据发送调度信息来发送接收GEM、IdleGEM(S202)。发送GEM选择部38还判断是否接收了新的GEM数据(S203)。在没有新的GEM数据时,发送GEM选择部38决定插入Idle GEM(S204)。发送GEM密码块长度存储部36实施参数更新C(S205)。发送调度部37在发送调度信息中存储Idle GEM插入(S207)。与步骤207并行,非加密GEM插入部990等待相当于Idle GEM长度的时间(S208),并回到步骤203。此外,参数和发送调度信息的初始化可以在PON帧发送开始、每一PON1帧的开始定时、初始化中断插入发生时进行。
在步骤203中有新的GEM数据的接收时,发送GEM选择部38判断接收数据是加密对象(S209)。在加密对象外时,发送GEM选择部38决定发送接收GEM数据(S210)。发送GEM密码块长度存储部36实施参数更新B1/B2(S212)。发送调度部37在发送调度信息中存储接收GEM(S213)。与这些步骤213并行,非加密GEM插入部990等待相当于接收GEM长度的时间(S214),并回到步骤203。此外,在步骤212中,由于此时为加密对象(是),因此是参数更新B2。
在步骤S209中是加密对象时(是),发送GEM选择部38从密码块长度计算部33取得接收GEM数据的密码块的结构(S215),并计算从过去Q个密码块的开头的密码块开始位置直到到达接收GEM数据的最初的密码块S为止的时钟周期数Ts()=Σ+gemh)(S217)。发送GEM选择部38判断是否为Ts≥P(S218),如果为“是”,则移动至步骤210。此外,此时步骤212是参数更新B1。
如果在步骤218中为“否”,则发送GEM选择部38判断为用Idle GEM进行填充(S219)。发送GEM选择部38计算应填充的Idle GEM的个数n(S220)。发送GEM密码块长度存储部36实施参数更新A(S222)。而且,发送调度部37在发送调度信息中存储接收GEM和应填充的Idle GEM的个数n(S223)。与步骤S222~223并行,非加密GEM插入部990等待相当于接收GEM和n个Idle GEM的时间(S224),并回到步骤203。此外,P是在后级的密码编码器部中的密码计算所需要的时间P(时钟周期数)。
这里,总结参数更新。
(1)参数更新A
更新L1、L2、...、LQ、Σ。
设追溯到包括接收GEM数据的最后加密块E的过去的Q个密码块(最新版)的长度为L1、L2、...、LQ(LQ是最后的密码块E),设其总和作为∑。
在设n为填充的Idle GEM个数时,Σ←L1+L2+...+LQ+α+(n×gemh)。
(2)参数更新B1...加密对象的GEM的情况
与参数更新A一样。
但是,由于不填充Idle GEM,因此设n=0并计算Σ。
(3)参数更新B2...不是加密对象的GEM的情况
更新LQ、Σ。
不更新L1~LQ-1。
LQ←LQ+Lgem
Σ←Σ+Lgem
(3)参数更新C
更新LQ、Σ。
不更新L1~LQ-1。
LQ←LQ+gemh
Σ←Σ+gemh
在参数更新A或B2中,密码块(最新版)的数未满Q个,在m个时,对该m个份进行总和计算并保存各个长度。其中,m≥1。
在密码更新B2或C中,密码块的数未满Q个,在m个时,对该m个份进行更新。其中,m≥0。
在发送GEM密码块长度存储部36中保存参数L1、L2、L3、...、LQ、Σ。L1、L2、...、LQ、Σ、gemh、Lgem、R都是以时钟周期为单位的值。在8比特并列电路的情况下这些值等于字节单位的值,在16比特并列电路的情况下这些值等于字节单位的一半。这里,gemh是接收5字节的GEM报头时所需要的时钟周期数,8比特并列电路的情况:gemh=5,16比特并列电路的情况:gemh=2。另外,P:密码计算所需要的时间(时钟周期数),Lgem:接收GEM数据长度,α:密码块(最新版)跨越过去的GEM时的过去的GEM个数份的gemh的合计值。
在图35中,非加密GEM插入部990首先对发送GEM密码块长度存储部36的参数和发送调度部37的发送调度信息进行初始化(S301)。非加密GEM插入部990的发送GEM选择部38根据发送调度信息来发送接收GEM、IdleGEM(S302)。发送GEM选择部38判断前GEM的最后是否为钩(S303)。在“是”时,发送GEM选择部38决定插入Idle GEM(S304)。发送GEM密码块长度存储部36实施参数更新C’(S305)。发送调度部37在发送调度信息中存储Idle GEM插入(S307)。与步骤307并行,非加密GEM插入部990等待相当于Idle GEM长度的时间(S308),并移动至步骤309。此外,参数和发送调度信息的初始化是在PON帧发送开始、每一PON1帧的开始定时、初始化中断插入发生时进行。
在步骤303中为“否”时,发送GEM选择部38判断是否接收了新的GEM数据(S309)。在没有新的GEM数据时,发送GEM选择部38移动至步骤304。在步骤309中接收了新的GEM数据时,发送GEM选择部38判断接收数据是否为加密对象(S310)。在加密对象外时,发送GEM选择部38决定发送接收GEM数据(S312)。发送GEM密码块长度存储部36实施参数更新B1/B2(S313)。发送调度部37在发送调度信息中存储接收GEM(S314)。与这些步骤314并行,非加密GEM插入部990等待相当于接收GEM长度的时间(S315),并回到步骤309。此外,步骤313中,由于此时是加密对象外,因此是参数更新B2。
在步骤310中是加密对象时(是),发送GEM选择部38从密码块长度计算部33取得接收GEM数据的密码块的结构(S317),并计算从过去Q个密码块的开头的密码块开始位置到达接收GEM数据的最初的密码块S为止的时钟周期数Ts(=Σ+gemh)(S318)。发送GEM选择部38判断是否为Ts≥P(S319),如果为“是”,则移动至步骤312。此外,此时步骤313是参数更新B1。
如果在步骤319中为“否”,则发送GEM选择部38判断为用Idle GEM进行填充(S320)。发送GEM选择部38计算应填充的Idle GEM的个数n(S322)。这里,n是偶数。发送GEM密码块长度存储部36实施参数更新A’(S323)。而且,发送调度部37在发送调度信息中存储接收GEM和应填充的Idle GEM的个数n(S324)。与步骤S323~324并行,非加密GEM插入部990等待相当于接收GEM和n个Idle GEM的时间(S325),并回到步骤309。此外,P是在后级的密码编码器部中的密码计算所需要的时间P(时钟周期数)。
这里,总结参数更新。
(1)参数更新A’
更新L1、L2、...、LQ、Σ。
设追溯到包括接收GEM数据的最后的加密块E的过去的Q个密码块(最新版)的长度为L1、L2、...、LQ(LQ是最后的密码块E),将其总和作为Σ。
n为填充的Idle GEM个数,是偶数。
Σ←L1+L2+...+LQ+α+n/2×β。
(2)参数更新B1...加密对象的GEM的情况
与参数更新A一样。
但是,由于不填充Idle GEM,因此设n=0并计算Σ。
(3)参数更新B2...不是加密对象的GEM的情况
更新LQ、Σ。
不更新L1~LQ-1。
LQ←LQ+Lgem
Σ←Σ+Lgem
(4)参数更新C’
更新LQ、Σ。
不更新L1~LQ-1。
LQ←LQ+gemhB
Σ←Σ+gemhB
在参数更新A’或B1中,密码块(最新版)的数未满Q个,在m个时,对该m个份进行总和计算并保存各个长度。其中,m≥1。
在密码更新B2或C’中,密码块的数未满Q个,在m个时,对该m个份进行更新。其中,m≥0。
在发送GEM密码块长度存储部36中保存参数L1、L2、L3、...、LQ、Σ。这里,L1、L2、...、LQ、Σ、gemh、Lgem、R都是以时钟周期为单位的值,在8比特并列电路的情况下这些值等于字节单位的值,在16比特并列电路的情况下这些值等于字节单位的一半。这里,gemh是接收5字节的GEM报头时所需要的时钟周期数,8比特并列电路的情况:gemh=5,16比特并列电路的情况:gemh=2。另外,β=2×gemh+1(=gemh+gemhB),gemhB=gemh+1,P:密码计算所需要的时间(时钟周期数),Lgem:接收GEM数据长度,α:密码块(最新版)跨越过去的GEM时的过去的GEM个数份的gemh的合计值。
根据本实施例,可以得到削减了加密电路的规模的加密装置。