CN1203431C - 公用密钥加密装置 - Google Patents

公用密钥加密装置 Download PDF

Info

Publication number
CN1203431C
CN1203431C CNB011431539A CN01143153A CN1203431C CN 1203431 C CN1203431 C CN 1203431C CN B011431539 A CNB011431539 A CN B011431539A CN 01143153 A CN01143153 A CN 01143153A CN 1203431 C CN1203431 C CN 1203431C
Authority
CN
China
Prior art keywords
key
mentioned
expanded keys
sub
level
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
CNB011431539A
Other languages
English (en)
Other versions
CN1349182A (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
Original Assignee
Toshiba Corp
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 filed Critical Toshiba Corp
Publication of CN1349182A publication Critical patent/CN1349182A/zh
Application granted granted Critical
Publication of CN1203431C publication Critical patent/CN1203431C/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/002Countermeasures against attacks on cryptographic mechanisms
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • 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
    • 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
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations
    • 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/20Manipulating the length of blocks of bits, e.g. padding or block truncation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Storage Device Security (AREA)
  • Facsimile Transmission Control (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

本发明提供一种加密、解密装置及扩展密钥生成装置、方法以及记录媒体。在加密时和解密时按相反顺序使用扩展密钥的公用密钥加密方式的加密装置的扩展密钥生成部中,将与初级的级数和与最终级的级数相等的2个循环函数f1和fn+1设定为互相成为反函数。这样,由于加密时的扩展密钥生成和解密时的扩展密钥生成基本上相同,所以在加密时和解密时都可以将公用密钥作为输入立即而且按使用顺序逐个生成扩展密钥,可以避免产生用于生成扩展密钥的时延,并且可以进行随时的密钥生成。

Description

公用密钥加密装置
                     技术领域
本申请基于2000年7月12日申请的已有日本专利申请No.2000-211686并且宣称有该申请的优先权,该申请的全部内容在此引入为参考。
本发明涉及在加密时和解密时按相反顺序使用多个扩展密钥的加密装置,解密装置以及扩展密钥生成装置,扩展密钥生成方法以及记录媒体。
                     背景技术
为了电子化信息、尤其有关著作权的信息、机密信息或有关私人的信息等的安全控制,加密技术越来越重要。实际上在各种领域以各种形式利用了加密技术。
有各种加密方式,其中之一有公用密钥加密方式。公用密钥加密方式是使用与加密时所用的密钥同一密钥(有公用密钥的情况,也有私有密钥的情况)进行解密的方式。
有各种公用密钥加密方式,其中之一有使用扩展密钥的方式。该方式是基于公用密钥生成比其具有的位数多的总位数的多个扩展密钥。
作为扩展密钥的生成方式之一有对公用密钥采用循环函数(段函数),基于该输出值生成扩展密钥,同时还对该输出值采用循环函数,基于该输出值生成下一扩展密钥,同时还对该输出值采用循环函数...,像这样,依次采用循环函数,逐个生成扩展密钥。在此,将这样的方式称为循环方式。
作为采用这样的扩展密钥生成方式的公用密钥加密方式例如有公用密钥块加密方式。公用密钥块加密方式具有数据搅拌部对成为处理单位所定位长的块数据依次采用循环函数来进行加密或解密的结构,其典型基本结构有SPN型和Feistel型等。
另外,在生成扩展密钥时采用循环方式时,例如像块加密,要求按与加密时相反的顺序采用扩展密钥。
下面,说明这种方式存在的问题。
图48示出现有加密装置的扩展密钥生成部的结构例。生成部具有串接的循环函数处理部10011~1001n和,分别连接到循环函数处理部10011~1001n的输出的扩展密钥变换部10051~1005n
在数据搅拌部中,加密处理需要扩展密钥(1)。因此,对公用密钥采用循环函数(1),求出该输出值,并对其进行扩展密钥变换(1),从而得到扩展密钥(1)。数据搅拌部采用该扩展密钥(1)进行加密处理。
在数据搅拌部中,加密处理还需要扩展密钥(2)。因此,对循环函数(1)的输出值采用循环函数(2),求出该输出值,并对其进行扩展密钥变换(2),从而得到扩展密钥(2)。数据搅拌部采用该扩展密钥(2)进行密处理。
之后,进行同样处理,在扩展密钥生成部生成扩展密钥,在数据搅拌部进行加密处理。
在此,考虑解密时的处理。
在解密时,需要接与加密时相反的顺序,即扩展密钥(n)→扩展密钥
(1)的顺序采用扩展密钥。但是,具有与图48相同结构的扩展密钥生成部的现有的解密装置由于按扩展密钥(1)→扩展密钥(n)的顺序生成扩展密钥,所以需要例如在数据搅拌部的处理之前生成所有扩展密钥,并存储到存储器。
但是,存在例如像IC卡那样只有贫乏的硬件环境的装置没有存储所有解密所需的扩展密钥的剩余存储区域的问题。
为了避免该问题,考虑如图49例示结构的解密装置的扩展密钥生成部。生成部具有串接的循环函数处理部10011~1001n和,串接到最终级的循环函数处理部1001n的输出,进行与循环函数处理部1001n~10011的循环函数处理相反的处理的循环函数处理部1021n~10212和,分别连接到循环函数处理部1001n、1021n~10212的输出的扩展密钥变换部1005n~10051
该结构暂时进行与加密相同的扩展密钥生成处理,求出采用最终级的循环函数而得到的输出值Rn。接着,预先对该输出值Rn在与加密时相反循环方向采用各循环函数的反函数,按扩展密钥(n)→扩展密钥(1)的顺序,即随时(On-the-fly)生成扩展密钥。
但是,由于有进行与最初加密时同一扩展密钥Rn的生成处理所不需要的时间,从而存在在开始解密之前产生时延的问题。
如上所述,现有技术由于不能按相反顺序生成扩展密钥,所以需要在解密处理之前生成并存储所有扩展密钥,但存在例如像IC卡那样在贫乏的硬件环境没有存储解密所需的所有扩展密钥的剩余存储区域的问题。
为了利用随时的密钥生成避免该问题,需要暂时进行与加密时同一扩展密钥生成处理,并求出在最终循环采用循环函数而得到的输出值之后,预先对该输出值在相反循环方向采用各循环函数的反函数,但此时也存在不能避免开始解密之前的时延的问题。
                            发明内容
本发明是鉴于上述问题而提出的,其目的在于提供一种避免或减少用于生成扩展密钥的时延的产生,并且可以进行随时的密钥生成的公用密钥加密装置、解密装置以及扩展密钥生成装置、扩展密钥生成方法以及记录媒体。
本发明提供一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为从初级开始的级数和从最终级开始的级数一致的两个循环函数互为反函数。
本发明提供一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为,在至少第一特定级和第二特定级之间的连续多个级中,从该第一特定级开始的级数和从该第二特定级开始的级数一致的两个循环函数互为反函数。
本发明提供一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为,在至少从第一特定级开始按照级数增加的方向到相隔特定级数的级为止的连续范围和从第二特定级开始按照级数减小的方向到相隔特定级数的级为止之间的连续范围中,从该第一特定级开始的级数和从该第二特定级开始的级数一致的两个循环函数互为反函数。
根据本发明的一实施例,提供一种在加密时的数据搅拌处理和解密时的数据搅拌处理按相反顺序使用多个扩展密钥的公用密钥加密装置,具有:
多级循环处理部,在初级将公用密钥作为输入实施所定循环函数并生成子密钥,在第2级之后,将在前一级生成的子密钥作为输入实施所定循环函数并生成新的子密钥,在此,最终级的输出与输入到初级的公用密钥相等;
多个扩展密钥处理部,对于上述多级循环处理部的至少一部分生成的上述子密钥,将该子密钥的所有位或其一部分原封不动或对此进行所定变换处理之后,作为扩展密钥输出。
根据本发明的一实施例,提供一种在加密时的数据搅拌处理和解密时的数据搅拌处理按相反顺序使用多个扩展密钥的公用密钥解密装置,具有:
多级循环处理部,在初级将公用密钥作为输入实施所定循环函数并生成子密钥,在第2级之后,将在前一级生成的子密钥作为输入实施所定循环函数并生成新的子密钥,在此,最终级的输出与输入到初级的公用密钥相等;
多个扩展密钥处理部,对于上述多级循环处理部的至少一部分生成的上述子密钥,将该子密钥的所有位或其一部分原封不动或对此进行所定变换处理之后,作为扩展密钥输出。
                         附图说明
图1是表示本发明一个实施例的加密装置的结构例的图。
图2是表示该实施例的解密装置的结构例的图。
图3是用于说明循环行程结构的循环函数序列结构的图。
图4是用于说明环形结构的循环函数序列结构的图。
图5是用于说明循环行程结构和环形结构的复合型循环函数序列结构的图。
图6是用于说明循环行程结构和环形结构的复合型循环函数序列结构的图。
图7是用于说明循环行程结构和环形结构的复合型循环函数序列结构的图。
图8是用于说明循环行程结构和环形结构的复合型循环函数序列结构的图。
图9是用于说明循环行程结构和环形结构的复合型循环函数序列结构的图。
图10是表示本实施例的加密装置的另一结构例的图。
图11是表示本实施例的解密装置的另一结构例的图。
图12是表示图10、图11的扩展密钥和搅拌处理的连接关系例的图。
图13是表示图10、图11的扩展密钥和搅拌处理的连接关系例的图。
图14是表示图10、图11的扩展密钥和搅拌处理的连接关系例的图。
图15是表示图10、图11的扩展密钥和搅拌处理的连接关系例的图。
图16是表示本实施例的加密装置的又另一结构例的图。
图17是表示本实施例的解密装置的又另一结构例的图。
图18是表示本实施例的加密装置的又另一结构例的图。
图19是表示本实施例的扩展密钥生成部的结构例的图。
图20是表示本实施例的循环处理部的结构例的图。
图21是表示本实施例的循环处理部的另一结构例的图。
图22是表示图21的循环处理部的非线性函数单元的结构例的图。
图23是表示具有图21的循环处理部的反函数的循环处理部的结构例
图24是表示本实施例的加密装置的又另一结构例的图。
图25是表示图24的第1单元DU的结构例的图。
图26是表示图24的第2单元DD的结构例的图。
图27是表示图24的第3单元DD(woMDSH)的结构例的图。
图28是表示图24的扩展密钥生成部的结构例的图。
图29是表示图24的扩展密钥生成部的另一结构例的图。
图30是用于说明图28和图29的非线性函数单元的图。
图31是用于说明图28和图29的“异”单元的图。
图32是用于说明图28和图29的“异”单元的图。
图33是用于说明图28和图29的伽罗瓦域上的乘法单元的图。
图34A、图34B是用于说明图28和图29的伽罗瓦域上乘法单元的图。
图35是实现伽罗瓦域上的乘法的连接图形。
图36是表示本实施例的加密装置的扩展密钥生成部的又另一结构例图。
图37是表示图36的非线性函数单元F的结构例的图。
图38A、图38B是用于说明图36的“异”单元的图。
图39A、图39B是表示PA级的结构的图。
图40是表示虚设级的结构的图。
图41是表示本实施例的加密装置的扩展密钥生成部的又另一结构例图。
图42是表示图41的非线性函数单元F的结构例的图。
图43A、图43B是用于说明图41的“异”单元的图。
图44是表示虚设级的结构的图。
图45是表示利用了本实施例的加密方式的系统一例的图。
图46是表示利用了本实施例的加密方式的系统另一例的图。
图47是表示利用了本实施例的加密方式的系统又另一例的图。
图48是用于说明现有的扩展密钥生成装置的图。
图49是用于说明现有的扩展密钥生成装置的图。
                          具体实施方式
下面,参考附图说明本发明的实施例。
实施例1
本发明可适用于在加密时和解密时按相反顺序采用扩展密钥的所有公用密钥加密方式,但下面说明进行对所定位长度的块数据逐个采用了各扩展密钥的数据搅拌处理的公用密钥块加密方式的例子。
下面参考的各图(为了着眼于该加密进行说明)中将成为加密对象的数据作为明文示出,但当然也可以是成为加密对象的数据已经由同一或另一加密方式加密的密文。本加密方式可以利用硬件实现,也可以利用软件实现,下面所示的结构例也可以作为加密装置(解密装置)的功能框图,也可以作为加密算法(解密算法)的功能模块图或流程图。
图1示出了本发明一个实施例的加密装置的结构例。本加密装置具有数据搅拌部1和扩展密钥生成部3。
扩展密钥生成部3具有多个循环处理部311~31n(根据情况还具有31n+1)。
第1级循环处理部311对公用密钥kc采用第1级循环函数f1,并输出第1子密钥kc1=f1(kc)。
第2级循环处理部312对前一级(在此第1级)的循环处理部311输出的子密钥kc1采用第2级循环函数f2,并输出子密钥kc2=f2(kc1)=f2(f1(kc))。
未图示的第3级至第(n-1)级循环处理部也是同样的。
第n级循环处理部31n对前一级(在此为第(n-1)级)的循环处理部31n-1(未图示)输出的子密钥kcn-1采用第n级循环函数fn,并输出子密钥kcn=fn(kcn-1)=fn(fn-1(…f2(f1(kc))…))。
本实施例中,在第(n+1)级循环处理部31n+1对第n级循环处理部31n输出的子密钥kcn采用循环函数fn+1,使这样得到的输出值kcn=fn+1(kcn-1)=fn+1(fn(fn-1(…f2(f1(kc))…)))与公用密钥kc相等。
该第n级循环函数fn+1的反函数fn+1-1成为解密装置的扩展密钥生成部的初级循环处理部的循环函数。
加密装置的扩展密钥生成部也可以不具有循环函数fn+1的循环处理部,但如果具有循环函数fn+1的循环处理部,则在加密装置和解密装置中密钥生成部的结构相同,所以在兼有加密功能和解密功能2个功能的装置中,通过在加密时和解密时兼用1个扩展密钥生成部,具有减小装置规模的优点。
扩展密钥生成部3具有多个扩展密钥变换部331至33n
第1级扩展密钥变换部331对第1级循环处理部311的输出kc1的全部或部分采用第1级扩展密钥变换函数c1,生成第1级扩展密钥k1
第2级扩展密钥变换部332对第2级循环处理部312的输出kc2的全部或部分采用第2级扩展密钥变换函数c2,生成第2级扩展密钥k2
未图示的第3级至第(n-1)级的扩展密钥变换部也是同样的。
第n级扩展密钥变换部33n对第n级循环处理部31n的输出kcn的全部或部分采用第n级扩展密钥函数cn,生成第n级扩展密钥kn
数据搅拌部1具有从属连接的多个(例如利用循环函数的)搅拌处理部111至11n
第1级搅拌处理部111输入成为加密对象的块数据(明文),并使用扩展密钥k1进行搅拌处理R1
第2级搅拌处理部112输入第1级搅拌处理部111输出的块数据,并使用扩展密钥k2进行搅拌处理R2
未图示的第3级至第(n-1)级的搅拌处理部也是同样的。
第n级搅拌处理部11n输入第(n-1)级搅拌处理部输出的块数据,并使用扩展密钥kn进行搅拌处理Rn。第n级搅拌处理部11n的输出成为应求出的密文。
用于多个搅拌处理的循环函数也可以是全不同,也可以是全相同,也可以是不同的和相同的混合在一起。在要使多个循环函数不同时,除了使函数不同的方法之外,还有基本上是同一函数,但根据级而具有不同的常数的方法等。
多个循环函数也可以是都为线性函数,也可以是任意函数,但最好其中至少一个是非线性函数。也可以是多于2个循环函数或所有循环函数为非线性函数。
实现循环函数的方法有利用变换表实现的方法、用行列运算或其它运算实现的方法、利用实际电路实现的方法等各种结构方法。
这些点对于多个扩展密钥变换函数也是同样的。
作为各级扩展密钥生成部331至33n的变形例,也可以是将输入的子密钥或其一部分原封不动地作为扩展密钥输出的结构(或将子密钥直接连接到数据搅拌部1(或后述的开关电路15))。
块数据的数据长度和公用密钥kc的数据长度也可以相同,也可以不同。扩展密钥的数据长度和块数据的数据长度也可以相同,也可以不同。子密钥的数据长度和扩展密钥的数据长度也可以相同,也可以不同。
图2示出本发明一个实施例的解密装置的结构例。本解密装置具有数据搅拌部2和扩展密钥生成部4。图2的解密装置具有进行图1的加密装置的反变换的功能。
扩展密钥生成部4具有多个循环处理部422至42n+1(根据情况还具有421),按相反顺序采用图1的加密装置的扩展密钥生成部2的多个循环函数的各反函数。
循环处理部42n+1对公用密钥kc=fn+1(kcn)=fn+1(fn(fn-1(…f2(f1(kc))…)))采用循环函数fn+1 -1,并输出子密钥kcn=fn+1 -1(fc)=fn+1 -1(fn+1(fn(fn-1(…f2(f1(kc))…))))=(fn(fn-1(…f2(f1(kc))…))。
循环处理部42n对前一级循环处理部42n+1输出的子密钥kcn采用循环函数fn -1,输出kcn-1=fn -1(…f2(f1(kc))…)。
未图示的循环处理部42n-1至423也是同样的。
循环处理部422对前一级循环处理部423输出的子密钥kc2=f2(f1(kc))采用循环函数f2 -1,输出kc1=f1(kc)。
在循环处理部421对前一级循环处理部422输出的子密钥kc1采用循环函数f1 -1,这样得到的输出值与公用密钥kc相等。
循环函数f1 -1的反函数f1成为加密装置的扩展密钥生成部的初级循环处理部的循环函数。图2的结构例中,在扩展密钥生成部也可以不具有循环函数f1 -1的循环处理部421,但如果具有循环函数f1 -1的循环处理部421,由于加密装置和解密装置的密钥生成部的结构相同,所以在兼有加密功能和解密功能双方的装置中,通过在加密时和解密时兼用1个扩展密钥生成部,具有减小装置规模的优点。
扩展密钥生成部4具有多个扩展密钥变换部441~44n。该部分与对应图1的加密装置的部分处理内容相同。
数据搅拌部2具有从属连接的多个(例如利用循环函数)搅拌处理部221至22n
最终级的搅拌处理部22n输入成为解密对象的块数据(密文),并使用扩展密钥kn进行成为加密装置的搅拌处理Rn的反变换的搅拌处理Rn -1
同样,第(n-1)级至第2级的搅拌处理部22n-1至22n也依次输入后一级的搅拌处理部输出的块数据,使用扩展密钥kn-1、…k2进行搅拌处理Rn-1 -1、…R2 -1
第1级的搅拌处理部221输入第2级搅拌处理部222输出的块数据,使用扩展密钥k1进行成为加密装置的搅拌处理R1的反变换的搅拌处理R1 -1。第1级搅拌处理部221的输出成为应求的解密结果(块数据(明文))。
即,如图2所示,在解密时,可以按与已加密时相反的顺序开始生成扩展密钥,依次生成扩展密钥。
如上所述,通过对用于加密时生成扩展密钥的循环函数序列(但也有不具有最终级的情况)和成为其反函数的用于解密时生成扩展密钥的循环函数序列(但也有不具有最终级的情况),将循环函数系列设定为相当于加密时的最终级的输出的值与原来的公用密钥一致,可以在加密时和解密时双方不用像现有那样耗费无用的时延和存储容量,从公用密钥随时生成扩展密钥。
下面,说明图1的加密装置、图2的解密装置的扩展密钥生成部的多个循环处理部的循环函数序列。由于加密装置的循环函数序列和解密装置的循环函数序列成为反函数关系,所以只要确定一个,也就可以确定另一个。在此,以加密装置为例进行说明。
对于循环函数序列f1、f2、…、fn+1,循环函数序列的内容或各顺序的循环函数的内容是该循环函数序列作为整体可以在满足输入公用密钥并输出与公共密钥相同值的条件的范围内适当设定,有各种变化。下面,举例说明几个循环函数序列的变形。
(循环行程结构)
在此,设循环函数序列的级数为2级(如上所述,也有不具有第2r级循环函数的情况)。
构成循环函数序列的1个方法是对于满足0≤i≤r的所有i构成为满足第(r+i)级的级函数成为第(r-i+1)级的级函数的反函数的关系的方法。
例如,将循环函数序列设为8级,即f1、f2、f3、f4、f5、f6、f7、f8,将f1~f4作为任意循环函数,如果设f5=f4 -1、f6=f3 -1、f7=f2 -1、f8=f1 -1,则成为f1、f2、f3、f4、f4 -1、f3 -1、f2 -1、f1 -1顺序的序列。即,通过将公用密钥作为输入依次采用f1、f2、f3、f4、f4 -1、f3 -1、f2 -1、f1 -1,使最终级的输出与公用密钥一致。
将这样的结构称为循环行程结构。图3示出其结构。
在采用循环行程时,加密装置的循环函数序列和解密装置的循环函数序列相同。
在上述例子的情况下,如果设加密装置的8级循环函数为f1、f2、f3、f4、f4 -1、f3 -1、f2 -1、f1 -1,则由于解密装置的8级循环函数成为其反函数,所以(f1 -1)、(f2 -1)-1、(f3 -1)-1、(f4 -1)-1、(f4)-1、(f3)-1、(f2)-1、(f1)-1,从而成为f1、f2、f3、f4、f4 -1、f3 -1、f2 -1、f1 -1,可知两者一致。
加密装置也可以不具有最终级循环函数(上述例中f1 -1),解密装置也可以不具有最终级循环函数(上述例中f1),但如果都具有最终级循环函数,则成为同一结构,所以在兼有加密功能和解密功能双方的装置中,还可以通过在加密时和解密时兼用1个扩展密钥生成部,可以减小装置规模。
在该结构中,循环函数序列的前半部分的各循环函数也可以全不同,也可以全相同,也可以是不同的和相同的混合在一起。
例如,在循环函数序列的前半部分的各循环函数全相同的情况下,如果设级数为8级,则加密侧和解密侧都成为f1、f1、f1、f1、f1 -1、f1 -1、f1 -1、f1 -1的序列。
但是,在采用循环行程的情况下,在循环函数序列中成为反函数关系的对应部分的子密钥相同。从而,如果对同一子密钥采用同一扩展密钥变换函数,则生成同一扩展密钥。因此,为了避免该问题,循环函数序列中也可以采用不同的成为反函数关系的对应部分的2个扩展密钥变换部的扩展密钥变换函数。
例如,设8级循环函数序列为f1、f2、f3、f4、f4 -1、f3 -1、f2 -1、f1 -1,如果设使用f1输出的扩展密钥变换函数为c1,…,使用f2 -1输出的扩展密钥变换函数为c7,则也可以使扩展密钥变换函数c1和扩展密钥函数c7不同。对于c2和c6、c3和c5也是同样的。
(环路结构)
在循环行程结构中,使循环函数序列的后半部分为其前半部分的反函数,但作为循环函数序列中的部分序列,也可以是不全具有相当于循环行程结构的部分的结构。
将这样的结构称为环路结构。图4概念性示出该结构。
在循环行程结构中,设循环函数序列的级数为偶数级,但在环路结构中,设循环函数序列的级数为偶数或奇数都可以。
例如,在将循环函数序列设为8级的情况下,通过以公用密钥作为输入依次采用f1、f2、f3、f4、f5、f6、f7、f8,使最终级的输出与公用密钥一致。此时,该反函数为f8 -1、f7 -1、f6 -1、f5 -1、f4 -1、f3 -1、f2 -1、f1 -1,如果输入公用密钥,则最终级的输出与公用密钥一致。
例如,在循环函数序列的前半部分的各循环函数都相同的情况下,如果将级数设为8级,则在加密侧成为f1、f1、f1、f1、f1、f1、f1序列,在解密侧成为f1 -1、f1 -1、f1 -1、f1 -1、f1 -1、f1 -1、f1 -1、f1 -1序列。
满足这样条件的函数有移位运算、行列运算、伽罗瓦域运算等各种运算。
(循环行程/环路复合结构)
作为循环函数序列也可以是具有作为其部分序列相当于循环行程结构的部分和相当于环路结构的部分复合的结构。
下面,作为用图3的表示方法示出循环行程结构部分,用图4的表示方法示出环路结构部分,图5~图9示出了几个变形例。
图5的例子是在循环行程结构部分的中途含有循环行程结构部分的插入子结构,如果例示图5情况下的循环函数序列,则成为a1 a2 a3 b1 b2 b2 -1 b1 -1a4 a5 a6 a6 -1 a5 -1 a4 -1 a3 -1 c1 c2 c2 -1 d1 d1 -1 c1 -1 a2 -1 a1 -1
在该例的情况下,在a1 a2 a3 a4 a5 a6 a6 -1 a5 -1 a4 -1 a3 -1 a2 -1 a1 -1循环行程结构中含有b1 b2 b2 -1 b1 -1循环行程结构和c1 c2 c2 -1 c1 -1循环行程结构,而且在c1 c2 c2 -1 c1 -1循环行程结构中含有d1 d1 -1循环行程结构。
图6的例子是在环路结构部分的中途含有环路结构部分的插入子结构。如果例示图6情况下的循环函数序列,则成为s1 s2 s3 s4 t1 t2 t3 s5 s6 s7 s8
在该例的情况下,在s1 s2 s3 s4 s5 s6 s7 s8环路结构中含有t1 t2 t3环路结构。
图7的例子是在环路结构部分的中途含有循环行程结构部分的结构,如果例示图7情况下的循环函数序列,则成为s1 s2 s3 s4 s5 a1 a2 a3 a3 -1 a2 -1 a1 -1 s6 s7 s8s9
在该例的情况下,s1 s2 s3 s4 s5 s6 s7 s8 s9环路结构中含有a1 a2 a3 a3 -1 a2 -1 a1 -1循环行程结构。
图8的例子是在循环行程结构部分的中途含有环路结构部分的结构。如果例示图8情况下的循环函数序列,则成为a1 a2 a3 a4 a5 a6 s1 s2 s3 s4 a6 -1 a5 -1 a4 -1 a3 -1a2 -1 a1 -1
在该例的情况下,在a1 a2 a3 a4 a5 a6 a6 -1 a5 -1 a4 -1 a3 -1 a2 -1 a1 -1循环行程结构中含有s1 s2 s3 s4环路结构。
图9的例子是具有4个循环行程结构部分和2个环路部分的结构。
当然,除此以外,还可以有组合循环行程结构部分和环路结构部分或采用层次结构等各种变形。
另外,图1、图2的结构例是假设只生成数据搅拌部所需数量的扩展密钥,但也可以具有可生成超过数据搅拌部所需个数的部分的扩展密钥的循环函数的级数,在数据搅拌部使用可生成的扩展密钥的一部分的结构。
图10、图11分别示出对应于此时的图1、图2的加密装置/解密装置的结构例。
在此,以和图1、图2的不同点为中心进行说明。当然,循环函数序列采用上述循环行程结构等即可。
图10的5和图11的5是表示扩展密钥ki和搅拌处理Rj的连接关系的选择部,图12~图15例示几个具体例。
也可以将输入给初级循环函数的公用密钥和从最终级循环函数输出的公用密钥的双方或一方作为子密钥用于扩展密钥的生成。在使用后者的情况下,实际上也可以使用最终级的循环函数的输出,也可以存储公用密钥并使用该密钥。
使可生成的扩展密钥的个数多于搅拌处理所需的扩展密钥个数,使扩展密钥ki和搅拌处理Rj适当对应。有可将同一扩展密钥用于多个搅拌处理的方法和,可将1个扩展密钥独自用于搅拌处理的方法。
也可以不生成无用的扩展密钥。此时,也可以不具有相应的扩展密钥变换部。
只将这样生成的扩展密钥的一部分用于数据搅拌的结构在防攻击的安全性方面有效。
下面,说明各种变形。
首先,数据搅拌部的搅拌处理级数为n,在(假设具有扩展密钥变换部)可生成的扩展密钥的个数为m(m>n)的情况下,基本上不允许重复使用扩展密钥的结构可以是从m个扩展密钥中任意选择n个扩展密钥的所有组合。在此,按生成的顺序使用扩展密钥。
允许重复使用扩展密钥的结构基本上可以有nm个组合。
关于选择哪一个扩展密钥的方法除了随机选择的方法之外,还有根据所定基准选择的方法。
称为SQUARE(平方)攻击的特殊攻击对于现有的加密方式,对初级(或与初级连接的数级)或最终级(或连接到最终级的数级)的扩展密钥的一部分位进行全部搜索。此时,在初级和最终级的扩展密钥相同时,搜索空间变小,从而可译码的可能性变大。
对于由初级扩展密钥变换部得到的扩展密钥(下面,称为初级扩展密钥)和由最终级扩展密钥变换部得到的扩展密钥(下面,称为最终级扩展密钥),也可以最多只将一方用于数据搅拌(有只将某一方用于数据搅拌的方法和都不用于数据搅拌的方法)。
同样,在从初级的连续的数级部分的扩展密钥和至最终级的连续的数级部分的扩展密钥范围中,也可以对于使离初级或最终级的级数相同的2个级的扩展密钥组,无论哪一组最多只将一方用于数据搅拌。此时,作为选择使用和不用的方法考虑了各种变形。例如,无论对哪一组,设使用某一方时,也可以按各组随机选择使用的一方(或不用的一方),例如也可以根据使前半部分和后半部分交互来选择等一定基准进行选择。例如,也可以随机选择,也可以根据一定基准选择使用级顺序在前的或级顺序在后的或都不用。
例如,如图12所示,在可生成15级扩展密钥,搅拌处理为9级的情况下,在初级扩展密钥k1和最终级扩展密钥k15之中使用k15,在其一内侧级的k2和k14之中使用k2,同样,也可以在k3和k13之中使用k13,在k4和k12之中使用k4,在k5和k11之中使用k11,在k6和k10之中使用k6。此时,也按生成的顺序使用扩展密钥。
也可以不在与初级的连续的数级部分的扩展密钥和至最终级的连续的数级部分的扩展密钥的范围使用。图13示出此时的情况。
也可以不在初级和最终级,或与初级的连续的数级部分的扩展密钥和至最终级的连续的数级部分的扩展密钥的范围使用,对于与其内侧的连续的数级部分的扩展密钥范围使用与上述对应的1组中的一方。图14示出此时的情况。
当然,除了上述例子之外,也可以有各种变形。
但是,至此虽然说明了按可生成扩展密钥的顺序用于数据搅拌,但如果存储器等硬件或计算时间有一定剩余,则也可以根据该剩余,更换生成扩展密钥的顺序和将扩展密钥用于数据搅拌的顺序。该顺序的更换在图1和图2的结构中也是同样的。该顺序的更换对防攻击的安全性方面是有效的。
图15示出更换生成扩展密钥的顺序和将扩展密钥用于数据搅拌的顺序的例子
在更换顺序时,例如,由于将先生成的扩展密钥在后生成的扩展密钥之后使用,所以暂时存储到存储器即可。如果只更换1个扩展密钥顺序,则只增加暂时存储1个扩展密钥所需的存储器容量。
为了不增加存储器,对子密钥采用循环函数的反函数并还原所需的子密钥即可。例如,在使用从第2级循环函数f2的子密钥kc2得到的扩展密钥k2之后使用从初级循环函数f1的子密钥kc1得到的扩展密钥k1时,暂时求出子密钥kc2之后,通过对kc2采用第2级循环函数f2的反函数f2 -1并求出子密钥kc1(这样得到扩展密钥k1),接着,对子密钥kc1采用第2级循环函数f2并求出子密钥kc2,对此采用第3级循环函数f3…,可以按使用顺序生成扩展密钥。在循环函数序列具有循环行程结构的情况下,由于也同时具有循环函数f2的反函数f2 -1,所以也可以在上述处理利用它。
上述的扩展密钥的选择和顺序的更换是固定的,但也可以变成可变的。
图16、图17分别示出了与此时的图10、图11的加密装置/解密装置对应的结构例。图中的7和8是译码器,15和16是开关电路。
此时,预先准备多种对各搅拌处理Rj对应扩展密钥ki的连接模式(参考图12等),编码各模式,将它作为扩展公用密钥kc′附加到原来的公用密钥kc。
在加密时,将扩展公用密钥kc`供给译码器7,译码器7译码扩展公用密钥kc`,对开关电路15进行开关控制,以便实现该扩展公用密钥kc`示出的连接模式(例如,图12等模式)。
这些工作在解密时也是同样的。
上述对模式进行了编码,但也可以代替它,采用表示不用的扩展密钥级数的信息等其它形态的信息。
这样的结构也对攻击的安全性方面是有效的。
在上述各结构例中,如图18所示,也可以对初级和最终级插入像伪阿达码变换那样的辅助函数13。此时,也可以对初级辅助函数和最终级辅助函数使用同一扩展密钥(例如初级扩展密钥)。伪阿达码变换例如相当于将块数据的左半部分和右半部分算数相加作为新的左半部分,将新的左半部分和右半部分算数相加作为新的右半部分的处理。图18是将辅助函数插入加密装置的例子,但在解密装置也可以同样插入辅助函数。
下面,说明加密装置和解密装置的扩展密钥生成部的循环处理部的变形。
图19示出了311~31n的1个循环处理部的结构例。图19中,101是作为8位非线性变换模块的S-box(S-盒),103是基于MDS(Maximum DistanceSeparable;最大距离分离)行列的32位的搅拌部。该例是作为子密钥的全部或一部分输入32×k位数据,并输出32×k位扩展密钥,将对41并行的S-box101连接了搅拌部103作为1个单位102,并行设置k个。
当然,如上所述,扩展密钥生成部有各种结构。
但是,不能完全否定由于某种破解而某个级(一般最终级)的扩展密钥(的一部分)被公开的可能性。假定如果某个级的扩展密钥被公开,则通过进行扩展密钥变换部的反变换,可以知道该级的(对于循环函数)的子密钥,其结果,知道其它级的所有子密钥,结果,所有扩展密钥可能被公开。
因此,在一部分(例如,包含最终级的1级或数级)的扩展密钥变换部中,也可以使用难以反变换的函数(例如,幂函数)或不能唯一反变换的函数(例如,多对一函数)。这样,可以使不易破解其他级的扩展密钥,从而可维持安全性。当然,也可以对全部扩展密钥变换部使用不易反变换的函数或不能唯一确定反变换的函数。
也可以对扩展密钥变换部供给对应级的子密钥的所有数据,但也可以代替只传递对应级的一部分子密钥,使子密钥的所有数据不公开,由此维持安全性。
被称为侧通道分析的特殊攻击对于用硬件构成的加密装置基于功率、电磁波等、从IC(集成电路)卡等装置泄漏的信息进行密钥的推测。特别是在数据搅拌部的某个回路中,有具有同一结构的多个回路部分,如果这些回路的输入位串和该回路所用的密钥位串(扩展密钥本身或扩展密钥的一部分数据)相同,从侧通道信息(例如,消耗电流的变化)的相同性推测输入到该回路的位串为相同的。因此,在扩展密钥生成中最好不要生成成为在IC卡等中的问题的使侧通道分析容易的密钥。
因此,在至少可直接观测或估计处理要素(回路部分)的输入输出的一部分的不同的处理要素(回路部分)中,不使用同一扩展密钥的扩展密钥生成方法是有效的。
将扩展密钥变换部或扩展密钥变换部和循环处理部、或循环处理部设计为所有扩展密钥通常不一致,也可以允许偶尔一致。
也可以将扩展密钥变换部、或扩展密钥变换部和循环处理部、或循环处理部设计为所有扩展密钥通常不一致,同时在生成公用密钥时,检验所有扩展密钥是否不同,并只在判断为所有扩展密钥不同时,使用该公用密钥。
在此,对于扩展密钥的一致考虑了各种电平。例如,也可以在2个扩展密钥的所有位相同时判断为一致。也可以在2个扩展密钥的特定字节位置的数据相同时判断为一致。也可以在2个扩展密钥的所有位或2个扩展密钥的特定字节位置的数据之间有一定关系时判断为一致。除此之外,有各种一致判断方法。
下面,说明加密装置和解密装置的扩展密钥生成部的多个循环处理部的变形。
图20示出循环处理部的序列结构例。图20的例子中示出了3级部分,但各级的结构为所定级数从属连接。图20中例示了公用密钥为128位,各级的扩展密钥为64位的情况。图中,105是非线性映射F,107的记号表示“异”,该105和107是图1的311~31n的1个。
非线性映射F也可以在所有级都相同,也可以根据级不同而不同。在后者的情况下,基本上具有相同结构,但也可以依赖于根据级而不同的常数。
也可以在加密侧(或解密侧)使用图20和图20的反函数中的一个。
一般,由于即使使用差分破解法或线性破解法强有力的破解法,最终级扩展密钥中特定最多数位是有限的,所以认为循环函数序列在图20所示的简单的Feistel结构下也较安全,但如果因更强有力的破解法的出现而希望有更安全的结构,则例如也可以使用图21所示的循环函数序列。
图21的例子中示出了2级部分,但各级的结构是所定级数从属连接。图21中例示了公用密钥为128位,各级的扩展密钥为64位的情况。图中,109、111和113分别示出了非线性函数f、g和h,115的标号表示“异”。非线性函数f、g和h也可以全部相同,也可以全部不同,也可以部分相同。
图22示出了图21的非线性函数f、g和h的结构例。图22中,119为8位S-box,121为基于MDS行列的32位的搅拌部。
图21与图20相比更难以从输出的128位唯一确定子密钥。
图23示出图21的反函数。也可以在加密侧(或解密侧)使用图21和图23中的一个。
下面,示出适用了本发明的加密装置的一个具体例。
图24示出本加密装置的结构例。
该加密装置是128位(或64位)的块加密,公用密钥为256位(或128位)的例子。循环函数序列是具有循环行程结构的例子。在通常的SPN结构的S-box的部分递归放入小型SPN结构的包含型SPN结构的例子。
图24中,数据搅拌部202在重复构造循环函数(DU)处理部201和循环函数(DD)处理部203之后,连接循环函数(DU)处理部201、循环函数(DD(woMDSH:without MDSH)205和循环函数(EXOR)207。
扩展密钥生成部204中,单元209和单元211对相当于1级部分的循环函数,但是,图24的例子是在单元209和单元209之间以及单元211和单元211之间不是出现图1的子密钥,而是在单元209和单元211的内部出现子密钥的结构。
图25示出了128位块加密情况下的图24的单元201的结构例。图25中,215是用于密钥相加的8位“异”,217为8位S-box,219为基于MDS行列的32位的搅拌部,并行设有4个单元213。
在64位块加密的情况下,并行设有2个S-box223。
图26示出了128位块加密情况下的图24的单元203的结构例。图26中,221为用于密钥相加的8位“异”,223为16个并行的8位S-box,225为基于MDS行列的128位的搅拌部。
在64位块加密的情况下,并行设有8个S-box223。
图27示出在128位块加密的情况下的图24的单元205的结构例。图27中,227为用于密钥相加的8位“异”,229为16个并行的8位S-box。
在64位的块加密的情况下,并行设置8个229的S-box。
在128位的块加密的情况下,单元207是对从单元205输出的128位块数据相加128位扩展密钥的“异”。
在64位块加密的情况下,单元207是对从单元205输出的64位块数据相加64位扩展密钥的“异”。
图28示出公用密钥的位长度为256位时的图24的扩展密钥生成部204的结构例。图28基于图3所示的循环行程结构,只示出初级部分和返回部分。图中,231是非线性函数F,233是“异”,235是与根据级而不同的常数const(r)的“异”。以后再说明231、237、239、241、243的单元。
图29示出公用密钥的位长度为128位时的图24的扩展密钥生成部204的结构例。图29也基于图3所示的循环行程结构,只示出了初级部分和返回部分。图中,251为非线性函数F,253为“异”,255为与根据级而不同的常数const(r)的“异”。以后再说明251、257、259、261、263的单元。
图30示出图28的非线性函数231、图29的非线性函数251的结构例。图中,2311为“异”,2313为S-box。以后再说明2315、2317。
下面,说明表示为图28的P(32)的单元237、表示为图29的P(16)的单元257、表示为图30的P(16)的单元2315,表示为图30的P(8)的单元2317。图31示出这些共同的一般结构例。图中,265为“异”,进行4次取某个i位和另一i位的“异”的操作。用P(i)表现了该结构的是各图的P(8)、P(16)、P(32)。即,图28的单元237是在图31的结构中为i=32,图29的单元257在图31的结构中为i=16,图30的单元2315在图31的结构中为i=16,图30的单元2317在图31的结构中i=8。
图32示出作为图31的P(i)的反变换(P(i))-1的结构例。图中,267是“异”。图28的单元243在图31的结构中为i=32,在图29的单元263在图31的结构中为i=16。
图30是在128位的块加密的情况下,但在64位块加密的情况,即在图29的非线性函数251的情况下,在图30设P(8)为P(4),P(16)为P(8)即可。
接着,说明图28、图29、图30中表示为“5”的带有斜线单元239、259、2313、图28、图29中表示为“B”的带有斜线单元241、261。
图33示出表示为“5”的单元和表示为“B”的单元的结构例。两者的不同点是图33的单元269的函数内容。
图33的结构是对输入乘以伽罗瓦域GF(24)的元5,或乘以B的结构。
即,将成为输入的32位分为4组8位,汇集8位数据的同一位置数据(例如,在图33示出最上位的最下位的例子)的1位将其设为1组4位数据,将8组各4位数据的每一个看做GF(24)的元。还有,对各4位数据由各单元269(根据伽罗瓦域上的乘法)乘以5或B之后,将各位返回分别对应的原位置。
以上说明了取出相同位置的位并进行处理,但也可以取出不同位置的位(排除)进行处理。
伽罗瓦域上的乘法也可以利用查表,也可以利用运算,也可以利用实际回路。
图34A示出元5的图33的单元269的部分结构例,即GF(24)上的乘法的连线表示(连线模型)。图34B示出元B的图33的单元269的部分的结构例,即GF(24)上的乘法的连线表示(连线模型)。如上所述,在结合部分271进行了“异”。即,此时,表示为图28、图29的5的单元239、259可以利用图33和图34A构成,表示为图29、图30的B的单元241、261可以利用图34A和图34B构成。
图35对GF(24)的1~F的各个元示出伽罗瓦域GF(24)上的乘法的连线表示(连线模型)。另外,结合部分是“异”。
但是,在使数据搅拌部的扩展密钥工作的对象为已知或比较容易可估测的部分使用的扩展密钥,例如数据搅拌部的最初“异”运算和,从输出和密钥的推测中可估计数据的最终密钥加法之前的“异”运算部的扩展密钥中,最好防止以不同位置的运算元素单位(此例的情况下,单位为8位)扩展密钥通常一致或通常具有一定关系。
作为一结构例,将扩展密钥生成为(或选择公用密钥)上述数据搅拌部的最初“异”运算所用的扩展密钥与,最终密钥相加之前的“异”运算部的扩展密钥不会以要素单位(此例的情况下,单位为8位)保持通常一致。这样,可以防止使侧通道分析容易的扩展密钥的一致或成立一定关系。
对应于图24的解密装置的结构对于数据搅拌部成为图24的数据搅拌部的反函数。扩展密钥生成部在加密侧和解密侧都具有最终级的循环函数的情况下,成为与图24的扩展密钥生成部同样的结构。当然,也可以在加密侧和解密侧都不具有最终级循环函数。
一边参考图1~图34A、图34B,一边说明的上述实施例中举了128位等的特定位长度,但当然也可以适用于任何长度的块数据。
任何结构的数据搅拌部都可以适用。
下面,说明图24的加密装置的扩展密钥生成部204的另一结构例。图36示出公用密钥的位长度在256位时的图24的加密装置的扩展密钥生成部204A的结构例。图36基于图3所示的循环行程结构,只示出初级部分和返回部分。图中,231A是非线性函数F,233为“异”,235为与根据级而不同的常数const(r)的“异”。以后再说明231A、237A、239A、240A、241A、242A、243A的单元。另外,图中的0.5L表示第0.5级的左半部分,0.5R表示第0.5级的右半部分。同样,1.0L表示第1.0级的左半部分,1.0R表示第1.0级的右半部分。这样,区分输入成为Hierocrypt的输入的放大S-box的初级的密钥是否是下一级的输入密钥。
图37示出图36的非线性函数231A的结构例。图中,2311为“异”,2313为S-box,2315为P(16)。
图38A、图38B是图36的表示为P(32)的单元237A、表示为(P(32))-1的单元243A的具体结构。进行4次取某32位和另一32位的“异”的操作。
图36的表示为“5”“E”“B”“3”带有斜线单元239A、240A、241A、242A是对输入乘以伽罗瓦域GF(24)的元5、E、B、3,具有图35所示的连线表示(连线模型)。
表1示出输入到各级的“异”235的根据级而不同的常数const(r)。表2、表3示出供给初级的密钥的位数为192位、128位的情况。密钥级数表示从原密钥看在利用第几个密钥级函数。另外,在密钥的位数为192位、128位的情况下,为了对初级使位数扩展到256位而进行填充。图39A示出使192位扩展到256位的填充级的结构,图39B示出使128位扩展到256位的填充级的结构。图40示出虚拟级的密钥生成部。表4示出常数G(0)~G(5)。
                  表1
                  25位(8R)
    扩展密钥     函数     常数     级
                                                               无填充
    -     KEp     G(5)     虚拟
    K1     KEp     G(4)     1
    K2     KEp     G(0)     2
    K3     KEp     G(2)     3
    K4     KEp     G(1)     4
    K5     KEp     G(3)     5
    K6     KEc     G(3)     5
    K7     KEc     G(1)     4
    K8     KEc     G(2)     3
    K9     KEc     G(0)     2
              表2
              192位(7R)
    扩展密钥   函数     常数     级
    -                              H_2‖H_3     填充
    -     KEp     G(5)     虚拟
    K1     KEp     G(1)     1
    K2     KEp     G(0)     2
    K3     KEp     G(3)     3
    K4     KEp     G(2)     4
    K5     KEc     G(2)     4
    K6     KEc     G(3)     3
    K7     KEc     G(0)     2
    K8     KEc     G(1)     1
                 表3
                 128位(6R)
    扩展密钥     函数     常数     级
    -                              H_3‖H_2     填充
    -     KEp     G(5)     虚拟
    K1     KEp     G(0)     1
    K2     KEp     G(1)     2
    K3     KEp     G(2)     3
    K4     KEp     G(3)     4
    K5     KEc     G(3)     4
    K6     KEc     G(2)     3
    K7     KEc     G(1)     2
                                   表4
    G(0)     G(1)     G(2)     G(3)     G(4)     G(5)
    H_3‖H_0     H_2‖H_1     H_1‖H_3     H_0‖H_2     H_2‖H_3     H_1‖H_0
H_0=0x5A827999
H_1=0x6ED9EBA1
H_2=0x8F1BBCDC
H_3=0xCA62C1D6
H_4=0xF7DEF58A
                  表5
                  128位(6R)
    扩展密钥     函数     常数     级
    -     KEp     H_0     虚拟
    K1     KEp     H_1     1
    K2     KEp     H_2     2
    K3     KEp     H_3     3
    K4     KEp     H_4     4
    K5     KEc     H_4     4
    K6     KEc     H_3     3
    K7     KEc     H_2     2
下面,说明图24的加密装置的扩展密钥生成部204的又另一结构例。图41示出公用密钥的位长度为128位时的图24的加密装置的扩展密钥生成部204B的结构例。图4也基于图3所示的循环行程结构,只示出初级部分和返回部分。图中,231B为非线性函数F,233为“异”,235为与根据级而不同的常数const(r))的“异”。以后再说明231B、237B、239B、240B、241B、242B、243B单元。
图42示出图341的非线性函数231B的结构例。图中,2311为“异”,2313为S-box,2315B为P(8)。
图43A、图43B是图41的表示为P(16)的单元237B、表示为(P(16))-1的单元243B的具体结构。进行4次取某个16位和其他16位的“异”的操作。
图41的表示为“5”“B”的带有斜线的单元是对输入乘以伽罗瓦域GF(24)的5、B元,具有图35所示的连线表示(连线模型)。
表5示出输入到各级的“异”235的根据级而不同的常数const(r)。图44示出虚拟级的密钥生成部。常数H_0~H_4示于表4。
下面,说明本实施例的硬件结构、软件结构。
本实施例的加密装置和解密装置用软件或硬件都可以实现。
在用软件实现的情况下,本实施例是记录了实现加密装置和解密装置的程序,用于对计算机执行所定手段的(或使计算机作为所定手段工作的,或用于使计算机实现所定功能的)程序的计算机可读取的记录媒体。
在构成为硬件的情况下,可以形成为半导体装置。
在构成适用了本发明的加密装置和解密装置的情况下,或生成加密程序或解密程序的情况下,也可以分别生成所有块或模块,但也可以只准备1个或适当数量的具有同一结构的块或模块,并将其在算法的各部分中共用(循环使用)。
在软件的情况下,也可以利用多重处理而进行并行处理,使处理高速化。
也可以构成具有加密功能而不具有解密功能的装置,也可以构成具有解密功能而不具有加密功能的装置,也可以构成具有加密功能和解密功能双方的装置。同样,也可以构成具有加密功能而不具有解密功能的程序,也可以构成具有解密功能而不具有加密功能的程序,也可以构成具有加密功能和解密功能双方的程序。
下面,说明对本实施例的系统的应用。
本实施例的加密方式基本上可适用于任何系统。
例如,如图45所示,在发送侧装置301和接收侧装置303之间利用所定方法或程序安全共有密钥,发送侧装置301是将发送数据按块长度以本实施例的加密方式进行加密,按照所定协议,经通信网络302,将密文发送给接收侧装置303,接收到密文的接收侧装置303将接收到的密文按块长度以本实施例的加密方式进行解密,从而可以得到原来的明文。各装置如果具有加密功能和解密功能双方,则可以在双方向进行加密通信。
例如,如图46所示,计算机311用所定方法生成密钥,将要保存的数据按块长度以本实施例的加密方式进行加密,经所定网络(例如,LAN、因特网等)314,作为加密数据保存到数据服务器313。计算机311在希望读取该数据时,从数据服务器313读入所要的加密数据,将其按块长度以本实施例的加密方式进行加密,从而可以得到原来的明文。其他计算机312如果知道该密钥,则可以同样解密得到原来的明文,但不知道密钥的其他计算机不能解密该加密数据,从而可以进行信息的安全控制。
例如,如图47所示,在内容提供侧利用加密装置321将某个内容用某个密钥,按块长度以本实施例的加密方式加密,将其作为加密内容记录到记录媒体322,并分发等。取得记录媒体322的用户侧通过用所定方法输入某个密钥,利用解密装置323将该内容按块长度以本实施例的加密方式进行解密,并可以进行内容的阅览或再生等。
当然,除上述之外,还可以适用各种系统。
本实施例是在加密时的数据搅拌处理和解密时的数据搅拌处理按相反顺序使用多个扩展密钥的公用密钥加密方式的加密装置或解密装置,具有对于多级循环函数,在初级将公用密钥作为输入实施所定循环函数并生成子密钥,在第2级以后,将在前一级生成的子密钥作为输入实施所定循环函数,并生成新的子密钥的循环处理部和,对上述循环处理部的全部或其一部分级生成的上述在密钥的每一个,将其全部或一部分原封不动或对其实施所定变换处理之后,作为上述扩展密钥输出的输出部,上述循环处理部是从属连接了多个循环函数的循环函数序列,将上述公用密钥输入到该初级的情况下,在设定为该最终级生成与该公用密钥同一值的循环函数序列的所有级或其中一部分,将从初级连接的多级的循环函数根据该循环函数序列的级顺序实施。
也可以将上述循环函数序列设定为使与初级的级数和与最终级的级数一致的2个循环函数互为反函数。
上述循环函数序列也可以是至少包含对于连接第1特定级和第2特定级之间的多级,设定为使与该第1特定级的级数和与该第2特定级的级数一致的2个循环函数互为反函数的部分序列。
上述循环函数序列也可以是至少包含对于连接到从第1特定级向级数增加方向隔特定级数的级的范围和连接到从第2特定级向级数减少方向隔有特定级数的级的范围,设定为使与该第1特定级的级数和与该第2特定级的级数一致的2个循环函数互为反函数的部分序列。
上述输出部在为了输出上述扩展密钥而使用上述子密钥时,对于该子密钥,也可以只使用不能唯一确定从该所有位中选择的该子密钥的部分。
属于上述循环函数序列的循环函数之中,也可以至少将对应于属于连接到该初级或从初级向增加方向隔了所定级数的级的范围,以及或连接到最终级或从最终级向级数减少方向隔了所定级数的级的范围的循环函数的子密钥不作为上述扩展密钥或成为其原始的数据使用。
属于上述循环函数序列的循环函数之中,也可以至少将对应于与其初级的级数和与最终级的级数一致的2个循环函数的子密钥的某一方或双方不作为上述扩展密钥或成为其原始的数据使用。
属于上述循环函数序列的循环函数之中,也可以至少将对应于属于连接到该初级或与初级向级数增加方向隔有所定级数的级的范围,以及或连接到最终级或从最终级向级数减少方向隔有所定级数的范围的循环函数的子密钥中,与初级的级数和与最终级的级数一致的2个循环函数的某一方或双方的子密钥不作为上述扩展密钥或成为其原始的数据使用。
也可以使多个上述扩展密钥中的任意密钥通常不一致。
也可以使多个上述扩展密钥中的任意密钥对于扩展密钥的所有位中的任意位组通常不一致。
上述循环处理部以及上述输出部可以将超过上述数据搅拌处理所需的扩展密钥数的个数的扩展密钥提供给该数据搅拌处理,将表示上述可提供的扩展密钥中实际上应提供给上述数据搅拌处理的扩展密钥的信息,或表示应提供给上述数据搅拌处理的扩展密钥以及其提供的顺序的信息作为扩展公用密钥,上述输出部根据上述扩展公用密钥输出上述扩展密钥。
本实施例是用于加密时的数据搅拌处理和解密时的数据搅拌处理按相反的顺序使用多个扩展密钥的公用密钥加密方式的加密装置或解密装置的扩展密钥生成装置,具有对于多级的循环函数,在初级将公用密钥作为输入实施所定循环函数并生成子密钥,在第2级以后,将前一级生成的子密钥作为输入实施所定循环函数,并生成新的子密钥的循环处理部,和,对于上述循环处理部的全部或一部分级生成的上述各子密钥,将该子密钥的所有位或其一部分原封不动或对其实施所定变换处理之后作为上述扩展密钥输出的输出部,上述循环处理部是从属连接了多个循环函数的循环函数序列,在设定为将上述公用密钥输入到其初级时该最终级生成与该公用密钥同一值的循环函数序列的所有级或其一部分,将从初级连接的多级的循环函数根据该循环函数序列的级顺序实施
根据本实施例,通过将用于生成扩展密钥的循环函数序列设定为输入公用密钥,输出与公用密钥相同值,在加密时和解密时双方不像现有那样耗费无用的时延和存储容量,可以从公用密钥随时生成扩展密钥。
本实施例示出的各结构是一例,不排除其他结构,而是可以通过用其他部分置换例示结构的一部分,或去掉例示结构的一部分,或对例示的结构附加其他功能,或将其组合等而得到的其他结构。也可以是与例示的结构在逻辑上相等的其他结构,含有与例示的结构在逻辑上相等的部分的其他结构,与例示的结构的主要部分在逻辑上相等的其他结构等。也可以是与例示的结构相同或达到类似目的的其他结构,与例示的结构相同或具有类似效果的其他结构等。
本发明不限于上述实施例,可在该技术范围内实施各种变形。例如,可以适当组合并实施各种结构部分的各种变形。本发明是内在包含作为加密装置的发明,作为解密装置的发明,作为系统整体的发明,作为对个别装置内部的结构部分的发明,或作为对应这些的方法的发明,记录了用于使计算机执行所定功能的、使计算机作为所定手段工作的、或使计算机实现所定功能的程序的计算机可读取的记录媒体等各种观点、层次、概念或种类的发明。

Claims (12)

1.一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:
循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;
输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;
上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为从初级开始的级数和从最终级开始的级数一致的两个循环函数互为反函数。
2.一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:
循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;
输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;
上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为,在至少第一特定级和第二特定级之间的连续多个级中,从该第一特定级开始的级数和从该第二特定级开始的级数一致的两个循环函数互为反函数。
3.一种公用密钥加密装置,是在加密时的数据搅拌处理和解密时的数据搅拌处理中按相反顺序使用多个扩展密钥的公用密钥加密装置,其特征在于具有:
循环处理装置,对于多级循环函数,在初级将公用密钥输入循环函数而生成子密钥,在第2级之后,将前一级生成的子密钥输入循环函数并生成新的子密钥;
输出装置,对于在上述循环处理装置的全部或一部分的级上生成的上述子密钥的每一个,将该子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为上述扩展密钥输出;
上述循环处理装置,在作为将多个循环函数从属连接的循环函数序列的全部级或其一部分级中,按照该循环函数序列的级的顺序施加从初级开始连续的多个级的循环函数,其中在该循环函数序列中设定为当将上述公用密钥输入其初级的时候其最终级生成与在上述初级输入的该公用密钥相同的值,上述循环函数序列设定为,在至少从第一特定级开始按照级数增加的方向到相隔特定级数的级为止的连续范围和从第二特定级开始按照级数减小的方向到相隔特定级数的级为止之间的连续范围中,从该第一特定级开始的级数和从该第二特定级开始的级数一致的两个循环函数互为反函数。
4.如权利要求1到3任一项所述的公用密钥加密装置,其特征在于:
上述输出装置,在为输出上述扩展密钥使用上述子密钥的时候,对于该子密钥,仅仅使用不能充分地唯一决定从该子密钥所有位中选择出的相应子密钥的部分。
5.如权利要求1所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与其初级或者从初级级开始到在级数增加的方向上相隔了特定级数的级为止、和/或最终级或者从最终级开始到在级数减小的方向上相隔了特定级数的级为止之间的、循环函数对应的子密钥,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
6.如权利要求1所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与从其初级开始的级数和从其最终级开始的级数一致的两个循环函数对应的子密钥的一个或者两个,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
7.如权利要求1所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与其初级或者从初级级开始到在级数增加的方向上相隔了特定级数的级为止、和/或其最终级或者从最终级开始到在级数减小的方向上相隔了特定级数的级为止之间的、循环函数对应的子密钥中,对应于与从其初级开始的级数和从其最终级开始的级数一致的两个循环函数的一个或者两个的子密钥,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
8.如权利要求1到3任一项所述的公用密钥加密装置,其特征在于:上述输出装置,对于上述多个级的循环处理装置输出的多个子密钥,将该子密钥的顺序更换,将子密钥的所有位或其一部分原封不动或对其实施预定的变换处理之后作为扩展密钥输出;子密钥的发生顺序和扩展密钥的发生顺序不同。
9.如权利要求1到3任一项所述的公用密钥加密装置,其特征在于:上述循环处理装置和上述输出装置,可以为上述数据搅拌处理提供超过上述数据搅拌处理所需的扩展密钥的个数的扩展密钥,将表示上述可提供的扩展密钥中实际上应提供给上述数据搅拌处理的扩展密钥的信息、或者表示应提供给上述数据搅拌处理的扩展密钥及其提供的顺序的信息,作为扩展公用密钥,上述输出装置根据上述扩展公用密钥,输出上述扩展密钥。
10.如权利要求2或3所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与其初级或者从初级开始到上述第一特定级的在级数增加的方向上相隔了特定级数的级为止、和/或其最终级或者从最终级开始到上述第二特定级的在级数减小的方向上相隔了特定级数的级为止之间的、循环函数对应的子密钥,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
11.如权利要求2或3所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与从其初级开始到上述第一特定级为止的级数一致的两个循环函数所对应的子密钥的一个或者两个所对应的子密钥,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
12.如权利要求2或3所述的公用密钥加密装置,其特征在于:在属于上述循环函数序列的循环函数中,至少与其初级或者从初级开始到上述第一特定级为止的在级数增加的方向上相隔了特定级数的级为止、和/或其最终级或者从最终级开始到上述第二特定级为止的在级数减小的方向上相隔了特定级数的级为止之间的连续范围中的、循环函数对应的子密钥中,与从其初级开始的级数和从其最终级开始的级数一致的两个循环函数的一个或者两个对应的子密钥,不作为上述扩展密钥或者不作为成为该扩展密钥的数据而使用。
CNB011431539A 2000-07-12 2001-07-12 公用密钥加密装置 Expired - Fee Related CN1203431C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP211686/2000 2000-07-12
JP2000211686A JP3505482B2 (ja) 2000-07-12 2000-07-12 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体

Publications (2)

Publication Number Publication Date
CN1349182A CN1349182A (zh) 2002-05-15
CN1203431C true CN1203431C (zh) 2005-05-25

Family

ID=18707748

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011431539A Expired - Fee Related CN1203431C (zh) 2000-07-12 2001-07-12 公用密钥加密装置

Country Status (6)

Country Link
US (1) US7194090B2 (zh)
EP (1) EP1172965B1 (zh)
JP (1) JP3505482B2 (zh)
KR (1) KR100435052B1 (zh)
CN (1) CN1203431C (zh)
DE (1) DE60125651D1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7305085B2 (en) * 2000-06-30 2007-12-04 Kabushiki Kaisha Toshiba Encryption apparatus and method, and decryption apparatus and method based on block encryption
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
DE60301750T2 (de) * 2002-04-03 2006-07-06 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
JP4515716B2 (ja) * 2002-04-03 2010-08-04 パナソニック株式会社 拡大鍵生成装置、暗号化装置および暗号化システム
US20040136537A1 (en) * 2002-07-19 2004-07-15 Hammersmith Wolfgang S. Cryptographic key distribution using key unfolding
JP2004054834A (ja) * 2002-07-24 2004-02-19 Matsushita Electric Ind Co Ltd プログラム開発方法、プログラム開発支援装置およびプログラム実装方法
KR100940202B1 (ko) * 2002-08-29 2010-02-10 삼성전자주식회사 일방향 함수를 사용하여 계층적으로 암호화하는 장치 및방법
JP4099039B2 (ja) * 2002-11-15 2008-06-11 松下電器産業株式会社 プログラム更新方法
US7702904B2 (en) 2002-11-15 2010-04-20 Nec Corporation Key management system and multicast delivery system using the same
JP2004212828A (ja) * 2003-01-08 2004-07-29 Sony Corp 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7227955B2 (en) * 2003-02-07 2007-06-05 Magiq Technologies, Inc. Single-photon watch dog detector for folded quantum key distribution system
US7536560B2 (en) * 2003-04-18 2009-05-19 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic key size
US7392400B2 (en) * 2003-04-18 2008-06-24 Via Technologies, Inc. Microprocessor apparatus and method for optimizing block cipher cryptographic functions
US7925891B2 (en) * 2003-04-18 2011-04-12 Via Technologies, Inc. Apparatus and method for employing cryptographic functions to generate a message digest
US7519833B2 (en) * 2003-04-18 2009-04-14 Via Technologies, Inc. Microprocessor apparatus and method for enabling configurable data block size in a cryptographic engine
US7529368B2 (en) 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent output feedback mode cryptographic functions
US7900055B2 (en) 2003-04-18 2011-03-01 Via Technologies, Inc. Microprocessor apparatus and method for employing configurable block cipher cryptographic algorithms
US7502943B2 (en) * 2003-04-18 2009-03-10 Via Technologies, Inc. Microprocessor apparatus and method for providing configurable cryptographic block cipher round results
US7532722B2 (en) * 2003-04-18 2009-05-12 Ip-First, Llc Apparatus and method for performing transparent block cipher cryptographic functions
US7529367B2 (en) * 2003-04-18 2009-05-05 Via Technologies, Inc. Apparatus and method for performing transparent cipher feedback mode cryptographic functions
US7321910B2 (en) * 2003-04-18 2008-01-22 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7844053B2 (en) * 2003-04-18 2010-11-30 Ip-First, Llc Microprocessor apparatus and method for performing block cipher cryptographic functions
US7539876B2 (en) * 2003-04-18 2009-05-26 Via Technologies, Inc. Apparatus and method for generating a cryptographic key schedule in a microprocessor
US8060755B2 (en) * 2003-04-18 2011-11-15 Via Technologies, Inc Apparatus and method for providing user-generated key schedule in a microprocessor cryptographic engine
US7542566B2 (en) 2003-04-18 2009-06-02 Ip-First, Llc Apparatus and method for performing transparent cipher block chaining mode cryptographic functions
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
CA2522862A1 (en) 2003-05-23 2005-03-24 Washington University Intelligent data storage and processing using fpga devices
WO2004112308A1 (en) * 2003-06-12 2004-12-23 Philips Intellectual Property & Standards Gmbh Processor for encrypting and/or decrypting data and method of encrypting and/or decrypting data using such a processor
JP4622222B2 (ja) 2003-09-30 2011-02-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
JP2005340892A (ja) * 2004-05-24 2005-12-08 Matsushita Electric Ind Co Ltd 暗号回路
JP4561252B2 (ja) 2004-09-03 2010-10-13 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
US7873166B2 (en) * 2005-09-13 2011-01-18 Avaya Inc. Method for undetectably impeding key strength of encryption usage for products exported outside the U.S
US8379841B2 (en) 2006-03-23 2013-02-19 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
US20080037775A1 (en) * 2006-03-31 2008-02-14 Avaya Technology Llc Verifiable generation of weak symmetric keys for strong algorithms
JP4961909B2 (ja) * 2006-09-01 2012-06-27 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにコンピュータ・プログラム
WO2008031205A1 (en) * 2006-09-13 2008-03-20 Elliptic Semiconductor Inc. Multiple sequential security key encryption - decryption
US8879727B2 (en) * 2007-08-31 2014-11-04 Ip Reservoir, Llc Method and apparatus for hardware-accelerated encryption/decryption
JP4939305B2 (ja) * 2007-05-25 2012-05-23 ルネサスエレクトロニクス株式会社 暗号/復号装置
KR101437962B1 (ko) * 2007-06-26 2014-09-15 삼성전자주식회사 데이터 처리 장치 및 데이터 처리 방법
WO2009104827A1 (en) * 2008-02-20 2009-08-27 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
JP5163178B2 (ja) * 2008-02-25 2013-03-13 沖電気工業株式会社 暗号化鍵生成装置及び方法
CN101714904B (zh) * 2008-10-08 2012-05-09 中兴通讯股份有限公司 密钥管理系统和方法
US20100246828A1 (en) * 2009-03-30 2010-09-30 David Johnston Method and system of parallelized data decryption and key generation
MY145989A (en) * 2009-06-29 2012-06-04 Mimos Berhad A polymorphic cipher
CN103188219A (zh) * 2011-12-28 2013-07-03 北大方正集团有限公司 一种数字版权管理方法、设备及系统
EP2677327A1 (en) * 2012-06-21 2013-12-25 Gemalto SA Method for producing an electronic device with a disabled sensitive mode, and method for transforming such an electronic device to re-activate its sensitive mode
JP2015191107A (ja) * 2014-03-28 2015-11-02 ソニー株式会社 暗号処理装置、および暗号処理方法、並びにプログラム
JP6877889B2 (ja) * 2016-04-08 2021-05-26 ソニーグループ株式会社 暗号化装置、暗号化方法、復号化装置、及び復号化方法
WO2018119035A1 (en) 2016-12-22 2018-06-28 Ip Reservoir, Llc Pipelines for hardware-accelerated machine learning
JP7296609B2 (ja) * 2017-11-14 2023-06-23 地方独立行政法人東京都立産業技術研究センター デジタル処理装置、デジタル処理装置の製造方法及びプログラム

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3114991B2 (ja) 1990-11-30 2000-12-04 株式会社東芝 データ通信システム
US5432848A (en) * 1994-04-15 1995-07-11 International Business Machines Corporation DES encryption and decryption unit with error checking
US5724428A (en) * 1995-11-01 1998-03-03 Rsa Data Security, Inc. Block encryption algorithm with data-dependent rotations
CA2164768C (en) * 1995-12-08 2001-01-23 Carlisle Michael Adams Constructing symmetric ciphers using the cast design procedure
KR0153758B1 (ko) * 1995-12-26 1998-11-16 양승택 입출력 변화 공격과 선형 공격에 안전한 대치회로 생성기 및 생성방법
US5740249A (en) * 1996-04-09 1998-04-14 Kabushiki Kaisha Toshiba Encryption apparatus and method capable of controlling encryption process in accordance with an internal state
US5745577A (en) * 1996-07-25 1998-04-28 Northern Telecom Limited Symmetric cryptographic system for data encryption
US5933501A (en) * 1996-08-01 1999-08-03 Harris Corporation `Virtual` encryption scheme combining different encryption operators into compound-encryption mechanism
KR19980027399A (ko) * 1996-10-16 1998-07-15 구자홍 셀룰라 오토마타를 이용한 블록 암호화 방법 및 장치
JP3782210B2 (ja) * 1997-06-30 2006-06-07 日本電信電話株式会社 暗号装置
WO1999014889A1 (en) * 1997-09-17 1999-03-25 Luyster Frank C Improved block cipher method
US6243470B1 (en) * 1998-02-04 2001-06-05 International Business Machines Corporation Method and apparatus for advanced symmetric key block cipher with variable length key and block
US6185679B1 (en) * 1998-02-23 2001-02-06 International Business Machines Corporation Method and apparatus for a symmetric block cipher using multiple stages with type-1 and type-3 feistel networks
US6189095B1 (en) * 1998-06-05 2001-02-13 International Business Machines Corporation Symmetric block cipher using multiple stages with modified type-1 and type-3 feistel networks
JP2000066586A (ja) * 1998-08-24 2000-03-03 Toshiba Corp データ処理装置及び通信システム並びに記録媒体
JP4763866B2 (ja) 1998-10-15 2011-08-31 インターシア ソフトウェア エルエルシー 2重再暗号化によりデジタルデータを保護する方法及び装置

Also Published As

Publication number Publication date
KR100435052B1 (ko) 2004-06-09
DE60125651D1 (de) 2007-02-15
JP3505482B2 (ja) 2004-03-08
KR20020006475A (ko) 2002-01-19
EP1172965A3 (en) 2003-06-18
EP1172965B1 (en) 2007-01-03
CN1349182A (zh) 2002-05-15
US20020021802A1 (en) 2002-02-21
EP1172965A2 (en) 2002-01-16
JP2002023622A (ja) 2002-01-23
US7194090B2 (en) 2007-03-20

Similar Documents

Publication Publication Date Title
CN1203431C (zh) 公用密钥加密装置
CN1282324C (zh) 数据加密装置和方法
CN1124545C (zh) 实现高速加密处理的设备和方法
CN1312630A (zh) 基于分块加密方式的加密装置与方法及译码装置与方法
CN1879138A (zh) 密码处理装置、密码处理方法及其计算机程序
CN1921382A (zh) 一种基于aes算法的加解密方法及加解密器
CN1808526A (zh) 数据变换装置和数据变换方法
CN1125407C (zh) 信息处理装置,信息处理方法,信息处理系统
CN1286457A (zh) 加密方法,加密装置,解密方法和解密装置
CN1285191C (zh) 公共密钥签字的方法和系统
CN1200392C (zh) 信息处理方法
CN1977250A (zh) 进行加密或解密的计算机系统和计算机程序
CN1714377A (zh) 用于生成伪随机数的方法及伪随机数生成器
CN1248365A (zh) 高速灵活的加密系统的方法及设备
CN1647139A (zh) 数据变换装置和数据变换方法
CN2631163Y (zh) 一种时分双工/码分多址(tdd/cd ma)通信系统
CN1922643A (zh) 加密系统、加密装置、解密装置、程序和集成电路
CN1235446A (zh) 椭圆曲线变换装置、利用装置和利用系统
CN1345495A (zh) 实现椭圆曲线类型公共密钥加密算法的电子部件中的对策方法
CN1841443A (zh) 计算方法、计算设备以及计算机程序
CN1846396A (zh) 密钥信息处理方法及其设备和程序
CN1909449A (zh) 用于处理信息的方法、设备和程序
CN1520083A (zh) 设备键的译码、加密和加密译码装置及其方法、及其程序
CN1878059A (zh) 一种分组加密及解密算法
CN1269680A (zh) 交织器装置以及用于交织数据集的方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
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: 20050525

Termination date: 20160712