CN1822538A - 加密方法,加密装置,解密方法和解密装置 - Google Patents

加密方法,加密装置,解密方法和解密装置 Download PDF

Info

Publication number
CN1822538A
CN1822538A CN200610009574.0A CN200610009574A CN1822538A CN 1822538 A CN1822538 A CN 1822538A CN 200610009574 A CN200610009574 A CN 200610009574A CN 1822538 A CN1822538 A CN 1822538A
Authority
CN
China
Prior art keywords
data
key
pattern
unit
sub
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
CN200610009574.0A
Other languages
English (en)
Other versions
CN100592681C (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.)
Toshiba Corp
Panasonic Holdings Corp
Original Assignee
Toshiba Corp
Matsushita Electric Industrial 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 Toshiba Corp, Matsushita Electric Industrial Co Ltd filed Critical Toshiba Corp
Publication of CN1822538A publication Critical patent/CN1822538A/zh
Application granted granted Critical
Publication of CN100592681C publication Critical patent/CN100592681C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Abstract

子密钥数据生成单元101有二个不同的子密钥生成过程。当解密一个第(T*n)个无格式文本块时(其中T表示预定循环,n为正整数),生成16个子密钥数据集。在其它所有情况下,生成2个子密钥数据集。加密单元100使用生成的16个或2个子密钥数据集加密无格式文本。

Description

加密方法,加密装置,解密方法和解密装置
本发明涉及加密技术,它加密一段无格式文本生成一段密码(ciphertext),然后将这段密码解密获得原来的无格式文本。
最近几年,在传送之前将重要信息加密以防第三方获知其中内容,这已经不断变得普遍起来。因而正在寻找更安全的加密方式。
日本公开的专利申请号H11-7239教导了一种数据加密装置,它的目的是实现更安全的加密。
这种数据加密装置将从外部接收的一段无格式文本分成几个无格式文本块,并用密钥数据来加密每个无格式文本块来生成密码块。当加密第一个无格式文本块时,该数据加密装置使用从该装置外部获得的密钥数据。对于第二和随后的无格式文本块,该数据加密装置使用加密前面无格式文本块时产生的密码块更新密钥数据,并使用这个更新的密钥数据来加密当前无格式文本块。
这种数据加密装置用下面方法加密每个无格式文本块。数据加密装置包括一个子密钥生成单元和第一至第八加密单元。子密钥生成单元使用密钥数据来生成第一至第八子密钥。这些第一至第八子密钥的每一个都不相同。第一个加密单元使用第一个子密钥从第一个无格式文本块生成第一个中间块。第二个加密单元使用第二个子密钥从第一个中间块生成第二个中间块。第三个至第七个加密单元同样地使用第三个至第七个子密钥从第二个至第六个中间块生成第三个至第七个中间块。第八个加密单元使用第八个子密钥从第七个中间块生成一个密码块。
使用彼此不同的密钥数据加密每个无格式文本块。这样很难使用同样的密钥和结果密码将已加密的无格式文本组成对。结果是,改进了对付攻击已知无格式文本块的加密如微分密码分析学和线性密码分析学的安全性。
然而,每次加密无格式文本块时,该数据加密装置中的子密钥生成单元得生成许多不同的子密钥。它的缺点是,降低了加密处理的速度。
本发明根据已陈述的问题而构思,目的是提供一种执行加密处理的加密装置,该处理是快捷的并对于防止已知无格式文本攻击有高度的安全性。本发明也提供一种加密方法,一种加密装置,一种解密方法以及一种存储加密程序和/或解密程序的记录媒体,它们中的每一个都有同样的效果。
已表述的目的能通过加密装置使用的加密方法来实现,该加密装置加密由多个块组成的无格式文本数据,该加密方法包括:块获得步骤,它从加密装置外部按次序一次一块获得无格式文本数据;选择步骤,它为在块获得步骤中获得的当前块根据已获得多少块选择或者第一模式或者第二模式;密钥生成步骤,(1)当选择第一模式时,生成由预定数值n个不同子密钥组成的第一组,以及(2)当选择第二模式时,生成由小于n个不同子密钥组成的第二组;以及加密步骤,它通过将当前块顺序隶属于n个转换处理来加密当前块,其中在第一模式,n个转换处理的每一个与第一组中的一个不同的子密钥相关并用该相关的子密钥来执行,在第二模式,n个转换处理与第二组中的子密钥相关并用相关子密钥来分别执行。
在已描述的方法中,在第二模式中生成的子密钥比在第一模式中生成的子密钥少。这抑制了由于在块加密过程中生成子密钥引起的处理速度的降低。
这里,选择步骤可以(i)一旦获得的块数量等于预定值的倍数,给块选择第一模式,和(ii)所有其它情况选择第二模式。
在已描述的方法中,在无格式文本数据中只为某些块选择第一模式。其它所有块选择第二模式。这意味着经常更多地选择第二模式而不是第一模式,并且能够抑制块组成的整个无格式文本数据的加密处理速度的降低。
这里,加密装置可包括一个存储一个初值的初值存储装置,加密步骤可加密当前块来生成一个有预定长度的密码块,并且密钥生成步骤可用在第一模式中的初值生成第一组,以及用该初值和在第二模式中由加密步骤最新生成的密码块生成第二组。
在已描述的方法中,用不同的密钥数据来加密每个无格式文本块。这使得第三方很难用同样的密钥和结果密码来将已加密的无格式文本组成对。这增加了防止已知无格式文本攻击如微分密码分析学和线性密码分析学的安全性。
已描述的目的能用解密装置使用的解密方法来实现,该装置解密密码块单元中的密码数据,解密方法包括:块获得步骤,它从解密装置外部按次序一次一块获得密码数据;选择步骤,它根据已获得多少密码块选择或第一模式或第二模式用于在块获得步骤中获得的当前密码块;密钥生成步骤,(1)当选择第一模式时,生成由预定数值n个不同子密钥组成的第一组,以及(2)当选择第二模式时,生成由小于n个不同子密钥组成的第二组;以及解密步骤,它通过将当前块顺序隶属于n个转换处理来解密当前密码块,其中在第一模式,n个转换处理的每一个在第一组中与一个不同的子密钥相关并用相关的子密钥来执行,在第二模式,n个转换处理与第二组中的子密钥相关并用相关子密钥来分别执行。
在上面描述的方法中,在第二模式中生成的子密钥比在第一模式中生成的子密钥少。这抑制了由于在密码块解密过程中生成子密钥引起的处理速度的降低。
已描述的目的能用解密装置使用的解密方法来实现,该装置解密密码块单元中的密码数据,该解密方法包括:块获得步骤,它从加密装置外部按次序一次一个密码块获得密码数据;选择步骤,它根据已获得多少密码块为在块获得步骤中获得的当前密码块选择或第一模式或第二模式;密钥生成步骤,(1)当选择第一模式时,用来生成由预定数值n个不同子密钥组成的第一组,以及(2)当选择第二模式时,用来生成由小于n个不同子密钥组成的第二组;以及解密步骤,它通过将当前密码块顺序隶属于n个转换处理来解密当前密码块,其中在第一模式,n个转换处理的每一个与在第一组中的一个不同的子密钥相关并用相关的子密钥来执行,在第二模式,n个转换处理与第二组中的子密钥相关并用相关子密钥来分别执行。
在已描述的方法中,只为无格式文本数据的某些块选择第一模式。为其它所有块选择第二模式。这意味着经常更多地选择第二模式而不是第一模式,并且能够抑制块组成的整个密码数据的解密处理速度的降低。
这里,解密装置可包括一个存储一个初值的初值存储装置,密钥生成步骤可用在第一模式中的初值生成第一组,以及用该初值和在第二模式中当前密码块之前刚刚获得的密码块生成第二组。
在已描述的方法中,用不同的密钥数据来解密每个密码块。这使得第三方很难用同样的密钥加密的无格式文本和结果密码组成对。这增加了防止已知无格式文本攻击如微分密码分析学和线性密码分析学的安全性。
如上所述,本发明实现了已描述的传统技术的同样级别的安全性,同时改进了加密处理的速度。本发明适合诸如实时图象和其它信息的秘密通信的处理。随着当前对多媒体技术改进的需求,这使得本发明的效果尤为重要。
本发明的这些和其它目的,优点和功能从下面描述中并结合说明本发明的特定实施例的附图,将变得显而易见。
在附图中:
图1是一个方框图,它示出了本发明的优先实施例的加密通信系统5的结构;
图2是一个方框图,它示出了传送装置1中的数据加密单元10的结构;
图3是一个方框图,它示出了加密单元100和子密钥数据生成单元101的结构;
图4是一个方框图,它示出了数据随机化单元301的结构;
图5A和图5B为一个概念图,它示出了由子密钥数据生成单元101生成的多个子密钥数据集中的哪一个由加密单元100的第一至第十六加密单元中的每一个使用,图5A示出了子密钥数据生成类型为A的情况,图5B示出了子密钥数据生成类型为B的情况;
图6示出了计数值,输入密钥数据和子密钥数据生成类型之间的通信;
图7是一个方框图,它示出了在接收装置2中的数据解密单元20的结构;
图8是一个示出传送装置1的整体运行的流程图;
图9是一个示出传送装置1的数据加密单元10的运行的流程图;
图10是一个示出在数据加密单元10中的计数器单元105的运行的流程图;
图11是一个示出在数据加密单元10中的寄存器单元104的运行的流程图;
图12是一个示出在数据加密单元10中的子密钥数据生成单元101的运行的前一部分的流程图;
图13是一个示出在数据加密单元10中的子密钥数据生成单元101的运行的后一部分的流程图;
图14是一个示出在子密钥数据生成单元101的数据随机化单元301的运行的流程图;
下面描述一个根据本发明的优先实施例的加密的通信系统5。
1.加密通信系统5的结构
如图1所示,加密的通信系统5由传送装置1,接收装置2和传输路径3组成。传输路径3连接传送装置1和接收装置2。
传送装置1和接收装置2都预先提供有一样的加密密钥数据EK。传送装置1使用加密密钥数据EK加密无格式文本块数据P来生成密码数据C,然后通过传输路径3传送已生成的密码数据C至接收装置2。接收装置2接收该密码数据C,使用加密密钥数据EK解密该密码数据C,并这样生成已解密的文本数据D。这里,由接收装置2执行的解密是由传送装置1执行的加密的逆反,这样解密生成的已解密的文本数据D与无格式文本数据P是一样的。
1.1传送装置1和接收装置2的结构
(1)传送装置1的结构
如图1所示,传送装置1由无格式文本数据存储单元12,加密密钥数据存储单元13,数据加密单元10和传送单元11组成。
无格式文本数据存储单元12预先存储有无格式文本数据P。该无格式文本数据P是数字数据,它包括至少64位,并能数字编码例如音频或视频信息。
加密密钥数据存储单元13预先存储有64位加密密钥数据EK。加密密钥数据EK事先决定用于传送装置1和接收装置2两者。
数据加密单元10读取来自无格式文本数据存储单元12的无格式文本数据P和来自加密密钥数据存储单元13的加密密钥数据EK。然后数据加密单元10使用加密密钥数据EK加密无格式文本数据P来生成密码数据C。数据加密单元10输出结果密码数据C至传送单元11。在本说明书中稍后将详细描述该数据加密单元10。
传送单元11接收密码数据C,在密码数据C上执行并-串操作,然后调制和放大该已转换数据来生成信号。传送单元11通过传输路径3传送这些信号至接收装置2。
(2)接收装置2的结构
如图1所示,接收装置2由解密的文本数据存储单元22,加密密钥数据存储单元23,数据解密单元20和接收单元21组成。
接收单元21接收由传送装置1的传送单元11通过传输路径3传送的信号,解调这些信号,并执行串-并转换来获得密码数据C。接收单元21输出该密码数据C至数据解密单元20。
加密密钥数据存储单元23预先存储64位加密密钥数据EK。该加密密钥数据EK与传送装置1中的加密密钥数据存储单元13存储的EK一样。
数据解密单元29接收密码数据C并从加密密钥数据存储单元23读取加密密钥数据EK。数据解密单元20使用加密密钥数据EK解密密码数据C来生成已解密文本数据D。数据解密单元20将已解密文本数据D写入已解密文本数据存储单元22。由数据解密单元20执行的解密是数据加密单元10执行的加密的逆反。这意味着已解密文本数据D与原来的无格式文本数据P一致。该数据解密单元20稍后将在本说明书中作详细描述。
已解密文本数据存储单元22存储已解密文本数据D。
1.2数据加密单元10的结构
如图2所示,数据加密单元10由加密单元100,子密钥数据生成单元101,逻辑XOR单元102,数据转换单元103,寄存器单元104,计数器单元105,子密钥数据生成控制单元106,寄存器控制单元107,,块分解单元108,块合并单元109,密钥获得单元110和密钥存储单元111组成。
(1)块分解单元108
块分解单元108从无格式文本数据存储单元12读取无格式文本数据P并从无格式文本数据P的起点开始分解在块单元中的无格式文本数据P,来生成多个无格式文本块Pt(其中t=0,1,2….)。每个无格式文本块Pt为64位长。块分解单元108顺序地输出这些无格式文本块Pt至加密单元100。输出完所有这些无格式文本块PT后,块分解单元108输出表示输出已完成的信息至块合并单元109。
(2)密钥获得单元110
密钥获得单元110从加密密钥数据存储单元13读取加密密钥数据EK并将该读取的加密密钥数据EK写入密钥存储单元111
(3)密钥存储单元111
密钥存储单元111存储加密密钥数据EK。
(4)加密单元100
如图3所示,加密单元100包括第一加密单元100a,第二加密单元100b,….,第十五加密单元100c和第十六加密单元100d。
第一加密单元100a获得来自块分解单元108的无格式文本块PT和子密钥数据生成单元101的第一子密钥数据SK0。第一子密钥数据SK0为32位长。第一加密单元100a使用第一子密钥数据SK0加密已获得的无格式文本块PT来生成第一中间块。第一加密单元100a输出该第一中间块至第二加密单元100b。
由第一加密单元100a执行的加密为FEAL(快速数据译成密码算法)加密方法的数据加密部分,它为一个众所周知的块加密技术。
第二至第十五加密单元分别从在第一至第十四加密单元的前面的一个加密单元接收一个中间块,并从子密钥数据生成单元101接收第二至第十五子密钥数据SK1至SK14。第二至第十五子密钥数据SK1至SK14中的每个为32位长。第二至第十五加密单元分别使用第二至第十五子密钥数据SK1至SK14加密已接收的中间块来生成第二至第十五中间块,它们分别输出至第三至第十六加密单元。
第十六加密单元100d从第十五加密单元100c获得第十五中间块,并从子密钥数据生成单元101获得第十六子密钥数据SK15。第十六子密钥数据SK15也为32位长。第十六加密单元100d使用第十六子密钥数据SK15加密已获得的中间块来生成密码文本块Ct
方程7
Ct=Enc(Pt,SK0t)
这里,表达式Enc(Pt,SK0t)表示,无格式文本块Pt使用已作为第t个加密处理的一部分生成的子密钥数据组SK0t(SK0至SK15)加密。
第十六加密单元100d输出已生成的密码块Ct至块合并单元109。
当已生成的密码块Ct已输出至块合并单元109,加密单元100生成表示一个无格式文本块已完成的信息至计数器单元105。
(5)寄存器单元104
寄存器单元104包括存储64位初值IV和64位已存储数据R0t的区域。已存储数据R0t的值预先设置为初值IV。
寄存器单元104从第十六加密单元100d接收密码块Ct
寄存器单元104从寄存器控制单元107接收控制信号。当已接收的控制信号为“0”并且密码块Ct是从第十六加密单元100d接收时,寄存器单元104将密码块Ct作为已存储数据R0t存储。当已接收的控制信号为“1”,寄存器单元104读取初值IV并将初值IV作为已存储数据R0t存储。
另一方面,假设T代表预定的循环并且n为0,1,….。当第(T*n)个无格式文本块Pt(其中t=T*n)被加密,寄存器单元104使用预先设置的初值IV复位已存储数据R0t。数值“T”预先设定,在本说明书中稍后说明。当加密非为第(T*n)个无格式文本块的无格式文本块(即无格式文本块Pt中,t<>T*n)时,已接收的密码块Ct作为已存储数据R0t存储。
(6)数据转换单元103
数据转换单元103从寄存器单元104读取64位已存储数据R0t。当加密单元100加密第t个无格式文本块Pt,数据转换单元103读取下面示出的64位数据R0t
方程1
当t<>T*k(其中k=0,1,….)
R0t=Ct-1
方程2
当t=T*k(其中k=0,1,….)
R0t=IV
数据转换单元103将读取的已存储数据R0t附属于预定数据转换f来生成S0t
方程3
S0t=f(R0t)
在本说明书中,表达式f(X)表示附属输入数据X至预定数据转换f的结果。该预定数据转换f为一个13位的64位数据的MSB(最重要位)的循环移位。
然后,数据转换单元103输出转换生成的64位数据S0t至逻辑XOR单元102。
(7)逻辑XOR单元102
逻辑XOR单元102从数据转换单元接收64位S0t并从密钥存储单元111读取加密密钥数据EK。
逻辑XOR单元102为在64位S0t的每一位和加密密钥数据EK中的对应位进行一次XOR操作,并生成64位输入密钥数据IK0t
方程4
IK0t=S0t(+)EK
注意在上面方程中,符号“(+)”用来进行一次XOR操作。
逻辑XOR单元102输出已生成的输入密钥数据IK0t至子密钥数据生成单元101。
(8)子密钥数据生成单元101
子密钥数据生成单元101从子密钥数据生成控制单元106接收一个控制信号并从逻辑XOR单元102接收输入密钥数据IK0t。这个控制信号显示是否正在加密一个第(T*n)个(其中n=0,1,….)无格式文本块。这样的加密在每个预定循环T中只发生一次。在本例中,预定循环T设置为210加密操作。
子密钥数据生成单元101能有二种子密钥生成处理(类型A和类型B)。类型A子密钥生成过程有一个重处理负载,同时类型B有一个轻处理负载。依照已接收的控制信号,子密钥数据生成单元101选择二种类型的子密钥生成处理中的一个,并使用输入密钥数据IK0t执行已选择的处理来生成16个32位子密钥数据集(如,第一至第十六个第一子密钥数据SK0至SK15)。
方程5
当t<>T*k(k=0,1,…)
SK0t=KGB(IK0t)
这里,表达式KGB(X)指从输入密钥数据IK0t由类型B子密钥数据生成处理生成的16个子密钥数据集。这16个子密钥数据集由二种类型的子密钥数据组成。
方程6
当t=T*k(k=0,1,…)
SK0t=KGA(IK0t)
表达式KGA(X)代表由类型A子密钥生成过程生成的16个子密钥数据集。这16个子密钥数据集的每一个都彼此不同。
子密钥数据生成单元101输出16个已生成的子密钥数据集SK0至SK15给加密单元100的第一至第十六加密单元。
图6显示计数器单元105的计数值,由子密钥数据生成单元101接收的输入密钥数据,以及由子密钥数据生成单元101使用子密钥生成处理类型(A或B)之间的关系。当计数值为“0”时,使用加密密钥数据EK和初值IV生成输入密钥数据,并使用类型A子密钥生成过程。相反地,当计数值为“1”至“210-1”,使用加密密钥数据EK和由前面密钥数据处理生成的密码块生成输入密钥数据,并使用类型B子密钥生成过程。
如图3所示,子密钥数据生成单元101由数据随机化单元301,随机数据存储单元302以及阶段数控制单元组成。
(a)数据随机化单元301
数据随机化单元301从阶段数控制单元303接收64位数据,对该数据执行一个预定的数据随机化处理,并这样生成32位子密钥数据SK和64位随机数据。数据随机化单元301输出该32位子密钥数据SK至随机数据存储单元302,已生成的64位随机数据至阶段数控制单元303。
如图4所示,数据随机化单元301由分解单元301a,逻辑XOR单元,数据混杂单元301c,和合并单元301d组成。
分解单元301a
分解单元301a从阶段数控制单元303接收64位数据,并将该数据分解成上32位(从此称为“数据A1”)和下32位(从此称为“数据A0”)。该分解单元301a输出该数据A1至逻辑XOR单元301b和数据混杂单元301c,数据A0至合并单元301d和数据混杂单元301c。
数据混杂单元301c
数据混杂单元301c从分解单元301a接收数据A0和数据A1,为数据A0和数据A1中的每一位进行异或操作,并这样获得32位数据。数据混杂单元301c将该数据分解成四个8位数据集,为每个8位数据集执行预定置换并这样输出四个8位数据集。使用存储256个已从“0”至“255”赋与地址值的8位值的表执行这里所指的预定置换。
然后,数据混杂单元301c通过合并生成的四个8位数据集生成32位数据。该数据混杂单元301c移位该32位值中的特定位来生成新的32位数据C1,它输出给逻辑XOR单元301b。
逻辑XOR单元301b
逻辑XOR单元301b接收来自分解单元301a的数据A1和来自数据混杂单元301c的32位C1。逻辑XOR单元301b为在数据A1和数据C1中的每一位进行一个逻辑XOR运算来生成32位子密钥数据B0。然后逻辑XOR单元301b输出该子密钥数据B0至随机数据存储单元302和合并单元301d。
合并单元301d
合并单元301d接收来自分解单元301a的数据A0和来自逻辑XOR单元301b的子密钥数据B0。合并单元301d合并数据A0和子密钥数据B0来生成64位随机数据,它将数据A0作为上32位并将子密钥数据B0作为下32位。合并单元301d输出该64位随机数据至阶段数控制单元303。
阶段数控制单元303
阶段数控制单元303象下面描述的一样操作,使数据随机单元301重复数据随机化处理。
阶段数控制单元303有一个区域,用于(1)存储处理重复次数,表示数据随机化单元301已经执行随机化处理的总次数,(2)存储重复的最大次数。
阶段数控制单元303接收来自逻辑XOR单元102的输入子密钥数据或来自数据随机化单元301的64位随机数据。阶段数控制单元303也接收来自子密钥数据生成控制单元106的一个控制信号。当接收的控制信号为“1”时,最大循环次数设为“16”。当接收的控制信号为“0”时,最大循环次数设为“2”。一旦接收一个控制信号,阶段数控制单元303复位处理循环次数至“0”。
阶段数控制单元303接收输入密钥数据或随机密钥数据,给处理循环次数加1并将处理循环次数与最大循环次数比较。如果处理循环次数与最大循环次数相等,阶段数控制单元303输出接收到的输入密钥数据或随机密钥数据至数据随机化单元301来完成循环处理。如果处理循环次数小于最大循环次数,阶段数控制单元303输出接收到的输入密钥数据或随机密钥数据至数据随机化单元301,执行另一循环的循环处理。
注意到重复处理的第一循环,阶段数控制单元303输出接收到的输入密钥数据至数据随机化单元301。在第二和随后的循环,阶段数控制单元303输出接收到的随机密钥数据至数据随机化单元301。
如上所述,阶段数控制单元303控制数据随机化单元301,使它执行随机化处理2次或16次。当正在加密第(T*n)个(其中n=0,1,….)无格式文本块时,重复处理让数据随机化单元301输出16个子密钥数据集至随机数据存储单元302。然而,在所有其它情况,数据随机化单元301输出2个子密钥数据集至随机数据存储单元302。
随机数据存储单元302
随机数据存储单元302从子密钥数据生成控制单元106接收控制信号。随机数据存储单元302也从数据随机化单元301顺序接收16个子密钥数据集或2个子密钥数据集。这16个子密钥数据集分别编号为SK0至SK15,同时2个子密钥数据集分别编号为SK0和SK1。接收完这些数据后,随机数据存储单元302要么存储16个子密钥数据集SK0至SK1,要么存储2个子密钥数据集SK0和SK1
如图5A所示,当接收到的控制信号为“1”时,随机数据存储单元302读取存储的子密钥数据集SK0至SK15并输出这些子密钥数据集SK0至SK15至第一至第十六加密单元。
如图5B所示,当接收到的控制信号为“0”时,随机数据存储单元302读取存储的子密钥数据集SK0和SK1,然后设置SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0和SK15=SK13=SK11=SK7=SK5=SK3=SK1。这样做完之后,随机数据存储单元302输出这些子密钥数据集SK0至SK15至第一至第十六加密单元。
子密钥数据集SK0至SK15分别作为第一至第十六子密钥数据集使用。
(9)计数器单元105
计数器单元105有一用于存储计数值的内部区域。该计数值用初值“0”来初始化。
计数器单元105从加密单元100接收完成信息。该信息表示一个无格式文本块的加密已完成。一旦接收到这个完成信息,计数器单元105给计数值加“1”。当给为“210-1”的计数值加“1”时,计数器单元105复位计数值为“0”
(10)子密钥数据生成控制单元106
子密钥数据生成控制单元106从计数器单元105读取计数值。当计数值为“0”时,子密钥数据生成控制单元106输出带有值“1”的控制信号至子密钥数据生成单元101。当计数值不为“0”时,子密钥数据生成控制单元106输出带有值“0”的控制信号。
(11)寄存器控制单元107
寄存器控制单元107也从计数器单元105读取计数值。当计数值为“0”时,寄存器控制单元107输出带有值“1”的控制信号至寄存器单元104。当计数值不为“0”时,寄存器控制单元107输出带有值“0”的控制信号至寄存器单元104。
(12)块合并单元109
块合并单元109从加密单元100顺序接收密码块Ct,并从块分解单元108接收表示输出完成的信息。
一旦接收到表示输出完成的信息,块合并单元109以接收到它们的顺序合并所有这些接收到的密码块Ct(t=0,1,2,….)来生成密码数据C。块合并单元109输出密码数据C至传送单元11。
1.3数据解密单元20的结构
如图7所示,数据解密单元20包括解密单元200,子密钥数据生成单元201,逻辑XOR单元202,数据转换单元203,寄存器单元204,计数器单元205,子密钥数据生成控制单元206,寄存器控制单元207,块分解单元208,块合并单元209,密钥获得单元210,和密钥存储单元211。
数据解密单元20的子密钥数据生成单元201,逻辑XOR单元202,数据转换单元203,寄存器单元204,计数器单元205,子密钥数据生成控制单元206,寄存器控制单元207,密钥获得单元210,和密钥存储单元211同数据加密单元10的子密钥数据生成单元101,逻辑XOR单元102,数据转换单元103,寄存器单元104,计数器单元105,子密钥数据生成控制单元106,寄存器控制单元107,密钥获得单元110,和密钥存储单元111有同样的结构。相应地,下面的解释将集中于数据解密单元20和数据加密单元10的区别。
(1)块分解单元208
块分解单元208从接收单元21接收密码数据C,并分解该接收到的密码数据C为几个密码块Ct(t=0,1,2,….)。每个密码块Ct为64位长。块分解单元208顺序地输出生成的每个密码块Ct至解密单元200。
块分解单元208也顺序地输出前面的密码块Ct-1至寄存器单元204。当输出第一个密码块C0至解密单元200时,块分解单元208并不输出任何数据至寄存器单元204。
一旦完成输出所有的密码块,块分解单元208输出表示完成输出的信息至块合并单元209。
(2)解密单元200
解密单元200使用FEAL加密方法中的数据解密部分。
解密单元200包括第一至第十六解密单元(未示出)。
第一解密单元接收来自块分解单元208的密码块Ct和来自该子密钥数据生成单元201的第一子密钥数据SK0。第一子密钥数据SK0为32位长。第一解密单元使用第一子密钥数据SK0解密接收到的密码块Ct并生成第一中间块。第一解密单元输出第一中间块至第二解密单元。
第二至第十六解密单元分别从第一至第十四解密单元中的前一解密单元接收第一至第十四中间块,以及相应地从子密钥数据生成单元201接收第二至第十五子密钥数据SK1至SK14。每个第二至第十五子密钥数据SK1至SK14为32位长。第二至第十六解密单元使用第二至第十五子密钥数据SK1至SK14分别解密第一至第十四中间块来生成第二至第十五中间块,它们输出给第三至第十六解密单元。
第十六解密单元从第十五解密单元接收第十五中间块,并从子密钥数据生成第一201接收第十六子密钥数据SK15。第十六子密钥数据SK15为32位长。第十六解密单元使用第十六子密钥数据SK15解密第十五中间块来生成无格式文本块Dt
方程14
Dt=Dec(Ct,SK1t)
这里,Dec(Ct,SK1t)表示使用在第t个解密处理过程中生成的子密钥数据集SK1t(SK0至SK15)密码Ct的解密。
第十六解密单元输出生成的无格式文本块Dt至块合并单元209。
输出生成的无格式文本块Dt至块合并单元209之后,加密单元100生成表示一个密码块的解密已经完成的完成信息至计数器单元205。
(3)计数器单元205
计数器单元205接收表示解密一个密码块被解密单元200已完成的完成信息。一旦接收到该信息,计数器单元205给计数值加“1”。
(4)寄存器单元204
寄存器单元204有存储64位初值IV和64位存储数据的区域。在初始状态,64位存储数据设置为初始值IV。
寄存器单元204从块分解单元208接收前面的密码块Ct-1
寄存器单元204从寄存器控制单元207接收控制信号。当接收到的控制信号为“0”时,并且寄存器单元204从块分解单元208接收到一个密码块Ct-1,在解密单元200在当前密码块的数据解密处理的结束部输出密码块Dt-1,寄存器单元204将接收到的密码块Ct-1作为存储数据存储。当接收到的控制信号为“1”时,寄存器单元204读取初值IV并将它作为存储数据存储。
另一方面,当解密第(T*n)个密码块(其中n为0,1,2….),寄存器单元204使用先前设置的初始值IV来初始化存储值。在其它所有情况下,寄存器单元204存储先前的密码块Ct-1。如前所述,值“T”是表示预定循环的值。
(5)块合并单元209
块合并单元209从解密单元200顺序地接收密码块Dt并从块分解单元208接收表示输出完成的信息。
一旦接收到表示输出完成的信息,块合并单元209以它接收它们的顺序合并接收到的密码块Dt(其中t=0,1,2,….)来生成无格式文本数据D。块合并单元209输出该无格式文本数据D至解密数据存储单元22。
(6)数据转换单元203
数据转换单元203从寄存器单元204读取64位存储数据。当解密第t个密码块Ct,加密单元100读取如下所示的64位存储数据R1t
方程8
当t<>T*k(k=0,1,…)
R1t=Ct-1
方程9
当t=T*k(k=0,1,…)
R1t=IV
下一步数据转换单元203将它读取的存储数据R1t隶属于预定数据转换f,生成S1t
方程10
S1t=f(R1t)
这里,f(X)表示当数据转换单元203将输入数据X隶属于数据转换f时生成的值。
(7)逻辑XOR单元202
逻辑XOR单元202从逻辑XOR单元202接收64位数据S1t并生成输入密钥数据IK1t
方程11
IK1t=S1t(+)EK
(8)子密钥数据生成单元201
子密钥数据生成单元201生成16个32位子密钥数据集(第一至第十六子密钥数据SK0至SK15)。
方程12
当t<>T*k(k=0,1,…)
SK1t=KGB(IK1t)
这里,KGB(X)表示16个子密钥数据集,它们由类型B子密钥生成过程使用输入密钥数据X生成。这些16个子密钥数据集由二种类型的子密钥数据组成。
方程13
当t=T*k(k=0,1,…)
SK1t=KGA(IK1t)
这里,KGA(X)表示16个子密钥数据集,它们由类型A子密钥生成过程使用输入密钥数据X生成。这些16个子密钥数据集彼此不同。
2.加密的通信系统5的操作
下面描述加密的通信系统5的操作。
2.1传送装置1的操作
下面描述传送装置1的操作
(1)传送装置1的整体操作
下面参照图8所示的流程图描述传送装置1的整体操作。
计数器单元105设置计数值为“0”,寄存器单元104设置存储值为初始值IV,并且块分解单元108从无格式文本数据存储单元12读取无格式文本数据(步骤S101)。密钥获得单元110从加密密钥数据存储单元13读取加密密钥数据并将读取的加密密钥数据写入密钥存储单元111(步骤S102)。块分解单元108分解读取的无格式文本数据为几个无格式文本块(步骤S103)。
块分解单元108输出无格式文本块至加密单元100。加密单元100从块分解单元108接收一个无格式文本块,加密该无格式文本块来生成密码块,并输出该生成的密码块至块合并单元109(步骤S104)。当所有的无格式文本块没有被加密(步骤S105:否),处理返回S104。
一旦完成输出所有的无格式文本块(S105:是),块分解单元108输出表示完成输出的信息至块合并单元109。块合并单元109依次合并它接收的所有的密码块,生成密码数据,它将该密码数据输出至传送单元11(步骤S106)。
传送单元11接收密码数据并将接收到的密码数据隶属于并-串转换,调制,并放大来生成信号。传送单元11通过传送路径3传送这些信号至接收装置2(步骤S107)。
(2)数据加密单元10的操作
下面参照图9中的流程图描述数据加密单元10的操作。
数据转换单元103首先从寄存器单元104读取64位存储数据(步骤S121),将读取的数据隶属于预定数据转换,并输出结果64位数据至逻辑XOR单元102(步骤S122)。
逻辑XOR单元102从数据转换单元103接收64位数据,从密钥存储单元111读取加密密钥数据,对在接收到的64位数据和读取的加密密钥数据中的相应位进行逻辑XOR操作来生成64位输入密钥数据。逻辑XOR单元102输出生成的输入密钥数据至子密钥数据生成单元101(步骤S123)。
子密钥数据生成单元101使用输入键生成几个子密钥数据集并输出每个生成的子密钥数据集至加密单元100中的第一至第十六加密单元中的不同的加密单元(步骤S124)。
加密单元100从块分解单元108接收无格式文本块(步骤S125),使用几个子密钥数据集密钥数据该无格式文本块,并这样生成密码块(步骤S126)。计数器单元105给计数值加“1”(步骤S127)。加密单元100输出密码块至块合并单元109(步骤S128)。
子密钥数据生成控制单元106从计数器单元105读取计数值。当计数值为“0”时(步骤S141:是),子密钥数据生成控制单元106生成带有值“1”的控制信号至子密钥数据生成单元101(步骤S143)。相反,当计数值不为“0”时(步骤S141:否),子密钥数据生成控制单元106生成带有值“0”的控制信号至子密钥数据生成单元101(步骤S142)。
寄存器控制单元107也读取计数器单元105的计数值。当计数值为“0”时(步骤S151:是),寄存器控制单元107生成带有值“1”的控制信号至寄存器单元104(步骤S153)。相反,当计数值不为“0”时(步骤S151:否),寄存器控制单元107生成带有值“0”的控制信号至寄存器单元104(步骤S152)。
寄存器单元104依照从寄存器控制单元107接收到的控制信号存储一个值(步骤S161)。
(3)计数器单元105的操作
下面参照图10中的流程图描述计数器单元105的操作。
一旦从加密单元100接收到表示加密一个无格式文本块已经完成的完成信号,计数器单元105给计数值加“1”(步骤S181)。当计数值达到210(步骤S182:是),计数器单元105复位计数值至“0”(步骤S183)。
(4)寄存器单元104的操作
下面参照图11中的流程图描述寄存器单元104的操作。
寄存器单元104的操作从寄存器控制单元107接收一个控制信号。当接收到的控制信号为“0”时(步骤S201:“=0”)并且密码块是从第十六加密单元100d接收,寄存器单元104将该密码块作为存储数据存储(步骤S202)。当接收到的控制信号为“1”时(步骤S201:“=1”),寄存器单元104读取初值IV并将该初值在作为存储数据存储(步骤S203)。
(5)子密钥数据生成单元101的操作
下面参照图12和图13中的流程图描述子密钥数据生成单元101的操作。
子密钥数据生成单元101的阶段数控制单元303从子密钥数据生成控制单元106接收一个控制信号。当接收到的控制信号为“1”时(步骤S221:“=1”),阶段数控制单元303设置最大值为16(步骤S223),同时当接收到的控制信号为“0”时(步骤S221:“=0”),阶段数控制单元303设置最大值为2(步骤S222)。一旦接收到这个控制信号,阶段数控制单元303也设置循环次数”i”为“0”(步骤S224)。
阶段数控制单元303或接收输入密钥数据或接收随机数据。在第一次循环(步骤S225:是),阶段数控制单元303输出输入密钥数据至数据随机化单元301(步骤S227)。在第二次或随后的循环(步骤S225:否),阶段数控制单元303输出随机数据至数据随机化单元301(步骤S226)。
数据随机化单元301执行数据随机化过程并这样生成子密钥数据和随机数据(步骤S228)。随机数据存储单元302存储子密钥数据(步骤S229)。然后,阶段数控制单元303给循环次数i的值加“1”(步骤S230)并将结果循环次数与最大次数比较。如果循环次数小于最大次数(步骤S231:是),处理返回至步骤S225并重复以上过程。
当循环次数至少等于最大次数(步骤S231:是),重复过程完成。然后随机数据存储单元302从子密钥数据生成控制单元106接收一个控制信号。当接收到的控制信号为“1”时(步骤S232),随机数据存储单元302读取存储的子密钥数据集SK0至SK15并输出这些读取的子密钥数据集SK0至SK15至第一至第十六加密单元(步骤S235)。
当接收到的控制信号为“0”时(步骤S232),随机数据存储单元302读取存储的子密钥数据集SK0和SK1,设置SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0和SK15=SK13=SK11=SK7=SK5=SK3=SK1,并输出这些子密钥数据集SK0至SK15至第一至第十六加密单元(步骤S233和S234)。
(6)数据随机化单元301的操作
下面参照图14中的流程图描述数据随机化单元301的操作。
分解单元301a从阶段数控制单元303接收64位数据并分解该接收到的64位数据来生成上32位数据A1和下32位数据A0。分解单元301a输出数据A1至逻辑XOR单元301b和数据混杂单元301c,并输出该数据A0至合并单元301d和数据混杂单元301c。
数据混杂单元301c从分解单元301a接收数据A0和数据A1,对数据A0和数据A1中的对应位进行逻辑XOR操作来生成32位数据,并分解该32位数据成4个8位数据。然后数据混杂单元301c在每个8位数据集执行一个预定的替换并合并修改后的8位数据结果集来生成一个新的32位数据集。数据混杂单元301c也用其它位替换32位数据中的预定位来生成32位数据C1,它输出C1至逻辑XOR单元301b(步骤S252)。
逻辑XOR单元301b接收来自分解单元301a的数据A0和来自数据混杂单元301c的32位数据C1,并对数据A0和数据C1中的对应位进行逻辑XOR操作,生成子密钥数据B0。逻辑XOR单元301b输出该子密钥数据B0至随机数据存储单元302和合并单元301d(步骤S253)。
合并单元301d接收来自分解单元301a的数据A0和来自逻辑XOR单元301b的子密钥数据B0。合并单元301d将数据A0和子密钥数据B0与作为上部位的数据A0和作为下部位的子密钥数据B0合并,生成64位随机数据。合并单元301d输出这个64位随机数据至阶段数控制单元303(步骤S254)。
2.2接收装置2的操作
下面描述接收装置2的操作。
(1)接收装置2的整体操作
接收装置2的整体操作与传送装置1的操作相似,并将参照图8中的流程图加以解释。
接收装置2的接收单元21通过传送路径2接收来自传送装置1的传送单元11的信号。接收单元21隶属接收到的信号给解调和串-并转换生成密码。计数器单元205设置计数值为“0”,寄存器单元204设置存储值为初始值IV。块分解单元208接收来自接收单元21的密码数据(这对应步骤S101),密钥获得单元210读取来自加密密钥数据存储单元23的加密密钥数据并将它写入密钥存储单元211(这对应步骤S102)。块分解单元208分解密码数据成几个密码块(这对应步骤S103)。
块分解单元208输出每个密码块至解密单元200。解密单元200接收来自块分解单元208的密码块,解密这个接收到的密码块来生成无格式文本块,并输出结果无格式文本块至块合并单元209(这对应步骤S104)。当解密单元200没有完成所有密码块的解密(这对应S105:否),重复解密过程。
当完成输出所有密码块(这对应S105:是),块分解单元208输出表示输出完成的信息至块合并单元209。块合并单元209依次合并它接收到的所有无格式文本块来输出无格式文本数据(这对应步骤S106),并将生成的无格式文本数据写入解密数据存储单元22(这对应步骤S107)。
(2)数据解密单元20的操作
数据解密单元20的操作与数据加密单元10的操作类似,并参照图9加以解释。
数据转换单元203首先从寄存器单元204读取64位存储数据(这对应步骤S121),对存储数据执行一个预定数据转换,并输出已转换的64位数据至逻辑XOR单元202(这对应步骤S122)。
逻辑XOR单元202从数据转换单元203接收64位数据,从密钥存储单元211读取加密密钥数据,对在64位数据和加密密钥数据中的64位数据的相应位进行逻辑XOR操作来生成64位输入密钥数据。逻辑XOR单元202输出该输入密钥数据至子密钥数据生成单元201(这对应步骤S123)。
子密钥数据生成单元201使用输入密钥数据生成几个子密钥数据集并输出每个生成的子密钥数据集至解密单元200中的第一至第十六解密单元中的不同的解密单元(这对应步骤S124)。
解密单元200从块分解单元208接收无格式文本块(这对应步骤S125),使用几个子密钥数据集解密该密码块,并这样生成无格式文本块(这对应步骤S126)。计数器单元205给计数值加“1”(这对应步骤S127)。解密单元200输出结果无格式文本块至块合并单元209(这对应步骤S128)。
子密钥数据生成控制单元206的操作与图9中的流程图的步骤S141至S143所示的子密钥数据生成控制单元206的操作一样,将不再解释。
寄存器控制单元207的操作与图9中的流程图的步骤S151至S153所示的寄存器控制单元207的操作一样,将不再解释。
寄存器单元204依照它从寄存器控制单元207接收的控制值存储一个值(这与图9中的流程图中的步骤S161一样)。
(3)计数器单元205的操作
计数器单元205的操作与计数器单元105的操作类似,因此并参照图10加以解释。
一旦从解密单元200接收到表示加密一个密码块已经完成的完成信号,计数器单元205给计数值加“1”(这对应步骤S181)。当计数值的增加结果达到210(这对应步骤S182:是),计数器单元205复位计数值至“0”(这对应步骤S183)。
(4)寄存器单元204的操作
寄存器单元204的操作与寄存器单元105的操作类似,因此并参照图11加以解释。
寄存器单元204的操作从寄存器控制单元207接收一个控制信号。当接收到的控制信号为“0”时(步骤S201:“=0”)并且前面的密码块是从块分解单元208接收到的,寄存器单元204将该密码块作为存储数据存储(这对应步骤S202)。当接收到的控制信号为“1”时(这对应步骤S201:“=1”),寄存器单元204读取初值并将该初值IV作为存储数据存储(这对应步骤S203)。
(5)子密钥数据生成单元201的操作
子密钥数据生成单元201的操作与子密钥数据生成单元101的操作类似,因此下面将集中于图12和图13中示出的流程图中的程序的差异加以描述。
在步骤S235,随机数据存储对应302读取存储的子密钥数据SK0至SK15并输出各自的子密钥数据集SK0至SK15到解密单元200中的对应的第一至第十六解密单元,
在步骤S233和S234,随机数据存储单元302读取存储的子密钥数据集SK0和SK1,设置SK14=SK12=SK10=SK8=SK6=SK4=SK2=SK0和SK15=SK13=SK11=SK7=SK5=SK3=SK1,并输出各自的子密钥数据集SK0至SK15至第一至第十六加密单元。
(6)数据随机单元301的操作
子密钥数据生成单元201中的数据随机单元301的操作与图4描述的子密钥数据生成单元101中的数据随机单元301的操作。不再进一步解释。
3.无格式文本和解密文本之间的通信
当数据加密单元10使用64位加密密钥数据加密无格式文本块序列P0,P1,…时,获得了密码块C0,C1,…。这些密码块由数据解密单元20使用同样64位加密密钥数据解密,生成与无格式文本块序列P0,P1,…同样的无格式文本块序列D0,D1,…。这在下面作更详细描述。
方程15能从方程1和2以及方程8和9发现。
方程15
R0t=R1t(t=0,1,…)
方程16能从方程15以及方程3和10发现。
方程16
S0t=S1t(t=0,1,…)
方程17能从方程16以及方程4和11发现。
方程17
IK0t=IK1t(t=0,1,…)
因此,方程18由方程17和方程以及方程12和13给出。
方程18
SK0t=SK1t(t=0,1,…)
方程19能从方程7和14发现。
方程19
Dt=DEC(Enc(Pt,SK0t),SK1t)
                      (t=0,1,…)
对于在函数Enc和Dec中的任何64位α,β形成下面关系。
方程20
α=DEC(Enc(α,β),β)
因此,从方程19,20和18
Dt=Pt
4.安全性和加密处理速度的评价
(1)安全性
在本实施例中,使用输入到加密单元100的16个32位子密钥数据集SK0,…,SK15执行第t个(其中t<>210*k(k=0,1,…))个无格式文本块的加密。如前面描述的,生成这些子密钥数据集,使SK0=SK2=SK4…,SK14以及SK1=SK3=SK5…,SK15,因此,防止对已知无格式文本的攻击的安全性没有传统方法的高,在传统方法中,每个子密钥数据集是不同的。
然而,设置用于加密这些无格式文本块的输入密钥数据IK0t使得
IK0t=EK(+)Ct-1
由于有264个Ct-1的潜在值IK0t,实际上是不可能获得使用同样IK0t已加密的如此大量的无格式文本块。这使得本方法对于已知无格式文本的攻击是安全的。
使用输入到加密单元100的16个32位子密钥数据集SK0,…,SK15也执行第t个(其中t=210*k(k=0,1,…))个无格式文本块的加密。如前面描述的,这些子密钥数据集的每一个是不同的,这样,防止对已知无格式文本的攻击的安全性与传统方法表述的一样。
(2)加密处理速度
下面描述数据加密单元10的加密处理速度。
当加密第t个(其中t<>210*k(k=0,1,…))个无格式文本块,子密钥数据生成单元101执行一个简单的处理,它通过有效地只生成二个32位子密钥数据集生成十六个32位子密钥数据集。这意味着为每个块生成子密钥数据对于加密处理速度的影响比已知的传统方法小。
5.其它修改
本发明已用上面给出的实施例的方法解释,但同时应该理解,本发明不限于那里给出的细节。可以有几种修改,下面给出几个代表例。
(1)在上面实施例中,逻辑XOR单元102(202)描述为数据合并工具,它对由数据转换单元103(203)和加密数据生成的64位数据中的每一位进行一个XOR操作。然而,即使不对每个位位置进行一个XOR操作,也能达到同样效果。
(2)在上面实施例中,数据转换单元103描述为输出64位转换数据,尽管这样的数据并不需要64位长。作为一个例子,当加密密钥数据为56位长,可以使用输出56位数据的数据转换单元
(3)在上面实施例中,寄存器单元104(204)接收输入一个在上一个加密处理生成的密码数据,尽管可以使用在上一个加密处理中获得的64位值。作为一个例子,可以使用在加密处理中生成的第一或第二中间块。使用的数据并不需要64位长,这样可以使用较短的数据,如40位值。
下面描述当使用40位数据时一个可能的安排。数据转换单元103(203)接收该40位数据并转换该数据来生成新的40位数据。密钥存储单元111存储40位加密密钥数据。逻辑XOR单元102对在新的40位数据和40位数据加密密钥数据中的相应位进行一个逻辑XOR操作来生成40位输入密钥数据。子密钥数据生成单元101生成16个20位子密钥数据集,它们被加密单元100的第一至第十六解密单元在加密过程中使用。
(4)在上述实施例中,加密单元100使用FEAL方法,尽管可以使用任何块加密方法。作为一个例子,可以使用DES(数据加密标准)。
子密钥数据生成单元101并不限于以上描述的结构。作为一个例子,子密钥数据生成单元101可以从64位输入密钥数据生成16个32为子密钥数据集。
(5)本发明不限于这样的结构,即子密钥数据生成单元101使用二种类型的加密处理,其中随机数使用不同的处理负载而生成。只要当输入控制信号“1”时使用的加密处理比当输入控制信号“0”时使用的加密处理有较重的负载,可以使用任何装置。
作为一个例子,子密钥数据生成单元可以为十六个子密钥数据集的每一个的头16位生成不同的数据,然后基于对应的前16位生成每个子密钥数据集的后16位,而不是生成二个子密钥数据集。这样的处理将减少象上面描述的方式一样的键生成的处理负载。
子密钥数据生成单元可以生成3个,4个,5个或者任何其它的直至15个的任何数目的子密钥数据集,每个第一至第十六个加密单元使用一个生成的子密钥数据集,而不是生成二个子密钥数据集。
(6)当计数值达到“210-1”时,计数器单元105(205)复位计数值为“0”,虽然本发明并不限于使用“210-1”作为计数值的上限。可以使用任何正整数。计数值也不需要复位至“0”。
在上述实施例中,装置描述为内部存有64位加密密钥数据。然而,第一次进行加密时,装置可以不是仅存储使用的64位加密密钥数据,而是当加密用无格式文本块加密和转移的其它无格式文本块的每一个时使用的输入密钥数据。当更新输入密钥数据时,可以使用公共密钥加密,如Diffie-Hellman方法,来分配输入密钥数据至将要进行通信的装置中。
(7)本发明也应用该方法被以上描述的装置使用。该方法可以由计算机执行的计算机程序实现。可以分配这样的计算机程序作为数字信号。
本发明也可以由计算机可读的存贮介质实现,如软盘,硬盘,CD-ROM(压缩只读光盘存储器),MO(磁光)光盘,DVD(数字通用光盘),或半导体存储器,以上提及的计算机程序和/或数字信号磁蝶计算机程序记录其中。相反,本发明也可以由记录在存储介质上的计算机程序和/或数字信号实现。
实现本发明的计算机程序和/或数字信号也可以通过网络,如电子通信网络,有线或无线通信网络或互联网传送。
本发明也能用包括微处理器和存储器的计算机系统实现。在这种情况下,计算机程序能存储于存储器中,微处理器根据该计算机程序运行。
计算机程序和/或数字信号可以提供分发记录计算机程序和/或数字信号的存储介质,或通过网络传送计算机程序和/或数字信号的方法提供给独立的计算机系统。然后,独立的计算机可以执行该计算机程序和/或数字信号来实现本发明。
(8)实施例中描述的限制和修改可以自由的结合。
尽管本发明通过实例的方式并参照附图得到全面描述,应该注意各种各样的变化和修改对于本领域的技术人员是显而易见的。因此,除非这样的变化和修改偏离本发明的范畴,它们应该包含其中。

Claims (12)

1.一种加密方法,它加密由多个块组成的明文数据,该加密方法包括:
块获得步骤,用来按次序从外部反复获得所述块;
选择步骤,根据块的获得次数,选择第一模式或者第二模式;
密钥生成步骤,包括:
(1)当选择第一模式时,生成预定的数目n的由各不同子密钥组成的第一组,和
(2)当选择第二模式时,生成数目小于所述预定的数目n的由各不同子密钥组成的第二组,和
加密步骤,将获得的块依次通过进行n次变换处理来加密,
其中:
所述加密步骤,当选择第一模式时,所述n次变换处理各自与组成第一组的多个子密钥相对应,在各自的所述n次变换处理中用第一组内相应的子密钥,和
当选择第二模式时,所述n次变换处理与组成第二组的多个子密钥中的一个子密钥相对应,在各自的所述n次变换处理中用第二组中相应的子密钥。
2.根据权利要求1的加密方法,其中,所述选择步骤包括:
(I)所述获得次数等于预定值的倍数时,选择第一模式,和
(II)在其它情况下,选择第二模式。
3.根据权利要求1的加密方法,
所述加密步骤将获得的块依次通过进行n次变换处理,生成密文块,和
所述密钥生成步骤,当选择第一模式时,用密钥初值生成第一组,当选择第二模式时,用所述密钥初值和由在此之前刚获得的密文块生成第二组。
4.一种加密由多个块组成的明文数据的加密设备,该加密设备包含:
块获得装置,用来按次序从外部反复获得所述块;
选择装置,根据块的获得次数,选择第一模式或者第二模式;
密钥生成装置,用于:
(I)当选择第一模式时,生成预定的数目n的由各不同子密钥组成的第一组,和
(II)当选择第二模式时,生成数目小于所述预定的数目n的由各不同子密钥组成的第二组,和
加密装置,将获得的块依次通过进行n次变换处理来加密,
其中:
所述加密装置,当选择第一模式时,所述n次变换处理各自与组成第一组的多个子密钥相对应,并在各自的所述n次变换处理中用第一组内相应的子密钥,和
当选择第二模式时,所述n次变换处理与第二组的多个子密钥中的一个子密钥相对应,并且在各自的所述n次变换处理中用第二组中相应的子密钥。
5.根据权利要求4的加密设备,其中所述选择装置:
(1)所述获得次数是预定值的倍数时,选择第一模式;
(2)在其它情况下,选择第二模式。
6.根据权利要求4所述的加密设备,进一步包括:用于存储初始值的初始值存储装置;
其中:
所述加密装置将获得的块依次通过进行n次变换处理,生成密文块;
所述密钥生成装置,当选择第一模式时,用所述密钥初始值生成第一组;当选择第二模式时,用所述密钥初始值和由在此之前刚获得的密文块生成第二组。
7.一种解密装置使用的解密方法,它解密构成多个密文块的密文数据,该解密方法包括:
块获得步骤,用来从外部按次序获得密文块;
选择步骤,根据密文块的获得次数,选择第一模式或者第二模式;
密钥生成步骤,包括:
(1)当选择第一模式时,生成预定的数目n的由各不同子密钥组成的第一组,和
(2)当选择第二模式时,生成数目小于所述预定的数目n由的不同子密钥组成的第二组,和
解密步骤,将获得的密文块依次通过进行n次变换处理来解密,
其中:
所述解密步骤,当选择第一模式时,所述n次变换处理各自与组成第一组的多个子密钥相对应,在各自的所述n次变换处理中用第一组内相应的子密钥,和
当选择第二模式时,所述n次变换处理与组成第二组的多个子密钥中的一个子密钥相对应,在各自所述n次变换处理中用第二组中对应的子密钥。
8.根据权利要求7的解密方法,其中,所述选择步骤:
(I)所述获得次数为预定值的倍数时,选择第一模式,和
(II)在其它情况下,选择第二模式。
9.根据权利要求7的解密方法,其中,
所述密钥生成步骤,当选择第一模式时,用密钥初始值生成第一组,当选择第二模式时,用所述密钥初始值和由在此之前刚刚获得的密文块生成第二组。
10.一种解密密文数据的解密设备,该解密设备包含:
块获得装置,用来按次序从外部反复获得所述密文块;
选择装置,用来根据密文块的获得次数,选择第一模式或者第二模式;
密钥生成装置,用于:
(1)当选择第一模式时,生成预定的数目n的由各不同子密钥组成的第一组,和
(2)当选择第二模式时,生成数目小于所述预定的数目n的由各不同子密钥组成的第二组,和
解密装置,将获得的密文块依次通过进行n次变换处理来解密,
其中:
所述解密装置,当选择第一模式时,所述n次变换处理各自与组成第一组的多个子密钥相对应,并在各自的所述n次变换处理中用第一组内相应的子密钥,和
当选择第二模式时,所述n次变换处理与第二组的多个子密钥中的一个子密钥相对应,并且在各自的所述n次变换处理中用第二组中相应的子密钥。
11.根据权利要求10的解密设备,其中所述选择装置用于:
(1)所述获得次数是预定值的倍数时,选择第一模式;
(2)在其它情况下,选择第二模式。
12.根据权利要求10的解密设备,进一步包括:用于存储初始值的初始值存储装置;
其中:
密钥生成装置,当选择第一模式时,用所述密钥初始值生成第一组;当选择第二模式时,用所述密钥初始值和由在此之前刚获得的密文块生成第二组。
CN200610009574.0A 1999-08-31 2000-08-30 加密方法,加密装置,解密方法和解密装置 Expired - Lifetime CN100592681C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP24527799 1999-08-31
JP245277/1999 1999-08-31

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN00126320.XA Division CN100595816C (zh) 1999-08-31 2000-08-30 加密方法,加密装置,解密方法和解密装置

Publications (2)

Publication Number Publication Date
CN1822538A true CN1822538A (zh) 2006-08-23
CN100592681C CN100592681C (zh) 2010-02-24

Family

ID=17131294

Family Applications (2)

Application Number Title Priority Date Filing Date
CN200610009574.0A Expired - Lifetime CN100592681C (zh) 1999-08-31 2000-08-30 加密方法,加密装置,解密方法和解密装置
CN00126320.XA Expired - Lifetime CN100595816C (zh) 1999-08-31 2000-08-30 加密方法,加密装置,解密方法和解密装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN00126320.XA Expired - Lifetime CN100595816C (zh) 1999-08-31 2000-08-30 加密方法,加密装置,解密方法和解密装置

Country Status (9)

Country Link
US (1) US6917684B1 (zh)
EP (1) EP1081888B1 (zh)
JP (1) JP3364200B2 (zh)
CN (2) CN100592681C (zh)
BR (1) BR0003884B1 (zh)
CA (1) CA2316636C (zh)
DE (1) DE60024941T8 (zh)
RU (1) RU2257677C2 (zh)
SG (1) SG87160A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790930A (zh) * 2016-04-29 2016-07-20 南京酷派软件技术有限公司 用于移动终端的信息加密方法、信息加密装置和移动终端

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565546B2 (en) * 1999-03-30 2009-07-21 Sony Corporation System, method and apparatus for secure digital content transmission
US7730300B2 (en) 1999-03-30 2010-06-01 Sony Corporation Method and apparatus for protecting the transfer of data
US7039614B1 (en) 1999-11-09 2006-05-02 Sony Corporation Method for simulcrypting scrambled data to a plurality of conditional access devices
US7747853B2 (en) * 2001-06-06 2010-06-29 Sony Corporation IP delivery of secure digital content
US7895616B2 (en) 2001-06-06 2011-02-22 Sony Corporation Reconstitution of program streams split across multiple packet identifiers
US7124303B2 (en) * 2001-06-06 2006-10-17 Sony Corporation Elementary stream partial encryption
AU2002328819A1 (en) * 2001-06-12 2002-12-23 Ibm France Method of authenticating a plurality of files linked to a text document
JP2005505873A (ja) * 2001-10-12 2005-02-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ブロックとして記憶されるユーザデータを読み取る又は書き込む装置及び方法
US7823174B2 (en) 2002-01-02 2010-10-26 Sony Corporation Macro-block based content replacement by PID mapping
US7233669B2 (en) * 2002-01-02 2007-06-19 Sony Corporation Selective encryption to enable multiple decryption keys
US7292690B2 (en) * 2002-01-02 2007-11-06 Sony Corporation Video scene change detection
US7292691B2 (en) * 2002-01-02 2007-11-06 Sony Corporation Progressive video refresh slice detection
US7155012B2 (en) 2002-01-02 2006-12-26 Sony Corporation Slice mask and moat pattern partial encryption
US7765567B2 (en) 2002-01-02 2010-07-27 Sony Corporation Content replacement by PID mapping
JP4150886B2 (ja) * 2002-04-19 2008-09-17 ソニー株式会社 暗号化復号化演算装置およびデータ受信装置
US8818896B2 (en) 2002-09-09 2014-08-26 Sony Corporation Selective encryption with coverage encryption
US20040088539A1 (en) * 2002-11-01 2004-05-06 Infante Steven D. System and method for securing digital messages
US8572408B2 (en) 2002-11-05 2013-10-29 Sony Corporation Digital rights management of a digital device
US7724907B2 (en) 2002-11-05 2010-05-25 Sony Corporation Mechanism for protecting the transfer of digital content
US7853980B2 (en) 2003-10-31 2010-12-14 Sony Corporation Bi-directional indices for trick mode video-on-demand
EP1610490A1 (fr) * 2004-06-21 2005-12-28 France Telecom Procédé et dispositif de chiffrement ou déchiffrement de données
US20060018627A1 (en) * 2004-07-20 2006-01-26 Canon Kabushiki Kaisha Image reproducing apparatus and image reproducing method
US8041190B2 (en) 2004-12-15 2011-10-18 Sony Corporation System and method for the creation, synchronization and delivery of alternate content
US7895617B2 (en) 2004-12-15 2011-02-22 Sony Corporation Content substitution editor
US7546461B2 (en) * 2005-06-28 2009-06-09 Microsoft Corporation Strengthening secure hash functions
JP2007013506A (ja) * 2005-06-29 2007-01-18 N-Crypt Inc 暗号化処理装置、暗号化方法、復号化処理装置、復号化方法、及びデータ構造
US8185921B2 (en) 2006-02-28 2012-05-22 Sony Corporation Parental control of displayed content using closed captioning
US8023646B2 (en) * 2006-11-08 2011-09-20 Voltage Security, Inc. Identity-based-encryption extensions formed using multiple instances of an identity based encryption scheme
JP5024999B2 (ja) * 2007-09-28 2012-09-12 東芝ソリューション株式会社 暗号管理装置、暗号管理方法、暗号管理プログラム
JP4993733B2 (ja) * 2007-09-28 2012-08-08 東芝ソリューション株式会社 暗号クライアント装置、暗号パッケージ配信システム、暗号コンテナ配信システム及び暗号管理サーバ装置
CN101887713B (zh) * 2009-05-13 2012-01-25 深圳市文鼎创数据科技有限公司 字库的加密方法及装置
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
JP5225414B2 (ja) * 2011-03-08 2013-07-03 株式会社東芝 暗号演算装置
US9774443B2 (en) * 2015-03-04 2017-09-26 Apple Inc. Computing key-schedules of the AES for use in white boxes
GB2544453A (en) * 2015-09-14 2017-05-24 Creme Software Ltd System for secure analysis of datasets
RU2694336C1 (ru) * 2018-05-08 2019-07-11 Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" Способ аутентифицированного шифрования
CN111212026A (zh) * 2019-11-21 2020-05-29 深圳壹账通智能科技有限公司 基于区块链的数据处理方法、装置及计算机设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4229818A (en) * 1978-12-29 1980-10-21 International Business Machines Corporation Method and apparatus for enciphering blocks which succeed short blocks in a key-controlled block-cipher cryptographic system
US5081676A (en) * 1990-10-04 1992-01-14 Chou Wayne W Method and apparatus for protecting multiple copies of computer software from unauthorized use
US5517614A (en) * 1992-05-29 1996-05-14 Kabushiki Kaisha Toshiba Data compression/encryption processing apparatus
US5351299A (en) * 1992-06-05 1994-09-27 Matsushita Electric Industrial Co., Ltd. Apparatus and method for data encryption with block selection keys and data encryption keys
US5671283A (en) * 1995-06-08 1997-09-23 Wave Systems Corp. Secure communication system with cross linked cryptographic codes
US5606616A (en) * 1995-07-03 1997-02-25 General Instrument Corporation Of Delaware Cryptographic apparatus with double feedforward hash function
US5825889A (en) * 1996-10-15 1998-10-20 Ericsson Inc. Use of duplex cipher algorithms for satellite channels with delay
CN1157020C (zh) * 1997-04-23 2004-07-07 松下电器产业株式会社 提高了安全性的密码处理装置
DE19724072C2 (de) * 1997-06-07 1999-04-01 Deutsche Telekom Ag Vorrichtung zur Durchführung eines Blockchiffrierverfahrens
JP2000066587A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105790930A (zh) * 2016-04-29 2016-07-20 南京酷派软件技术有限公司 用于移动终端的信息加密方法、信息加密装置和移动终端

Also Published As

Publication number Publication date
SG87160A1 (en) 2002-03-19
EP1081888A2 (en) 2001-03-07
JP2001142394A (ja) 2001-05-25
BR0003884B1 (pt) 2014-04-15
DE60024941T2 (de) 2006-06-29
JP3364200B2 (ja) 2003-01-08
RU2257677C2 (ru) 2005-07-27
CA2316636C (en) 2007-05-15
DE60024941D1 (de) 2006-01-26
CN100595816C (zh) 2010-03-24
CN100592681C (zh) 2010-02-24
CA2316636A1 (en) 2001-02-28
EP1081888B1 (en) 2005-12-21
CN1286457A (zh) 2001-03-07
BR0003884A (pt) 2001-04-03
US6917684B1 (en) 2005-07-12
EP1081888A3 (en) 2002-07-17
DE60024941T8 (de) 2006-08-10

Similar Documents

Publication Publication Date Title
CN1822538A (zh) 加密方法,加密装置,解密方法和解密装置
CN1124545C (zh) 实现高速加密处理的设备和方法
CN1266876C (zh) 数据通信系统、加密装置及解密装置
CN1310462C (zh) 通过对数据加密来保护数据的数据保护系统
CN1203431C (zh) 公用密钥加密装置
CN1125407C (zh) 信息处理装置,信息处理方法,信息处理系统
CN1396568A (zh) 数字作品保护系统、记录媒体装置、发送装置和重放装置
CN1081418C (zh) 高保密性的数据加密方法与装置
CN1272929C (zh) 加密/解密方法和使用多仿射密钥系统的验证方法及装置
CN101053200A (zh) 信息处理设备、信息存储媒体、内容管理系统、数据处理方法、以及计算机程序
CN1977250A (zh) 进行加密或解密的计算机系统和计算机程序
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1643922A (zh) 内容重现装置、方法和程序以及密钥管理装置和系统
CN1282324C (zh) 数据加密装置和方法
CN1183685A (zh) 加密译码方法,记录重放装置及记录媒体
CN1665185A (zh) 内容提供系统、用户系统、跟踪系统、装置及方法
CN1914852A (zh) 信息处理设备、信息记录介质和信息处理方法以及计算机程序
CN1714377A (zh) 用于生成伪随机数的方法及伪随机数生成器
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1330819A (zh) 利用双重加密保护数字数据的方法及装置
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN1735939A (zh) 内容发布系统、记录设备和方法、重放设备和方法及程序
CN1371081A (zh) 使记录在一个记录介质上的数字内容无效的数据无效设备
CN1921382A (zh) 一种基于aes算法的加解密方法及加解密器
CN1930625A (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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20100224