CN100342683C - 在值域上有限制的数据的加密/解密方法及其装置 - Google Patents

在值域上有限制的数据的加密/解密方法及其装置 Download PDF

Info

Publication number
CN100342683C
CN100342683C CNB200410001836XA CN200410001836A CN100342683C CN 100342683 C CN100342683 C CN 100342683C CN B200410001836X A CNB200410001836X A CN B200410001836XA CN 200410001836 A CN200410001836 A CN 200410001836A CN 100342683 C CN100342683 C CN 100342683C
Authority
CN
China
Prior art keywords
code
mentioned
concern
encrypted
encryption
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.)
Expired - Fee Related
Application number
CNB200410001836XA
Other languages
English (en)
Other versions
CN1520085A (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.)
Canon Inc
Original Assignee
Canon Inc
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
Priority claimed from JP2003006372A external-priority patent/JP4371663B2/ja
Priority claimed from JP2003061617A external-priority patent/JP2004274339A/ja
Priority claimed from JP2003184941A external-priority patent/JP4672971B2/ja
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN1520085A publication Critical patent/CN1520085A/zh
Application granted granted Critical
Publication of CN100342683C publication Critical patent/CN100342683C/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/36Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with means for detecting characters not meant for transmission

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Facsimile Transmission Control (AREA)

Abstract

本发明提供在值域上有限制的数据的加密/解密方法及其装置和程序,关于对关注代码进行了加密的加密关注代码,判断在与该加密关注代码有关的代码中是否存在由数据格式所规定的禁止代码,在判断为不存在禁止代码时,将上述加密关注代码决定为上述关注代码的加密结果。

Description

在值域上有限制的数据的加密/解密方法及其装置
技术领域
本发明涉及数据的加密/解密方法,尤其涉及进行在格式上包含特有的标记代码的图像数据的加密/解密的方法及其装置、程序。
背景技术
近年来,由于计算机及其网络的飞速发展和普及,字符数据、图像数据、声音数据等多种信息被数字化。数字信息,一方面能够总是以完整的状态进行保存而没有因长时间变化等引起的劣化,但另一方面可容易地进行复制,著作权保护就会有很大的问题。因此用于著作权保护的保密技术的重要性就迅速增加。
在保护著作权的技术之一中有“加密技术”。特别是,作为图像数据等数字内容的加密方式,有在发送者和接收者中秘密地共享同一加密密钥的共用密钥加密方式(还被称为秘密密钥加密方式、对称加密方式、惯用加密方式)。共用密钥加密方式可分成按逐个适当长度的字符串(块)用相同密钥进行加密的分组(块)加密和逐个字符串或者位地改变密钥的流加密。在分组加密中众所周知有DES(DataEncryption Standard)和AES(Advanced Encryption Standard)等。
作为流加密,众所周知有使用多表代替字(polyalphabeticsubstitution)的维吉尼亚加密(Vigenere cipher)和使用一次性密钥(one time pad)的弗纳姆加密(Vernam cipher)等(例如,参照池野、小山著“现代加密理论”电子信息通信学会,1986第2章和第4章)。因而,利用全体图像数据的加密的著作权保护,通过使用上述的共用密钥加密方式之中的一个就能够容易地实现。即,在发送者和接收者中共享加密密钥,接收者使用该密钥来对发送者进行了加密的图像数据进行解密即可。
另一方面,作为对图像数据进行压缩的高效率编码的方式之一,作为静止图像的国际标准编码方式由ISO和ITU-T所建议的JPEG方式已广泛得以使用。此JPRG方式是以离散余弦变换为基本的方式,存在若提高压缩率则产生块状的失真这样的问题点。因此,为了实现图像更进一步的高分辨率要求,和更高的压缩率,作为与先前的离散余弦变换不同的变换方式提案出利用了离散子波变换的编码方式,现在正作为JPEG2000不断进行标准化。
图1是JPEG2000编码器的功能框图。输入图像首先通过离散子波变换(DWT)进行子带分解(101),之后进行量化(102)。图2是分解等级为2时(分辨率等级数为3)的子带分解的例子,存在从等级0到等级2的分辨率等级。此时,属于越小分辨率等级的系数就包含越低频率的信息。进行了量化的子波系数,通过EBCOT算法来进行编码。在下面,将此算法分成码块分割(103)、系数建模(104)、算术编码(105)和速率控制(106)、层形成(107)以及包生成(108)这5个部分来进行说明。
(1)码块分割(103)
各子带被分割成称作码块的正方形的块(例如64×64等)。这些码块分别独立地进行编码。
(2)系数建模、
对各码块的子波系数串,进行基于位面(bit plane)的系数建模。由此,生成系数位以重要度顺序进行了排列的嵌入代码串。从MSB到LSB的所有位面,分别依照上下文(环流)被分解成三个子位面(路径)。各子位面的边界被称为截断点(Truncationpoint),并成为在后面对数据进行舍去时的最小分割单位。
(3)算术编码和速率控制
对通过系数建模所生成的嵌入代码串,实施自适应算术编码。之后,通过以作为子位面的边界的截断点为单位,适当截断算术代码串,就得到目标位速率。
(4)层形成
在需要以多个图像质量依次进行显示的情况下,即在需要进行SNR定标时,接着进行代码的层形成。各层分别包含各码块的嵌入代码的一部分。越高的层就包含当图像再现时越重要的成分。
(5)包生成
将各层分解成多个被称为主体(body)的单位,并在各自上附加报头信息生成包。这里各主体,分别持有对应的分辨率等级的信息。从而所生成的包的总数,就成为层数和分辨率等级数的乘积。在报头信息中,包含各码块的算术代码串的长度、子位面的个数等信息。如图4那样,汇总所有的包,附加了全局报头信息的代码串就成为最终的JPEG2000的代码串。其中,如以上那样的各种报头信息和作为数据分割的最小单位的子位面,在JPEG2000中规定将其设为1字节的整数倍的大小。
如以上所说明那样,在数字图像数据中就有保密的问题,全体图像的加密通过上述的DES和AES等加密方式得以解决。但是,在此情况下,若要解密就对全体图像的加密进行解密,不能进行部分的保护。因此例如,通过仅加密高分辨率部分(图2的等级1以上),将等级0保持原样,来公开低分辨率的等级0的图像,作为整体的高分辨率图像就能够进行保护。但是,在此情况下,进行加密的高分辨率部分以外为通常的JPEG2000的代码串,作为高分辨率部分的加密方式就不能单纯地直接使用DES和AES。
这是因为,在JPEG2000的代码串的部分加密中伴有与标记代码有关的制约。标记代码,是在JPEG2000中保持特殊的含义的代码,若因加密而生成假的标记代码,就会妨碍正常的再现。即,标记代码在图4所示的压缩数据部(主体)中,具有被禁止生成的禁止代码的任务。
在将JPEG2000作为对象的情况下,标记代码意味着具有FF90h-FFFFh的值的标记以及标记段代码。标记是指保存定义信息的代码。它们用2字节来表示,开头的1字节是FFh。进而根据用途标记被表现为FFxxh这样的2字节数据。另一方面,标记段由一个标记和跟随于其的参数组成。仅4种标记SOC(FF4Fh:start ofcode-stream)、EOC(FFD9h:end of code-stream)、SOD(FF93h:start of data)、EPH(FF92h:end of packet header)是独立的标记,其他的标记全部都是标记段的一部分。以后将标记和标记段汇总起来叫做标记。在JPEG2000中,特别是在FF90h-FFFFh的范围的标记中具有两个特殊的含义。一个是这些标记意味着代码流的分隔。由此,就可对包和包报头附加位置。另外一个是这些标记不存在于压缩数据自身(图4的主体)之中。即,JPEG2000编码器被设计成不发生这些代码。因而,在上述部分的JIPEG2000数据的加密中想进行回避的是,以此2字节为单位进行FF90h-FFFFh的标记代码的生成。
另外,作为能够使用的数据的值域被限制的其他数据格式,有PNG(Portable Network Graphics)。PNG是作为能够用浏览器进行利用的图像形式之一由标准化团体W3C所策划确定的新图像格式。PNG的规格,在 http://www.w3.org/Graphics/PNG/中被标准 。PNG所记述的文件形式通过PNG签名和接续于其被称为组块(chunk)的数据块的连接而构成。PNG文件签名的一例是8字节数据“137 80 78 71 13 10 26 10”(10进制表示),其被决定为务必附加在PNG文件的最初的数据。
组块是连结了组块数据长度(4字节)、组块形式代码(固定4字节)、组块数据(不定长度)、CRC(4字节)这4个部分的数据。组块数据长度信息是赋予组块数据区域的字节数的4字节数据。组块形式是表示形式的4字节的代码,基于该形式所规定的数据被保存在组块数据区域中。组块数据区域的数据长度有时还为0。最后,作为由对于组块形式代码、组块数据区域的CRC(CyclicRedundancy Check)算法所计算出的装填数据,附加4字节的CRC数据。
这里,组块形式代码,仅许可使用大写字符和小写字符的ASCII字符(A-Z、a-z)。也就是,设只能利用10进制的65-90和97-122之间的值域。为此在对PNG内部的一部分进行加密时,需要慎重处理上述的组块形式代码。也就是,必须使得不被编码成值域外的值。
发明内容
因此,本发明的目的就在于,即便对规定值域的数据施加加密、解密处理,也使处理结果务必成为规定值域的数据。
为了达到上述目的,本发明的第1技术方案提供一种加密方法,包括:加密步骤,对关注代码进行加密;加密结果判断步骤,判断在通过该加密步骤对关注代码进行加密而得到加密的关注代码后,是否产生预定范围内的值的新代码;加密结果决定步骤,在该加密结果判断步骤判断为没有产生预定范围内的值的新代码时,将上述加密的关注代码决定为上述关注代码的加密结果;以及操作步骤,在该加密结果判断步骤判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述加密的关注代码的另一代码作为上述关注代码的加密结果。
另外,为了达到上述目的,本发明的第2技术方案提供一种解密方法,包括:解密步骤,对被加密的关注代码进行解密,其特征在于该方法还包括:解密结果判断步骤,判断在通过该解密步骤对被加密的关注代码进行解密而得到解密的关注代码后,是否产生了预定范围内的值的新代码;解密结果决定步骤,在该解密结果判断步骤判断为没有产生预定范围内的值的新代码时,将上述解密的关注代码决定为上述被加密的关注代码的解密结果;操作步骤,在该加密结果判断步骤判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述解密的关注代码的另一代码作为上述被加密的关注代码的解密结果。
另外,为了达到上述目的,本发明的第3技术方案提供一种加密装置,包括:加密单元,对关注代码进行加密;加密结果判断单元,判断在通过该加密单元对关注代码进行加密而得到加密的关注代码后,是否产生预定范围内的值的新代码;加密结果决定单元,在该加密结果判断单元判断为没有产生预定范围内的值的新代码时,将上述加密的关注代码决定为上述关注代码的加密结果;以及操作单元,在该加密结果判断单元判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述加密的关注代码的另一代码作为上述关注代码的加密结果。
进而,为了达到上述目的,本发明的第4技术方案提供一种解密装置,包括:解密单元,对代码进行解密;解密结果判断单元,判断在通过该解密单元对加密的关注代码进行解密而得到解密的关注代码后,是否产生预定范围内的值的新代码;解密结果决定单元,在该解密结果判断单元判断为没有产生预定范围内的值的新代码时,将上述解密的关注代码决定为上述加密的关注代码的解密结果;操作单元,在该解密结果判断单元判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述解密的关注代码的另一代码作为上述加密的关注代码的解密结果。
本发明除上述以外的其他目的和优点,通过下面对本发明的优选实施形式的说明,将会为本领域的技术人员所知。在说明中将参照构成说明的一部分并且表示本发明的例子的附图。但是这种例子并非本发明的各种实施形式的穷举,因此应参照跟随说明之后的权利要求来确定本发明的范围。
附图说明
图1是JPEG2000编码器的功能框图。
图2是说明利用JPEG2000中的DWT的子带分解的概要图。
图3是表示有关实施形式的信息处理装置的硬件结构的图。
图4是说明JPEG2000流的结构的概念图。
图5是表示有关第1实施形式的加密处理过程的流程图。
图6是表示有关第1实施形式的解密处理过程的流程图。
图7是表示有关第2实施形式的加密处理过程的流程图。
图8是表示有关第2实施形式的解密处理过程的流程图。
图9是表示有关第3实施形式的加密处理过程的流程图。
图10是表示有关第3实施形式的解密处理过程的流程图。
图11是表示有关第4实施形式的加密处理过程的流程图。
图12是表示有关第4实施形式的解密处理过程的流程图。
图13是表示有关第5实施形式的加密装置的概要的图。
图14是表示有关第5实施形式的加密处理过程的流程图。
图15是说明有关第5实施形式的加密处理例的概念图。
图16是说明有关第5实施形式的解密处理例的概念图。
图17是说明有关第6实施形式的加密处理例的概念图。
图18是说明有关第6实施形式的解密处理例的概念图。
图19是说明有关第6实施形式的加密处理例的概念图。
图20是说明有关第6实施形式的解密处理例的概念图。
图21是说明有关第6实施形式的变换表的概念图。
图22是表示有关第5实施形式的加密处理过程的流程图。
图23是说明有关第7实施形式的变换方式的概念图。
图24是说明有关第7实施形式的其他变换方式的概念图。
图25是表示有关第7实施形式的加密处理过程的流程图。
图26是表示有关第7实施形式的其他加密处理过程的流程图。
具体实施方式
下面,一边参照附图一边详细地说明有关本发明的优选的一实施例。
[第1实施形式]
首先,作为将使用的加密方式以DES为例来考虑。DES的基本动作是,
1.将数据分割成64位长的块
2.用56位长的密钥对各块进行加密
这两个,但根据块和密钥的使用方法的不同有ECB、CB、OFB、和CFB这四种方式。
可称之为DES的基本型的方式是ECB(Electronic CodeBlock)。上面所述的基本动作原样进行。也就是,将数据分割成块以后,用秘密密钥对各块进行加密,并以原来的顺序使这些块结合起来。CBC(Cipher Block Chaining)是取已加密的前一块和尚未加密的当前块的XOR(异或),并用秘密密钥对其进行加密的方式。如“Chaining(连锁)”这样的单词被使用那样,各块的加密被“连锁地”进行。另一方面CFB(Cipher Feedback)是作为前方块的加密结果的一部分(m位)与下一块的m位取XOR的值来进行反馈的方式。从而,在CBC和CFB中,在块内发生了的位差错就会对以后的块的加密产生影响。OFB(Output Feedback)是将某初始值作为第1块来生成密文,并将该密文(的一部分)作为下一密文的输入来使用,同时将其一部分(m位)作为随机数与对应的m位的数据取XOR的方式。通过此构造,块内的位差错在对其他的块进行加密时就不会带来影响。“Output Feedback(输出反馈)”这样的名称,其由来是将在前一块中所生成的密文输出作为生成在下一块中将要使用的密文输出用的参数,来使其进行反馈。在上述各方式中,通过适当地选择m位,就能够实现任意的每个位长的加密。
另外,图3是表示实现包含本本实施形式的以下所有实施形式的计算机(信息处理装置)的基本结构的框图。此外,当实现水印信息处理装置时,并非必须要使用图3所示的所有功能。
在图3中,计算机301是已一般普及的个人计算机,可输入从扫描器等图像输入装置317读取到的图像,并进行编辑和保管。另外,能够使由图像输入装置317所得到的图像从打印机316进行打印。此外,来自用户的各种指示,通过来自鼠标313、键盘314的输入操作来进行。
在计算机301的内部,通过总线307来连接后述的各功能块,可进行各种数据的收发。在图3中,MPU302,能够控制计算机301内部的各功能块的动作,或者执行存储在内部的程序。主存储装置303,是为了在MPU302中所进行的处理,而暂时保存着程序和处理对象的图像数据的装置。硬盘(HDD)304,是能够预先保存被传送给主存储装置303等的程序和图像数据,或者保存处理后的图像数据的装置。
扫描器接口(I/F)315,是能够与读取原稿和胶片并生成图像数据的扫描器317进行连接,输入由扫描器317所得到的图像数据的I/F。打印机接口308,是能够与打印图像数据的打印机316进行连接,把将要打印的图像数据发送给打印机316的I/F。
CD驱动器309,是能够读入存储在作为外部存储介质之一的CD(CD-R/CD-RW)中的数据,或者进行写入的装置。FDD驱动器311,是与CD驱动器309同样能够从FDD读入,并向FDD写入的装置。DVD驱动器310,是与FDD驱动器311同样能够从DVD读入,并向DVD写入的装置。此外,当在CD、FDD、DVD等中存储着图像编辑用的程序或者打印机驱动程序的情况下,就将这些程序安装到HDD304上,并根据需要将其传送给主存储装置303。
接口(I/F)312,是为了接受来自鼠标313和键盘314的输入指示,而与其进行连接的I/F。另外,监视器306,是能够显示水印信息的抽取处理结果和处理过程的显示装置。进而,视频控制器305,是用于将显示数据发送给监视器306的装置。
此外,本发明既可以适用于由多个设备(例如、主计算机、接口设备、阅读器、打印机等)构成的系统,也可以适用于由单个设备组成的装置(例如、复印机、传真装置等)。
图5表示与加密处理有关的流程图。此流程通过根据来自图3所示的计算机、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。另外,作为初始值设j=2。
首先,决定JPEG2000流中将要加密的n个字节(步骤S501)。在这里假定是不存在FF90h-FFFFh的标记代码的压缩数据(图4的主体数据)中连续的n字节。作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。
接着,从n字节的开头取出2字节,对该2字节进行加密(步骤S502)。此加密能够使用上述的DES的CFB和OFB等方式来执行。检查该加密结果是否为FF90h-FFFFh的标记代码(禁止代码)(步骤S503)。如果是禁止代码,则为了再次对该加密结果进行加密处理而返回步骤S502的处理。
接着,在加密结果不是禁止代码的情况下,将位于前方的加密结果的后半1字节和本次的加密结果的前半1字节结合起来作为一个代码(在这里称为前连接代码),检查其是否为禁止代码(步骤S504)。
如果该结果是禁止代码,则为了再次进行加密处理而返回步骤S502的处理。这是因为JPEG2000流的最小单位是1字节,所以即便是在前后进行连接的形式也要防止禁止代码存在。在这里,由于是最初的2字节,没有位于前方的加密结果,故不是禁止代码进入下一步骤S505。接着,检查该第2字节是否为最后的第n字节(步骤S505)。如果是n字节则结束。否则,检查该第2字节是否为第(n-1)字节,即剩余1字节(步骤S506)。
如果是剩余1字节,就设j=1(步骤S507)。在这里,设为既不是第n字节也不是第(n-1)字节取出下一2个字节(步骤S508)。之后,对该2字节反复步骤S502~步骤S508的处理。例如,在n=4的情况下,由于该第2字节轮到作为n的第4字节故在步骤S505中结束。另外,在n=5的情况下,由于在步骤S506中判断为剩余1字节故设j=1,仅取出下一第5字节(步骤S507)。
此时,在步骤S502中仅加密该1字节。此1字节的加密能够使用上述的DES的CFB和OFB等方式来同样地执行。此时,由于加密结果不是2字节代码,故在步骤S503中不被识别为禁止代码。接着,检查前连接代码是否为禁止代码(步骤S504)。如果前连接代码是禁止代码,则为了再次对该加密结果进行加密处理而返回步骤S502的处理。接着,检查该字节是否是最后的第n字节(步骤S505)。在这里,由于n=5故结束处理。
接着,在图6中示出与解密处理有关的流程图。此流程也通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。另外,作为初始值设j=2、B=1。
首先,决定JPEG2000流中将要解密的n个字节(步骤S601)。此解密部分是通过图5所示的加密处理进行了加密的部分,并设该部分在图6的解密处理之前就预先得知。此将被解密的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序和图5的加密程序的数据,也可以经由图3中未表示的网络来进行传送。
接着,检查前方的解密前的2个字节的后半1字节是否为FF(步骤S602)。如果是FF就设B=FF(步骤S603)。在这里,由于是最初的2字节故不是前方的解密前的值,B=0保持不变。接着,对已取出的2字节进行解密(步骤S604)。此解密能够使用上述的DES的CFB和OFB等方式来执行。如果该解密结果是FF90h-FFFFh的标记代码(禁止代码)(步骤S605),则为了再次对该解密结果进行解密处理而返回到步骤S604的处理。
这是因为作为最终的解密结果的压缩数据(图4的主体)不具有禁止代码,在图5的加密处理中,如果加密结果是禁止代码就进行了多重加密,故如果解密结果是禁止代码则作为加密结果,就需要再次进行解密。接着,在解密结果不是禁止代码的情况下,检查使B连接在该解密结果的前1字节之前的代码(在这里称为B连接代码)是否为禁止代码(步骤S606)。在这里,由于B=0,故不是禁止代码进入步骤S607。
接着,检查该第2字节是否为最后的第n字节(步骤S607)。如果是n字节则结束。否则,检查该第2字节是否为第(n-1)字节,即剩余的1字节(步骤S608)。如果是剩余的1字节,就设j=1(步骤S609)。在这里,设为既不是第n字节也不是第(n-1)字节取出下一2个字节(步骤S610),并设B=0(步骤S611)。考虑在第2遍处理的步骤S602中。前遍中的解密前的后半1字节被判断为FF的情况。这一点如果查看最初所保存的已进行加密的JPEG2000流就能够确认。由此,就设B=FF(步骤S603)。
接着,对已取出的2字节进行解密(步骤S604)。如果该解密结果是FF90h-FFFFh的标记代码(禁止代码)(步骤S605),则为了再次对该解密结果进行解密处理而返回到步骤S604的处理。接着,在解密结果不是禁止代码的情况下,检查使B连接在该解密结果的前半1字节之前的代码(在这里称为B连接代码)是否为禁止代码(步骤S606)。
在此B连接代码是禁止代码的情况下,则为了再次对该解密结果进行解密处理而返回到步骤S604的处理。这是因为JPEG2000流的最小单位是1字节,所以即便是在前后进行连接的形式也要防止禁止代码存在。接着,检查该第2字节是否为最后的第n字节(步骤S607)。如果是n字节则结束。否则,检查该第2字节是否为第(n-1)字节,即剩余1字节(步骤S608)
如果是剩余1字节,就设j=1(步骤S609)。例如,在n=4的情况下,由于该第2字节轮到作为n的第4字节故在步骤S607中结束。另外,在n=5的情况下,由于在步骤S608中判断为剩余1字节故设j=1(步骤S609),仅取出下一第5字节(步骤S610)。之后,反复从步骤S602到步骤S606的处理,在步骤S607中判断为n=5并结束。
[第2实施形式]
在第1实施形式中,示出了将要加密和解密的n字节连续的情况。在本实施形式中,示出将要加密和解密的n字节不连续的情况。在这样的情况下,可考虑仅加密/解密图4所示的主体的特定的字节的情况,或者为了削减有关加密/解密的处理量而每隔m字节进行加密/解密的情况等。
图7表示与加密处理有关的流程图。此流程通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,决定JPEG2000流中将要加密的n字节(步骤S701)。在这里假定是不存在FF90h-FFFFh的标记代码的压缩数据(图4的主体数据)中连续的n字节。作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。
接着,从n字节取出1字节,对该1字节进行加密(步骤S702)。此加密能够使用上述的DES的CFB和OFB等方式来执行。检查该加密结果与位于其之前的未被加密的字节的连接代码(前连接代码)是否为FF90h-FFFFh的标记代码(禁止代码)(步骤S703)。
如果是禁止代码,则为了再次对该加密结果进行加密处理而返回步骤S702的处理。接着,检查与位于该加密结果之后的未被加密的字节的连接代码(后连接代码)是否为禁止代码(步骤S704)。如果是禁止代码,则为了再次对该加密结果进行加密处理而返回步骤S702的处理。接着,检查该字节是否为最后的第n字节(步骤S705)。如果是n字节则结束。否则,进入下一1字节(步骤S706)。之后,反复从步骤S702~步骤S706的处理,如果n字节的处理完了就结束。
接着,在图8中示出与解密处理有关的流程图。此流程也通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,决定JPEG2000流中将要解密的n个字节(步骤S801)。此解密部分是通过图7所示的加密处理进行了加密的部分,并设该部分在图8的解密处理之前就预先得知。此将被解密的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序和图7的加密程序的数据,也可以经由图3中未表示的网络来进行传送。
接着,对已取出的1字节进行解密(步骤S802)。此解密能够使用上述的DES的CFB和OFB等方式来执行。检查与位于该解密结果之前的未被加密的字节的连接代码(前连接代码)是否为FF90h-FFFFh的标记代码(禁止代码)(步骤S803)。如果是禁止代码,则为了再次对该解密结果进行解密处理而返回到步骤S802的处理。接着,检查与位于该解密结果之后的未被加密的字节的连接代码(后连接代码)是否为禁止代码(步骤S804)。如果是禁止代码,则为了再次对该解密结果进行解密处理而返回到步骤S802的处理。接着,检查该字节是否为最后的第n字节(步骤S805)。如果是n字节则结束。否则,进入下一1字节(步骤S806)。之后,反复从步骤S802~步骤S806的处理,如果n字节的处理完了就结束。
[第3实施形式]
在图9中示出表示本实施形式中的加密处理过程的流程图。此流程通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,对处于JPEG2000流中成为加密对象的最初的数据位置的第i代码进行加密,得到第i加密代码(步骤S901)。这里,假定加密对象是不存在FF90h-FFFFh的标记代码(以后,称为禁止代码)的压缩数据(图4的主体数据)中连续的数据,并设i=1。另外,这里代码是假定由作为JPEG2000的禁止代码的单位的2字节组成的数据。
作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。另外,加密处理能够使用上述的DES的CFB和OFB等方式来执行。
接着,同样地对第i+1个代码,即第2个代码进行加密(步骤S902)。接着,检查第i加密代码是否为FF90h-FFFFh的禁止代码(步骤S903)。
在第i加密代码不是禁止代码的情况下,将第i代码后面的1字节和第i+1加密数据的起始的1字节结合起来作为一个代码(在这里称为后连接代码1)并检查其是否为禁止代码(步骤S904)。在其不是禁止代码的情况下,检查使第i加密数据后面的1字节和第i+1数据的起始的1字节连接起来的代码(在这里称为后连接代码2)是否为禁止代码(步骤S905)。
在其不是禁止代码的情况下,将第i-1个代码后面的1字节和第i加密数据的起始的1字节连接起来作为一个代码(在这里称为前连接代码1)并检查其是否为禁止代码(步骤S906)。这里,第i-1个代码是指在此时刻位于作为加密对象的第i个代码之前的代码,也可以通过前面的处理来进行加密。但是,仅在第i代码是第1个代码的情况下,由于不存在第i-1代码故能够省略步骤S906的处理。
在以上全都不是禁止代码的情况下,第i加密代码作为第i代码的加密结果而得以确认(步骤S907)。在步骤S903~906中,即使有一个成为禁止代码,也不进行第i代码的加密。即,设第i代码的加密结果输出为第i代码的原样。
接着,检查第i代码是否为加密对象的最后的代码,如果是最终代码就结束(步骤S908)。但是,在第i代码为最终代码的情况下,由于没有其后的第i+1代码,故能够省略步骤S902、904、906的处理。如果第i代码不是最终代码,则在步骤S909中设i=i+1从步骤S902的处理开始继续进行。
这里,检查后连接代码1~2和前连接代码1,是因为JPEG2000流的最小单位是1字节,所以即便是在前后进行连接的形式也要防止禁止代码存在。
接着,在图10中示出表示本实施形式中的解密处理过程的流程图。此流程也通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,对处于JPEG2000流中成为解密对象的最初的数据位置的第i代码进行解密,得到第i解密代码(步骤S1001)。作为其原本的JPEG2000流是预先通过图9的过程进行了加密的数据,也包含没有通过图9的过程进行加密的部分,在这里作为加密数据进行处理(可知没有在图9的过程中进行加密的部分在以后的说明中不进行解密)。
进而,作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。另外,解密处理能够使用上述的DES的CFB和OFB等方式来执行。
接着,同样地对第i+1个加密代码,即第2个加密代码进行解密(步骤S1002)。接着,检查第i解密代码是否为FF90h-FFFFh的禁止代码(步骤S1003)。
在第i解密代码不是禁止代码的情况下,将第i解密代码后面的1字节和第i+1加密数据的起始的1字节结合起来作为一个代码(在这里称为后连接代码4)并检查其是否为禁止代码(步骤S1004)。在其不是禁止代码的情况下,检查使第i加密数据后面的1字节和第i+1解密数据的起始的1字节连接起来的代码(在这里称为后连接代码5)是否为禁止代码(步骤S1005)。
在其不是禁止代码的情况下,检查使第i-1数据后面的1字节和第i解密数据的起始的1字节连接起来的代码(在这里称为前连接代码2)是否为禁止代码(步骤S1006)。这里,第i-1个代码是指在此时刻位于作为解密对象的第i个代码之前的代码,有没有通过前面的处理来进行解密都可以。但是,仅在第i代码是第1个代码的情况下,由于不存在第i-1代码故能够省略步骤S1006的处理。
在以上全都不是禁止代码的情况下,第i解密代码作为第i加密代码的解密结果而得以确认(步骤S1007)。在步骤S1003~1006中,即使有一个成为禁止代码,也不进行第i加密代码的解密。即,设第i加密代码的解密结果输出为第i加密代码的原样。
接着,检查第i加密代码是否为解密对象的最后的代码,如果是最终代码就结束(步骤S1008)。但是,在第i加密代码为最终代码的情况下,由于没有第i+1加密代码,故能够省略步骤S1002、1004、1006的处理。如果第i加密代码不是最终代码,则在步骤S1009中设i=i+1从步骤S1002的处理开始继续进行。
这里,DES中的OFB方式和CFB方式是通过对输入数据将相同的随机数数据进行EXOR来实现加密和解密。因此,加密和解密就成为相同的处理。即,在图9的处理中进行了加密的代码,通过在图10的处理中再次进行加密,就被解密并恢复成原本的代码。这里,步骤S903~906的检查就是进行与步骤S1003~1006的检查相同的检查,没有在图9的处理中进行加密的代码在图10的处理中不进行解密。据此,由于在图10的处理中被解密的代码就只是在图9中进行了加密的代码,所以进行了图9的处理的代码通过图10中的处理就能够恢复成原本的代码。
[第4实施形式]
在图9的处理中假定了进行加密的对象连续的情况,在下面说明对于加密对象不连续的情况的处理。
在图11中示出表示本实施形式中的加密处理过程的流程图。此流程通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,到达处于JPEG2000流中成为加密对象的数据位置的第i代码(步骤S1101)。
对第i代码进行加密,得到第i加密代码(步骤S1102)。这里,假定加密对象是不存在FF90h-FFFFh的标记代码(以后,称为禁止代码)的压缩数据(图4的主体数据)中连续的数据,并考虑每隔s代码(s>1)进行加密的情况。
另外,这里代码是假定由作为JPEG2000的禁止代码的单位的2字节组成的数据。作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。另外,加密处理能够使用上述的DES的CFB和OFB等方式来执行。
接着,检查第i加密代码是否为FF90h-FFFFh的禁止代码(步骤S1103)。在第i加密代码不是禁止代码的情况下,检查使第i加密数据后面的1字节和第i+1数据的起始的1字节结合起来的代码(在这里称为后连接代码2)是否为禁止代码(步骤S1004)。
在其不是禁止代码的情况下,将第i-1个代码后面的1字节和第i加密数据的起始的1字节连接起来作为一个代码(在这里称为前连接代码1)并检查其是否为禁止代码(步骤S1105)。这里,第i-1个代码是指在此时刻位于作为加密对象的第i个代码之前的代码,也可以通过前面的处理来进行加密。另外,仅在第i代码是第1个代码的情况下,由于不存在第i-1代码故能够省略步骤S1105的处理。
在以上全都不是禁止代码的情况下,第i加密代码作为第i代码的加密结果而得以确认(步骤S1106)。在步骤S1103~1105中,即使有一个成为禁止代码,也不进行第i代码的加密。即,设第i代码的加密结果输出为第i代码的原样。
接着,检查第i代码是否为加密对象的最后的代码,如果是最终代码就结束(步骤S1107)。如果不是,就在步骤S1108中设i=i+s从步骤S1102的处理开始继续进行。
这里,与图9不同,仅检查后连接代码2和前连接代码1,这是因为s大于等于2加密是离散地进行,所以第i代码前后的代码不进行加密。
接着,在图12中示出表示对应于图11的加密处理过程的解密处理过程的流程图。此流程也通过根据来自图3所示的信息处理装置、特别是来自鼠标313和键盘314的输入指示,使用MPU302等执行装入到主存储装置303中的程序就能够实现。
首先,到达处于JPEG2000流中成为解密对象的数据位置的第i加密代码(步骤S1201)。接着对第i加密代码进行解密,得到第i解密代码(步骤S1202)。作为其原本的JPEG2000流是预先通过图11的方法进行了加密的数据,也包含没有通过图11的过程进行加密的部分,在这里作为加密数据进行处理(可知没有在图11的过程中进行加密的部分在以后的说明中不进行解密)。
进而,作为其原本的JPEG2000流,既可以预先存储在被连接到硬盘304和CD驱动器309、DVD驱动器310、FDD驱动器311等的各存储介质中,也可以是使用MPU302等执行了装入到主存储装置303中的JPEG2000的压缩程序的数据,也可以经由图3中未表示的网络来进行传送。另外,解密处理能够使用上述的DES的CFB和OFB等方式来执行。
接着,检查第i解密代码是否为FF90h-FFFFh的禁止代码(步骤S1203)。在第i解密代码不是禁止代码的情况下,将第i解密代码后面的1字节和第i+1数据的起始的1字节结合起来作为一个代码(在这里称为后连接代码4)并检查其是否为禁止代码(步骤S1204)。
在其不是禁止代码的情况下,检查使第i-1数据后面的1字节和第i解密数据的起始的1字节连接起来的代码(在这里称为前连接代码2)是否为禁止代码(步骤S1205)。这里,第i-1个代码是指在此时刻位于作为解密对象的第i个代码之前的代码,有没有通过前面的处理来进行解密都可以。但是,仅在第i代码是第1个代码的情况下,由于不存在第i-1代码故能够省略步骤S1205的处理。
在以上全都不是禁止代码的情况下,第i解密代码作为第i加密代码的解密结果而得以确认(步骤S1206)。在步骤S1203~1205中,即使有一个成为禁止代码,也不进行第i加密代码的解密。即,设第i加密代码的解密结果输出为第i加密代码的原样。
接着,检查第i加密代码是否为解密对象的最后的代码,如果是最终代码就结束(步骤S1207)。如果不是,就在步骤S1208中设i=i+s从步骤S1202的处理开始继续进行。
这里,DES中的OFB方式和CFB方式是通过对输入数据将相同的随机数数据进行EXOR来实现加密和解密。因此,加密和解密就成为相同的处理。即,在图11的处理中进行了加密的代码,通过在图12的处理中再次进行加密,就被解密并恢复成原本的代码。这里,步骤S1103~1106的检查就是进行与步骤S1203~1206的检查相同的检查,没有在图11的处理中进行加密的代码在图12的处理中不进行解密。据此,由于在图12的处理中被解密的代码就只是在图11中进行了加密的代码,所以进行了图11的处理的代码通过图12中的处理就能够恢复成原本的代码。
[变形例]
尽管在上述的实施形式中以DES为例进行了说明,但本发明并不限于DES,显然还能够使用AES和MISTY、Camellia等通常的共用密钥加密。在此情况下,本发明的加密/解密方法的强度具有与所用的加密方法相应的安全性。
另外,加密方式也不限于CFB和OFB,只要是能够对任意长度的数据进行加密的方法,就并限定于它们。
另外,尽管在上述的实施形式中设禁止代码为FF90h-FFFFh的标记代码进行了说明,但禁止代码还可以是包含它们的代码或者包含仅FF等它们的一部分的代码。
另外,尽管在上述实施形式中以JPEG2000为对象设禁止代码为FF90h-FFFFh的标记代码进行了说明,但显然在将其他的编码标准作为对象时对由其所规定的禁止代码,能够用同样的原理进行对应。
另外,尽管在上述实施形式中以1个字节或者2个字节为单位进行了说明,但对2个字节以上的情况也可进行应用。但是,在禁止代码为2字节加密/解密单位为2字节以上的情况下,就需要检查在加密/解密结果中是否包含禁止代码。
[第5实施形式]
在本实施形式中,设加密对每个字节进行,通过对加密对象数据施加与模拟随机数的XOR运算来进行加密。
图13中示出进行加密处理的信息处理装置。加密对象数据和密钥数据,被输入到信息处理装置201。加密对象数据被输入到数据输入模块202,密钥数据被输入到模拟随机数生成模块204。在模拟随机数生成模块204中,以所输入的密钥数据为基础生成模拟随机数,并输入到加密处理单元203。在加密处理单元203中,利用模拟随机数对同时所输入的加密对象数据进行加密,加密数据通过数据输出模块205从信息处理装置201被输出。在作为加密处理使用异或(XOR),对加密对象数据施加与模拟随机数的XOR运算的情况下,进行加密处理的装置和进行解密处理的装置,能够利用相同的装置。下面,设在图13中记载的进行加密处理的装置与进行解密处理的装置相同。
图14表示与对每个字节所处理的加密处理有关的流程图。在步骤S301中从加密对象数据逐次分出1字节后转入步骤S302。在步骤S302中由加密处理单元203进行异或运算处理。在步骤S303中,以1字节为单位检查是否为值域外数据,如果是值域外则转入步骤S304,如果是值域内则转入步骤S305。在步骤S304中用在步骤S302中所使用的模拟随机数进行同样的处理。在步骤S305将加密数据输出到HDD304等,并转入步骤S306。在步骤S306中,检查是否处理了全部加密对象数据的信息,在处理未完成的情况下转入步骤S301。当在步骤S306中判断为已完成的情况下结束处理。
这里,在加密对象数据的保存上,具有在步骤S301、步骤S302以及步骤S304中能够使用同一区域的优点。在确保了用于保存输入数据的区域A时,首先在步骤S301中将输入数据拷贝到区域A。在步骤S302中,能够将实施了异或运算后的数据直接加写到区域A。进而,在步骤S304中也能够将实施了异或运算后的数据直接加写到区域A。在C语言程序中,可进行如下那样的记述,并可削减内存量。
char input_data[MAX_SIZE];/*S301*/
for(i=0;i<MAX_SIZE;i++){
  input_data[i]^=stream_data[i];/*S302*/
if(IsStrictData(input_data[i]))          input_data[i]^=stream_data[i];
/*S304*/
}
作为例子,在图15中,将值域假定为从00到FE(16进制),也就是将值域外数据假定为仅FF来进行说明。401表示加密对象数据,402表示在步骤S302中所使用的模拟随机数数据。对每一个字节进行异或运算,如403那样得到加密数据。考虑最初的1字节。由于加密对象数据是00,模拟随机数数据是F0,故异或运算后的数据是F0,因为F0是值域内的数据所以原样将F0设为加密数据。第2字节也同样如此得到88。第3字节异或运算后的数据是FF,在步骤S303中检测出是值域外数据,通过步骤S304,作为FF与FD的异或运算的结果的02就成为加密数据。结果,加密对象数据“00010203”就得到加密数据“F0880203”。
图16表示对于在图15中所说明的加密处理的解密处理。501表示加密数据,502表示在步骤S302中所使用的模拟随机数数据。考虑最初的1字节。由于加密数据是F0,模拟随机数数据是F0,故异或运算后的数据是F0,因为F0是值域内的数据所以原样将F0设为解密数据。第2字节也同样如此得到01。第3字节异或运算后的数据是FF,在步骤S303中检测出是值域外数据,通过步骤S304,作为FF与FD的异或运算的结果的02就成为解密数据。结果,加密数据“F0880203”就得到解密数据“00010203”。
进而,使用图22对具有检查加密对象数据是否为值域外的功能的情况进行说明。在步骤S2202中检查在步骤S2201中所输入的数据是否为值域外数据。如果是值域外数据,则中止以后的处理并结束。如果没有这种装置,则在作为非法数据的值域外数据被输入的情况下,在图14所示的流程图中,就不能正确地进行处理。此外,在输入数据为非法数据的情况下,也可以中止加密,同时通知该旨意。由于步骤S2203以后,是与图14的步骤S302以后同样的处理,故省略说明。
[第6实施形式]
在第5实施形式中,处理了值域外数据为一个的情况,即便在多个的情况下也可进行同样的处理。图17表示关于值域外数据为从F0到FF的情况的处理例。考虑最初的1字节。由于加密对象数据是00,模拟随机数数据是F0,故异或运算后的数据是F0,在步骤S303中检测出F0是值域外数据,通过步骤S304,作为F0与F0的异或运算的结果的00就成为加密数据。同样如此,结果,加密对象数据“00010203”就得到加密数据“00880203”。图18表示对应于图17的解密处理,按照同样的处理,加密数据“00880203”就得到解密数据“00010203”。
这时,如PNG的例子等那样在值域外数据多的情况下,有时加密数据与加密前相比被倒频保密的部分要少。因此,说明如图21等那样具有从值域外数据向值域外数据1对1进行变换的表,并使用其进行加密/解密处理的方式。
图19表示加密处理例。801表示加密对象数据,802表示在步骤S302中所使用的模拟随机数数据,803表示加密数据,与图17中的处理完全相同并追加以下处理。在所得到的加密数据中,使用图21的变换表,进行变换804。第1字节为F0根据图21得到F1。然后,对所得到的F1施加步骤S304的XOR处理,作为加密数据就成为01。同样如此,结果,对加密对象数据“00010203”就得到加密数据“01880B03”。
在图20的解密处理中,同样使用图21的变换表,并追加逆向进行变换的操作904。若关注第1字节,则在与图18同样得到F1后,使用图21的表进行逆变换(904),得到F0,最后实施步骤S304的XOR处理,得到00。按照同样的处理,加密数据“01880B03”就得到解密数据“00010203”。
图21的变换表,既可以设为固定,还可以考虑依照处理对象数据的字节数使其变化,或者如分组加密中的CBC方式那样,基于前面的加密处理的结果使其变化等的变形。
[第7实施形式]
在本实施形式中,阐述进行应付了JPEG2000中的值域限制(值域外数据是从FF90到FFFF)的处理的方式。
由于值域外数据,对任意的2字节都是从FF90到FFFF,故可容易地考虑对每2字节与第5和第6实施形式同样进行加密处理的方法。因此,在本实施形式中,阐述对每1字节进行处理的方式。
上述的“值域外数据是从FF90到FFFF”,如果使其满足以下规则,则如规定那样。值全部是1字节数据,是16进制表达。
规则1:
A)00到8F只能从00变换成8F。
B)90到FE只能从90变换成FE。
C)FF只能变换成FF。
图23表示满足规则1这样的变换方式。1201示出加密对象数据之中在步骤S301所处理的1字节(8位)数据的位。另外,1202表示在步骤S302中进行了XOR处理的1位模拟随机数数据的位。
使用图25来说明上述的变换方式。首先在步骤S1401中输入加密对象数据。在步骤S1402中进行输入数据之中从第2位到第4位的变换处理。此时,利用从1202的第1位到第4位的值,1所在的位数实施不变的变换。接着在步骤S1403中,从第5位到第8位,与1202的第5位到第8位实施XOR处理。接着,在步骤S1404中,检查是否为值域外数据,如果是值域外,则与步骤S1403同样地实施XOR处理。在步骤S1406中,检查是否处理了全部加密对象数据的信息,在处理未完成的情况下转入步骤S1401。当在步骤S1406中判断为已完成的情况下结束处理。
上述的变换方式满足规则1,可变换成JPEG2000所规定的值域内。
进而对其他的方式进行说明。来说明进行适合于以下规则那样的变换的情况。
规则2:
A)00到7F只能从00变换成7F。
B)90到EF只能从90变换成EE。
C)高位4位必须是只能从8变换成8,从F变换成F。
D)低位4位只能从F变换成F。
图24表示满足规则2这样的变换方式。1301示出加密对象数据之中在步骤S301所处理的1字节(8位)数据的位。另外,1302表示在步骤S302中进行了XOR处理的1位模拟随机数数据的位。
使用图26来说明上述的变换方式。首先在步骤S1501中输入加密对象数据。接着在步骤S1502中,从第2位到第4位,与1302的第2位到第4位实施XOR处理。接着在步骤S1503中,从第5位到第8位,与1302的第5位到第8位实施XOR处理。接着,在步骤S1504中,检查是否为值域外数据,如果是值域外,则实施与步骤S1502或者S1503同样的XOR处理。在步骤S1506中,检查是否处理了全部加密对象数据的信息,在处理未完成的情况下转入步骤S1501。当在步骤S1506中判断为已完成的情况下结束处理。
上述的变换方式满足规则2,可变换成JPEG2000所规定的值域内。
此外,在能够实现上述实施形式的功能的范围内,本发明既可以适用于由多个设备(例如、计算机主体、接口设备、显示器等)构成的系统,也可以适用于由单个设备组成的装置。
另外,以为了实现上述实施形式的功能而使各种设备动作为目的,将实现上述实施形式的功能的软件的程序代码提供给,与各种设备进行了连接的装置或者系统内的计算机,由该系统或者装置的计算机(或者CPU、MPU),按照所提供的程序使上述各种设备动作,由此来进行实施的情况,也包含在本申请发明的范围中。另外在此情况下,就成为从存储介质读出的程序代码自身将实现上述实施形式的功能,该程序代码自身,和将该程序代码提供给计算机的装置,例如存储了相关程序代码的存储介质将构成本发明。
作为用于提供相关程序代码的存储介质,能够使用例如,软盘、硬盘、光盘、磁光盘、CD-ROM、CD-R、磁带、非易失性存储卡和ROM等。
另外不言而喻,不仅在通过计算机执行所读出的程序代码,使上述实施形式的功能得以实现的情况下,在根据该程序代码的指示,在计算机上运行的OS(操作系统),或者与其他的应用软件等协调动作使上述实施形式的功能得以实现的情况下,相关的程序代码也包含在本申请发明的范围中。
进而不言而喻,还包含当从存储介质读出的程序代码,被写入到插入计算机的功能扩充板和/或连接到计算机的功能扩充单元上所具备的存储器以后,基于该程序代码的指示,该功能扩充板和/或功能扩充单元上所具备的CPU等进行实际处理的一部分或者全部,通过该处理上述实施形式的功能得以实现的情况。
在将本申请发明应用于上述存储介质的情况下,在该存储介质中保存与先前所说明的流程图对应的程序代码即可。
尽管本发明以具有一定程度的特殊性的其优选实施形式进行了说明,但在不脱离本发明的精神和范围内,能够实现本发明许多明显且广泛的不同实施形式,应该理解为本发明并不限于特定的实施形式,而是由附加的权利要求所规定。

Claims (28)

1.一种加密方法,包括:
加密步骤,对关注代码进行加密;
加密结果判断步骤,判断在通过该加密步骤对关注代码进行加密而得到加密的关注代码后,是否产生预定范围内的值的新代码;
加密结果决定步骤,在该加密结果判断步骤判断为没有产生预定范围内的值的新代码时,将上述加密的关注代码决定为上述关注代码的加密结果;以及
操作步骤,在该加密结果判断步骤判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述加密的关注代码的另一代码作为上述关注代码的加密结果。
2.根据权利要求1所述的加密方法,其特征在于:
上述操作步骤包括再加密步骤,对上述加密的关注代码进行再加密以获得再加密的代码作为上述关注代码的加密结果。
3.根据权利要求1所述的加密方法,其特征在于:
上述加密结果判断步骤包括:
第1加密结果判断步骤,判断上述加密的关注代码是否为预定范围内的值的代码;以及
第2加密结果判断步骤,判断在紧靠上述加密的关注代码之前进行加密后的代码和上述加密的关注代码的连接结果中,是否产生了上述预定范围内的值的代码。
4.根据权利要求1所述的加密方法,其特征在于:
上述加密步骤,每隔预定代码进行加密。
5.根据权利要求1所述的加密方法,其特征在于:
上述操作步骤适合于获得上述关注代码自身作为上述关注代码的加密结果。
6.根据权利要求1所述的加密方法,其特征在于:
上述加密结果判断步骤包括:
第3加密结果判断步骤,判断上述加密的关注代码是否为预定范围内的值的代码;
第4加密结果判断步骤,判断从上述加密的关注代码的后面开始预定个数的符号和从紧靠上述关注代码之后的代码的起始开始预定个数的符号的组合是否为预定范围内的值的代码;以及
第5加密结果判断步骤,判断从紧靠上述关注代码之前的代码的后面开始预定个数的符号和从上述加密关注代码的起始开始预定个数的符号的组合是否为预定范围内的值的代码。
7.根据权利要求6所述的加密方法,其特征在于:
上述加密结果判断步骤还包括:
第6加密结果判断步骤,判断从上述关注代码的后面开始预定个数的符号和将从对紧靠上述关注代码之后的代码进行加密后得到的代码的起始开始预定个数的符号的组合是否为预定范围内的值的代码。
8.根据权利要求1所述的加密方法,其特征在于:
在上述加密步骤中,使用共用密钥加密方式进行加密。
9.根据权利要求1所述的加密方法,其特征在于:
上述预定范围内的值的代码,是包含JPEG2000中的标记代码的一部分的代码。
10.根据权利要求1所述的加密方法,其特征在于:
在上述加密步骤中,求出关注代码和模拟随机数数据的异或来进行加密。
11.根据权利要求10所述的加密方法,其特征在于:
在上述加密步骤中,每8位对除去开头1位的位列进行加密处理。
12.根据权利要求11所述的加密方法,其特征在于:
在上述加密步骤中,对从开头数起第2位到第4位,和第5位到第8位的两个部分的每一部分实施异或运算。
13.根据权利要求1所述的加密方法,其特征在于:上述操作步骤包括:
变换步骤,将该预定范围内的值的新代码变换成该预定范围内的值的变换代码;以及
第2加密步骤,加密上述变换代码以获得加密的变换代码作为上述关注代码的加密结果。
14.一种解密方法,包括:
解密步骤,对被加密的关注代码进行解密,
其特征在于该方法还包括:
解密结果判断步骤,判断在通过该解密步骤对被加密的关注代码进行解密而得到解密的关注代码后,是否产生了预定范围内的值的新代码;
解密结果决定步骤,在该解密结果判断步骤判断为没有产生预定范围内的值的新代码时,将上述解密的关注代码决定为上述被加密的关注代码的解密结果;
操作步骤,在该加密结果判断步骤判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述解密的关注代码的另一代码作为上述被加密的关注代码的解密结果。
15.根据权利要求14所述的解密方法,其特征在于:
上述操作步骤包括:
再解密步骤,对上述解密的关注代码进行再解密以获得再解密的代码作为上述被加密的关注代码的解密结果。
16.根据权利要求14所述的解密方法,其特征在于:
上述加密结果判断步骤包括:
第1解密结果判断步骤,判断上述解密的关注代码是否为预定范围内的值的代码;以及
第2解密结果判断步骤,判断在紧靠上述解密的关注代码之前进行解密后的代码和上述解密关注代码的连接结果中,是否产生上述预定范围内的值的代码。
17.根据权利要求14所述的解密方法,其特征在于:
上述解密步骤,每隔预定代码进行解密。
18.根据权利要求14所述的解密方法,其特征在于:
上述操作步骤适合于获得上述被加密的关注代码自身作为上述被加密的关注代码的解密结果。
19.根据权利要求14所述的解密方法,其特征在于:
上述解密结果判断步骤包括:
第3解密结果判断步骤,判断上述被加密的关注代码是否为预定范围内的值的代码;
第4解密结果判断步骤,判断从上述被加密的关注代码的后面开始预定个数的符号和从紧靠上述关注代码之后的代码的起始开始预定个数的符号的组合是否为上述预定范围内的值的代码;以及
第5解密结果判断步骤,判断从紧靠上述关注代码之前的代码的后面开始预定个数的符号和从上述被加密的关注代码的起始开始预定个数的符号的组合是否为上述预定范围内的值的代码。
20.根据权利要求19所述的解密方法,其特征在于:
上述解密结果判断步骤还包括:
第6解密结果判断步骤,判断从上述关注代码的后面开始预定个数的符号和从对紧靠上述关注代码之后的代码进行加密后得到的代码的起始开始预定个数的符号的组合是否为上述预定范围内的值的代码。
21.根据权利要求14所述的解密方法,其特征在于:
在上述解密步骤中,使用共用密钥加密方式来进行解密。
22.根据权利要求14所述的解密方法,其特征在于:
上述预定范围内的值的代码,是包含JPEG2000中的标记代码的一部分的代码。
23.根据权利要求14所述的解密方法,其特征在于:
在上述解密步骤中,求出关注代码和模拟随机数数据的异或进行解密。
24.根据权利要求23所述的解密方法,其特征在于:
在上述解密步骤中,每8位对除去开头1位的位列进行解密处理。
25.根据权利要求24所述的解密方法,其特征在于:
在上述解密步骤中,对从开头数起第2位到第4位,和第5位到第8位的两个部分的每个部分实施异或运算。
26.根据权利要求14所述的解密方法,其特征在于上述操作步骤包括:
变换步骤,将该预定范围内的值的新代码变换成该预定范围内的值的变换代码;以及
第2解密步骤,对通过上述变换步骤所变换出的变换代码进行解密。
27.一种加密装置,包括:
加密单元,对关注代码进行加密;
加密结果判断单元,判断在通过该加密单元对关注代码进行加密而得到加密的关注代码后,是否产生预定范围内的值的新代码;
加密结果决定单元,在该加密结果判断单元判断为没有产生预定范围内的值的新代码时,将上述加密的关注代码决定为上述关注代码的加密结果;以及
操作单元,在该加密结果判断单元判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述加密的关注代码的另一代码作为上述关注代码的加密结果。
28.一种解密装置,包括:
解密单元,对代码进行解密;
解密结果判断单元,判断在通过该解密单元对加密的关注代码进行解密而得到解密的关注代码后,是否产生预定范围内的值的新代码;
解密结果决定单元,在该解密结果判断单元判断为没有产生预定范围内的值的新代码时,将上述解密的关注代码决定为上述加密的关注代码的解密结果;
操作单元,在该解密结果判断单元判断为产生了预定范围内的值的新代码时,进行操作以获得代替上述解密的关注代码的另一代码作为上述加密的关注代码的解密结果。
CNB200410001836XA 2003-01-14 2004-01-14 在值域上有限制的数据的加密/解密方法及其装置 Expired - Fee Related CN100342683C (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP006372/2003 2003-01-14
JP2003006372A JP4371663B2 (ja) 2003-01-14 2003-01-14 情報処理装置、情報処理方法
JP2003061617A JP2004274339A (ja) 2003-03-07 2003-03-07 データ処理方法
JP061617/2003 2003-03-07
JP184941/2003 2003-06-27
JP2003184941A JP4672971B2 (ja) 2003-06-27 2003-06-27 暗号化・復号方法及び装置

Publications (2)

Publication Number Publication Date
CN1520085A CN1520085A (zh) 2004-08-11
CN100342683C true CN100342683C (zh) 2007-10-10

Family

ID=32600731

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB200410001836XA Expired - Fee Related CN100342683C (zh) 2003-01-14 2004-01-14 在值域上有限制的数据的加密/解密方法及其装置

Country Status (3)

Country Link
US (1) US7512811B2 (zh)
EP (1) EP1439660B1 (zh)
CN (1) CN100342683C (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4632413B2 (ja) * 2004-09-01 2011-02-16 キヤノン株式会社 情報暗号化装置及び情報配信装置並びにそれらの制御方法、並びに、コンピュータプログラム及びコンピュータ可読記憶媒体
US7769168B2 (en) * 2005-03-31 2010-08-03 Microsoft Corporation Locally interative encryption generating compliant ciphertext for general syntax specifications
US7953224B2 (en) * 2005-05-20 2011-05-31 Microsoft Corporation MPEG-4 encryption enabling transcoding without decryption
US8081755B2 (en) * 2005-05-20 2011-12-20 Microsoft Corporation JPEG2000 syntax-compliant encryption with full scalability
US7684566B2 (en) * 2005-05-27 2010-03-23 Microsoft Corporation Encryption scheme for streamed multimedia content protected by rights management system
US8321690B2 (en) 2005-08-11 2012-11-27 Microsoft Corporation Protecting digital media of various content types
JP4993674B2 (ja) * 2005-09-09 2012-08-08 キヤノン株式会社 情報処理装置、検証処理装置及びそれらの制御方法、コンピュータプログラム及び記憶媒体
JP2007081482A (ja) * 2005-09-09 2007-03-29 Canon Inc 端末認証方法及びその装置、プログラム
US7851758B1 (en) 2005-09-29 2010-12-14 Flir Systems, Inc. Portable multi-function inspection systems and methods
US20080024332A1 (en) * 2006-07-27 2008-01-31 George Simonson Method and Apparatus for Protecting Data
JP2008059561A (ja) * 2006-08-04 2008-03-13 Canon Inc 情報処理装置、データ処理装置、および、それらの方法
JP5270894B2 (ja) * 2007-10-01 2013-08-21 キヤノン株式会社 情報処理装置及びその制御方法、情報処理システム、プログラム
CN101996298A (zh) * 2009-08-14 2011-03-30 鸿富锦精密工业(深圳)有限公司 加密方法及与加密方法相对应的解密方法
US9256762B1 (en) * 2011-12-20 2016-02-09 Amazon Technologies, Inc. Securing a remote database
US9066117B2 (en) * 2012-02-08 2015-06-23 Vixs Systems, Inc Container agnostic encryption device and methods for use therewith
WO2014174044A1 (en) * 2013-04-24 2014-10-30 Nec Europe Ltd. Method and system for encrypting data
CN115643001B (zh) * 2022-12-25 2023-03-14 武汉恩为科技有限公司 一种基于位平面的图像加密方法、系统及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1309355A (zh) * 2000-02-14 2001-08-22 株式会社东芝 使用抗干预处理器分发程序的方法和系统
WO2002056576A2 (en) * 2001-01-03 2002-07-18 Electronics For Imaging, Inc. Methods and apparatus for securely transmitting and processing digital image data

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1309355A (zh) * 2000-02-14 2001-08-22 株式会社东芝 使用抗干预处理器分发程序的方法和系统
WO2002056576A2 (en) * 2001-01-03 2002-07-18 Electronics For Imaging, Inc. Methods and apparatus for securely transmitting and processing digital image data

Also Published As

Publication number Publication date
EP1439660B1 (en) 2012-04-11
CN1520085A (zh) 2004-08-11
EP1439660A2 (en) 2004-07-21
EP1439660A3 (en) 2005-02-09
US20040170277A1 (en) 2004-09-02
US7512811B2 (en) 2009-03-31

Similar Documents

Publication Publication Date Title
CN100342683C (zh) 在值域上有限制的数据的加密/解密方法及其装置
CN1172244C (zh) 著作权保护系统、记录设备及解密设备
CN1943238A (zh) 媒体数据编码设备
CN1943240A (zh) 媒体数据代码转换设备
CN1287249C (zh) 对数字内容的访问控制装置和方法及再现装置
US8532287B2 (en) Information processing system and information processing method for use therewith, information processing apparatus and information processing method for use therewith, and program
KR100805604B1 (ko) 데이터 스케일링 방법 및 데이터 처리 방법
JP2007526507A (ja) スケーラブルメディアを記述するデータを生成するための方法
JP2002244929A (ja) ディジタルコピー方法及びディジタルコンテンツの記録装置
CN1868184A (zh) 用于多媒体显示的容器格式
CN1943239A (zh) 对渐次加密的可伸缩数据序列进行伸缩变换的方法
CN1675616A (zh) 具有数据加密和解密的打印数据通信
CN1856037A (zh) 字符信息生成显示装置和方法及数字电影放映方法和系统
CN1357992A (zh) 数据传输系统、装置和方法及数据记录装置和记录介质
CN1457166A (zh) 加密/解密系统和加密/解密方法
CN1663173A (zh) 信息处理方法、信息处理设备、程序和存储媒体
CN100581100C (zh) 防止跳过数字媒体流中特殊内容片段的回放的方法和系统
Teotia et al. Enhancing audio and video steganography technique using hybrid algorithm
JP2010145691A (ja) コンテンツ暗号化装置、コンテンツ復号化装置およびデータ変換方法
CN1894884A (zh) 内容分发服务器、密钥分配方法、内容输出设备及密钥发布中心
KR20080112082A (ko) 데이터 암호화방법, 암호화데이터 재생방법
JP4371663B2 (ja) 情報処理装置、情報処理方法
JP2009124456A (ja) 情報処理装置と情報処理方法と情報処理プログラム及び情報記録媒体
JP4672971B2 (ja) 暗号化・復号方法及び装置
CN1692437A (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20071010

Termination date: 20190114