CN1458762A - 加密处理方法以及加密处理装置 - Google Patents

加密处理方法以及加密处理装置 Download PDF

Info

Publication number
CN1458762A
CN1458762A CN03122234A CN03122234A CN1458762A CN 1458762 A CN1458762 A CN 1458762A CN 03122234 A CN03122234 A CN 03122234A CN 03122234 A CN03122234 A CN 03122234A CN 1458762 A CN1458762 A CN 1458762A
Authority
CN
China
Prior art keywords
random number
information
packets
pseudo random
ranked
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.)
Granted
Application number
CN03122234A
Other languages
English (en)
Other versions
CN100435509C (zh
Inventor
佐藤雅史
山本秀树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Publication of CN1458762A publication Critical patent/CN1458762A/zh
Application granted granted Critical
Publication of CN100435509C publication Critical patent/CN100435509C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在本发明中,提供能提高加密、译码速度并且在通信发生信息包损失的情况下也能简单进行修复的加密处理方法以及加密处理装置。本发明对各信息包分配编号,并决定使用从伪随机数位列的开头开始的第几字节。因此,能在某种程度上重复再利用生成的伪随机数位列,提高速度。另外,通过调整分配的编号,能变更重复利用的比例。因此,与OFB一样,能使在译码中使用的伪随机数位列完全不产生重复,并能根据需要取得安全性和速度的平衡。另外,因为利用分配给各信息包的编号来管理伪随机数位列的使用部分,所以即使发生信息包损失,也不会影响译码。

Description

加密处理方法以及加密处理装置
技术领域
本发明涉及加密处理方法以及加密处理装置,特别是涉及通过改良的块加密处理模式之一的OFB(输出反馈Output FeedBack)模式,能进行高速并且稳定的信息包加密、解密的技术。
背景技术
块加密是从初始向量和密钥生成一定长度的伪随机数位列的加密处理方法。作为生成伪随机数位列的方法,有Rijndael和DES等加密算法。例如,如果是Rijndael,就能从16、24、32字节中的任意一个选择伪随机数位列的长度。因为是将输入生成一定长度的块,所以称作“块加密”。可是,就连现在成为主流的Rijndael,也只能生成16、24、32字节的块。无法进行长数据的加密。为了解决在能处理的数据长度上没有灵活性的问题,存在几种处理模式。OFB就是其中之一。
OFB首先把初始向量代入加密函数,生成伪随机数位列。再把生成的伪随机数位列代入加密函数,生成新的伪随机数位列。把新生成的伪随机数位列和之前的伪随机数位列连接,另外生成长的伪随机数位列。重复它,生成充分长度的伪随机数位列。该伪随机数位列和信息的异或(XOR:eXclusive OR)成为密码,而通过取得密码和随机数列的XOR,进行译码。
可是,近年,伴随着宽带网络的普及,动画播放等数字内容充实起来。因为数字内容即使重复复制也不会劣化,所以存在非法复制、播放等危险。对此,为了保护内容所有者的利益,需要提高安全性。如果考虑在网络上播放,则公共密钥加密处理方法成为实现安全性的一个主要方法。关于加密函数自身,以Advanced EncryptionStandard(通常称为AES)为代表,进行了很多的研究,论文也十分丰富。
另外,不仅是安全方面,还必须考虑实用方面。在AES中选择了Rijndael的理由中,有安装简易和处理速度方面的原因。因为应该是用于保护数字内容的加密处理方法,所以难以用于加密、译码的安装、处理,结果因无法利用,而完全没有意义。
伴随着宽带内容的普及,在加密系统中,其要求如下。
①处理不能过分增加负担。与2、3年前相比,下载和播放容量超过10M字节的文件已经绝不是稀有的事情。结果,在服务器一侧、客户一侧,都需要处理大容量文件。伴随于此,在加密系统中,在要求安全的同时还要求充分的处理速度。
②能对应播放的实时性。在播放方式下,用户没必要等待多媒体数字内容文件全部被下载到播放器装置中,就能一边接收从接收发送服务器作为数据流而发送来的视频数据和音频数据,一边再生了。这时,为了维持实时性,要根据网络的状况及服务器和客户端的性能调整帧频,但是这意味着不一定能接收、译码所有被加密的信息包。因此,需要一种根据信息包损失,能简单地进行对应处理的方法。
可是,通常的OFB存在不善于对应信息包损失的问题。在数据传输时,当用一次通信不能发送所有数据时,就要分割传输。把该分割的单位称作信息包。为了在接收一侧正确组装分割传输的数据,就必需生成表示数据传输顺序的编号。而把无法按照该编号的顺序接收、或无法接收某编号的信息包称作信息包损失。实际上,考虑在发生信息包损失而需要解决时,例如用TCP(Transmission Control Protocol)接收静止图象时,可以花费一定时间,但是要求数据的完整性的情形。这时,如果发生信息包损失,就可以从接收一侧向发送一侧发出再次发送信息包的要求。当然这就需要花费时间了。
而考虑当接收用来播放的动画时,既要求数据的完整性,还要求实时性的情况下,怎样解决信息包损失的情形。这时,即使发生信息包损失,也不能要求再发送。这是因为必须按照信息包具有的时间标记,实时地再生数据。有必要预先以发生信息包损失的情形为前提,组织算法。
可以考虑的一个修复方法是把有关受损失的信息包的长度信息传送给译码侧,只对该长度部分的位列进行延长的方法。因此,有关受损失的信息包的长度信息就成为必要的。如果信息包长度一定,则用(受损失的信息包数)×(信息包长度)就可以计算出来了。可是,如果信息包长度不一定,则必须计算各受损失的信息包的长度的和。因此,有必要向发送侧要求受损失的信息包的长度,或预先拥有或计算出信息包长度的一览。但以上哪一个对信息包损失的对应方法都是不充分的,而且处理要花费时间。
作为其他修复方法,有加密侧随时把初始向量和密钥向译码侧发送的方法。例如,在社团法人电波产业界(统称,ARIB)中,该方式成为了数字广播的规格。例如在30分钟的节目中,每1分钟都收发与密钥和信息包对应的初始向量。这时,即使一度发生信息包损失,在1分钟后也会发来别的初始向量,所以最多在1分钟后就能修复受损失的信息包。可是,在这期间是无法视听内容的。如果增加收发密钥和信息包的次数,则为了收发,每次都必须进行公开密钥加密的计算。公开密钥加密的计算需要花费共通密钥加密的1000倍时间,无法忽略其处理的负荷。
在数字播放的情况,规定了接收一侧的装置、通信底层结构的规格,使加密、译码侧都能够具有充分的处理能力。可是在播放中,接收、处理数据的是通常使用的个人电脑。虽然可以说充分配备了通信底层结构,但由于时间和地区的差异,也产生了速度差异等不稳定。对于它们,无法要求某种程度的处理能力的速度。现在已有在一般的2~3年前的个人计算机中可以处理的加密处理方法。但因追求过度的安全性,限制了用户视听需求,所以不适合实用。具有充分的速度并且能对应不稳定的通信状况的方式是必要的。
发明内容
本发明是鉴于以往的加密处理方法具有的所述问题而提出的,本发明的主要目的在于:提供一种使加密、译码的速度上升,并且即使在通信发生信息包损失时,也能容易地修复的新的并且改良了的加密处理方法以及加密处理装置。本发明特别在象为了播放动画而进行的实时发送那样,要求实时性和在发生信息包损失的情况下也能译码的环境中是有效的。本发明可以由通用的微处理器执行。
为了解决所述课题,根据本发明的第一个观点,提供了对以信息包为单位传输的流数据进行加密处理的加密处理方法。本发明的加密处理方法包括:预测包含在所述各信息包中的位列(信息包内位列)的最大长度,生成比所述预测的信息包内的位列最大长度还长的伪随机数位列的第一步骤;使用所述伪随机数位列,对所述各信息包内的位列进行加密处理的第二步骤。
在本发明的加密处理方法中,预测各信息包内的位列的最大长度,生成比该预测的信息包内的位列最大长度还长的伪随机数位列,在加密处理中使用它。通过这样,如果一度生成了伪随机数位列,则当对所有各信息包内的位列进行加密处理时,就能重复使用相同的伪随机数位列。这样,与针对各信息包生成伪随机数位列的以往技术相比,能大幅度提高处理速度。
可是,各信息包内位列的最大长度不过是预测值。有时也要对超过根据该预测值而生成的伪随机数位列长度的信息包内的位列进行加密处理。在这样的情况下,在所述第二步骤中,用所述伪随机数位列的长度对所述信息包内的位列进行划分,并使用所述伪随机数位列依次进行加密处理,重复处理直到还未加密处理的所述信息包内的位列(未处理位列)的长度变为所述伪随机数位列的长度以下;使用从所述伪随机数位列的开始的相当于所述未处理位列长度的位列,对所述未处理位列进行加密处理。由此,即使是对超过伪随机数位列的长度的信息包内的位列,也能使用相同的伪随机数位列进行加密处理。
另外,在所述第二步骤中,每次对给定数量的所述信息包进行加密处理时,可以变更进行加密处理的所述信息包内位列的所述伪随机数位列的开始位置。通过变更伪随机数位列的开始位置,能够增强数据流量分析,提高安全性。
可是,如果变更伪随机数位列的开始位置,则会出现有时要根据该开始位置,对超过从伪随机数位列的开始位置到终点位置的长度的信息包内的位列进行加密处理的情况。这时,可以在所述第二步骤中,使用从所述伪随机数位列的所述开始位置到终点位置的位列,对所述信息包内位列的一部分实施加密处理,并使用从所述伪随机数位列的开头开始的相当于所述未处理位列的长度的位列,对还未进行加密处理的所述信息包内的位列(未处理位列)进行加密处理。由此,即使是对超过从伪随机数位列的开始位置到终点位置的长度的信息包内位列,也能使用相同的伪随机数位列进行加密处理。
另外,在所述第二步骤中,在对每个给定数量的所述信息包进行加密处理时,也可以至少更新所述伪随机数位列的一部分。通过更新伪随机数位列,能够增强数据流量分析,提高安全性。另外,存储在存储器上的有限长度的伪随机数位列能仿真理论上无限长度的伪随机数位列。
另外,所述伪随机数位列的长度可以是所述信息包内位列的最大长度的至少3倍以上。通过取得充分长度的伪随机数位列,能不管信息包的处理顺序(即使信息包编号不单调增加)地进行加密处理。在使用不保证信息包的接收顺序的协议进行实时发送接收时,信息包的顺序常常是乱的。在本发明中,能对应这样的顺序混乱。
另外,针对每个给定数量的所述信息包,可以保存用于生成与所述信息包的编号对应的伪随机数位列的种子数据。这里,种子数据是指用于生成与信息包编号对应的伪随机数位列的初始向量。针对每个伪随机数位列的给定间隔,保存种子数据,在以信息包单位传输流数据时,通过针对每个一定间隔的信息包保存种子数据,则在对被加密的流数据进行译码处理时,就能迅速地访问伪随机数位列的任意位置。在接收、译码、再生流数据一侧,在以进行跳过再生、快进再生、循环再生等特殊再生为前提的流数据播放系统中,这是必需的功能。
如上所述,各信息包内位列的最大长度不过是预测值。有时会发生必须对超过根据该预测值而生成的伪随机数位列长度的信息包内位列进行加密处理的情况。作为在必须对超过伪随机数位列的长度的信息包内位列进行加密处理的情况下的其他方法,是在所述第二步骤中,延长所述伪随机数位列,由此即使是对超过伪随机数位列长度的信息包内位列,也能进行加密处理。
另外,为了解决所述课题,根据本发明的第二观点,提供了对以信息包单位传输的流数据进行加密处理的加密处理装置。本发明的加密处理装置的特征在于包括:预测包含在所述各信息包中的位列(信息包内位列)的最大长度,生成比所述预测的信息包内位列最大长度还长的伪随机数位列的伪随机数位列生成部件;使用所述伪随机数位列,对所述各信息包内位列进行加密处理的加密处理部件。
根据本发明的加密处理装置,预测各信息包内位列的最大长度,生成比该预测的信息包内位列的最大长度还长的伪随机数位列,并在加密处理中使用它。通过这样,如果一度生成了伪随机数位列,则在对所有各信息包内位列进行加密处理时,就能重复使用相同的伪随机数位列。这样,与针对各信息包各自生成伪随机数位列的以往技术相比,能大幅度提高处理速度。
可是,各信息包内位列的最大长度不过是预测值。有时会发生必须对超过根据该预测值而生成的伪随机数位列长度的信息包内位列进行加密处理的情况。这时,通过在所述加密处理部件中设置以所述伪随机数位列的长度划分所述信息包内位列的信息包内位列划分部件,就能用所述伪随机数位列的长度划分所述信息包内位列,并能够使用所述伪随机数位列,依次进行加密处理。这样,即使是对超过伪随机数位列长度的信息包内位列,也能使用相同的伪随机数位列进行加密处理。
另外,所述加密处理部件还可以具有:决定对所述信息包内位列进行加密处理的所述伪随机数位列的开始位置的开始位置决定部件。通过变更伪随机数位列的开始位置,能增强数据流量分析,提高安全性。
另外,所述加密处理部件还可以具有:判定所述伪随机数位列的更新是否必要的更新判断部件和更新所述伪随机数位列的至少一部分的更新部件。通过更新伪随机数位列,能增强数据流量分析,能提高安全性。另外,存储在存储器中的有限长度的伪随机数位列能仿真理论上无限长的伪随机数位列。
另外,所述伪随机数位列生成部件还具有:针对每个给定数量的所述信息包保存用于生成与所述信息包的编号对应的伪随机数位列的种子数据的种子抽出部件;所述加密处理部件还具有:选择离给定信息包最近的保存有所述种子数据的信息包,使用该信息包保存的种子数据,生成所述伪随机数位列的跳过再生部件;使用给定间隔的信息包保存的种子数据,依次生成所述伪随机数位列的跳跃译码部件。
这里,种子数据是指用于生成与信息包编号对应的伪随机数位列的初始向量。针对每个伪随机数位列的给定间隔保存种子数据,在以信息包单位传输流数据时,通过针对每个一定间隔的信息包保存种子数据,能在对加密的流数据进行译码处理时,快速地访问伪随机数位列的任意位置。在接收、译码、再生流数据的一侧,在以进行跳过再生、快进再生、循环再生等特殊再生为前提的流数据播放系统中,这是必需的功能。
如上所述,各信息包内位列的最大长度不过是预测值。有时会发生必须对超过根据该预测值而生成的伪随机数位列长度的信息包内位列进行加密处理的情况。作为必须对超过伪随机数位列长度的信息包内位列进行加密处理时的其他方法,是在所述加密处理部件中设置延长所述伪随机数位列的延长部件,则即使是对超过伪随机数位列长度的信息包内位列,也能进行加密处理。
附图说明
下面简要说明附图。
图1是展示实施例1的结构的说明图。
图2是展示折叠动作的说明图。
图3是展示折叠部件的动作的说明图。
图4是展示实施例1的动作的说明图。
图5是展示位列和信息包的位置关系的说明图。
图6是展示实施例2的结构的说明图。
图7是XOR开始位置决定部件的说明图。
图8是展示实际的伪随机数位列的折叠的说明图。
图9是展示实施例2的动作的说明图。
图10是展示信息包和位列的位置关系的说明图。
图11是展示实施例3的结构的说明图。
图12是展示伪随机数位列被分割为段单位的说明图。
图13是展示更新伪随机数位列的例子的说明图。
图14是展示实施例3的动作的说明图。
图15是展示更新位列的动作的说明图。
图16是展示对信息包编号进行条件扩展的说明图。
图17是在位列上展示(条件A’)的说明图。
图18是展示在(条件A’)下实际对伪随机数位列进行更新的例子的说明图。
图19是展示实施例4的动作的说明图。
图20是展示实施例5的结构的说明图。
图21是展示种子抽出部件的结构的说明图。
图22是展示跳过再生部件的说明图。
图23是展示跳跃译码部件的说明图。
图24是展示表示跳过再生时的收发流程的说明图。
图25是展示进行跳跃再生时的收发流程的说明图。
图26是展示实施例6的结构的说明图。
图27是展示延长位列时出现的问题的说明图。
图28是展示实际上的位列的延长方法的说明图。
图29是展示实施例6的动作的说明图。
图30是展示速度测试结果的说明图。
具体实施方式
下面,参照附图,详细说明本发明的加密处理方法以及加密处理装置的适合的实施例。须指出的是,在本说明书和附图中,对实质上具有相同功能结构的构成要素付与了相同的符号,并省略了重复的说明。
首先,在说明以下的实施例前,先定义用语。
·streamlength:实际的伪随机数位列的长度。单位是字节。须指出的是,“实际的”伪随机数位列是指在对信息包的加密处理中实际使用的有限长度的伪随机数位列,后面描述的“理论的”伪随机数位列是指用于与事实上无限长度的流数据对应的无限长度伪随机数位列。
·maxplen:是对进行加密、译码的信息包长度最大值的预测值。单位是字节。实际上,它可以比发送侧、接收侧的存储器所能对应的最大值稍长。在本实施例中,streamlength是maxplen的n倍(n是自然数),为了简化说明,以n=4进行说明。在最初生成伪随机数位列的时候输入它。
·seq:是分配给各信息包的信息包编号。从0开始,按发出顺序分配编号。
·position:对实际的伪随机数位列和信息包进行XOR的“开始位置”。单位是字节。须指出的是,实际的伪随机数位列的开头被称为“开始位置”,终点被称为“终点位置”。
(实施例1)
图1是展示本实施例的加密处理装置100的结构的说明图。如图1所示,加密处理装置100包含有伪随机数位列生成部件110和加密处理部件120两个构成要素。
(伪随机数位列生成部件110)
伪随机数位列生成部件110由密钥存储部件111、初始向量存储部件112、伪随机数块生成部件113、伪随机数位列存储部件114构成。
密钥存储部件111是设定密钥的构成要素。初始向量存储部件112是设定初始向量的构成要素。伪随机数块生成部件113是输入一定长度的伪随机数块,通过选择的加密函数,生成新的伪随机数块的构成要素。伪随机数位列存储部件114是使生成的块连接,生成具有maxplen×n(n是自然数)=streamlength长度的伪随机数位列的构成要素。须指出的是,在以下的说明中,为了简化说明,设置n=4,但是这与本发明的本质无关,n可以是任意的。
(加密处理部件120)
加密处理部件120由对信息包和伪随机数位列进行异或运算(XOR)的XOR运算部件(以下,称作XOR运算部件)121和信息包的折叠部件(以下称作折叠部件)122构成。
在XOR运算部件121中,对信息包和伪随机数位列进行XOR运算。在本实施例中,把XOR的开始位置固定在用伪随机数位列存储部件生成的伪随机数位列的开始位置。折叠部件122在信息包的长度plen比伪随机数位列的长度streamlength长时被使用。信息包与伪随机数位列未进行完XOR的部分(以下称作剩余部分)的长度surplus(单位:字节)的定义如下:
Surplus:=plen-streamlength
图2是展示信息包内位列的折叠动作的说明图。
图2(a)展示了剩余部分surplus的定义。在本实施例中,如图2(b)所示,其特征在于:相当于长度surplus的剩余部分被折返到伪随机数位列的开始位置,进行XOR。
图3是展示折叠部件122的动作的流程图。
首先,作为初始值,折叠次数N=1(步骤S301)。而且,与伪随机数位列未进行完XOR运算的信息包的剩余部分的长度surplus定义如下(步骤S302):
Surplus:=plen-streamlength×N
这样,首先折叠部件122对从信息包的第(N-1)×streamlength字节到第N×streamlength字节,使用从伪随机数位列的开始位置到终点位置进行XOR运算(步骤S303)。
接着,比较剩余部分长度surplus和伪随机数位列的长度streamlength(步骤S304)。如果surplus>streamlength,则增大N(步骤S305),对信息包的streamlength字节大小的部分,使用全部伪随机数位列进行XOR。并在信息包的剩余部分的长度surplus变为伪随机数位列的长度streamlength以下之前,重复进行此操作。
最后,如果剩余部分的长度surplus变为伪随机数位列的长度streamlength以下,就使用从伪随机数位列的开始到第surplus字节的部分,对信息包的剩余部分进行XOR运算(步骤S306)。以上是折叠部件122的动作。
图4是展示本实施例的动作的说明图。
首先,设定密钥和初始向量(步骤S401、402)。输入信息包长度的最大值maxplen,并生成长度为maxplen×4的伪随机数位列(步骤S403)。须指出的是,这三个步骤S401~S403在实施例2以后,在说明书和附图中将被称作“伪随机数位列的准备”,并省略重复的说明。
而且,当没有要加密或译码的信息包时,直接结束(步骤S404)。当信息包的长度plen比伪随机数位列的长度streamlength短时(步骤S405),如图3所示,进行信息包和伪随机数位列的XOR运算(步骤S406)。
在本实施例中,XOR运算的开始位置一律为伪随机数位列的开始位置。当信息包的长度plen比伪随机数位列的长度streamlength长时,如图2所示,折叠信息包,进行XOR运算(步骤S407)。当没有要加密或译码的信息包时结束处理。
(实施例1的效果)
图5是展示本实施例的伪随机数位列和信息包的位置关系的说明图。
如上所述,根据本实施例,如果最初生成了一定长度的伪随机数位列,则以后可以只进行XOR运算。在通常的OFB中,如图5(a)所示,必须生成信息包长度的伪随机数位列,但是在本实施例中,如图5(b)所示,如果一度生成伪随机数位列,则以后就可以只进行XOR运算,能实现高速化和存储器的节约。
图30是总结本实施例和以下说明的实施例2~4的速度测试结果的说明图。图中,“模式”是指把实施例n作为模式n来表示。在本实施例中,例如如果考虑分割为1000个信息包发送动画时的情形,则图4的步骤S401~S403只进行1次就可以了。在这点上,以往技术必须对1000个信息包都进行这些步骤。据此,与以往技术相比,能高速处理。
(实施例2)
在本实施例中,依照信息包编号seq,决定在XOR运算中使用伪随机数位列的哪个部分。据此,来增强通信量分析,提高安全性。另外,后面还将描述,其处理速度与实施例1相比几乎不变化,不牺牲速度就能提高安全性。
(实施例2的结构)
图6是展示本实施例的加密处理装置200的结构的说明图。如图6所示,加密处理装置200包含有伪随机数位列生成部件110和加密处理部件120两个构成要素。伪随机数位列生成部件110的结构与所述实施例1实质上是相同的,所以省略重复的说明。与所述实施例1相比,在加密处理部件120中追加了XOR开始位置决定部件123,并改良了信息包的折叠部件122。
(XOR开始位置决定部件123)
XOR开始位置决定部件123按照信息包编号seq,决定使用伪随机数位列的哪个范围进行与信息包的XOR运算。以下按顺序说明该方法。
首先,作为第一阶段,以从伪随机数位列的开头开始的第seq×n字节作为与信息包进行XOR运算的伪随机数位列的开始位置。这里,为了说明的简化,设定n=4。可是,在现实中,实际的伪随机数位列长度是有限的,所以无法继续到seq×4。
当seq×4<streamlength时,原封不动使seq与伪随机数位列上的位置对应,如果信息包超出伪随机数位列的范围,就在同一伪随机数位列上折叠它就可以了。折叠的方法将在信息包的折叠部件的动作中说明。
因为seq的值是信息包个数,在理论上可以增加到无限大,所以如果原封不动使用seq×4,就会超过伪随机数位列的长度。具体而言,在seq×4≥streamlength,即seq≥maxplen的时候,seq将超过伪随机数位列的长度。下面,说明在这种情况下的XOR开始位置的设定方法。
图7是展示XOR开始位置决定部件123的动作的说明图。
在图7中,符号701表示实际的伪随机数位列,符号702表示理论上的伪随机数位列。在实际的伪随机数位列中,从position减去streamlength,直到实际的伪随机数位列701与信息包进行XOR运算的开始位置position比streamlength小。因此,如图7的符号703所示,
把position=(seq×4)mod streamlength作为与信息包进行XOR运算的伪随机数位列的开始位置。即在理论上的伪随机数位列702中,离开streamlength的部分与实际的伪随机数位列701中被使用位置是相同的。
在XOR运算部件121中,实际进行伪随机数位列和信息包的XOR运算。在实施例1中,把XOR的开始位置固定在伪随机数位列的开始位置。在本实施例中,则通过XOR开始位置决定部件123决定XOR开始位置。因此,也有必要变更折叠部件。
当XOR开始位置position与信息包长度plen的和小于伪随机数位列长度streamlength时,即position+plen<streamlength时,不进行信息包的折叠,进行XOR运算。
而当XOR开始位置position与信息包长度plen的和大于伪随机数位列的长度streamlength时,即position+plen≥streamlength时,则有必要进行信息包的折叠。作为是否进行折叠的判断,是计算剩余部分surplus=(position+plen)-streamlength(单位:字节),如果surplus大于0,就进行折叠。
图8是展示本实施例的信息包的折叠的说明图。
下面,假定surplus<streamlength,具体说明信息包的折叠方法。
把信息包的长度plen分为前半位former和剩余部分surplus。即
former=plen-surplus
该前半位former是从开始位置position到伪随机数位列的终点位置的距离。
而且,如图8(a)所示,从开始位置position开始的former字节部分,把信息包与伪随机数位列进行XOR运算。这样,就能对信息包的前半部分进行XOR处理。接着,如图8(b)所示,从伪随机数位列的开始,进行与未进行信息包的XOR运算的剩余部分的XOR运算。这样,就能对信息包全体进行XOR运算了。
当surplus>streamlength时,如实施例1说明的那样,对信息包的每个streamlength部分,从最初到最后使用伪随机数位列进行XOR运算。除了最初对信息包的former字节部分进行XOR运算以外,其它与实施例1一样。
(实施例2的动作)
图9是展示本实施例2的动作的说明图。
首先,通过伪随机数位列生成部件110进行伪随机数位列的准备(步骤S901)。伪随机数位列生成部件110的动作与实施例1实质上是同样的,所以省略重复的说明。当没有要加密或译码的信息包时,结束(步骤S902)。接着,使用XOR开始位置决定部件123,决定伪随机数位列的XOR开始位置position为:
position=seq×4mod streamlength(步骤S903)。该步骤S903是与实施例1很大的不同点。
接着,计算surplus=position+plen-streamlength,如果surplus>0,则使信息包折叠,进行XOR运算(步骤S905),如果不是这样,就对从伪随机数位列的第position字节开始的plen字节部分,通过加密处理部件120进行信息包和伪随机数位列的XOR运算(步骤S906)。当处理比streamlength长的信息包时,进行循环处理。另外,在实施例2中,能不理会信息包的接收顺序,进行译码。须指出的是,这三个步骤S904~S906在实施例3以后,在说明书和附图中被称作“进行信息包和伪随机数位列的XOR运算”,并省略重复的说明。
(实施例2的效果)
图10是展示本实施例的信息包和伪随机数位列的位置关系的说明图。
在本实施例中,通过按照信息包更新XOR运算中使用的伪随机数位列,与实施例1相比,提高了安全性。如图10(a)所示,能从伪随机数位列的开始位置进行XOR运算。这时,与实施例1是同样的。另外,如图10(b)所示,还可以使进行信息包和伪随机数位列的XOR运算的开始位置成为可变的。
另外,如图30所示,与实施例1相比,速度几乎没变化,能不牺牲速度,提高安全性。
(实施例3)
本实施例应用了实施例2,其特征在于:进行对伪随机数位列的更新。据此,存储在存储器上的实际的伪随机数位列能仿真理论上的伪随机数位列。与反复使用最初生成的一定长度的伪随机数位列的实施例1、2相比,大幅度提高了安全性。
(实施例3的结构)
图1l是展示本实施例的加密处理装置300的结构的说明图。如图11所示,加密处理装置300包含有伪随机数位列生成部件110和加密处理部件120两个构成要素。伪随机数位列生成部件110的结构与所述实施例1实质上是同样的,所以省略重复的说明。与所述实施例2相比,在加密处理部件120的结构中追加了伪随机数位列的更新判断部件(以下称作更新判断部件)124和伪随机数位列更新部件(以下,称作更新部件)125。
在说明这些更新判断部件124、更新部件125之前,先说明存储在存储器上的实际的伪随机数位列如何仿真理论上的伪随机数位列。本实施例应用了实施例2,与以下两个功能对应。
①预先生成了实际的伪随机数位列。
②与信息包编号seq对应地决定使用实际的伪随机数位列的哪个部分进行加密处理。即决定加密处理的开始位置position(position=seq×4mod streamlength)。
图12是展示伪随机数位列被分割为sec单位的说明图。
在图12中,符号1201是实际的伪随机数位列,符号1202是理论上的伪随机数位列。
在具体的说明前,用命名为段(sec)的单位来记述伪随机数位列。sec是相当于信息包长度的最大值maxplen的单位(图12的符号1203)。而且,理论上的伪随机数位列和实际的伪随机数位列的区分如下:
理论上的伪随机数位列1202的sec:T_sec
实际的伪随机数位列1201的sec:I_sec
对于理论上的伪随机数位列1202,对每1sec(maxplen字节)付与编号0、1、2、3、4、5…。同样,对于maxplen×4长度的实际的伪随机数位列1201,分配编号0、1、2、3。这样使用sec的理由是因为实际的伪随机数位列总为maxplen的固定倍数(这里,是4倍),所以如果把maxplen作为一个单位,就能简化计算。之所以对理论上的伪随机数位列付与无限的编号,是因为在理论上的伪随机数位列中,maxplen长度的sec可以无限延续下去。
作为仿真的方式,如图12所示,针对各I_sec(j)(j=0、1、2、3),导入满足N=j+4k(k:0以上的整数)的T_sec(N)。例如,如果是I_sec(1),就按顺序导入T_sec(1)、T_sec(1+4)、…、T_sec(1+4k)。这是因为理论上的位列是将实际的位列(这时,排列了四个sec)无限延续而成。通过这样,在理论上的伪随机数位列中,每次离开streamlength(=maxplen×4)的部分就是与实际位列相同的位置。
(更新部件125)
下面,说明更新部件125。在更新部件125中,对上述的每个sec进行伪随机数位列的更新。如图12所示,分为4sec。虽然可以更细地更新,但是当处理具有0<plen≤maxplen的任意长度的信息包时,因为想使对是否更新的判断简单一些,所以就设定对每个maxplen进行更新。由更新判断部件124进行是否更新的判断和决定更新哪部分。
作为具体的更新步骤,如果理论上的伪随机数位列的应该更新的段编号为N,则I_sec(N mod 4)的内容被从T_sec(N)更新为T_sec(N+4)。为了生成T_sec(N+4),可以以T_sec(N+3)的最后一定长度字节(Rijndael中,是1、6、24、32字节中的任意一个。以下称作块。)作为初始向量,生成伪随机数位列。在这种情况下,当更新I_sec(Nmod 4)时,相当于T_sec(N+3)的伪随机数位列必须存在,但是也可以按照N=0、1、2…的顺序进行更新。如果这样,当更新I_sec(N mod4)时,I_sec(N-1 mod 4)被更新,它的内容变为T_sec(N+3)。
(更新判断部件124)
在更新判断部件124中,根据信息包编号seq,判断是否更新伪随机数位列。实际进行更新的是更新部件125。在本实施例中,信息包编号seq单调增加,即seq(j+1)>seq(j),进行更新判断。
这里,说明seq(·)。首先,
J:={1、2、3、…},为进行加密、译码的信息包的顺序编号。并且对于任意的j∈J,以J→seq(j)作为与信息包对应的信息包编号。例如seq(j+i)是提供给第i+j个被处理的信息包的信息包编号。这里,并不一定是i=1、2、3、4。
因为信息包编号单调增加,所以在取得了与T_sec(N+1)对应的信息包编号的时候,即信息包编号seq满足seq×4≥maxplen×(N+1)(更新条件)时,T_sec(N)以前的伪随机数位列就变得没必要了。这意味着在到达了(b):seq(j)的位置的时刻,此前的伪随机数位列就变得没必要了。这在实际的伪随机数位列中也是相同的。
图13是展示本实施例的伪随机数位列更新的一个例子的说明图。图13(a)表示与seq相应的更新判断,图13(b)表示对应的伪随机数位列的更新。
当满足了所述(更新条件)时,就更新相当于T_sec(N)的I_sec(Nmod 4)。即把属于I_sec(N mod 4)的T_sec(N)更新为T_sec(N+4)。如果更新结束,则增加N,另外检查(更新条件),如果满足条件,就继续更新。进行它直到没必要更新。
例如,考虑seq×4从T_sec(4)到达T_sec(5)时的情形。如图13(a)所示,因为信息包编号单调增加,所以已经不需要对应于T_sec(4)的伪随机数位列。而I_sec(0)对应于T_sec(4)。则在I_sec(0)中,没必要有对应于T_sec(4)的伪随机数位列。因此,如图13(b)所示,可以把I_sec(0)的内容更新为T_sec(8)。
(实施例3的动作)
下面,分为本实施例的全体动作和伪随机数位列更新动作,进行说明。
首先,关于全体动作,本实施例与实施例1、2非常不同的是进行伪随机数位列的更新。
图14是展示本实施例的全体动作的说明图。
首先,准备伪随机数位列(步骤S1401)。因为它与实施例2之前的动作实质是同样的,所以省略重复的说明。另外,作为实施例3的特有动作,是准备作为记述要更新段的参数的secnumber,并初始化为0。当没有要加密或译码的信息包时,结束处理(步骤S1402)。
接着,对于分配给各信息包的seq,判断是否满足
seq×4≥maxplen×(secnumber+1)(步骤S1403)。当seq满足以上的表达式时,更新根据secnumber决定的段(步骤S1404)。后面将详细描述更新动作的细节。须指出的是,更新后,secnumber满足:
maxplen×secnumber≤seq×4≤maxplen×(secnumber+1)。
更新伪随机数位列后,增大secnumber(步骤S1405),重复步骤S1403~步骤S1405,直到在步骤S1403中,
seq×4<maxplen×(secnumber+1)。
满足了该条件后,进行信息包和伪随机数位列的XOR运算(步骤S1406)。该XOR运算因为与实施例2实质上是同样的,所以省略了重复的说明。
可是,当处理plen>maxplen×2的长度的信息包时,存在使用未更新段,进行加密、译码的可能性。如果不考虑安全性,也可以原样使用未更新的段。可是,在这种情况下,不保证能对应实施例5中描述的特殊再生。对能处理的信息包长度存在限制的问题的解决方法将在实施例6中说明。
图15是展示伪随机数位列的更新动作的说明图。
首先,对分配给各信息包的seq,判断是否满足seq×4≥maxplen×(secnumber+1)(步骤S1501)。接着,决定更新实际的伪随机数位列的哪段。如果更新的段为N,则通过N=secnumber mod 4导出(步骤S1502)。这依存于实际的伪随机数位列由4段构成。
接着,当不是N=0时(步骤S1503),把第N-1段和第N段的边界之前的数字节(根据所利用的加密函数而不同。如果是Rijndael,则是16、24、32字节中的某一个。以下称作块。)作为初始向量(种子),生成maxplen字节的伪随机数位列(步骤S1504、S1506)。另外,当N=0时,把实际的伪随机数位列的最后的块作为初始向量(种子),生成maxplen字节的伪随机数位列(步骤S1505、S1506)。把这样生成的maxplen字节的位列与实际的伪随机数位列的第N段置换(步骤S1507)。
最后,增大secnumber(步骤S1508),判断增大的secnumber是否满足:seq×4≥maxplen×(secnumber+1)。这是为了防止seq大幅度增大。在一次更新结束时,secnumber必须满足:
maxplen×secnumber≤seq×4≤maxplen×(secnumber+1)。
(实施例3的效果)
在本实施例中,更新了实际的伪随机数位列。因此,比实施例1、2提高了安全性。
另外,如图30所示,如果使信息包编号每次增加1,则与实施例1、2在速度上几乎没变化。而使信息包编号每次增加信息包长度/4,则与以往的OFB的速度也几乎相同。如果与以往的OFB比较性能,则在不发生信息包损失的情况下,不会牺牲速度,并提高了信息包的耐损失性。
(实施例4)
在实施例3中,存在信息包编号必须单调增加的限制。在实施例4中,通过追加以下的变更,在某种程度上,能使信息包编号后退。
设实际的伪随机数位列为一定以上的长度(maxplen的3倍以上)。
变更更新判断条件和更新方法。
本实施例的结构与图11所示的实施例3的结构实质上是同样的。可是,在实施例3中,信息包编号单调增加,即提供了seq(i+1)>seq(i)的条件,而在本实施例中,关于信息包编号,提供了以下(条件A)。
seq(j+i)seq(j)-maxplen/2…(条件A)
这里,maxplen为生成伪随机数位列时的值。
图16是展示关于信息包编号的条件扩展的说明图。
在本实施例中,信息包编号能扩展到后退到maxplen的一半。符号1601是自然数的轴线,符号1602相当于seq(j)。符号1603是单调增加时的seq(j+i)取值范围,并在seq(j)以后。而符号1604是在(条件A)下的seq(j+i)取值范围,是在从seq(j)回到maxplen/2的部分以后。须指出的是,maxplen的一半是指从作为maxplen的4倍记述的streamlength、和用“信息包编号×4”记述的信息包和理论上的伪随机数位列的对应而导出的表达式。按照它,加密处理部件120的更新判断部件124、更新部件125、以及在实施例6中说明的伪随机数位列延长部件126进行动作变化。下面,对此进行说明。
(更新判断部件124)
首先,说明更新判断部件124,它与实施例3的条件不同,但是,与用更新具有不必要的T_sec的I_sec的方法去更新伪随机数位列没有不同。其想法是在单调增加的情况下,在得到了与T_sec(N+1)对应的seq的时候,T_sec(N)以前的伪随机数位列就变得没有必要了。在本实施例中,因为象(条件A)那样是能后退的,所以在得到了与T_sec(N+3)对应的seq的时候,T_sec(N)以前的伪随机数位列就变得没必要了。即当信息包编号seq满足seq×4≥maxplen×(N+3)时,T_sec(N)以前的伪随机数位列就变得没必要了。下面,说明其理由。
首先,改写(条件A)。在(条件A)的表达式的两边乘上4倍,成为(条件A’)。
seq(j+i)×4>seq(j)×4-maxplen×2…(条件A’)
因为seq乘以4倍,就能与理论上的伪随机数位列的XOR开始位置position对应,所以就能把(条件A)改写为作为理论上的伪随机数位列的条件(条件A’)。
图17是在位列上展示(条件A’)的说明图。
符号1701表示理论上的伪随机数位列,符号1702表示seq(j)×4的位置,符号1703表示seq(j+i)×4的取值范围,符号1704表示maxplen×2,符号1705表示根据seq(j)的值被判断为没有必要的T_sec0。根据(条件A’),知道seq(j)进入T_sec(N+3)就意味着此后的信息包编号(i)需要T_sec(N+1)以后的伪随机数位列。反过来说,T_sec(N)以前的伪随机数位列就变得没必要了。
总结一下,则如果seq×4进入T_sec(N+3),则T_sec(N)以前的伪随机数位列就变得没必要了。利用它,来说明实际的伪随机数位列的更新。
例如,如果seq×4进入T_sec(N),则要更新与T_sec(N-3)对应的I_sec(N-3 mod 4)。即把进入I_sec(N-3 mod 4)的T_sec(N-3)更新为T_sec(N+1)。继续进行该操作,直到T_sec(N-3)以前的部分都被更新。
图18是展示在(条件A’)下的实际的伪随机数位列的更新实例的说明图。这里,作为一个例子,考虑seq×4从T_sec(6)到达T_sec(7)时的情形。图18(a)表示seq(j)×4到达T_sec(7)时要更新哪个,而图18(b)表示实际如何进行更新。另外,符号1801表示理论上的伪随机数位列,符号1802表示实际的伪随机数位列,符号1803表示maxplen×2。
1:根据(条件A)判断出相当于T_sec(4)的伪随机数位列已经没有必要(图18(a))。
2:I_sec(0)对应于T_sec(4)(图18(b))。
3:根据(条件A),相当于T_sec(4)的伪随机数位列没必要进入I_sec(0)。
4.因为XOR的开始位置在T_sec(7)和信息包长度的最大值等于各段的长度,所以相当于T_sec(8)的伪随机数位列变为必要。因此,可以把I_sec(0)的内容更新为I_sec(8)(图18(b)。
(实施例4的动作)
图19是展示本实施例的动作的说明图。
本实施例的动作与图14所示的实施例3的动作实质上是同样的。与实施例3的不同点是通过以下三个变更,而能够不考虑信息包的接收顺序进行译码。
1.把伪随机数位列的长度取得充分长。至少使伪随机数位列为maxplen的3倍以上。
2.变更更新判断的基准。即在步骤S1903中,以
seq×4≥maxplen×(secnumber+3)
作为更新条件。
3.变更要更新的段。即在步骤S1904中,对实际的伪随机数位列的secnumber所对应部分进行更新。
关于其他步骤S1901、S1902、S1905和S1906,与实施例3的对应步骤实质上是同样的。
(实施例4的效果)
根据本实施例,能够不管信息包的接收顺序进行译码。在使用UDP(User Datagram Protocol)等不能保证数据接收顺序的协议进行现场直播的接收的情况下,信息包的顺序经常会被打乱。因此,在某种程度上,有必要对应被打乱的顺序进行处理。另外,如图30所示,要使之与实施例3的速度几乎相同。与实施例1、2的不同之处是为了更新伪随机数位列,而不能完全“不管顺序”。可是,如果限定于基于信息流的现场直播,则当无法实时地接收到信息包时,就无法再生失去的信息包,所以没必要无限制地后退。因此,如果只后退本实施例中说明的程度的量,就能有充分的效果。
(实施例5)
在本实施例中,说明对动画发送的跳过再生、快进、倒回等特殊再生的应用方法。它们中公共的难点是信息包编号大幅度变动。象实施例1、2那样,如果从最初到最后一直使用一定长度的伪随机数位列,是不会有问题的。但是在一边更新实际的伪随机数位列,一边使用的实施例3、4中,当信息包编号大幅度变动时,就要对该部分必须生成、更新大量的伪随机数位列。在本实施例中,说明解决该问题的方法。
(实施例5的结构)
图20是展示本实施例的加密处理装置500的结构的说明图。加密处理装置500如图20所示,包含有伪随机数位列生成部件110和加密处理部件120两个构成要素。与所述实施例1的结构相比,在伪随机数位列生成部件110中追加了种子抽出部件115。另外,与所述实施例3的结构相比,在加密处理部件120中追加跳过再生部件126和跳跃译码部件127。如果简单地说明这些追加的构成要素,则种子抽出部件115是抽出用于生成与信息包编号对应的伪随机数位列的初始向量(以下称作信息包的种子。)的构成要素,跳过再生部件126是把输入的信息包编号作为初始值,并从那里开始译码的构成要素,跳跃译码部件127是只对指定的信息包进行译码的构成要素。
(种子抽出部件115)
图21是展示种子抽出部件115的功能的说明图。图21(a)表示了被存储的信息包的种子,(b)表示伪随机数位列。
种子抽出部件115指定信息包编号seq,对于从该信息包编号seq开始进行的译码的准备,它是必要的。对该种子抽出部件115假定以下的状况:
1.加密数据的每个信息包被存储在发送一侧的服务器中。
2.以信息包+信息包编号的形式存储。
在该前提下,如图21(a)所示,以几个~几百个信息包为一定周期,保存生成对该信息包进行加密所必需的伪随机数位列所必需的一定长度的位列。该位列的长度根据使用的加密函数决定。如图21(b)所示,伪随机数位列上的与信息包进行XOR运算的开始位置之前的“一定长度的位列”与之相当。它相当于所述的“信息包的种子”。如果有了它,再指定信息包编号,就可以把离它最近的“信息包的种子”作为初始向量,进行译码。
(跳过再生部件126)
图22是表示跳过再生部件126的功能的说明图。
在跳过再生部件126中,假定加密一侧已经使用种子抽出部件125,把一定间隔的具有的“种子”信息包作为数据存储起来了。调用该部分时,就查找最近的具有“种子”的信息包(步骤S2201)。具体而言,如果开始进行跳过再生的信息包编号为seq_1,则满足以下条件的seq_0与之相当。
seq_0=max{seq|seq≤seq_1,具有与seq对应的种子}。
然后,把该“种子”作为初始向量,生成伪随机数位列(步骤S2202)。另外,把该信息包的seq作为初始值seq_0,在进行译码前,从提供给信息包的seq中减去seq_0,修正seq。
下面,说明在译码一侧需要修正信息包编号seq的理由。因为使用seq进行伪随机数位列的更新,所以可能会原封不动地使用从加密一侧接收到的seq的值对伪随机数位列进行更新。为了防止它,在进行了跳过再生,并重新生成了伪随机数位列后,则希望从seq=0重新开始计数。因此,把开始进行跳过再生的信息包编号作为seq_0,对于从加密一侧发来的信息包编号seq,一律进行称作负seq_0的修正。如果不进行这样的修正,则如符号2203所示,会发生必须生成与加密装置一侧已经生成的相同长度的位列的情况。
(跳跃译码部件127)
图27是展示跳跃译码部件127的功能的说明图。
并不假定跳跃译码部件127是在伴随着象2倍速再生那样的缓和的seq增减时使用的。这时,通常生成伪随机数位列会更快些。这里,假定加密的信息包每次跳跃3秒,以跳过状态被发来,同时需要时它进行译码时的情形。即,即使是发送“种子”,也比逐一生成伪随机数位列要快的情形。须指出的是,这里假定加密一侧已经使用种子抽出部件,把一定间隔的具有“种子”的信息包作为数据存储起来了。跳跃译码部件127对具有“种子”的信息包进行译码。
作为跳跃译码部件的处理,指定一定间隔的具有“种子”的信息包(步骤S2301),把该“种子”作为初始向量,生成信息包长度的伪随机数位列(步骤S2302)。然后取得生成的伪随机数位列和信息包的XOR(步骤S2303)、并进行译码(步骤S2304)。在继续快进、倒回时,继续进行该操作。还可以在再次开始再生时调用跳过再生部件。
(实施例5的动作)
图24是展示跳跃译码部件127的收发流程的说明图。
以加密一侧把信息包和设定的种子作为数据保存起来为前提。执行以下步骤。
1.译码一侧(接收一侧)向加密一侧(发送一侧)发送跳过再生命令和指定开始的信息包编号seq_1(步骤S2401)。
2.加密一侧选择离开始再生的信息包最近的具有种子的信息包(步骤S2402)。具体而言,满足以下条件的seq_0与之相当。
seq_0=max{seq|seq≤seq_l,具有与seq对应的种子}。
3.向译码一侧(接收一侧)发送信息包编号seq_0(步骤S2403)。在收发中使用公开键密码,或在信息包的加密中使用的密钥。
4.译码一侧发送确认响应(步骤S2404),并把种作为初始向量生成通常长度(maxplen×4)的伪随机数位列(步骤S2405)。
5.从附加在信息包中的seq中减去seq_0、进行修正。
6.进行信息包和伪随机数位列的XOR运算。此后,与实施例3相同(进行信息包发送的步骤S2406,进行信息包译码的步骤S2407)。
图25是展示跳跃再生时的流程的说明图。
它也是以加密一侧预先把信息包和设定的种子作为数据保存起来为前提。
1.译码一侧(接收一侧)向加密一侧(发送一侧)发送跳跃再生(快进、或倒回)的命令。
2.加密一侧从一定间隔的具有种子的信息包中取出种子(步骤S2502),并向译码一侧发送(步骤S2503)。一定间隔由以怎样的间隔进行快进、倒回决定。另外,种子是被加密发送的。
3.译码一侧以种子作为初始向量,生成信息包长度的伪随机数位列(步骤S2504)。
4.进行信息包和伪随机数位列的XOR运算(步骤S2505)。
5.继续发送信息包和种子,直到跳跃再生结束(步骤S2506)。然后,当再次开始通常的再现时,调用跳过再生部件。
(实施例5的效果)
通过使数据库中被加密的信息包具有“种子”,可以对伪随机数位列的任意位置都能快速访问。这在伴随着跳过再生、快进、倒回等特殊再生的动画播放的加密中,是必需的功能。
(实施例6)
在本实施例中,附加了伪随机数位列的延长功能。该功能在实施例3中,对处理比当初预测的要大的信息包即具有满足plen>maxplen长度的信息包的情况是有效的。
这是因为当信息包编号seq为某值以上时,是根据seq×4>maxplen×(secnumber+1)表达式进行位列的更新判断的,但是该判定条件依存于信息包长度plen要比maxplen小。如果不是这样,在对信息包进行加密时,有可能使用了还未更新的伪随机数位列。因此,当必须对超出预测的大信息包进行处理时,必须延长实际的伪随机数位列自身。须指出的是,当象实施例1、2那样,连续使用一定长度的伪随机数位列时,没有必要延长伪随机数位列。通过折叠信息包,可以重复使用最初生成的伪随机数位列。
(实施例6的结构)
图26是展示本实施例的加密处理装置600的结构的说明图。如图26所示,加密处理装置300包含有伪随机数位列生成部件110和加密处理部件两个构成要素。伪随机数位列生成部件110的结构与所述实施例5实质上是同样的,所以省略重复的说明。与所述实施例5的结构相比,在加密处理部件120中追加了伪随机数位列延长部件128。
可以考虑把原来的伪随机数位列从最后延长,则必须在实施例3中,更新实际的伪随机数位列。为了在加密、译码双方中使用相同伪随机数位列,必须使用一些办法正确地进行更新。在实施例3中,伪随机数位列的更新方法是“每次更新实际的伪随机数位列的1/4”,其判定方法是当“信息包编号seq满足seq×4>maxplen×(secnumber+1)条件时,把I_sec(secnumber mod 4)的内容T_sec(secnumber)更新为T_sec(secnumber+4)”。
因为使用条件seq×4>maxplen×(secnumber+1),所以必须对maxplen增加的部分重新取得secnumber。
在实施例3中,因为secnumber描述的是从理论上的伪随机数位列的开始到第maxplen×4字节进入的是哪个段,所以可以重新取得满足以下表达式的secnumber。
(maxseq×4)/maxplen-1<secnumber≤(maxseq×4)/maxplen
这里,secnumber:接着应该更新的段编号
maxseq:此前的信息包编号seq的最大值
maxplen:新的maxplen。它成为了1段的单位。
下面是更新方法。在实施例3中,是把I_sec(secnumber mod 4)的内容T_sec(secnumber)更新为T_sec(secnumber+4),但是如图27所示,存在以下两个问题。
图27是展示伪随机数位列延长时的问题的说明图。图27(a)表示maxplen延长前的理论上的伪随机数位列的分段,符号2701表示理论上的伪随机数位列,符号2702表示实际的伪随机数位列。另外,图27(b)表示maxplen延长后的理论上的伪随机数位列的分段,符号2703表示理论上的伪随机数位列,符号2704表示实际的伪随机数位列。在maxplen延长前,如图27(a)所示,在实际的伪随机数位列2702中,secnumber与理论上的伪随机数位列2701的各段内容相对应。
而在maxplen的长后,如图27(b)所示,存在以下两个问题。
实际的伪随机数位列2704的开头未能达到理论上的伪随机数位列2703的段边界。即无法进行一段一段的更新。
即使实际的伪随机数位列2704的开头达到理论上的伪随机数位列2703的段边界,但是I_sec(secnumber mod 4)的应该更新的内容也不只会变为T_sec(secnumber)。
因此,在本实施例中,采用以下的解决方法。
图28是展示本实施例的实际的伪随机数位列的延长方法的说明图。须指出的是,对于延长以前的值,附加“0”,对于延长后的值,附加“_N”。例如,把延长后的实际的伪随机数位列的长度表示为streamlength_N。
1.确保maxplen_N×4长度的区域。在该区域中存储伪随机数位列,作为新的伪随机数位列。
2.在延长前的伪随机数位列上,复制从position_0到伪随机数位列结束的部分(步骤S2801)。
3.在延长后的伪随机数位列上,从position_N开始粘贴在2.中复制的部分。如果超出,就循环。
4.在延长前的伪随机数位列上,复制从开始到position所属的段的开始(不进入段中)的部分(步骤S2802)。
5.在延长后的伪随机数位列上,从3.的粘贴记述结束地方继续粘贴4.的部分。
6.把延长后的伪随机数位列的还未填充的部分延长、并填充(步骤S2803)。
(实施例6的动作)
图29是展示本实施例的动作的说明图。
首先,调查应该处理的信息包的长度plen与maxplen的大小关系(步骤S2901)。如果plen>maxplen,就用图28说明的所述方法,延长实际的伪随机数位列(步骤S2902)。如果plen≤maxplen,就不进行实际的伪随机数位列的延长。然后,用实施例3的方法,进行加密、译码(步骤S2903)。
(实施例6的效果)
在现场直播中,由于网络的状况、再生的图象、操作者和用户的操作等各种因素,应该处理的信息包的长度总是会变动的。在这样的状况下,很难预测信息包的长度,即很难预测信息包长度的最大值maxplen。如果信息包长度变化,在用户一侧对此进行逐一操作是很不方便的。因此,对于信息包长度的变更,有必要在模块一侧自动进行对应。根据本实施例,能解决这样的问题。
图30是展示所述实施例的速度测试结果的说明图。
在测试中,采用了对10Kbyte的信息包进行处理,使它循环665600次,并测定时间的方法。加密函数使用了Rijndael。信息包编号是每次增加1的编号和每次增加2560的编号(因为10kbyte=10240byte,所以是它的1/4。即使XOR的开始位置错开信息包长度)。
对“以往的OFB”,采用了16字节的缓存器进行以下步骤。
①首先把初始向量代入缓存器中。
②用加密函数改写缓存器。
③进行16字节的信息包与缓存器内容的XOR运算。
继续②、③,直到对信息包全体进行了XOR运算。
须指出的是,因为一张CD-R为650MB=665600kB,所以该方法也是测量加密10张CD-R所需要的最小时间的实验(实际上,只是采用了用以往的OFB方法进行6656次循环的时间乘100倍作为结果)。另外,测试中使用的计算机的规格如下:
CPU:PentiumIV(注册商标)、1.3GHz
OS:Windows2000(注册商标)
HDD:50GB
内存:128MB
结果如图30所示。通过该表能说明两个事实。
1.如果信息包编号的增加部分为1,则与信息包长度的增加相比(例如模式4的(1)和(2560)),约为100倍的速度差。由此,在安全的要求水平下,能实现高速化。
2.“通常的OFB”与采用模式4相比,在比较信息包编号的增加部分与信息包长度的增加时,几乎观察不到速度差。由此,不但保持同等的速度,而且能取得高稳定性。
以上,参照附图,说明了本发明的加密处理方法以及加密处理装置的理想实施例,但是本发明并不局限于相关的例子。如果是本行业的人员,在权利要求描述的技术思想范围内,能想到各种变形例或修正例,关于它们,当然也属于本发明的技术范围。
如上所述,如果列举本发明的效果,则如下所述。
1.预先生成伪随机数位列,并对根据附加在信息包中的任意信息包编号,使用伪随机数位列的哪个范围进行统一管理。由此,在接收一侧能够在不受信息包损失影响的情况下,进行译码。
2.通过把信息包编号的增加率设定得很低,使各信息包不只使用伪随机数位列一次,而是允许重复使用,能实现高速化。
3.通过使伪随机数位列具有充分长度,使得即使信息包编号不是单调增加,也能进行加密、译码。由此,能对应通信中的信息包顺序的紊乱。
4.加密一侧(发送一侧)通过与加密的信息包一起,保存信息包编号和信息包的种子,能不重复生成伪随机数位列,对任意信息包进行译码。由此,能实现跳过再生快进、倒回等特殊再生。
5.通过延长实际的伪随机数位列,能够处理比当初预期的还要长的信息包长度。由此,在现场直播等不稳定因素多的环境下,就没必要预测应该处理的信息包的长度了,使得即使信息包长度剧烈变化,也能立刻对应。

Claims (15)

1.一种加密处理方法,对以信息包为单位传输的流数据进行加密处理,其特征在于包括:
预测包含在所述各信息包中的位列(信息包内位列)的最大长度,生成比所述预测的信息包内位列最大长度还长的伪随机数位列的第一步骤;
使用所述伪随机数位列,对所述各信息包内位列进行加密处理的第二步骤。
2.根据权利要求1所述的加密处理方法,其特征在于:
在所述第二步骤中,当所述信息包内位列的长度比所述伪随机数位列的长度还长时,用所述伪随机数位列的长度划分所述信息包内位列,并使用所述伪随机数位列依次进行加密处理,重复此处理直到还未被加密处理的所述信息包内位列(未处理位列)的长度变为比所述伪随机数位列的长度短;
使用从所述伪随机数位列的开头开始的相当于所述未处理位列长度的位列,对所述未处理位列进行加密处理。
3.根据权利要求1或2所述的加密处理方法,其特征在于:
在所述第二步骤中,每次对给定数量的所述信息包进行加密处理时,变更用来加密处理所述信息包内位列的所述伪随机数位列的开始位置。
4.根据权利要求3所述的加密处理方法,其特征在于:
在所述第二步骤中,当所述信息包内位列的长度比从所述伪随机数位列的所述开始位置到终点位置的长度还长时,使用所述伪随机数位列的从所述开始位置到终点位置的位列,对所述信息包内位列的一部分实施加密处理,并使用从所述伪随机数位列的开头开始的相当于所述未处理位列的长度的位列,对还未被加密处理的所述信息包内位列(未处理位列)进行加密处理。
5.根据权利要求1~4中的任意一项所述的加密处理方法,其特征在于:
在所述第二步骤中,在每次对给定数量的所述信息包进行加密处理时,至少更新所述伪随机数位列的一部分。
6.根据权利要求1~5中的任意一项所述的加密处理方法,其特征在于:
所述伪随机数位列的长度是所述信息包内位列的最大长度的至少3倍以上。
7.根据权利要求1~6中的任意一项所述的加密处理方法,其特征在于:
针对给定数量的每个所述信息包,保存用于生成与被付与所述信息包的编号对应的伪随机数位列的种子数据。
8.根据权利要求1~7中的任意一项所述的加密处理方法,其特征在于:
在所述第二步骤中,当所述信息包内位列的长度比所述伪随机数位列的长度还长时,延长所述伪随机数位列的长度。
9.一种加密处理装置,对以信息包为单位传输的流数据进行加密处理,其特征在于包括:
预测包含在所述各信息包中的位列(信息包内位列)的最大长度,生成比所述预测的信息包内位列最大长度还长的伪随机数位列的伪随机数位列生成部件;
使用所述伪随机数位列,对所述各信息包内位列进行加密处理的加密处理部件。
10.根据权利要求9所述的加密处理装置,其特征在于:
具有以所述伪随机数位列的长度划分所述信息包内位列的信息包内位列划分部件。
11.根据权利要求9或10所述的加密处理装置,其特征在于:
所述加密处理部件还具有:决定用来加密处理所述信息包内位列的所述伪随机数位列的开始位置的开始位置决定部件。
12.根据权利要求9~11中的任意一项所述的加密处理装置,其特征在于:
所述加密处理部件还具有:判断是否有必要更新所述伪随机数位列的更新判断部件和更新所述伪随机数位列的至少一部分的更新部件。
13.根据权利要求9~12中的任意一项所述的加密处理装置,其特征在于:
所述伪随机数位列生成部件还具有:针对给定数量的每个所述信息包保存用于生成与被付与所述信息包的编号对应的伪随机数位列的种子数据的种子抽出部件;
所述加密处理部件还具有:选择离给定信息包最近的保存有所述种子数据的信息包,使用该信息包保存的种子数据,生成所述伪随机数位列的跳过再生部件。
14.根据权利要求13所述的加密处理装置,其特征在于:
所述加密处理部件还具有:使用给定间隔的信息包保存的种子数据,依次生成所述伪随机数位列的跳跃译码部件。
15.根据权利要求9~13中的任意一项所述的加密处理装置,其特征在于:
所述加密处理部件还具有:延长所述伪随机数位列的延长部件。
CNB03122234XA 2002-05-15 2003-04-23 加密处理方法以及加密处理装置 Expired - Fee Related CN100435509C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP140656/2002 2002-05-15
JP2002140656A JP2003333032A (ja) 2002-05-15 2002-05-15 暗号処理方法,及び,暗号処理装置

Publications (2)

Publication Number Publication Date
CN1458762A true CN1458762A (zh) 2003-11-26
CN100435509C CN100435509C (zh) 2008-11-19

Family

ID=29416950

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB03122234XA Expired - Fee Related CN100435509C (zh) 2002-05-15 2003-04-23 加密处理方法以及加密处理装置

Country Status (3)

Country Link
US (1) US20030215094A1 (zh)
JP (1) JP2003333032A (zh)
CN (1) CN100435509C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035829A (zh) * 2006-05-16 2011-04-27 Kddi株式会社 加密装置、解密装置、许可证发布装置和内容数据生成方法
CN101449578B (zh) * 2006-05-16 2012-05-23 京瓷株式会社 流发生方法、广播接收装置以及显示方法
US8532292B2 (en) 2006-05-16 2013-09-10 Kyocera Corporation Stream generation method, broadcast receiving apparatus, and display method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7809843B1 (en) * 2003-09-18 2010-10-05 Intel Corporation Globally unique identification in communications protocols and databases
US20070162740A1 (en) * 2006-01-12 2007-07-12 Relan Sandeep K Systems, methods, and apparatus for packet level security
JP5042524B2 (ja) * 2006-05-16 2012-10-03 Kddi株式会社 暗号化装置及び復号装置、コンテンツデータ生成方法
JP5184757B2 (ja) * 2006-05-16 2013-04-17 京セラ株式会社 放送受信装置および表示方法
JP2008186289A (ja) * 2007-01-30 2008-08-14 Ntt Docomo Inc コンテンツ利用装置及びコンテンツ利用方法
JP5435845B2 (ja) * 2007-02-20 2014-03-05 株式会社メガチップス 信号処理装置
JP5100497B2 (ja) * 2008-05-14 2012-12-19 三菱電機株式会社 復号装置
JP2010268149A (ja) * 2009-05-13 2010-11-25 Mitsubishi Electric Corp 復号装置及び復号方法及びプログラム
US11595694B2 (en) * 2020-04-01 2023-02-28 Tencent America LLC Method and apparatus for video coding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09233066A (ja) * 1996-02-23 1997-09-05 Sony Corp 暗号化/解読化方法および装置
JPH1141245A (ja) * 1997-07-22 1999-02-12 Fujitsu Ltd 秘匿通信システム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102035829A (zh) * 2006-05-16 2011-04-27 Kddi株式会社 加密装置、解密装置、许可证发布装置和内容数据生成方法
CN101449578B (zh) * 2006-05-16 2012-05-23 京瓷株式会社 流发生方法、广播接收装置以及显示方法
US8532292B2 (en) 2006-05-16 2013-09-10 Kyocera Corporation Stream generation method, broadcast receiving apparatus, and display method
CN102035829B (zh) * 2006-05-16 2014-03-26 Kddi株式会社 加密装置、解密装置、许可证发布装置和内容数据生成方法

Also Published As

Publication number Publication date
JP2003333032A (ja) 2003-11-21
CN100435509C (zh) 2008-11-19
US20030215094A1 (en) 2003-11-20

Similar Documents

Publication Publication Date Title
CN1310462C (zh) 通过对数据加密来保护数据的数据保护系统
CN1125407C (zh) 信息处理装置,信息处理方法,信息处理系统
CN1270246C (zh) 信息处理设备和方法
CN1571959A (zh) 信息处理设备、信息处理方法和计算机程序
CN1266876C (zh) 数据通信系统、加密装置及解密装置
CN1516837A (zh) 信息处理设备、方法、记录介质和程序
CN1276364C (zh) 数据管理设备,数据管理方法以及计算机程序
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1855112A (zh) 内容信息提供服务器、系统和方法及内容再现设备和方法
CN1754371A (zh) 内容历史日志收集系统
CN1458762A (zh) 加密处理方法以及加密处理装置
CN1596533A (zh) 内容使用系统
CN1977250A (zh) 进行加密或解密的计算机系统和计算机程序
CN1674492A (zh) 信息处理装置、控制方法、程序及记录介质
CN101031918A (zh) 节点设备、共享信息更新方法、共享信息存储方法以及程序
CN1496628A (zh) 内容分配系统
CN1914850A (zh) 信息处理设备和方法
CN1276575A (zh) 数据库存取系统
CN1463514A (zh) 信息处理装置
CN1463515A (zh) 信息处理装置
CN1901446A (zh) 使用了加密密钥组的信息处理系统及方法
CN1852418A (zh) 移动电视播出控制系统和播放网络及播出方法
CN1617248A (zh) 记录装置和方法
CN1822538A (zh) 加密方法,加密装置,解密方法和解密装置
CN1465028A (zh) 用于通信网络的通信系统及通信方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081119

Termination date: 20180423

CF01 Termination of patent right due to non-payment of annual fee