首页> 中国专利> 密钥流与未对齐的数据流的流式对齐

密钥流与未对齐的数据流的流式对齐

摘要

提供了促进无线通信系统中的更高数据速率的增强型加密技术。在一个方面中,公开了对ZUC算法的改进,其可以减少密钥流生成所涉及的逻辑运算的数量,降低实现ZUC的移动设备上的运算负担,并且延长电池寿命。例如,所公开的技术包括:在无线通信装置处,接收具有用于加密或解密的数据分组的数据流。无线装置可以生成用于加密功能的加密密钥,确定数据流中的第一数据分组的起始地址,并且对加密密钥进行移位以与第一数据分组的起始地址对齐。一旦对齐,处理装置使用经移位的加密密钥来对第一数据分组的第一块应用加密功能,并且管理加密密钥的剩余部分以处理跨越多个分组的任意对齐的数据。

著录项

  • 公开/公告号CN104620549A

    专利类型发明专利

  • 公开/公告日2015-05-13

    原文格式PDF

  • 申请/专利权人 高通股份有限公司;

    申请/专利号CN201380046993.X

  • 申请日2013-09-12

  • 分类号H04L12/861;H04L9/26;

  • 代理机构永新专利商标代理有限公司;

  • 代理人张扬

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 08:44:53

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-28

    未缴年费专利权终止 IPC(主分类):H04L12/861 授权公告日:20180612 终止日期:20190912 申请日:20130912

    专利权的终止

  • 2018-06-12

    授权

    授权

  • 2015-10-14

    实质审查的生效 IPC(主分类):H04L12/861 申请日:20130912

    实质审查的生效

  • 2015-05-13

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2012年9月14日提交的、题为“STREAMINGALIGNMENT OF KEY STREAM TO UNALIGNED DATA STREAM”的美国临时专利申请No.61/701,388的利益,以引用方式将其整体内容明确地并入本文。

技术领域

概括地说,本公开内容的多个方面涉及无线通信系统,更具体地说,本公开内容的多个方面涉及加密密钥流与未对齐的数据流的流式对齐。

背景技术

为了提供诸如语音、视频、分组数据、消息传送、广播等的各种通信服务,广泛部署了无线通信网络。这些无线网络可以是能够通过共享可用的网络资源来支持多个用户的多址网络。这样的网络(其通常是多址网络)通过共享可用的网络资源来支持多个用户的通信。这样的网络的一个例子是通用陆地无线接入网(UTRAN)。UTRAN是被定义为通用移动电信系统(UMTS)的一部分的无线接入网(RAN),UMTS是由第三代合作伙伴计划(3GPP)支持的第三代(3G)移动电话技术。多址网络格式的例子包括码分多址(CDMA)网络、时分多址(TDMA)网络、频分多址(FDMA)网络、正交FDMA(OFDMA)网络、以及单载波FDMA(SC-FDMA)网络。

无线通信网络可以包括能够支持针对多个用户设备(UE)的通信的多个基站或节点B。UE可以经由下行链路和上行链路来与基站进行通信。下行链路(或前向链路)是指从基站到UE的通信链路,而上行链路(或反向链路)是指从UE到基站的通信链路。

基站可以在下行链路上向UE发送数据和控制信息,和/或可以在上行链路上从UE接收数据和控制信息。在下行链路上,来自基站的传输可能遇到因来自邻近基站或其它无线射频(RF)发射机的传输而导致的干扰。在上行链路上,来自UE的传输可能遇到来自与邻近基站进行通信的其它UE的上行链路传输的干扰或来自其它无线RF发射机的干扰。这种干扰可能会降低下行链路和上行链路二者上的性能。

由于对移动宽带接入的需求持续增长,所以随着更多UE接入长距离无线通信网络并且更多的短距离无线系统被部署在社区中,干扰和拥塞网络的可能性增加。研究和开发不断地对UMTS技术进行改进,不仅为了满足对移动宽带接入的日益增长的需求,而且为了改善和增强用户对移动通信的体验。

发明内容

本公开内容的各个方面涉及促进无线通信系统中的更高数据速率的增强型加密技术。在一个方面中,公开了对ZUC算法的改进,其可以减少密钥流生成所涉及的逻辑运算的数量,降低实现ZUC的移动设备上的运算负担,并且延长电池寿命。例如,所公开的技术包括:在无线通信装置处,接收具有用于加密或解密的数据分组的数据流。无线装置可以生成用于加密功能的加密密钥,确定数据流中的第一数据分组的起始地址,并且对加密密钥进行移位以与第一数据分组的起始地址对齐。一旦对齐,处理装置使用经移位的加密密钥对第一数据分组的第一块应用加密功能,并且管理加密密钥的剩余部分以处理跨越多个分组的任意对齐的数据。

在本公开内容的一个方面中,一种无线通信的方法包括:在无线通信装置处,接收具有用于加密功能的一个或多个数据分组的数据流;生成用于所述加密功能的加密密钥;确定所述数据流中的第一数据分组的起始地址;对所述加密密钥进行移位,以与所述第一数据分组的所述起始地址对齐;以及使用经移位的加密密钥,来对所述第一数据分组的第一块应用所述加密功能。

在本公开内容的额外的方面中,一种被配置用于无线通信的装置包括:用于在无线通信装置处,接收具有用于加密功能的一个或多个数据分组的数据流的单元;用于生成用于所述加密功能的加密密钥的单元;用于确定所述数据流中的第一数据分组的起始地址的单元;用于对所述加密密钥进行移位,以与所述第一数据分组的所述起始地址对齐的单元;以及用于使用经移位的加密密钥,来对所述第一数据分组的第一块应用所述加密功能的单元。

在本公开内容的额外的方面中,一种计算机程序产品具有计算机可读介质,所述计算机可读介质具有记录在其上的程序代码。该程序代码包括:用于在无线通信装置处,接收具有用于加密功能的一个或多个数据分组的数据流的代码;用于生成用于所述加密功能的加密密钥的代码;用于确定所述数据流中的第一数据分组的起始地址的代码;用于对所述加密密钥进行移位,以与所述第一数据分组的所述起始地址对齐的代码;以及用于使用经移位的加密密钥,来对所述第一数据分组的第一块应用所述加密功能的代码。

在本公开内容的额外的方面中,一种装置包括至少一个处理器和耦合到所述处理器的存储器。所述处理器被配置为:在无线通信装置处,接收具有用于加密功能的一个或多个数据分组的数据流;生成用于所述加密功能的加密密钥;确定所述数据流中的第一数据分组的起始地址;对所述加密密钥进行移位,以与所述第一数据分组的所述起始地址对齐;以及使用经移位的加密密钥,来对所述第一数据分组的第一块应用所述加密功能。

附图说明

图1是示出移动通信系统的例子的框图。

图2是示出根据本公开内容的一个方面来配置的基站/eNB和UE的设计的框图。

图3是示出用于LTE标准中的UE与eNB之间的通信的用户面协议的框图。

图4是示出根据本公开内容的一个方面来配置的加密过程的框图。

图5是示出根据本公开内容的一个方面来配置的加密过程的框图。

图6是示出被执行以实现本公开内容的一个方面的示例框的功能框图。

图7是示出被执行以实现本公开内容的一个方面的示例框的功能框图。

图8是示出根据本公开内容的一个方面来配置的无线通信装置的框图。

具体实施方式

下面结合附图给出的详细描述旨在作为对各种配置的描述,而不是旨在限制本公开内容的范围。确切而言,为了提供对本发明主题的透彻理解,该详细描述包括具体细节。对于本领域的技术人员来说显而易见的是:并不是在每种情况下都需要这些具体细节,并且在一些实例中,为了清楚呈现的目的,以框图的形式示出了公知的结构和部件。

本文所描述的技术可以用于诸如CDMA、TDMA、FDMA、OFDMA、SD-FDMA和其它网络之类的各种无线通信网络。术语“网络”和“系统”通常可互换地使用。CDMA网络可以实现诸如通用陆地无线接入(UTRA)、电信工业协会(TIA)的等的无线技术。UTRA技术包括宽带CDMA(W-CDMA)和CDMA的其它变型。技术包括来自电子工业联盟(EIA)和TIA的IS-2000、IS-95和IS-856标准。TDMA网络可以实现诸如全球移动通信系统(GSM)之类的无线技术。OFDMA网络可以实现诸如演进型UTRA(E-UTRA)、超移动宽带(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、闪速-OFDMA等的无线技术。UTRA和E-UTRA技术是通用移动电信系统(UMTS)的一部分。3GPP长期演进(LTE)和改进的LTE(LTE-A)是使用E-UTRA的UMTS的较新的版本。在来自被称为“第三代合作伙伴计划”(3GPP)的组织的文档中描述了UTRA、E-UTRA、UMTS、LTE、LTE-A和GSM。在来自被称为“第三代合作伙伴计划2”(3GPP2)的组织的文档中描述了和UMB。本文所描述的技术可以用于上面提到的无线网络和无线接入技术以及其它无线网络和无线接入技术。为了清楚起见,下面针对LTE或LTE-A(或者一起被称为“LTE/-A”)描述了这些技术的某些方面,并且在下面的大部分描述中使用了这样的LTE/-A术语。

图1示出了用于通信的无线网络100,其可以是LTE-A网络。无线网络100包括多个演进型节点B(eNB)110和其它网络实体。eNB可以是与UE进行通信的站,并且也可以被称为基站、节点B、接入点等。每个eNB110可以为特定的地理区域提供通信覆盖。在3GPP中,根据使用术语“小区”的上下文,该术语可以是指eNB的这种特定的地理覆盖区域和/或为该覆盖区域服务的eNB子系统。

eNB可以为宏小区、微微小区、毫微微小区和/或其它类型的小区提供通信覆盖。宏小区通常覆盖相对大的地理区域(例如,半径为几千米),并且可以允许由具有与网络提供商的服务订制的UE进行的非受限制的接入。微微小区通常覆盖相对较小的地理区域,并且可以允许由具有与网络提供商的服务订制的UE进行的非受限制的接入。毫微微小区通常也覆盖相对小的地理区域(例如,住宅),并且除了非受限制的接入之外还可以提供由与该毫微微小区有关联的UE(例如,封闭用户组(CSG)中的UE、住宅中的用户的UE等)进行的受限制的接入。用于宏小区的eNB可以被称为宏eNB。用于微微小区的eNB可以被称为微微eNB。并且,用于毫微微小区的eNB可以被称为毫微微eNB或家庭eNB。在图1所示的例子中,eNB 110a、110b和110c分别是用于宏小区102a、102b和102c的宏eNB。eNB 110x是用于微微小区102x的微微eNB。并且,eNB 110y和110z分别是用于毫微微小区102y和102z的毫微微eNB。eNB可以支持一个或多个(例如,两个、三个、四个等)小区。

无线网络100可以支持同步或异步操作。对于同步操作来说,eNB可以具有类似的帧时序,并且来自不同eNB的传输可以在时间上大致对齐。对于异步操作来说,eNB可以具有不同的帧时序,并且来自不同eNB的传输可以不在时间上对齐。

UE 120散布在整个无线网络100中,并且每个UE可以是固定的或移动的。UE还可以被称为终端、移动站、用户单元、站等。UE可以是蜂窝电话、个人数字助理(PDA)、无线调制解调器、无线通信设备、手持设备、平板计算机、膝上型计算机、无绳电话、无线本地环路(WLL)站等。UE能够与宏eNB、微微eNB、毫微微eNB、中继器等进行通信。

LTE/-A在下行链路上利用正交频分复用(OFDM),并且在上行链路上使用单载波频分复用(SC-FDM)。OFDM和SC-FDM将系统带宽划分成多个(K个)正交的子载波,子载波通常也被称为音调、频段等。可以利用数据来调制每个子载波。通常,在频域中利用OFDM并且在时域中利用SC-FDM来发送调制符号。相邻的子载波之间的间隔可以是固定的,并且子载波的总数(K)可以取决于系统带宽。例如,对于1.4、3、5、10、15或20兆赫兹(MHz)的对应的系统带宽来说,K可以分别等于72、180、300、600、900和1200。也可以将系统带宽划分成子带。例如,子带可以覆盖1.08MHz,并且对于1.4、3、5、10、15或20MHz的对应的系统带宽来说,可以分别有1、2、4、8或16个子带。

无线网络100使用eNB 110的不同集合(即,宏eNB、微微eNB、毫微微eNB和中继器),以改善系统在每单位面积的频谱效率。因为无线网络100针对其频谱覆盖而使用这样的不同的eNB,所以它也可以被称为异构网络。宏eNB 110a-c通常是由无线网络100的提供商仔细规划并布置的。宏eNB 110a-c通常以高功率电平(例如,5W–40W)进行发送。可以以相对未规划的方式来部署微微eNB 110x和中继站110r(其通常以低很多的功率电平(例如,100mW–2W)进行发送),以消除由宏eNB 110a-c提供的覆盖区域中的覆盖空洞,并且改善热点的容量。然而,可以将通常独立于无线网络100而部署的毫微微eNBs 110y-z作为到无线网络100的潜在的接入点(如果由它们的管理者授权的话),或者至少作为活动的且有感知的eNB(其可以与无线网络100的其它eNB 110进行通信),来并入无线网络100的覆盖区域,以执行资源协调和干扰管理的协调。毫微微eNB 110y-z通常也以与宏eNB 110a-c相比低很多的功率电平(例如,100mW–2W)进行发送。

图2示出了基站/eNB 110和UE 120的设计的框图,其中,基站/eNB 110可以是图1中的基站/eNB之一,并且UE 120可以是图1中的UE之一。对于受限制的关联的场景来说,eNB 110可以是图1中的宏eNB 110c,并且UE 120可以是UE 120y。eNB 110还可以是某种其它类型的基站。eNB 110可以配备有天线234a至234t,并且UE 120可以配备有天线252a至252r。

在eNB 110处,发送处理器220可以从数据源212接收数据,并且从控制器/处理器240接收控制信息。控制信息可以是针对PBCH、PCFICH、PHICH、PDCCH等的。数据可以是针对PDSCH等的。发送处理器220可以分别对数据和控制信息进行处理(例如,编码和符号映射)以获得数据符号和控制符号。发送处理器220还可以生成参考符号(例如,针对PSS、SSS的参考符号)和小区特定参考信号。发送(TX)多输入多输出(MIMO)处理器230可以对数据符号、控制符号和/或参考符号执行空间处理(例如,预编码)(如果可适用的话),并且可以向调制器(MOD)232a至232t提供输出符号流。每个调制器232可以对相应的输出符号流(例如,针对OFDM等)进行处理以获得输出样本流。每个调制器232可以对输出样本流进行进一步处理(例如,变换到模拟、放大、滤波以及上变频)以获得下行链路信号。来自调制器232a至232t的下行链路信号可以分别经由天线234a至234t来发送。

在UE 120处,天线252a至252r可以从eNB 110接收下行链路信号,并且可以分别向解调器(DEMOD)254a至254r提供接收的信号。每个解调器254可以对各自接收的信号进行调节(例如,滤波、放大、下变频以及数字化)以获得输入样本。每个解调器254可以对输入样本(例如,针对OFDM等)进行进一步处理以获得接收的符号。MIMO检测器256可以从所有解调器254a至254r获得接收的符号,对接收的符号执行MIMO检测(如果可适用的话),并且提供检测到的符号。接收处理器258可以对检测到的符号进行处理(例如,解调、解交织和解码),向数据宿260提供针对UE 120的经解码的数据,并且向控制器/处理器280提供经解码的控制信息。

在上行链路上,在UE 120处,发送处理器264可以接收并处理来自数据源262的数据(例如,针对PUSCH)和来自控制器/处理器280的控制信息(例如,针对PUCCH)。发送处理器264还可以生成针对参考信号的参考符号。来自发送处理器264的符号可以由TX MIMO处理器266进行预编码(如果可适用的话),由解调器254a至254r进行进一步处理(例如,针对SC-FDM等),并且被发送给eNB 110。在eNB 110处,来自UE 120的上行链路信号可以由天线234接收,由调制器232进行处理,由MIMO检测器236进行检测(如果可适用的话),并且由接收处理器238进行进一步处理以获得由UE 120发送的经解码的数据和控制信息。处理器238可以向数据宿239提供经解码的数据并且向控制器/处理器240提供经解码的控制信息。

控制器/处理器240和280可以分别指导eNB 110和UE 120处的操作。控制器/处理器240和/或eNB 110处的其它处理器和模块可以执行或指导用于本文所描述的技术的各种过程的执行。控制器/处理器280和/或UE 120处的其它处理器和模块也可以执行或指导图6中示出的功能框和/或用于本文中所描述的技术的其它过程的执行。存储器242和582可以分别存储用于eNB 110和UE 120的数据和程序代码。调度器244可以调度UE,以在下行链路和/或上行链路上进行数据传输。

在无线通信系统中,发射机和接收机可以通过多层协议栈来进行通信。图3是示出用于LTE标准中的UE 300与eNB 301之间的通信的用户面协议30的框图。LTE协议栈可以包括:分组数据汇聚协议(PDCP)层302、无线链路控制(RLC)层303、介质访问控制(MAC)层304以及物理(PHY)层305。PHY层305执行UE 300与eNB 301之间的数据的物理传输。处理的每一层通常添加具有可以由目标接收方处的对应层消耗的管理信息的报头。

在LTE网络中,UE 300和eNB 300中的每个协议层从上层接收服务数据单元(SDU),在协议数据单元(PDU)中对它们进行处理,并且在下行链路传输期间向低层发送PDU。相反的情况适用于上行链路传输,在上行链路传输中,每层从低层接收PDU,并且向上层发送SDU。处理通常包括报头的添加和移除。对该提案特别关注的是PDCP层。PDCP层功能帮助传输用户面数据和控制面数据。当启用加密时,PDCP处理包括分别在上行链路和下行链路传输期间对用户面承载和控制面承载的加密和解密。其它层(包括非接入层(NAS))还可以包括加密以及它们的数据处理中的完整性操作。例如,NAS消息(其处于控制层内)可以由NAS层进行加密以及完整性保护。被描述为本公开内容的各个方面的一部分的加密方案可以应用于可以在通信过程的任一层(包括PDCP层、NAS层等)上进行的加密。

在加密中,原始文本或信息通常被称为“明文”,而经编码或改变的文本或信息通常被称为“密文”。从明文向密文的转换通常被称为编码、加密(encrypting)、加密(enciphering)等,而相反的操作通常被称为解码、解密(decrypting)、解密(deciphering)等。在公共网络上发送加密数据,并且由目标接收方对加密数据进行解密。数据加密和解密通常涉及加密密钥(encryption key)的生成和应用。密钥通常使用加密算法和为发送者和接收者双方已知的初始化数据的特殊组合来生成。因此,发送者和接收者可以使用该知识来生成所需要的加密密钥以执行必要的数据加密和解密。

在现代通信系统中使用了多种加密算法。例如,RC4是在诸如安全套接层(SSL)和无线加密协议(WEP)等的协议中广泛使用的软件流密码。在蜂窝通信中,加密算法的例子包括:高级加密标准(AES)、SNOW 3G、ZUC等。

利用加密和完整性检查来保护蜂窝通信是很重要的。否则,对于懂技术的人员而言,监测业务和/或改变发送者或接收者的身份将是相对容易的。缺乏安全性可能导致身份被盗和数据丢失,并且还可能允许未经授权的第三方创建将会被无线网络识别为原始设备的移动设备的克隆,从而潜在地导致对原始设备拥有者估算出不正确的收费。然而,在安全性与性能和功率效率之间存在折衷。为了在长时间段内实现高度的安全性,需要大量的运算能力。在移动平台上,将运算能力转向安全性会降低移动设备的性能并且极大地减少电池寿命。为了避免性能和电池寿命的这种降低,使用优化来使得更加高效地执行特定任务。

已经采用ZUC算法作为用于3GPP保密性和完整性操作的标准加密算法中的一种。ZUC是对称的流密码算法,其连续地生成可以用于加密和解密二者的加密密钥(ciphering key)。该算法运行在三个主要的阶段中:线性反馈移位寄存器(LFSR)、比特重组和非线性函数(F)。这些阶段以该次序发生,其中非线性函数(F)输出32比特的加密密钥。下一个32比特的加密密钥是通过再一次经历所有这些阶段来生成的。在处理阶段内,各种数学函数和技术用于产生伪随机性的特性,从而使得即使输出使用相同的初始化信息是可容易重现的,它也看起来是随机的。

在加密过程的操作期间,密钥流(其是用于对数据进行加密或解密的比特序列)通常以4字节的组来生成。根据处理器和寄存器的大小,对相邻分组或密钥进行处理的不同方法可以通过减少需要执行的操作的总数量来改善系统效率。如本文中所公开的,ZUC密码算法(其以4字节的组来创建密钥流)可以适用于在64比特(8字节)的寄存器和处理环境中进行操作,从而使得当使用64比特的寄存器进行操作时,将仅需要对输入数据流操作一半数量的XOR运算。然而,对数据对齐进行管理提出了多种挑战。如上面所述,每个处理层可以向数据流添加其自己的报头和管理开销数据。一旦从数据流中去除了该信息,明文的数据分组可能就不是沿寄存器边界一致对齐的。在数据流中没有一致对齐的情况下,通常向过程中引入了低效率以便使其工作。多种解决方案可能用于处理这种未对齐的数据。数据分组可以是互联网协议(IP)分组、简单的数据块、数据分组等。

一种解决方案可以是逐字节地处理数据,从而允许在任何不考虑对齐的情况下来对流进行处理。然而,这种解决方案在移动设备上的资源利用方面将是非常昂贵的,并且最终导致较短的电池寿命。现代寄存器的大小通常是4或8字节,这意味着使用这样的方法浪费了寄存器的大部分空间。在这种情况下,资源利用被定义为对移动设备上的系统资源(包括中央处理单元(CPU)、高速缓存、存储器等)的有效使用。

提出了另一种解决方案是缓冲模式。在缓冲模式中,在未对齐的边界处开始的明文会在加密之前被复制到暂时对齐的缓冲器中。虽然这种解决方案不需要考虑明文的错位的前导字节,但是将仍然需要针对处理尾部字节来进行特殊的考虑。此外,如同逐字节的方法一样,缓冲模式是资源昂贵的。首先,针对暂时缓冲器,需要额外的存储器可用性。另外,暂时缓冲器所需要的复制和处理可能阻止移动设备达到LTE网络中所要求的高数据速率。例如,LTE类别3的UE设备支持100mbps的下行链路和50mbps的上行链路。

另外的解决方案是在不使用暂时缓冲器的情况下,将未对齐的明文移位成与密钥流对齐。因为密钥流是以4字节的组来生成的,因此以4或8字节的组来应用密钥流是平常的。在将密钥流应用于明文之后,对输出进行重新对齐将需要额外的移位来将其与原始明文对齐,以便实现“就地”操作。也就是说,该解决方案的目标是使用所生成的密文来完全地覆盖原始的明文。因此,需要额外的工作来将输出正好放回其原来的地方。虽然该解决方案不像逐字节或缓冲模式解决方案那样是资源昂贵的,但是额外的移位操作为总体解决方案增加了复杂度。

本公开内容的各个方面提供了在明文上就地发生的流式模式的加密/解密。该解决方案既不需要将明文复制到暂时对齐的缓冲器中,也不需要任何额外的移位操作来将明文与加密密钥(cipher key)和所得到的输出对齐。相反地,对加密密钥进行移位来与原始明文对齐。使用加密密钥的操作在处理器的寄存器内部发生,甚至不需要访问处理器的高速缓存,更不需要进入外部存储器。该方面以高效的资源利用提供了快速运算。

图4是示出根据本公开内容的一个方面来配置的加密过程40的框图。数据流400表示将要被加密的并且在无线设备之间以无线方式发送的明文输入、或者已经从进行发送的设备接收的并且要在无线装置处被解密以用于进一步处理的密文。数据流400包括非明文数据(其可以是管理数据,例如,可能已经由诸如PDCP、RLC、MAC之类的用户面层中的一个层添加的报头或其它管理编码等)和要由加密过程处理的明文或密文。非明文数据还可以是具有数据块之间的丢失的字节的分段后的分组的结果。

诸如ZUC算法之类的加密算法产生包括8字节的密钥Key0、Key1、Key2和Key3的密钥流401。在寄存器405中使用XOR运算402对数据流400和密钥流401进行处理。所得到的经解密/经加密的流403表示加密功能的加密或解密结果。随着数据流400的前沿开始处理,无线设备知道实际的有效载荷或明文的起始存储器地址。基于该已知的起始地址,无线设备知道数据分组404的前沿(列406中所示出的)与寄存器405的边界未对齐。此外,该设备知道数据分组404的前沿没有对齐的确切量。如图所示,数据分组404的前沿向右移位了5个字节或八位字节。相应地,设备将Key0右移5个字节,从而将密钥流401与数据流400的明文对齐。然后,在寄存器XOR 402处对对齐的明文和Key0进行适当的处理,以产生列406中所示出的经解密/经加密的流403。

如列407中所示,数据流400的数据分组404的明文块中的要处理的下一个部分是8字节对齐的。然而,因为仅使用Key0的前3个字节来处理列406中所示出的数据分组404的前沿,所以使用Key0的剩余字节与Key1中的前几个字节的组合来处理同一数据分组404中的明文的下一个部分。将Key0中的5个字节移位超出寄存器405的边界。对Key0中的这5个字节进行保存以用于下一个处理操作。如列407中所示出的,为了形成完整的8字节密钥,将Key1右移5个字节并且与Key0的剩余部分进行组合。然后在寄存器405中,使用寄存器XOR 402来将Key0和Key1中的这些部分的组合密钥与数据分组404的第二块一起进行处理,以产生列407中表示的经解密/经加密的流403。

如列408中所示出的,数据流400的数据分组404的明文块中的要处理的下一个部分也是8字节对齐的。所应用的组合密钥包括Key1中的被移位超出寄存器405的边界的5个字节、以及Key2中的被右移5个字节的前3个字节。由寄存器XOR 402对组合密钥和数据分组404的下一个明文块进行处理,以产生列408中示出的经解密/经加密的流403。

数据分组404在列409处结束,其中后沿在边界之前的2个字节处结束。当接收到数据流400的数据分组404时,设备具有起始存储器地址和数据分组404的长度的记录。因此,设备将确定后沿短于边界2个字节。为了对数据分组404的后沿进行处理,组合密钥包括Key2中的被移位超出寄存器405的边界的5个字节、以及Key3中的已被右移5个字节的第一字节。由寄存器XOR 402将组合密钥与数据分组404的后沿一起进行处理,以产生如列409中所示出的经解密/经加密的流403。因为无线设备知道其已经到达了数据分组404的结尾,因此其丢弃Key3中的被移位超出数据分组404的最后字节的剩余7个字节。在数据流400中处理的每个新的数据分组将触发加密算法的重新初始化,从而生成用于加密功能的新的密钥流。

在操作中,将(在目标设备处所接收的密文或者将要由发起设备加密并发送的明文)数据流存储在缓冲器中以用于处理。每个缓冲器具有固定的大小。数据分组可以完全放在单个缓冲器内,可以与缓冲器中的另一数据分组进行组合,或者可以部分放在两个缓冲器内。当单个数据分组跨越两个单独的缓冲器时,那些缓冲器被认为是链接在一起的。因此,将对在对第一缓冲器中的数据分组的最后部分进行处理时被移位到边界之外的任何剩余的密钥字节进行保存,以应用到数据分组在下一个缓冲器中出现的剩余部分。

图5是示出根据本公开内容的一个方面来配置的加密过程50的框图。图5中所示出的加密过程50的例子示出了针对用于加密处理的两个缓冲器(缓冲器501和505)的数据流500和密钥流502。为了清楚起见,没有示出加密处理器和寄存器(例如,图4的寄存器XOR 402和寄存器405)。然而,应当注意的是,虽然没有在图5中示出,但是使用无线设备的寄存器中的加密部件操作,来将数据流500的数据分组与密钥流502的加密密钥一起进行处理。

还应当注意的是,当实现本公开内容的各个方面时,可以使用不同大小的寄存器和处理器缓冲器。

缓冲器501的列508示出了数据分组503的前沿。基于数据分组503的已知起始地址,装置知道数据分组503是未对齐的,并且将密钥流502的Key0右移5个字节以便与数据分组503的前沿对齐。因此,将通过数据分组503的明文或密文以及Key0中的对齐的字节来处理数据流500。列509和510示出了数据分组503中的要处理的8字节对齐的部分。密钥流502的密钥是被移位以适应Key0的初始移位的、生成的密钥的组合。因此,用于列509中的处理的组合密钥将在处理列508时Key0中的被移位超出寄存器边界的最后5个字节与Key1中的被右移5个字节而仍然在列509中的前3个字节进行组合,并且用于列510中的处理的组合密钥对以类似的方式而形成的、Key1的最后5个字节和Key2的前3个字节进行组合。

在操作期间,可以将数据分组中的明文或密文分解成分段的分组。因此,可能存在位于同一数据分组内的明文或密文之间的空白字节。处理明文或密文的装置知道中断的位置,并且因此将能够根据要处理的明文或密文的位置来调整密钥移位。列511示出了缓冲器501的结束存储器位置。处理装置认识到数据分组503是分段的,并且列511中的明文或密文的后沿虽然是对齐的,但是具有2字节的尾部非明文数据。因此,当形成用于在缓冲器501中对数据分组503的未对齐的后沿进行处理的密钥流502的组合密钥时,该装置将在处理列510的数据时Key2中的被移位超出寄存器边界的5个字节与Key3中的被移位5个字节以适应对齐的密钥移位的第一字节进行组合。因此,Key3的剩余7个字节不用于处理数据分组503的未对齐的分段。因为处理装置知道数据分组503具有要处理的额外的数据,因此其创建包括Key3中的未使用的7个字节的保存的字节504,其中Key3中的未使用的7个字节将要应用于数据分组503的下一个被处理的块。

当处理进行到缓冲器505时,缓冲器505的列508中的数据流500的前几个字节是数据分组503的延续部分的8字节对齐的明文或密文。处理装置取得保存的字节504以形成密钥流502的组合密钥。组合密钥包括在缓冲器501的列511中对后沿文本的处理之后剩余的7个字节以及Key4中的已被右移7个字节以适应对保存的字节504的使用的第一字节。缓冲器505的列509的文本也是字节对齐的,并且将其与Key4中的7个字节和Key5中的1个字节的组合密钥一起进行处理。数据分组503的已知长度向处理装置指示数据分组503将在缓冲器505的列510中结束。缓冲器505中的数据分组503的后沿是未对齐的。因此,组合密钥仅包括在处理缓冲器505的列509中的文本时被移位超出寄存器边界的4个字节。随着数据分组503到达结尾,丢弃Key5中剩余的3个字节。

为了优化处理,利用要处理的明文或密文的尽可能多的字节来填充每个缓冲器。因此,如在缓冲器505的列510中所示出的,对数据分组506的前沿进行存储。在两个非明文字节之后,数据分组506的前沿在没有字节对齐的情况下开始。随着新数据分组的开始,重新发起加密算法来向密钥流502提供新的密钥。对于数据分组506的未对齐的部分,处理装置将NewKey0右移6个字节以与数据分组506的前沿对齐。如列511中所示出的,缓冲器505的最后的字节是字节对齐的,并且将由包括NewKey0中剩余的6个字节和NewKey1中的被右移6个字节以适应移位对齐的前两个字节的组合密钥来处理。随着数据分组506在下一个缓冲器中继续,处理装置保存NewKey1中的剩余字节,以用于对数据分组506中的明文或密文的下一块进行处理。

图6是示出被执行以实现本公开内容的一个方面的示例框的示图。在框600处,接收具有用于加密功能的一个或多个数据分组的数据流。该数据流包含要由加密功能处理的明文或密文的数据分组。在框601处,处理装置生成用于加密功能的加密密钥。在框602处,处理装置确定数据流中的第一数据分组的起始地址。当处理装置接收到数据流时,其通常知道数据的起始地址和长度。在框603处,处理装置对加密密钥进行移位以与第一数据分组的起始地址对齐。在框604处,处理装置使用经移位的加密密钥来对第一数据分组的第一块应用加密功能。通过对加密密钥进行移位以与数据流对齐,所得到的经处理的加密或解密文本结果与原始数据流保持一致。

图7是示出被执行以实现本公开内容的一个方面的示例框的示图。在框700处,接收具有用于加密功能的一个或多个数据分组的数据流。在处理数据流的明文或密文时,在框701处,确定是否存在来自对未对齐的数据块的先前处理的、存储在存储器中的剩余的密钥字节。如果没有,那么在框702处生成加密密钥。在框703处,处理装置对加密密钥进行移位以适应数据流的未对齐的数据块。然后,在框704处,使用所应用的加密密钥来对数据流进行处理。

如果存在来自对加密功能的先前应用的剩余的密钥字节,那么在框705中进行另一确定:要处理的接下来的数据块是同一数据分组的一部分还是新数据分组的一部分。如果数据块是同一数据分组的一部分,那么在框706处,由处理装置生成下一个加密密钥。在框707处,将下一个加密密钥移位多个字节以适应来自先前处理操作的剩余的密钥字节。然后,在框708处,处理装置将剩余的加密密钥字节与经移位的下一个加密字节进行组合。然后,在框704处,该装置使用所应用的加密密钥对数据流进行处理,在这种情况下,所应用的加密密钥是先前剩余的加密密钥字节与下一个加密密钥中的经移位的字节的组合。

响应于框705的确定,如果要处理的接下来的数据块是新数据分组的一部分,那么在框709处,处理装置丢弃来自先前操作的剩余的加密密钥字节,并且在框710处生成新的加密密钥。然后在框704处,使用所应用的加密密钥对数据流进行处理,在这种新数据分组的情况下,所应用的加密密钥是通过重新发起的密钥流而新生成的加密密钥。

图8是示出根据本公开内容的一个方面来配置的无线通信装置80的框图。无线通信装置80包括多个部件,除了没有示出的其它部件之外,这些部件还包括:控制器/处理器800、存储器801、发射机802、接收机803以及用户接口804。控制器/处理器800控制硬件功能,并且执行存储在存储器801中的、提供无线通信设备80的特征和功能的应用和逻辑。无线通信装置80可以实现为发射机或接收机实体,其可以是移动设备、接入点、基站等。

当作为发射机进行操作时,无线通信装置80可以通过用户接口804来接收数据流。用户接口804在控制器/处理器800的控制下捕获来自各个输入源(例如,触摸屏、照相机、麦克风等)的、由用户输入的用户输入。所捕获的数据流表示用户期望向另一用户发送的数据。当作为接收机进行操作时,无线通信装置80可以在控制器/处理器800的控制下经由接收机803来接收数据流。在数据流中接收到的加密文本源自发送者,并且为了使用所发送的信息和数据,无线通信装置80的用户将首先将加密文本解密成明文。这些部件和动作的组合可以提供:用于在无线通信装置处接收用于加密功能的数据流的单元,以及用于对该数据流应用加密功能的单元。

当需要进行加密或解密以便准备用于向目标方发送的明文或者发现加密文本中模糊的明文时,无线通信装置80在控制器/处理器800的控制下执行存储在存储器801中的加密功能(例如,加密功能805),以用于处理数据流。由控制器/处理器800执行的加密功能805可以提供纯软件加密过程,或者可以提供使用由控制器/处理器800执行的软件功能和运算电路(例如,移位寄存器807和数学运算电路808,其中数学运算电路808可以包括加法器、减法器、比较器,并且其还可以包括各种数学运算的按位版本(例如,按位AND、XOR、NOT等))的活动二者的组合过程。这些部件和动作的组合可以提供用于生成用于加密功能的加密密钥的单元。

随着无线通信装置80接收到数据流,去除报头的部分包括对包括在数据流中的、关于明文或加密文本的信息进行解码。将读取该数据(其通常将包括数据的长度),并且将该数据与其在存储器中存储的地址也一起存储在存储器801中。接收机803和用户接口804在控制器/处理器800的控制下对所接收的数据流的报头中的该信息进行解译,或者记录关于从用户接口804存储到存储器801的输入数据的该信息。当处理针对数据块开始时,控制器/处理器800从存储器801取得起始地址以确定数据流的对齐。这些部件和动作的组合可以提供用于确定数据流中的第一数据分组的起始地址的单元。

当要处理的数据流的第一数据分组的起始地址指示数据流是未对齐的时,控制器/处理器800对加密功能805中的基于软件的移位操作进行操作,或者对物理部件(例如,移位寄存器807)进行控制,以对加密密钥进行移位,以便将密钥与未对齐的数据流对齐。这些部件和动作的组合可以提供用于对加密密钥进行移位以与第一数据分组的起始地址对齐的单元。

一旦加密密钥已被移位到与未对齐的数据流对齐,无线通信装置80可以对数据流进行处理,以对从接收机803接收的数据流的加密文本进行解密,或者对从用户接口804接收的数据流的明文进行加密。控制器/处理器800经由加密功能805的执行,使用经移位的加密密钥来对数据流进行处理。可以使用软件操作或者通过使用电路部件(例如,数学运算电路808中的那些部件)来完成处理。这些部件和动作的组合可以提供用于使用经移位的加密密钥来对第一数据分组的第一块应用加密功能的单元。如果加密密钥的移位将加密密钥字节中的任一个移位超出寄存器边界,那么在要处理的接下来的数据块是同一数据分组中的一部分的情况下,控制器/处理器800将那些剩余的密钥字节806存储在存储器801中。否则,丢弃剩余的密钥字节。

本领域技术人员应当理解,信息和信号可以使用多种不同的技术和方法中的任一种来表示。例如,在贯穿上面的描述中提及的数据、指令、命令、信息、信号、比特、符号和码片可以用电压、电流、电磁波、磁场或粒子、光场或粒子、或者其任意组合来表示。

图6和图7中的功能框和模块可以包括处理器、电子设备、硬件设备、电子部件、逻辑电路、存储器、软件代码、固件代码等、或者其任意组合。

本领域技术人员还应当明白,结合本文中的公开内容所描述的各种说明性的逻辑框、模块、电路和算法步骤均可以实现成电子硬件、计算机软件或这二者的组合。为了清楚地说明硬件和软件之间的这种可交换性,上面对各种说明性的组件、框、模块、电路和步骤均围绕其功能进行了总体描述。至于这种功能是实现为硬件还是实现为软件,取决于特定的应用和对整个系统所施加的设计约束。本领域技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是这种实现决策不应被解释为脱离本公开内容的范围。

被设计为执行本文所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件部件或者其任意组合,可以实现或执行结合本文中的公开内容所描述的各种说明性的逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合、或者任何其它这样的配置。

结合本文中的公开内容所描述的方法或者算法的步骤可以直接体现为硬件、由处理器执行的软件模块中或者这两者的组合。软件模块可以位于RAM存储器、闪速存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或者本领域已知的任何其它形式的存储介质中。一种示例性的存储介质耦合到处理器,从而使处理器能够从该存储介质读取信息以及向该存储介质写入信息。或者,存储介质可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。该ASIC可以位于用户终端中。或者,处理器和存储介质也可以作为分立部件位于用户终端中。

在一个或多个示例性设计中,所描述的功能可以用硬件、软件、固件或其任意组合来实现。如果用软件来实现,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上、或者通过计算机可读介质进行发送。计算机可读介质包括计算机存储介质和通信介质二者,其中通信介质包括促进将计算机程序从一个地方传送到另一个地方的任何介质。存储介质可以是能够由通用计算机或专用计算机存取的任何可用介质。通过举例而非限制的方式,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码单元并且能够由通用计算机或专用计算机或者通用处理器或专用处理器存取的任何其它介质。此外,任何连接可以被适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线或数字用户线(DSL)从网站、服务器或其它远程源发送的,则同轴电缆、光纤光缆、双绞线包括在介质的定义中。如本文中所使用的,磁盘和光盘包括压缩光盘(CD)、激光光盘、光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上文的组合也应当包括在计算机可读介质的范围之内。

为了使本领域的任何技术人员能够实现或使用本公开内容,提供了前面对本公开内容的描述。对于本领域的技术人员而言,对本公开内容的各种修改都是显而易见的,并且本文中定义的总体原理可以在不脱离本公开内容的精神或范围的情况下应用于其它变型。因此,本公开内容并非旨在受限于本文中所描述的例子和设计,而是符合与本文中所公开的原理和新颖性特征相一致的最广范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号