机密信息处理机器、机密信息处理装置及机密信息处理方法

文档序号:7682410阅读:258来源:国知局
专利名称:机密信息处理机器、机密信息处理装置及机密信息处理方法
技术领域
本发明涉及的机密信息处理装置,以容易的控制,可以将流输入一次来进行多种且多次加密运算。并且,本发明涉及的机密信息处理机器是一种机密信息处理机器, 对数据流所包含的不同对象数据进行多次加密运算,包括接收部, 接收从外部机器发送的数据流;至少一个流分析部,通过分析由所述 接收部接收的数据流,从而判别所述对象数据;至少一个加密运算部, 保持上下文,并使用所保持的所述上下文对数据流所包含的所述对象 数据进行加密运算,所述上下文包含加密运算中使用的密钥、初始值 以及加密运算中途的中间信息中的一个以上;上下文存储部,存储多 个所述上下文;对应表存储部,存储对应表,该对应表示出对数据流 进行加密运算的次数和每次加密运算中使用的上下文;上下文控制部, 在所述加密运算部所保持的所述上下文与所述对应表所示的加密运算 中使用的上下文不一致的情况下,使所述加密运算部所保持的上下文 退避到所述上下文存储部,并且使所述上下文存储部所存储的所述多 个上下文中的、所述对应表所示的加密运算中使用的上下文返回到所 述加密运算部;显示部,再生并显示数据流;以及流控制部,将由所 述加密运算部进行了所述对应表所示的次数的加密运算的数据流输出 到所述显示部,将从所述外部装置输入的数据流以及由所述加密运算 部进行了加密运算的次数未满所述对应表所示的次数的加密运算的数 据流,输出到所述流分析部。根据该结构,在接收、再生以及显示加密后的数据的机密信息处 理装置中,可以实现对一个流进行运算方法不是唯一的多次加密运算, 并且可以容易地进行由软件的控制。并且,本发明涉及的机密信息处理机器是一种机密信息处理机器, 对数据流所包含的不同对象数据进行多次加密运算,包括至少一个 流分析部,通过分析数据流,从而判别所述对象数据;至少一个加密运算部,保持上下文,并使用所保持的所述上下文对数据流所包含的 所述对象数据进行加密运算,所述上下文包含加密运算中使用的密钥、初始值以及加密运算中途的中间信息中的一个以上;上下文存储部, 存储多个所述上下文;对应表存储部,存储对应表,该对应表示出对 数据流进行加密运算的次数和每次加密运算中使用的上下文;上下文 控制部,在所述加密运算部所保持的所述上下文与所述对应表所示的 加密运算中使用的上下文不一致的情况下,使所述加密运算部所保持 的上下文退避到所述上下文存储部,并且使所述上下文存储部所存储 的所述多个上下文中的、所述对应表所示的加密运算中使用的上下文 返回到所述加密运算部;发送部,将数据流发送到外部机器;以及流 控制部,将由所述加密运算部进行了所述对应表所示的次数的加密运 算的数据流输出到所述发送部,将从外部装置输入的数据流以及由所 述加密运算部进行了加密运算的次数未满所述对应表所示的次数的加 密运算的数据流,输出到所述流分析部。根据该结构,在加密并发送明文数据的机密信息处理装置中,可 以实现对一个流进行运算方法不是唯一的多次加密运算,并且可以容 易地进行由软件的控制。并且,本发明涉及的机密信息处理方法是一种机密信息处理装置 中的机密信息处理方法,所述机密信息处理装置对从外部装置输入的第一数据流所包含的不同对象数据进行多次加密运算,所述机密信息 处理装置,包括至少一个流分析部,通过分析数据流,从而判别所 述对象数据;至少一个加密运算部,保持上下文,并使用所保持的所 述上下文对数据流所包含的所述对象数据进行加密运算,所述上下文 包含加密运算中使用的密钥、初始值以及加密运算中途的中间信息中 的一个以上;上下文存储部,存储多个所述上下文;对应表存储部, 存储对应表,该对应表示出对数据流进行加密运算的次数、和每次加 密运算中使用的上下文;上下文控制部,在所述加密运算部所保持的 所述上下文与所述对应表所示的加密运算中使用的上下文不一致的情 况下,使所述加密运算部所保持的上下文退避到所述上下文存储部, 并且使所述上下文存储部所存储的所述多个上下文中的、所述对应表 所示的加密运算中使用的上下文返回到所述加密运算部;以及流控制 部,将由所述加密运算部进行加密运算的数据流输出到所述外部装置 或所述流分析部,并且,在所述对应表示出对所述第一数据流进行两 次以上的加密运算的情况下所述流分析部,从所述第一数据流判别 出第一对象数据,所述加密运算部,通过对所述第一数据流所包含的 所述第一对象数据进行加密运算,从而生成第二数据流,所述流控制 部,将所述第二数据流输出到所述流分析部,所述流分析部,从所述 第二数据流判别出第二对象数据,所述加密运算部,通过对所述第二 数据流所包含的所述第二对象数据进行加密运算,从而生成第三数据 流,所述流控制部,将所述第三数据流输出到所述外部装置。据此,上下文控制部,根据对应表所示的进行加密运算的次数,将加密运算后的流输出到外部装置或其它流分析部。因此,通过在对 应表设定进行加密运算的次数,从而可以设定任意的运算次数。因此, 本发明涉及的机密信息处理装置,可以对一个流进行任意的次数的加 密运算。而且,即使在每次结束加密运算时不向外部输出流,也可以 将流输入一次来进行多次加密运算。并且,通过在对应表设定进行加 密运算的次数,从而可以容易地变更进行加密运算的次数。而且,在上下文存储部存储多个上下文。并且,上下文控制部, 进行加密运算中使用的上下文的保存以及返回。据此,通过从上下文 存储部读出对应的上下文,从而可以容易地对应多种运算方法。并且, 加密运算部包括可以存储至少一个上下文的寄存器等即可,因此可以 减少加密运算部的电路规模。并且,设定针对多种运算方法的上下文, 并且将所设定的上下文存储到上下文控制部,从而可以容易地设定运 算方法的变更以及追加等。如此,本发明涉及的机密信息处理装置,可以对一个流迸行运算 方法不是唯一的、多种且多次加密运算,并且可以容易地进行由软件 的控制。根据所述内容,可以提供一种机密信息处理装置、机密信息处理 机器以及机密信息处理方法,其可以对一个流进行运算方法不是唯一 的、多次加密运算,并且可以容易地进行由软件的控制。


图1是本发明的实施方式涉及的机密信息处理机器的外观图。图2是本发明的实施方式涉及的机密信息处理机器的结构框图。 图3是本发明的实施方式涉及的机密信息处理装置的结构框图。 图4是示出本发明的实施方式涉及的上下文对应表的结构的一个 例子的图。图5是本发明的实施方式涉及的流控制部的结构框图。 图6是本发明的实施方式涉及的上下文存储表的结构的一个例子 的图。图7是本发明的实施方式涉及的机密信息处理装置的处理的流程图。图8是示出由本发明的实施方式涉及的机密信息处理装置对第一 运算例中的流ID "0"的流进行的处理的图。图9是示出由本发明的实施方式涉及的机密信息处理装置对第一 运算例中的流ID "1"的流进行的处理的图。图IO是本发明的实施方式涉及的机密信息处理装置的第二运算例 中的流的结构图。图11是示出由本发明的实施方式涉及的机密信息处理装置对第二 运算例中的流进行的处理的图。图12是本发明的实施方式涉及的机密信息处理装置的第三运算例 中的流的结构图。图13是示出由本发明的实施方式涉及的机密信息处理装置对第三 运算例中的流进行的处理的图。图14是示出由本发明的实施方式涉及的机密信息处理装置对第五运算例中的流进行的处理的图。图15是本发明的实施方式涉及的流控制部的变形例的结构框图。 图16是本发明的实施方式涉及的机密信息处理机器的变形例的结 构框图。
具体实施方式
下面,对于本发明涉及的机密信息处理装置的实施例,参照附图 进行详细说明。首先,说明包括本发明的实施例涉及的机密信息处理装置的机密 信息处理机器的结构。图1是示出包括本发明的实施例涉及的机密信息处理装置的机密 信息处理机器的外观的一个例子的图。如图1所示,机密信息处理机 器100是例如移动电话。图2是机密信息处理机器100的结构框图。图2所示的机密信息 处理机器100可以对一个流所包含的不同对象数据进行多次加密运算。 并且,机密信息处理机器100可以对辐辏的多个流进行加密运算。机密信息处理机器100包括天线101;接收部102;发送部103、显示部104;记忆部105以及机密信息处理装置200。 天线101是用于发送或接收的天线。接收部102使用天线101接收从外部机器发送来的运动图像流或 声音流等流。记忆部105记忆由接收部102接收的流。并且,记忆部105记忆-由机密信息处理机器100生成的运动图像数据等。例如,记忆部105 记忆由机密信息处理机器100具有的摄像器(图中不示出)摄像的运动 图像数据。例如,记忆部105是RAM(随机存储器)、硬盘或非易失性 存储器等。机密信息处理装置200是本发明的实施例涉及的机密信息处理装 置。机密信息处理装置200,对由接收部102接收的流所包含的加密后 的数据进行解密。并且,机密信息处理装置200,对由接收部102接收 的流所包含的明文数据、以及记忆部105所保持的运动图像数据等进 行加密。发送部103,使用天线101将由机密信息处理装置200加密的流发 送到外部机器。显示部104,再生并显示由机密信息处理装置200解密的流。 而且,机密信息处理装置200,可以对记录在存储介质(SD存储器 等)的数据进行加密运算。并且,机密信息处理装置200,可以对在通 过网络相连接的外部机器之间被发送以及接收的数据进行加密运算。并且,接收部102以及发送部103的功能,可以由专用电路来实 现,也可以通过CPU等执行程序来实现。其次,说明机密信息处理装置200的结构。 图3是本发明的实施例涉及的机密信息处理装置200的结构框图。 机密信息处理装置200,可以对一个流所包含的不同对象数据进行 两次加密运算。并且,机密信息处理装置200,可以对辐辏的两个流进 行加密运算。机密信息处理装置200包括上下文控制部210;上下文存储部211;流控制部220以及221;流分析部230、 231、 232以及233; 调解部240; AES运算部250; DES运算部251以及SHA1运算部252。上下文存储部211存储上下文对应表212和上下文存储表213。例 如,上下文存储部211由RAM构成。而且,上下文存储部211可以由 硬盘或非易失性存储器等构成。上下文对应表212是一种表,示出流的类别、对该流进行加密运 算的次数以及与该各个加密运算对应的上下文的类别。在此,上下文 是对加密运算需要的信息。上下文存储表213存储上下文,该上下文即是对流的加密运算需 要的信息。即,上下文存储部211存储多个上下文。上下文存储表213 所包含的多个上下文中分别包含,各个上下文的类别(上下文ID)、以 及对与各个上下文的类别对应的加密运算需要的信息。具体而言,上 下文包含加密运算中使用的密钥、初始值以及在加密运算中途的中间 信息(在CBC模式运算中的前块的运算结果等)等。并且,上下文包含 示出在流所包含的数据中进行加密运算的区域的信息。而且,在输入进行加密运算的流之前,由外部装置202设定,上 下文存储部211所存储的上下文对应表212以及上下文存储表213。流控制部220,将从外部装置201输入的流(以下,称为"输入流 ")输出到流分析部230或231。并且,流控制部220,将由流分析部230 或231输出的加密运算后的流(以下,称为"输出流"),按照上下文对 应表212,输出到外部装置201、其它流分析部230或231。并且,流控制部220,识别从外部装置201输入的输入流的属性。流控制部220,根据识别结果即流ID、和上下文对应表212,构成并控 制外部装置201、流分析部230以及流分析部231之间的数据通路。图4是示出上下文对应表212的结构的一个例子的图。上下文对应表212存储与对输入流的运算方法和运算顺序有关的 信息。如图4所示,在上下文对应表212中记载,对流标识符(流ID) 执行的加密运算的上下文的标识符(上下文ID)。在上下文对应表212 中按每个流ID记载,对应第一次的加密运算的上下文ID、和对应第二 次的加密运算的上下文ID。流控制部220,在上下文对应表212中,对输入流的流ID指定了 第二段的上下文ID的情况下,判断为对输入流连续进行两次加密运算, 而在对输入流的流ID没有指定第二段的上下文ID的情况下,判断为 对输入流只进行一次加密运算。例如,在图4所示的例子中,对流ID "2"的流进行使用上下文ID "2"的加密运算,对进行使用上下文ID "2"的加密运算后的流进行使用上下文ID "3"的加密运算。并且, 对流ID"O"的流,只进行对应上下文ID"O"的加密运算,而不进行 第二次的加密运算。例如,在输入流之前,预先由外部装置202设定上下文对应表212 的内容。图5是流控制部220的结构图。流控制部220包括选择器301以及缓冲器302。选择器301,选择 由流分析部230或231输出的输出流,而输出到外部装置201。缓冲器 302,保持由流分析部230输出的输出流,并且将所保持的输出流输出到流分析部231。并且,流控制部220,将从外部装置201输入的输入 流输出到流分析部230。具体而言,在对输入流进行一次加密运算的情况下,选择器301, 选择由流分析部230输出的输出流,而输出到外部装置201。在对输入 流进行两次加密运算的情况下,选择器301,选择由流分析部231输出 的输出流,而输出到外部装置201。艮P,在对从外部装置201输入的输入流进行一次加密运算的情况 下,流控制部220,将从外部装置201输入的输入流输出到流分析部 230,并且将由流分析部230输出的输出流输出到外部装置201。并且,在对从外部装置201输入的输入流进行两次加密运算的情 况下,流控制部220,将从外部装置201输入的输入流输出到流分析部 230,并且将由流分析部231输出的、进行两次加密运算后的流输出到 外部装置201 。再者,流控制部220,使缓冲部302保持由流分析部230 输出的进行一次加密运算后的流,缓冲部302将所保持的流输出到流 分析部231。在此,外部装置202是例如机密信息处理机器100包括的CPU。 并且,外部装置201是例如机密信息处理机器100包括的CPU、 DMA 控制器或DSP(Digital Signal Processor:数字信号处理器)。外部装置201以及202,通过上下文控制部210,可以改写上下文 存储部211所存储的上下文对应表212以及上下文存储表213。并且, 外部装置201以及202,通过上下文控制部210,可以读出上下文对应 表212以及上下文存储表213。而且,机密信息处理机器200可以包括外部装置201以及202。流控制部221,将从外部装置202输入的输入流输出到流分析部 232或233。并且,流控制部221,将由流分析部232或233输出的加 密运算后的输出流输出到外部装置202、其它流分析部232或233。而且,对于流控制部221的结构以及详细工作,由于与流控制部 220相同,因此省略说明。流分析部230以及231,根据上下文存储表213所包含的对应流的 上下文,从由流控制部220输出的输入流中判别出成为加密运算的对 象的对象数据。流分析部230以及231,将用于确定对象数据的信息、 和输入流输出到调解部240。具体而言,流分析部230以及231,保持对应输入流的一组上下文。 流分析部230以及231,将所保持的上下文所包含的信息所示的区域的 数据判别为对象数据,所述信息示出进行加密运算的区域。并且,流 分析部230以及231,将由调解部240输出的输出流输出到流控制部 220。流分析部232以及233,根据上下文存储表213所包含的对应流的 上下文,从由流控制部221输出的输入流中判别出成为加密运算的对 象的对象数据。流分析部232以及233,将用于确定对象数据的信息、 和输入流输出到调解部240。具体而言,流分析部232以及233,保持对应输入流的一组上下文。 流分析部232以及233,将所保持的上下文所包含的信息所示的区域的 数据判别为对象数据,所述信息示出进行加密运算的区域。。并且,流分析部232以及233,将由调解部240输出的输出流输出到流控制部 221。调解部240,调解由流分析部230、 231、 232以及233输出的输入 流。具体而言,调解部240,在由多个流分析部230、 231、 232以及 233同时输入应当以同一加密算法进行处理的输入流的情况下,决定对 由流分析部230、 231、 232以及233中的哪个输入流进行处理。即, 调解部240,根据适当的调解次序来依次处理输入流。例如,调解部 240,根据由流分析部230、 231、 232以及233设定的优先次序来决定 要处理的输入请求。而且,调解部240,可以使用循环(round-robin)方 式等其它算法,来决定要处理的输入请求。并且,调解部240,在接收由流分析部230、 231、 232以及233 输出的输入流的情况下,根据上下文存储表来决定处理时的加密算法。 调解部240,将输入流和用于确定对象数据的信息,输出到对应决定的 加密算法的运算部250、 251或252。并且,调解部240,将来自运算部250、 251或252的输出流,输 出到输入流的输出源的流分析部230、 231、 232或233。AES运算部250,对由调解部240输入的输入流所包含的运算对 象部分即对象数据,进行使用密钥加密算法AES(Advanced Encryption Standard:高级加密标准)的加密运算。DES运算部251,对由调解部240输入的输入流所包含的运算对 象部分即对象数据,进行使用密钥加密算法DES(Data Encryption Standard:数据加密标准)的加密运算。艮口, AES运算部250以及DES运算部251,根据由调解部240输 出的、用于确定对象数据的信息,对由流分析部230、 231、 232或233 判别的对象数据进行加密运算。具体而言,AES运算部250以及DES运算部251,通过对对象数 据进行ECB(Electronic Codebook:电子密码本)模式以及CBC(Cipher Block Chain:密码分组链接)模式等机密模式运算,从而对对象数据进 行加密或解密。并且,AES运算部250以及DES运算部251 ,通过对对象数据进 行CBC-MAC(Message Authentication Code:消息验证代码)模式以及 CMAC(Cipher-based Message Authentication Code:基于密码的消息验证 代码)等认证模式运算,从而生成消息认证符(MAC值)。并且,AES运算部250以及DES运算部251 ,通过对对象数据进 行CCM(Counter-mode with CBC-MAC:计数器模式和密码分组链接消 息验证代码)模式、GCM(Galois/Counter Mode:伽罗瓦计数器模式)等 附带认证的机密模式运算,从而对对象数据进行加密或解密,并且生 成MAC值。AES运算部250以及DES运算部251,在实施机密模式运算的情 况下,将针对由调解部240输入的输入流、使运算对象部分以外的所 输入的数据不变、以运算对象部分替换为机密模式运算的运算结果的 输出流,输出到调解部240。并且,AES运算部250以及DES运算部 251,在实施认证模式的情况下,将由调解部240输入的输入流作为输 出流,原封不动地输出到调解部240。并且,AES运算部250以及DES运算部251,将对运算对象部分 使用认证模式的运算结果即MAC值,作为上下文输出到上下文控制部 210。并且,AES运算部250以及DES运算部251,在实施附带认证的 机密模式的情况下,将针对由调解部240输入的输入流、使运算对象 部分以外的所输入的数据不变、以运算对象部分替换为附带认证的机 密模式所包含的机密模式的运算结果的输出流,输出到调解部240。再 者,AES运算部250以及DES运算部251,将附带认证的机密模式所 包含的机密模式的的运算结果即MAC值,作为上下文输出到上下文控 制部210。并且,AES运算部250以及DES运算部251,按照上下文存储表 213的设定,将由调解部240输入的输入流中所指定的部分替换为MAC 值,并作为输出流输出到调解部240。并且,AES运算部250以及DES运算部251,按照上下文存储表 213的设定,对由调解部240输入的输入流中所指定的部分和MAC值 进行比较。SHA1运算部252,对由调解部240输入的输入流中的运算对象部 分,执行使用散列算法SHA(Secure Hash Algorithm:安全散列算法)的 运算。具体而言,SHA1运算部252,实施普通的散列运算以及 HMAC(Keyed陽Hashing for Message Authentication Code:键入-散歹!j 去用 于消息验证代码)模式等的运算,从而生成散列值以及MAC值。SHA1运算部252,在实施普通的散列运算或HMAC模式等的运 算的情况下,将由调解部240输入的输入流原封不动地输出到调解部 240。并且,SHA1运算部252,将对运算对象部分的普通的散列运算 或HMAC模式等的运算结果即散列值或MAC值,作为上下文输出到 上下文控制部210。并且,SHA1运算部252,按照上下文存储表213的设定,将由调 解部240输入的输入流中的所指定的部分替换为散列值或MAC值,并 作为输出流输出到调解部240。并且,SHA1运算部252,按照上下文存储表213的设定,对由调 解部240输入的输入流中的所指定的部分和散列值或MAC值进行比 较。如上所述,AES运算部250以及DES运算部251,在认证模式以 及附带认证的机密模式中,也与机密模式相同输出与输入流的长度相 同的输出流。并且,SHA1运算部252,输出与输入流的长度相同的输 出流。因此,与密钥加密算法以及散列算法的算法以及模式无关,可 以以同一方法输出并输入流。据此,本发明的实施例涉及的机密信息 处理装置200,可以对输入流以容易的控制来进行多次运算。并且,AES运算部250、 DES运算部251以及SHA1运算部252, 分别保持一组上下文260、 261以及262。 AES运算部250、 DES运算 部251以及SHA1运算部252,分别使用所保持的上下文260、 261以 及262进行加密运算。上下文控制部210,在运算部250、 251以及252不保持对应输入流的上下文的情况下,使运算部250、251以及252所保持的上下文260、 261以及262保存到上下文存储部211,并且使上下文存储部211所存 储的多个上下文中的、运算部250、 251以及252的加密运算中使用的 上下文写入到运算部250、 251以及252,从而返回上下文。并且,上下文控制部210,在流分析部230、 231、 232以及233 不保持对应输入流的上下文的情况下,使流分析部230、 231、 232以 及233所保持的上下文保存到上下文存储部211,并且使上下文存储部 211所存储的多个上下文中的、对应输入流的上下文写入到流分析部 230、 231、 232以及233。并且,由专用电路(硬件)构成上下文控制部210;流控制部220以 及221;流分析部230、 231、 232以及233;调解部240; AES运算部 250; DES运算部251; SHA1运算部252。图6是示出上下文存储表213的结构的一个例子的图。上下文存储表213存储多个上下文,使用上下文ID来区别各个上 下文。上下文存储表213所包含的各个上下文包含上下文ID;算法;模式;首部(header)长度;有效负载长度;尾部(footer)长度;尾数输出 标记;有效负载连续次数;流非输出标记;散列值替换位置;散列值 比较位置;密钥以及初始值;中间信息;散列值。上下文所包含的算法是,输入流的加密运算中使用的加密算法。 上下文所包含的模式是,对输入流的加密运算的加密模式。例如,在 上下文存储表213中示出,对于上下文ID"O",使用密钥加密算法AES、且以CBC模式对输入流进行解密。并且,上下文所包含的算法,分别对应机密信息处理装置200包 括的多个运算部250、251以及252。在图6所示的例子中,算法"AES"、 "DES"以及"SHA1",分别对应AES运算部250、 DES运算部251 以及SHA1运算部252。调解部240,将由流分析部230、 231、 232或233输出的输入流输 出到对应上下文所包含的算法的运算部250、 251或252。并且,多个运算部250、 251以及252,对输入流执行按照上下文 所包含的模式的加密运算。输入流,从开头依次包含加密运算的非对象数据即首部;加密 运算的对象数据即有效负载;加密运算的非对象数据即尾部。上下文所包含的首部长度、有效负载长度以及尾部长度分别是, 输入流所包含的首部、有效负载以及尾部的长度。并且,上下文所包 含的首部长度、有效负载长度以及尾部长度是,示出流所包含的数据 中进行加密运算的区域的信息。在此,流分析部230、 231、 232以及233所保持的上下文是,上 下文存储表213所包含的信息中的上下文ID、首部长度、有效负载长 度以及尾部长度。流分析部230、 231、 232以及233,使用所保持的上下文所包含的 首部长度、有效负载长度以及尾部长度,以首部、有效负载以及尾部 的顺序分割流,并且将有效负载判别为对象数据。在此,由流分析部 230、 231、 232以及233参照的上下文包含,在上下文对应表212中的、与输入流的流ID对应的上下文ID。而且,在流长度长于首部长度、有效负载长度以及尾部长度的共 计的情况下,流分析部230、 231、 232以及233,对过长的部分,再次, 以首部、有效负载以及尾部的顺序分割流,从而判别有效负载。例如,在输入流的流长度是512字节、并且在该输入流的运算中 使用的上下文中设定首部长度是32字节、有效负载长度是128字节以 及尾部长度是96字节的情况下,流分析部230、 231、 232以及233判 断为从输入流的开头32字节是首部、下面的128字节是有效负载、下 面的96字节是尾部、下面的32字节是首部、下面的128字节是有效 负载、下面的96字节是尾部。上下文所包含的尾数输出标记是一种标记在从外部装置201以 及202输入流的中途被中断、并且被中断前已经输入的有效负载长度 不是所适用的加密算法的运算单位的整数倍的情况下,规定对存在于 输入末尾的未满运算单位的有效负载即尾数有效负载(尾数数据)的处 理方法。运算部250、 251以及252,根据上下文所包含的尾数输出标记, 将尾数有效负载输出到外部装置201以及202或上下文存储部211。在尾数输出标记是ON的情况下,运算部250、 251以及252将因 未满运算单位而未进行加密运算的有效负载,通过调解部240、流分析 部230、 231、 232或233、流控制部220或221来输出到外部装置201 或202。在此情况下,为了再开始处理,外部装置201或202,在输入 后续的流时,需要将暂时输出的尾数有效负载结合在流的开头,从而输入到机密信息处理装置200。在尾数输出标记是OFF的情况下,运算部250、 251以及252将尾 数数据输出到上下文存储部211。由运算部250、 251以及252输出的 尾数有效负载,通过上下文控制部210被保存到上下文存储部211。上 下文存储部211,将尾数有效负载作为上下文所包含的中间信息存储。在从外部装置201或202输入后续的流的情况下,运算部250、251 以及252,通过上下文控制部210读出上下文存储部211所存储的尾数 数据。运算部250、 251以及252,对后续的流进行加密运算时,进行 包含尾数有效负载的数据的加密运算。如上所述,在尾数输出标记是OFF的情况下,运算部250、 251 以及252将尾数数据结合在后续的流的开头,而进行加密运算。艮P, 在机密信息处理装置200内自动地进行尾数有效负载的处理。据此, 外部装置201以及202不需要进行将暂时输出的尾数有效负载结合在 流的开头的处理等。即,通过使用机密信息处理装置200,从而可以减 少外部装置201以及202的处理量。即,本发明的实施例涉及的机密 信息处理装置200,可以以容易的软件控制来进行尾数数据的处理。通常,在密钥加密运算以及散列运算中,各个有效负载作为连续 运算的单位被处理。例如,在密钥加密运算中,按每个有效负载实施 CBC模式等运算。并且,在散列运算中,按每个有效负载求出散列值。 另外,也存在下列情况,即,将由首部以及尾部分割而分散存在的多 个有效负载作为较长的一个有效负载来进行运算。上下文所包含的有效负载连续次数,用于将分散存在的多个有效负载作为较长的一个有效负载来进行运算。有效负载连续次数是一种 信息,示出是否将流中的分散的区域的数据作为一个数据来进行加密运算。例如,在有效负载连续次数是2以上的情况下,将2以上的有 效负载作为较长的一个有效负载来进行运算。并且,有效负载连续次 数是一种信息,示出将几个有效负载作为较长的一个有效负载来进行 运算。运算部250、 251以及252,在有效负载连续次数是2以上的情况 下,将流中的分散的区域的数据作为一个数据来进行加密运算。并且, 运算部250、 251以及252,将有效负载连续次数所示的数字的区域的 数据作为一个数据来进行加密运算。艮P,运算部250、 251以及252,从输入流的开头,按有效负载连 续次数所指定的次数,以多个有效负载为加密运算的单位进行加密运 算。例如,在输入流的流长度是1024字节、并且在该输入流的运算中 使用的上下文设定;首部长度是32字节、有效负载长度128字节、尾 部长度96字节以及有效负载连续次数是2次的情况下,运算部250、 251以及252,将从输入流的开头第33字节开始128个字节的数据和 从开头第289字节开始128个字节的数据的共计256字节作为一个数 据来实施加密运算。再者,运算部250、 251以及252,对从流的开头 第545字节开始128个字节的数据和从开头第801字节开始128个字 节的数据的共计256字节实施加密运算。上下文所包含的流非输出标记是一种标记,用于设定不将输出流向外部装置201以及202输出。在流非输出标记是OFF的情况下,流 控制部220以及221将输出流输出到外部装置201、 202。在流非输出 标记是ON的情况下,流控制部220以及221不将输出流向外部装置 201、 202输出。例如,在对流只进行散列运算的情况下等,流非输出 标记被设定为ON。上下文所包含的散列值替换位置是示出输入流所包含的数据的规 定位置的信息。运算部250、 251以及252,将对应流的散列值替换位 置所示的规定位置的数据替换为散列值或MAC值。具体而言,AES运算部250以及DES运算部251,在对输入流执 行认证模式以及附带认证的机密模式的情况下,将散列值替换位置所 示的规定位置的数据替换为运算结果即MAC值,并作为输出流输出到 调解部240。并且,SHA1运算部252,在对输入流执行散列运算的情况下,将 散列值替换位置所示的规定位置的数据替换为运算结果即散列值或 MAC值,并作为输出流输出到调解部240。例如,在算法示出SHA1、散列值替换位置是200的情况下,SHA1 运算部252,将从流的开头第200字节开始20个字节的数据替换为SHA 的运算结果即散列值。而且,在散列值替换位置示出0的情况下,运 算部250、 251以及252,不进行散列值或MAC值的替换,而将散列 值或MAC值输出到上下文控制部210。上下文控制部210,将由运算 部250、 251以及252输出的散列值以及MAC值作为上下文存储。例如,在对输入流进行使用SHA1的散列运算的情况下,将流非输出标记设定为ON、将散列值替换位置设定为0,从而机密信息处理 装置200将运算结果即散列值存储到上下文存储部211,并且不将输入 流(输出流)向外部装置201以及202输出。
上下文所包含的散列值比较位置是示出输入流所包含的数据的规 定位置的信息。运算部250、 251以及252,判断对应输入流的散列值 比较位置所示的规定位置的数据和运算结果即散列值或MAC值是否 一致。并且,运算部250、 251以及252的判断结果被输出到外部装置 201以及202。
具体而言,AES运算部250以及DES运算部251,在对输入流执 行认证模式以及附带认证的机密模式的情况下,对散列值比较位置所 示的规定位置的数据和运算结果即MAC值进行比较,并将比较结果输 出到外部装置201或202。
并且,SHA1运算部252,在对输入流执行散列运算的情况下,对 散列值比较位置所示的规定位置的数据和运算结果即散列值或MAC 值进行比较,并将比较结果输出到外部装置201或202。
例如,在设定为算法是SHA1、首部长度是0、有效负载长度是200、 尾部长度是50、以及散列值比较位置是200的情况下,SHA1运算部 252,对有效负载部分的200字节的SHA1的运算结果即散列值和从流 的开头第200字节开始20个字节的数据进行比较,所述20个字节即 是由SHA1的散列值的长度。据此,机密信息处理装置200在流中包 含散列值的期望值的情况下,在进行运算的同时可以检测窜改。而且, 在散列值比较位置是O的情况下,运算部250、 251以及252不进行比较。
上下文所包含的密钥以及初始值是按照算法以及模式需要的密钥 以及初始值。上下文所包含的密钥以及初始值按照算法以及模式及时 被设定。
上下文所包含的中间信息是运算中途的结果、未满运算单位的有 效负载(尾数有效负载)、以及各种内部状态等。
上下文所包含的散列值是由运算部250、 251以及252生成的散列 值或MAC值。
在输入流的输入之前,预先由外部装置202设定上下文存储表213 中的中间信息以及散列值以外的内容。
而且,对于在上下文存储表213中以"","所示的密钥、初始值、 中间值以及散列值,按照运算存储适当的值。
并且,运算部250、 251以及252所保持的上下文260、 261以及 262包含:上下文存储表213所包含的上下文中的模式、尾数输出标记、 有效负载连续次数、散列值替换位置、散列值比较位置、密钥以及初 始值、中间信息、散列值。
其次,说明机密信息处理装置200的工作。
图7是示出机密信息处理装置200的加密运算处理的顺序的流程 图。而且,以流从外部装置201被输入到机密信息处理装置200的情 况为例子进行说明。
如图7所示,首先,流控制部220,对所输入的流(以下,称为"第 一流")进行识别(SIOI)。具体而言,流控制部220获得第一流的流ID。例如,流控制部220,参照第一流所包含的的流ID,从而获得流ID。 流控制部220,参照上下文对应表212,来判断对第一流的流ID的加 密运算的实施次数、和各个加密运算中使用的上下文ID。然后,流控 制部220,将第一流输出到流分析部230。
并且,流控制部220,在流分析部230不保持对应第一流的上下文 的情况下,向上下文控制部210发送上下文的保存以及返回的请求。 上下文控制部210,接收来自流控制部220的请求后,使流分析部230 所保持的上下文保存到上下文存储部211,并且使上下文存储部211所 存储的上下文中的对应第一流的上下文返回到流分析部230。例如,流 控制部220,流分析部230所保持的上下文所包含的上下文ID和对应 所判断的第一流的上下文ID不一致的情况下,发送上下文的保存以及 返回的请求。并且,上下文控制部210,参照保存以及返回的请求所包 含的上下文ID,从而决定写入到流分析部230的上下文。
其次,流分析部230,参照所保持的上下文,使用第一次的加密运 算中使用的上下文所包含的首部长度、有效负载长度以及尾部长度, 从第一流中将有效负载判别为对象数据(以下,称为"第一对象数 据")(S102)。其次,流分析部230将第一流输出到调解部240。
其次,调解部240,参照上下文存储表213,判断对第一流的加密 运算的加密算法(S103)。调解部240,将第一流输出到对应所判断的加 密算法的运算部250、 251或252。在此,第一流被输出到AES运算部 250。
并且,调解部240,在从多个流分析部230、 231、 232以及233同时输入应当在同一运算部250、 251或252处理的输入流的情况下, 决定对哪个输入流进行处理。
调解部240,判断是否需要将AES运算部250所保持的上下文260 切换(S104)。具体而言,调解部240,判断在AES运算部250是否保持 第一流的加密运算中使用的上下文。例如,调解部240,在第一流的加 密运算中使用的上下文的上下文ID和上下文260的上下文ID —致的 情况下判断为不需要上下文的切换(在S104否),在不一致的情况下判 断为需要上下文的切换(在S104是)。
在需要上下文的切换的情况下(在S104是),调解部240,向上下 文控制部210发送上下文260的保存以及返回的请求(S105)。上下文控 制部210,接收上下文的保存以及返回的请求后,进行上下文的保存以 及返回(S106)。具体而言,上下文控制部210,使AES运算部250所保 持的上下文260保存到上下文存储部211。其次,上下文控制部210, 将向上下文存储部211存储的第一流的加密运算中使用的上下文写入 到AES运算部250。
在进行上下文260的保存以及返回后、或不需要上下文的切换的 情况下(在S104否),其次,AES运算部250,对在S102判别出的第一 数据进行上下文260的模式所指定的加密运算(S107)。在此,AES运算 部250,使用上下文260所包含的密钥、初始值以及中间信息等进行加 密运算。
AES运算部250,将加密运算后的第一流(以下,称为"第二流") 输出到调解部240。调解部240,将第二流输出到第一流的输出源即流分析部230。流分析部230,将第二流输出到流控制部220。 通过如上处理,结束第一次的加密运算。
在对输入流只进行一次加密运算、或结束了设定在上下文对应表 212的所有的加密运算的情况下(在S108是),流控制部220将第二流 输出到外部装置201(S109)。
另一方面,在对输入流进行两次加密运算、并且未进行所有的加 密运算的情况下(在S108否),流控制部220将第二流输出到其它流分 析部231。并且,流控制部220,与第一次的处理相同,在流分析部231 不保持对应第二流的上下文的情况下,向上下文控制部210发送上下 文的保存以及返回的请求。
流分析部231,参照所保持的上下文,使用第二次的加密运算中使 用的上下文所包含的首部长度、有效负载长度以及尾部长度,从第二 流中将有效负载判别为对象数据(以下,称为"第二对象数据")(S102)。 其次,流分析部231将第二流输出到调解部240。
其次,调解部240,参照上下文存储表213,判断对第二流的加密 运算的加密算法(S103)。调解部240,将第二流输出到对应所判断的加 密算法的运算部250、 251或252。在此,第二流被输出到SHA1运算 部252。
而且,对于S104至S107的处理,由于与上述第一次的加密运算 的处理相同,因此省略说明。
SHA1运算部252,将加密运算后的第二流(以下,称为"第三流") 输出到调解部240。调解部240,将第三流输出到第二流的输出源即流分析部231。流分析部231,将第三流输出到流控制部220。 通过如上处理,结束第二次的加密运算。
在上下文对应表212设定有两次加密运算的情况下,由于结束了 两次加密运算(在S108是),因此流控制部220,将第三流输出到外部 装置201(S109)。
而且,在从外部装置202输入流的情况下的处理的顺序也与图7 相同。
并且,在图7中,在结束第一次的加密运算后进行对第二次的加 密运算的上下文的保存以及返回等处理,但是,在第一次的加密运算 和第二次的加密运算使用不同运算部250、 251以及252的情况下,可 以在结束第一次的加密运算之前进行对第二次的加密运算的上下文的 保存以及返回等处理。
下面,说明机密信息处理装置200的具体运算例子。
首先,作为第一运算例,说明辐辏的两个流被输入的例子。具体 而言,流ID "0"以及流ID "1"的两种流,经过外部装置201被输入。
假设,流ID "0"以及流ID "1"的两种流的长度均为256字节。 假设,对流ID "0"以及流ID "1"的加密运算处理,按流ID "0"的 前半部分128字节、流ID "1"的前半部分128字节、流ID "0"的后 半部分128字节、以及流ID "1"的后半部分128字节的顺序,被进行 分时处理。
如图4所示,对流ID "0"的流进行使用上下文ID "0"的上下文 的加密运算,对流ID"1"的流进行使用上下文ID"1"的上下文的加密运算。并且,如图6所示,在上下文ID"0"的上下文中,预先由外部装 置202设定有使用AES的CBC解密;首部长度为7字节;有效负 载长度为240字节;尾部长度为9字节;尾数输出标记为ON;有效负 载连续次数为l;以及流非输出标记为OFF。并且,如图6所示,在上下文ID"1"的上下文中,预先由外部装 置202设定有HMAC-SHA1;首部长度为5字节;有效负载长度为251字节;尾部长度为0字节;尾数输出标记为OFF;有效负载连续次 数为l;流非输出标记为ON;散列值替换位置为0;以及散列值比较位置为o。图8是示出由机密信息处理装置200对第一运算例中的流ID "0" 的流进行的处理的图。图9是示出由机密信息处理装置200对第一运 算例中的流ID "1"的流进行的处理的图。机密信息处理装置200,将流ID "0"的流分割为128字节的前半 部分的流500和后半部分的流501来分别进行处理。并且,机密信息 处理装置200,将流ID"1"的流分割为128字节的前半部分的流520 和后半部分的流521来分别进行处理。机密信息处理装置200,首先,对流ID"0"的前半部分部的流500 进行处理。若外部装置201开始向流控制部220输入流,则流控制部220参 照上下文存储部211所存储的上下文对应表212来确认,将对流ID"O" 进行使用上下文ID "0"的上下文的一次加密运算。据此,流控制部220控制内部通路以使将流ID "0"的流输出到流分析部230;将由 流分析部230输出的、加密运算后的流ID "0"的流输出到外部装置 201。并且,流控制部220,向上下文控制部210发送对流分析部230 的上下文的保存以及返回的请求。接收请求后,上下文控制部210,使 流分析部230所保持的上下文保存到上下文存储部211,使上下文ID "0"的上下文返回到流分析部230。若对应上下文ID "0"的上下文被保持到流分析部230,流控制部 220,开始向流分析部230输入流ID "0"的流。流分析部230,根据所保持的上下文,对流ID"O"的流进行对象 数据的判别。流分析部230,将用于确定对象数据的信息、和流ID"O" 的流输出到调解部240。调解部240,流ID "0"根据对应上下文存储表213的流ID "0" 的上下文所包含的算法来确认将对流进行AES运算。调解部240,向 上下文控制部210发送对AES运算部250所保持的上下文260的保存 以及返回的请求。若对应上下文ID "0"的上下文290被保持到AES运算部250, 则调解部240,开始向AES运算部250输入流。AES运算部250,对于首部部分的7字节,不进行运算而原封不 动地输出到调解部240,对于有效负载部分,依次进行加密运算而输出 到调解部240。AES运算结果,被输入到调解部240后,经过流分析部230以及流控制部220被输出到外部装置201。在此,流500中包含121字节的有效负载。由于AES的运算单位 是16字节,因此121字节除以16后剩下的最后9字节成为未满运算 单位的尾数有效负载502。对于上下文ID"O",由于尾数输出标记为ON,因此流分析部230 通过流控制部220将尾数有效负载502输出到外部装置201 。因此,向外部装置201输出的流510是,首部为7字节、有效负 载中的AES运算结果为112字节、尾数有效负载为9字节的共计128 字节的流。其次,如图9所示,机密信息处理装置200,对流ID"1"的前半 部分的流520进行处理。从外部装置201输入的流ID"1"的流,经过 流控制部220、流分析部231以及调解部240被输入到SHA1运算部 252。并且,与对流ID "0"的流500的处理相同,进行流分析部231 以及SHA1运算部252所保持的上下文的保存以及返回。流520中包含123字节的有效负载,由于SHA的运算单位是64 字节,因此123字节除以64后剩下的最后59字节成为未满运算单位 的尾数有效负载522。由于上下文ID "1"的上下文所包含的尾数输出标记为OFF,因 此SHA1运算部252将尾数有效负载522作为上下文保存到上下文存 储部2U。并且,由于上下文ID"l"的上下文所包含的流非输出标记为ON, 因此流控制部220不将流向外部装置202输出。其次,机密信息处理装置200,对流ID"O"的后半部分的流501 进行处理。在此,由于在对流500进行处理时尾数有效负载502被输出到机 密信息处理装置200外部,外部装置201,在对流501进行处理时,应 当输入向流501的开头连接尾数有效负载502后的共计137字节的流。机密信息处理装置200,对所输入的流及时实施AES运算,将由 AES运算结果128字节和尾部9字节构成的流511输出到外部装置201 。最后,机密信息处理装置200,对流ID"1"的后半部分的流521 进行处理。由于在对流520进行处理时尾数有效负载522作为上下文被保存, 因此在对流521进行处理时,SHA1运算部252连接尾数有效负载522 和流521。 g卩,由于在机密信息处理装置200内部对尾数有效负载522 进行处理,因此外部装置201不需要对尾数有效负载522进行处理。对251字节的有效负载的、使用HMAC-SHA1的运算结果即MAC 值523,被保存到上下文存储部211,作为上下文ID "1"所包含的散 列值被存储。据此,外部装置202,可以读出存储在上下文存储部211 的散列值。如上所述,机密信息处理装置200,可以对辐辏的两个流进行不同 加密运算。其次,作为第二运算例说明,对一个流进行两次加密运算的例子。 具体而言,作为第一次的加密运算进行HMAC-SHA1运算,而通过运 算所生成的MAC值被编入到流中。作为第二次的加密运算进行AES加密。假设,流ID"2"的流,经过外部装置201被输入。假设,流ID "2"的流的长度是256字节。假设,对于流ID "2"的流的加密运算 处理,以前半部分128字节、后半部分128字节的顺序分割两次进行 处理。如图4所示,对流ID "2"的流进行使用上下文ID "2"的上下文 的第一次的加密运算,进一步,对进行了第一次的加密运算的流进行 使用上下文ID "3"的上下文的第二次的加密运算。并且,如图6所示,在上下文ID "2"的上下文中,由外部装置 202预先设定有HMAC-SHA1;首部长度为4字节;有效负载长度为 196字节;尾部长度为56字节;尾数输出标记为OFF;有效负载连续 次数为l;流非输出标记为OFF;散列值替换位置为201;以及散列值 比较位置为0。并且,在上下文ID"3"的上下文中,预先由外部装置202设定有 使用AES的CBC加密;首部长度为32字节;有效负载长度为224字 节;尾部长度为O字节;尾数输出标记为OFF;有效负载连续次数为1;以及流非输出标记为OFF。图10是在机密信息处理装置200的第二运算例中的流的结构图。 图11是示出由机密信息处理装置200对第二运算例中的流进行的处理 的图。图10所示的流600是,从外部装置201输入到机密信息处理装置 200的256字节的流。在HMAC-SHA1中,在流600中数据A为首部;将数据B和数据C合并为有效负载;将数据D和数据E合并为尾 部。并且,在AES运算中,在流600中:将数据A和数据B合并为首 部;将数据C、数据D和数据E合并为有效负载。下面,对于处理顺序,以与第一运算例不同之处为中心进行说明, 而省略重复说明。首先,说明对流ID"2"的流的前半部分的流610进行的处理。流控制部220,参照上下文对应表212来确认,将对流ID"2"进 行使用上下文ID "2"的上下文的第一次的加密运算、和使用上下文 ID "3"的上下文的第二次的加密运算。据此,流控制部220控制内部 通路以使将流ID "2"的流输出到流分析部230;将由流分析部230 输出的、进行了第一次的加密运算的流输出到流分析部231;将由流分 析部231输出的、进行了第二次的加密运算的流输出到外部装置201。流分析部230,参照上下文ID "2"的上下文所包含的首部长度、 有效负载长度以及尾部长度,将数据B和数据C判别为HMAC-SHA1 运算的对象数据。SHA1运算部252,对有效负载即数据B和数据C的共计124字节 中的、运算单位的整数倍的64字节进行运算。B卩,SHA1运算部252, 对将数据B和从数据C的开头36字节合并后的64字节进行 HMAC-SHA1运算。SHA1运算部252,存储运算结果即中间结果。SHA1运算部252,将除了未满运算单位的60字节的尾数有喊负 载612以外的流原封不动地输出。即,SHA1运算部252,将连接数据A、数据B和从数据C的开头36字节后的流620输出。并且,SHA1 运算部252,将尾数有效负载612作为上下文ID"2"的上下文保存到 上下文存储部211。流620,通过调解部240以及流分析部230被输入到流分析部231 。流分析部231,参照上下文ID"3"的上下文中的首部长度、有效 负载长度以及尾部长度,将数据C判别为AES运算的对象数据。AES运算部250,对流620所包含的数据C的36字节中的、作为 运算对象的从开头32字节进行加密运算。AES运算部250,将运算结 果即加密数据C替换为对象数据。AES运算部250,将由数据A、数 据B以及加密数据C构成的流630输出。流630,通过调解部240、流分析部231以及流控制部220被输出 到外部装置201。并且,AES运算部250,将数据C的剩余4字节即尾数有效负载 622作为上下文ID "3"的上下文保存到上下文存储部211。其次,说明对流ID "2"的流的后半部分的流611进行的处理。从外部装置201输入的流611,通过流控制部220、流分析部230 以及调解部240被输入到SHA1运算部252。SHA1运算部252,向流611的开头连接作为上下文ID "2"的上 下文所存储的尾数有效负载612。 SHA1运算部252,对连接后的数据 中的有效负载部分即132字节进行HMAC-SHA1运算。并且,在SHA1运算部252中,由于在上下文ID"2"中散列值替换位置为201,因此将从流的开头第201字节的数据iy替换为HMAC-SHA1运算结果即MAC值。因此,SHAl运算部252,将连接 数据C中的132字节、MAC值和数据E后的流621输出。流621,通过调解部240、流分析部230、流控制部220、流分析 部231以及调解部240被输入到AES运算部250。AES运算部250,向流621的开头连接作为上下文ID "3"的上下 文所存储的尾数有效负载622。 AES运算部250,对连接后的数据192 字节进行AES运算。AES运算部250,将连接AES运算结果即加密数 据C、加密MAC值以及加密数据E后的流631输出。流631,通过调解部240、流分析部231以及流控制部220被输出 到外部装置201。如上所述,机密信息处理装置200,可以对一个流进行不同两次加 密运算。并且,可以将运算结果即MAC值编入到流中。其次,作为第三运算例说明,对一个流进行两次加密运算的例子。 具体而言,作为第一次的加密运算进行AES解密。作为第二次的加密 运算进行HMAC-SHA1运算。并且,对由HMAC-SHA1运算生成的 MAC值、和流所包含的规定区域的数据进行比较。假设,流ID"3"的流,经过外部装置201被输入。并且,假设, 流ID "3"的流的长度是256字节。并且,假设,机密信息处理装置 200,以前半部分128字节、后半部分128字节的顺序分割两次进行处 理。如图4所示,对流ID "3"的流进行使用上下文ID "4"的上下文 的加密运算,进一步,对进行了第一次的加密运算的流进行使用上下文ID "5"的上下文的第二次的加密运算。并且,如图6所示,在上下文ID"4"的上下文中,预先由外部装 置202设定有使用AES的CBC解密;首部长度为32字节;有效负载长度为224字节;尾部长度为0字节;尾数输出标记为OFF;有效 负载连续次数为l;以及流非输出标记为OFF。并且,在上下文ID"5"的上下文中,预先由外部装置202设定有: MAC-SHA1;首部长度为4字节;有效负载长度为196字节;尾部长 度为56字节;尾数输出标记为OFF;有效负载连续次数为l;流非输 出标记为OFF;散列值替换位置为201;以及散列值比较位置为201。图12是在机密信息处理装置200的第三运算例中的流的结构图。 图13是示出由机密信息处理装置200对第三运算例中的流进行的处理 的图。图12所示的流700是,从外部装置201输入到机密信息处理装置 200的256字节的流。在AES运算中,在流700中将数据A和数据 B合并为首部;将加密数据C、加密MAC值和加密数据E合并为有效 负载。并且,在MAC-SHA1中,在流700中:数据A为首部;将数据 B和加密数据C合并为有效负载;将加密MAC值和加密数据E合并 为尾部。下面,对于处理顺序,以与第一以及第二运算例不同之处为中心 进行说明,而省略重复说明。首先,说明对流ID"3"的流的前半部分的流710进行的处理。 从外部装置201输入的流710,通过流控制部220、流分析钿230以及调解部240被输入到AES运算部250。AES运算部250,对加密数据C中流710所包含的96字节进行解 密。AES运算部250,将加密数据C替换为解密后的数据C,并将其 输出。流720,通过调解部240、流分析部230、流控制部220、流分析 部231以及调解部240被输出到SHAl运算部252。SHAl运算部252,对于有效负载即数据B以及数据C,对在共计 124字节中的、将数据B和从数据C的开头36字节合并后的64字节 进行HMAC-SHAl运算。SHAl运算部252,将连接数据A、数据B 和从数据C的开头36字节后的流730输出。SHAl运算部252,存储运算结果即中间结果。并且,SHAl运算 部252,将数据C的剩余60字节即尾数有效负载722作为上下文ID"5" 的上下文存储。流730,通过调解部240、流分析部231以及流控制部220被输出 到外部装置201。其次,说明对流ID"3"的流的后半部分的流711进行的处理。从外部装置201输入的流711,通过流控制部220、流分析部230 以及调解部240被输入到AES运算部250。AES运算部250,由于流711的全部是有效负载,因此对流711 整体进行解密。AES运算部250,将连接运算结果即数据C、 MAC值 以及数据E后的流721输出。流721,通过调解部240、流分析部230、流控制部220、流分析部231以及调解部240被输出到SHA1运算部252。SHA1运算部252,向流721的开头连接尾数有效负载722。 SHAl 运算部252,对连接后的数据中的有效负载部分即132字节进行 HMAC-SHA1运算,从而生成MAC值732。SHAl运算部252,将连接数据C中的132字节、MAC值以及数 据E后的流731输出。流731,通过调解部240、流分析部231以及流 控制部220被输出到外部装置201。并且,由于在上下文ID"5"中散列值比较位置是201,因此SHA1 运算部252,对从流的开头第201字节的、流721所包含的MAC值和 MAC值732进行比较。SHA1运算部252,将比较结果保存到上下文 存储部211。据此,外部装置202可以确认比较结果。据此,机密信息处理装置200,可以对一个流进行不同的两次加密 运算。并且,可以对运算结果即MAC值和流的规定区域的数据进行比 较。其次,作为第四运算例说明,同时输入两个流的例子。并且,对 两个流分别进行两次加密运算。流ID "4"的流经过外部装置201被输入,流ID "5"的流经过外 部装置202被输入。假设,流ID "4"和流ID "5"的两种流的长度均为256字节。并 且,假设,机密信息处理装置200,对流ID "4"和流ID "5"同时进 行处理。如图4所示,对流ID "4"的流进行使用上下文ID "6"的上下文的加密运算,进一步,对进行了第一次的加密运算的流进行使用上下文ID "7"的上下文的第二次的加密运算。对流ID "5"的流进行使用 上下文ID"8"的上下文的加密运算,进一步,对进行了第一次的加密 运算的流进行使用上下文ID "9"的上下文的第二次的加密运算。并且,如图6所示,在上下文ID"6"的上下文中,预先由外部装 置202设定有使用AES的CBC解密;首部长度为0字节;有效负 载长度为128字节;尾部长度为0字节;尾数输出标记为OFF;有效 负载连续次数为l;以及流非输出标记为OFF。在上下文ID"7"的上下文中,预先由外部装置202设定有使用 AES的CBC加密;首部长度为0字节;有效负载长度为128字节;尾 部长度为0字节;尾数输出标记为OFF;有效负载连续次数为l;以及 流非输出标记为OFF。并且,在上下文ID"8"的上下文中,预先由外部装置202设定有 HMAC-SHA1;首部长度为20字节;有效负载长度为200字节;尾部 长度为36字节;尾数输出标记为OFF;有效负载连续次数为l;流非输出标记为OFF;散列值替换位置为221;以及散列值比较位置为0。 在上下文ID"9"的上下文中,预先由外部装置202设定有使用DES的CBC加密;首部长度为0字节;有效负载长度为128字节;尾部长度为128字节;尾数输出标记为OFF;有效负载连续次数为l;以及流非输出标记为OFF。在此,由外部装置202对上下文ID "6"和上下文ID "7"艰定其它密钥的情况下,对流lt)"4"的流的运算是,对流进行解密后重新用不同密钥进行加密的处理。下面,对于处理顺序,以与第一至第三运算例不同之处为中心进 行说明,而省略重复说明。在对流ID "4"的流进行的第一次的运算中,流,通过流控制部220、 流分析部230、调解部240被输入到AES运算部250。 AES运算 部250对流进行解密。解密后的流,通过调解部240以及流分析部230 被输入到流控制部220。在对流ID"4"的流进行的第二次的运算中,流控制部220,将进 行了第一次的运算的流,通过流分析部231以及调解部240输出到AES 运算部250。 AES运算部250对流进行加密。加密后的流,通过调解 部240以及流分析部231被输出到外部装置201。在对流ID "5"的流进行的第一次的运算中,流,通过流控制部221、 流分析部232、调解部240被输入到SHA1运算部252。 SHA1 运算部252对流进行第一次的加密运算。进行了第一次的加密运算的 流,通过调解部240以及流分析部232被输入到流控制部221 。在对流ID"5"的流进行的第二次的运算中,流控制部221,将进 行了第一次的运算的流,通过流分析部233以及调解部240输出到DES 运算部251。 DES运算部250对流进行第二次的加密运算。进行了第 二次的加密运算的流,通过调解部240、流分析部233以及流控制部 221被输出到外部装置202。此时,对流ID "4"的流进行的第一次的运算以及第二次的运算, 都由DES运算部250进行。因此,需要以分时来进行第一次的运算和第二次的运算。
为此,调解部240,检验来自流分析部230、 231、 232以及233 的流的运算请求来进行控制。调解部240,在向相同算法的运算请求冲 突的情况下,对冲突的流,优先接受来自优先级高的流分析部230、231、 232以及233的运算请求。调解部240,进行对接受的运算请求的上下 文保存以及返回请求、和流的输出入处理。例如,按照流分析部233、 232、 231以及230的顺序,依次决定高优先级。
调解部240,对预先接受的运算请求的加密运算在对应的运算部 250、 251或252结束后,接收加密运算后的输出流。调解部240,将 所接收的输出流输出到流分析部230、 231、 232或233。调解部240, 将输出流输出到流分析部后,再次检验运算请求,并进行与上述相同 的处理。
因此,对流ID "4"的流进行的运算中,首先,AES运算部250 进行使用上下文ID"6"的运算。该运算结果,被存储到流控制部220 内的缓冲器302。
由于流分析部231的优先次序高于流分析部230的优先次序,因 此在存储在缓冲器302的流通过流分析部231被输入到调解部240时, 变更调解次序。据此,调解部240,将对AES运算部250的上下文保 存以及返回的请求发送到上下文控制部210。据此,上下文ID"7"的 上下文被存储到AES运算部250。
AES运算部250执行使用上下文ID "7"的运算。
如此,多次进行对AES运算部250的上下文ID "6"以及上下文ID "7"的上下文的保存以及返回,从而结束流整体的运算。在此,通过流控制部221包括缓冲器302,从而可以以一堆数据单 位来进行由流分析部231向调解部240的处理请求。据此,机密信息 处理装置200,可以减少AES运算部250的上下文保存以及返回次数。 并且,第二次的加密运算中使用的流分析部231的优先级,被设 定为高于第一次的加密运算中使用的流分析部230的优先级。据此, 结束了第一次的加密运算的流,被优先进行加密运算。即,存储在缓 冲器302的流,被优先加密运算,且被输出到外部装置201。据此,可以减少缓冲器302所存储的流的数据量。即,可以减少缓冲器302的命"^ 合里。而且,对流ID "5"的流进行的运算是,使用HMAC-SHA1以及 DES的运算。艮卩,在流ID "5"的流进行的运算中使用与流ID "4"不 同的算法。因此,对DES运算部251以及SHA1运算部252的上下文 的保存以及返回,在最初只被进行一次。并且,由于在上下文ID"8"的上下文中设定有,流非输出标记为 OFF以及散列值替换位置为221,因此SHA1运算部252,将从外部装 置202输入的流中从开头第221字节的20字节,替换为对流的有效负 载部分进行HMAC-SHA1运算的运算结果即散列值。并且,DES运算 部251,将从替换后的流的开头128字节的部分替换为DES运算结果, 并将其输出。DES运算部251所输出的流,被输出到外部装置201。如上所述,机密信息处理装置200,可以对同时输入的两个流,分 别进行两次加密运算。并且,即使在对第一次的加密运算和第二次的加密运算使用相同运算部的情况下,也可以将流输入一次来进行两次 加密运算。其次,作为第五运算例说明,将流中的分散的区域的数据作为一 个数据来进行加密运算的例子。流ID "6"的流,经过外部装置201被输入。假设,流ID "6"的 流的长度为512字节。并且,假设,在对流ID"6"的流整体进行处理 时,在中途不对其它流进行处理而以一次被处理。如图4所示,流ID "6"的流,使用上下文ID "10"的上下文被 进行加密运算。并且,如图6所示,在上下文ID "10"的上下文中预先由外部 装置202设定有HMAC-SHA1;首部长度为32字节;有效负载长度 为128字节;尾部长度为96字节;尾数输出标记为OFF;有效负载连 续次数为2;以及流非输出标记为ON。图14是示出由机密信息处理装置200对第五运算例中的流进行的 处理的图。第五运算例的处理流程,除了有效负载连续次数为2之处以外, 与流ID "1"的情况相同。从外部装置201输入的流800,通过流控制部220、流分析部230、 调解部240被输入到SHA1运算部252。由于有效负载连续次数为2,因此SHA1运算部252,对于512字 节的流800,将从第33字节的128个字节的有效负载1和从第289字 节的128个字节的有效负载2的共计即256字节作为连续的一个有效负载801。 SHA1运算部252,对256字节的有效负载801进行 HMAC-SHA1运算。SHA1运算部252,将运算结果即MAC值802作为上下文保存到 上下文存储部211。 MAC值802,作为上下文存储表213所包含的上 下文ID "10"的上下文的散列值被存储。据此,外部装置202,可以 从上下文存储表213中读出MAC值802。如上所述,机密信息处理装置200,可以将流中的分散的区域的数 据作为 一个数据进行加密运算。据此,机密信息处理装置200,在对一个输入流进行多次加密运算 的情况下,针对每个加密运算,不同流分析部230、 231、 232以及233 判别输入流的不同区域的对象数据。据此,即使在多次加密运算中输 入流内的加密运算对象的数据不同的情况下,也可以以容易的软件控 制来从输入流中判别出任意的区域中包含的加密运算对象的数据。具体而言,通过由外部装置201以及202设定上下文对应表212 的内容,可以对一个流设定任意的次数、以及使用任意的上下文的加 密运算。再者,通过包括多个流分析部230、 231、 232以及233,不需要将 对流分析部230、 231、 232以及233的上下文的保存以及返回,在每 次第一次的加密运算时和第二次的加密运算时进行切换。据此,可以 减少上下文的保存以及返回的频度。同样,机密信息处理装置200,即使在同时输入多个流的情^1下, 也可以以容易的软件控制来从输入流中判别出任意的区域中包含的加密运算对象的数据。再者,流控制部220,将进行了一次加密运算的流输入到其它流分 析部230、 231、 232或233。据此,即使在每次加密运算结束时不将流 向外部装置201以及202输出,也可以将流输入一次来进行多次加密 运算。再者,利用调解部240来可以在多个流分析部230、 231、 232以 及233和运算部250、 251以及252之间形成任意的通路。据此,可以 将流输入一次来进行使用同一算法的多次加密运算(例如,进行解密后 进行加密)。同样,可以对多个流进行使用同一算法的加密运算。再者,在机密信息处理装置200中,多个上下文被存储到上下文 存储部211。并且,利用上下文控制部210来可以进行加密运算中使用 的上下文的保存以及返回。据此,通过从上下文存储部211读出对应的上下文,从而可以容 易地对应多种运算方法。并且,由于运算部250、 251以及252包括寄 存器等即可,因此可以减少运算部250、 251以及252的电路规模,所 述寄存器可以存储至少一个上下文。并且,通过设定对多种运算方法 的上下文、且将设定后的上下文存储到上下文存储部211,从而可以容易地设定运算方法的变更以及追加等。再者,机密信息处理装置200包括,分别对应不同加密算法的多 个运算部250、 251以及252。据此,在对一个流进行使用不同加密算 法的多次加密运算的情况下,利用不同运算部250、 251以及252来可 以进行每个加密运算。同样,在对多个流进行使用不同加密算法的加密运算的情况下,利用不同运算部250、 251以及252来可以进行每个 加密运算。据此,即使在各个运算部250、 251以及252只保持一个上下文的 情况下,也不需要在每次进行加密运算时进行上下文的保存以及返回。 据此,由于可以减少进行上下文的保存以及返回的频度,因此机密信 息处理装置200可以高速地进行加密运算处理。再者,机密信息处理装置200,将运算结果即散列值以及MAC值 存储到上下文存储部211。据此,外部装置201以及202,可以读出运 算结果即散列值以及MAC值。并且,机密信息处理装置200,即使进行使用散列运算以及密钥加 密算法的认证处理的情况下,也将输入流输出到外部装置201或其它 流分析部230、 231、 232以及233。据此,可以对流进行与进行加密以 及解密的情况相同的处理。再者,机密信息处理装置200,将尾数有效负载存储到上下文存储 部211。据此,在所输入的流的对象数据不是运算单位的整数倍的情况 下,即使不向外部装置201以及202输出尾数有效负载,也可以在机 密信息处理装置200内进行尾数有效负载的处理。再者,机密信息处理装置200,将上下文存储到上下文存储部211, 该上下文包含有效负载连续次数。据此,机密信息处理装置200,可以 将流中的分散的区域的数据作为一个数据进行加密运算。再者,机密信息处理装置200,将上下文存储到上下文存储部211, 该上下文包含散列值替换位置。据此,机密信息处理装置200,可以将运算结果即散列值以及MAC值编入到流中的任意的位置。再者,机密信息处理装置200,将上下文存储到上下文存储部211, 该上下文包含散列值比较位置。据此,机密信息处理装置200,可以对 运算结果即散列值以及MAC值和流中的任意的位置的数据进行比较。 并且,机密信息处理装置200,将上下文存储到上下文存储部211, 该上下文包含数输出标记;有效负载连续次数;流非输出标记;散 列值替换位置;散列值比较位置。据此,通过设定上下文存储部211 所存储的上下文,从而可以对应多种加密运算。如上所述,根据本发明涉及的机密信息处理装置200,可以对一个 流进行运算方法不是唯一的、多种且多次加密运算,并且可以容易地 进行由软件的控制。并且,根据本发明涉及的机密信息处理装置200, 即使在进行多种运算方法的加密运算的情况下,也可以容易地进行由 软件的控制。在上面,对本发明的实施例涉及的机密信息处理装置进行了说明, 但是,本发明不仅限于该实施例。例如,在上述说明中,对机密信息处理装置200包括三个运算部 250、 251以及252的例子进行了说明,但是,运算部的数量不仅限于 此。例如,机密信息处理装置200,可以只包括对应密钥加密算法的运 算部,也可以只包括对应散列算法的运算部。并且,也可以机密信息 处理装置200包括二个或四个以上的运算部。并且,在上述说明中,运算部对应的加密算法是AES、 bES以及 SHA,但是,也可以是Multi2、 Camellia、 MD5(Message Digest5)等其它加密算法。并且,由各个运算部进行的加密运算模式,也可以是CBC、 ECB(Electronic Codebook)、 XCBC-MAC、 OFB(Output Feedback:输出 反馈)、CTR(Counter)等任意的模式。并且,在上述说明中,机密信息处理装置200包括两个以上的流 控制部220以及221,但是,包括一个以上的任意的数量的流控制部即 可。并且,在上述说明中,机密信息处理装置200,对流控制部220 以及221分别包括两个流分析部,但是,也可以对流控制部220以及 221分别包括一个或三个以上的流分析部。再者,在此情况下,也可以 在上下文对应表212中设定对应一个流ID的三个以上的上下文ID。据 此,对一个流可以进行三次以上的加密运算。并且,机密信息处理装置200,可以对流控制部220以及221分别 包括不同数量的流分析部。并且,在上述说明中,上下文存储部211存储上下文对应表212, 但是,也可以流控制部220以及221等存储上下文对应表212。并且,在上述说明中,AES运算部250以及DES运算部251进行 加密以及解密,但是,也可以只进行加密以及解密中的任一个。并且,在上述说明中,在上下文对应表212存储7个流ID,但是, 也可以所存储的流ID的数量是任意的。并且,在上述说明中,在上下文存储表213存储ll个上下klD, 但是,也可以所存储的上下文ID的数量是任意的。并且,在上述说明中,在尾数输出标记为OFF的情况下,运算部 250、 251以及252进行尾数有效负载的保存以及返回;基于有效负 载连续次数的运算对象的抽取;基于散列值替换位置的散列值或MAC 值的替换;基于散列值比较位置的散列值或MAC值的比较;但是,也 可以流分析部230、 231、 232以及233进行上述处理中的一个以上的 处理。并且,在上述说明中,流分析部230、 231、 232以及233,通过调 解部240将用于确定对象数据的信息和流输出到运算部250、 251以及 252,但是,也可以只将对象数据输出到运算部250、 251以及252。并且,在上述说明中,运算部250、 251以及252,将所生成的 MAC值、散列值以及尾数有效负载存储到上下文存储部211,但是, 也可以运算部250、 251以及252本身保持,作为上下文260、 261以 及262所生成的MAC值、散列值以及尾数有效负载。在该情况下,在 进行上下文的保存时等,MAC值、散列值以及尾数有效负载被存储到 上下文存储部211。并且,在上述说明中,由专用电路(硬件)构成上下文控制部210; 流控制部220以及221;流分析部230、 231 、 232以及233;调解部240; AES运算部250; DES运算部251; SHA1运算部252,但是,也可以 通过CPU等执行程序(软件)来实现由上述处理部实现的功能的一部分。并且,在上述说明中,作为流控制部220以及221的结构示出了 图5所示的结构,但是,流控制部220以及221的结构不仅限于此。图15是流控制部220以及221的变形例的结构图。图15所示的流控制部220,将从外部装置201输入的输入流输出到流分析部230 或231。并且,流控制部220,将由流分析部230输出的输出流,通过 缓冲器302输出到流分析部231,并且,将由流分析部231输出的输出 流输出到外部装置201。再者,也可以是,流控制部220的结构为可以以任意的组合来 连接外部装置201、流分析部230以及流分析部231之间的通路。艮卩, 流控制部220也可以,将从外部装置201输入的输入流选择性地输出 到流分析部230或231 ,并且将由流分析部230以及231输出的输出流 分别选择性地输出到外部装置201、其它流分析部230或231。并且,在上述说明中,对将本发明涉及的机密信息处理装置200 适用于移动电话的例子进行了说明,但是,也可以适用于数字电视机、 STB、 DVD刻录机、DVD播放器、HD刻录机、PC以及移动信息终端 (PDA:个人数字助理)等。图16是本发明的实施例涉及的机密信息处理机器100的变形例的 结构图。如图16所示,机密信息处理机器IOO,也可以对由外部机器 109以数字广播等发送的加密数据进行解密,从而在显示部104显示。 并且,机密信息处理机器IOO,也可以对存储介质(CD、 DVD、存储卡 以及USB存储器等)106所存储的加密数据进行解密。并且,机密信息 处理机器100,也可以将由机密信息处理装置200加密后的数据存储到 存储介质106。并且,机密信息处理机器100,也可以对由外部机器108 通过网络107发送的加密数据进行解密。并且,机密信息处理机器100, 也可以将由机密信息处理装置200加密后的数据通过网络107发送到外部机器108。本发明可以适用于机密信息处理装置,尤其可以适用于与需要加 密通信的网络连接的机密信息处理机器、以及对保护板权的流进行处 理的机密信息处理机器。例如,本发明可以适用于移动电话、数字电 视机、STB(Set Top Box:机顶盒)、DVD刻录机、DVD播放器、HD 刻录机、PC以及PDA等。
权利要求
1、一种机密信息处理装置,对从外部装置输入的数据流所包含的不同对象数据进行多次加密运算,其特征在于,包括至少一个流分析部,通过分析数据流,从而判别所述对象数据;至少一个加密运算部,保持上下文,并使用所保持的所述上下文对数据流所包含的所述对象数据进行加密运算,所述上下文包含加密运算中使用的密钥、初始值以及加密运算中途的中间信息中的一个以上;上下文存储部,存储多个所述上下文;对应表存储部,存储对应表,该对应表示出对数据流进行加密运算的次数和每次加密运算中使用的上下文;上下文控制部,在所述加密运算部所保持的所述上下文与所述对应表所示的加密运算中使用的上下文不一致的情况下,使所述加密运算部所保持的上下文退避到所述上下文存储部,并且使所述上下文存储部所存储的所述多个上下文中的、所述对应表所示的加密运算中使用的上下文返回到所述加密运算部;以及流控制部,将由所述加密运算部进行了所述对应表所示的次数的加密运算的数据流输出到所述外部装置,将从所述外部装置输入的数据流以及由所述加密运算部进行了加密运算的次数未满所述对应表所示的次数的加密运算的数据流,输出到所述流分析部。
2、 如权利要求1所述的机密信息处理装置,其特征在于,所述至少一个流分析部,包含通过分析数据流来判别所述对象数 据的第一流分析部以及第二流分析部,在所述对应表示出对数据流进行两次以上的加密运算的情况下, 所述流控制部,将该数据流输出到所述第一流分析部,将由所述加密 运算部进行了第一次加密运算的数据流输出到所述第二流分析部。
3、 如权利要求1所述的机密信息处理装置,其特征在于,所述至少一个加密运算部,包含第一运算部,对所述对象数据进行使用了第一加密算法的加密运 算;以及第二运算部,对所述对象数据进行使用了与所述第一加密算法不 同的第二加密算法的加密运算,所述第一运算部以及所述第二运算部,分别保持至少一个所述上 下文。
4、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含散列运算部,该散列运算部通过对所述对象数据进行散列运算,从而生成散列值,所述上下文,包含由所述散列运算部生成的散列值, 所述流控制部,将所述散列运算部进行了散列加密运算的数据流,以从所述外部装置输入的状态,直接输出到所述外部装置或所述流分析部。
5、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含散列运算部,该散列运算部通过对所述对象数据进行散列运算,从而生成散列值,所述上下文,包含散列值替换位置信息,该散列值替换位置信息 是示出数据流所包含的数据的规定位置的信息,所述散列运算部,将对应于数据流的所述散列值替换位置信息所 示的所述规定位置的数据替换为所述散列值,所述流控制部,将所述规定位置的数据通过所述散列运算部被替 换为所述散列值的数据流,输出到所述外部装置或所述流分析部。
6、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含散列运算部,该散列运算部通过对所述对象数据进行散列运算,从而生成散列值,所述上下文,包含散列值比较位置信息,该散列值比较位置信息 是示出数据流所包含的数据的规定位置的信息,所述散列运算部,判断对应于数据流的所述散列值比较位置信息 所示的所述规定位置的数据和所述散列值是否一致。
7、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含密钥加密运算部,该密钥加密运算部通过对所述对象数据进行使用密钥加密算法的认证模式运算,从而生成消息认证符,所述上下文,包含由所述密钥加密运算部生成的消息认证符, 所述流控制部,将所述密钥加密运算部进行了认证模式运算的数据流,以从所述外部装置输入的状态,直接输出到所述外部装置或所述流分析部。
8、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含密钥加密运算部,该密钥加密运算部通过对所述对象数据进行使用密钥加密算法的认证模式运算,从 而生成消息认证符,所述上下文,包含消息认证符替换位置信息,该消息认证符替换 位置信息是示出数据流所包含的数据的规定位置的信息,所述密钥加密运算部,将对应于数据流的所述消息认证符替换位 置信息所示的所述规定位置的数据替换为所述消息认证符,所述流控制部,将所述规定位置的数据通过所述密钥加密运算部 被替换为所述消息认证符的数据流,输出到所述外部装置或所述流分 析部。
9、 如权利要求1所述的机密信息处理装置,其特征在于, 所述至少一个加密运算部,包含密钥加密运算部,该密钥加密运算部通过对所述对象数据进行使用密钥加密算法的认证模式运算,从 而生成消息认证符,所述上下文,包含消息认证符比较位置信息,该消息认证符比较 位置信息是示出数据流所包含的数据的规定位置的信息,所述密钥加密运算部,判断对应于数据流的所述消息认证符比较 位置信息所示的所述规定位置的数据和所述消息认证符是否一致。
10、 如权利要求l所述的机密信息处理装置,其特征在于, 所述上下文,在所述对象数据的数据量不是加密运算中的运算单位的整数倍的情况下,包含未满所述运算单位的对象数据即尾数数据,所述加密运算部,在对后续的数据流进行加密运算时,对包含所 述上下文所包含的所述尾数数据的对象数据进行加密运算。
11、 如权利要求1所述的机密信息处理装置,其特征在于, 所述上下文,包含连续处理信息,该连续处理信息示出数据流中的多个分散的区域,所述加密运算部,将所述连续处理信息所示的所述多个分散的区 域的数据作为一个数据进行加密运算。
12、 如权利要求1所述的机密信息处理装置,其特征在于, 所述上下文,包含区域信息,该区域信息是示出数据流所包含的数据中的、进行加密运算的区域的信息,所述流分析部,将所述区域信息所示的区域的数据判别为所述对象数据。
13、 如权利要求1所述的机密信息处理装置,其特征在于, 所述流控制部,包括缓冲器,该缓冲器保持由所述加密运算部进行了加密运算的数据流,并且将所保持的数据流输出到所述流分析部。
14、 如权利要求2所述的机密信息处理装置,其特征在于, 所述机密信息处理装置,还包括调解部,该调解部在由所述第一流分析部以及所述第二流分析部判别出所述对象数据的数据流中选择 任一个,将所选择的数据流输出到所述加密运算部,所述加密运算部,对由所述调解部输出的数据流所包含的所述对 象数据,使用所保持的所述上下文进行加密运算。
15、 如权利要求1所述的机密信息处理装置,其特征在于,所述至少一个加密运算部,包含密钥加密运算部,对所述对象数据进行密钥加密运算;以及散列运算部,对所述对象数据进行散列运算。
16、 一种机密信息处理机器,对数据流所包含的不同对象数据进 行多次加密运算,其特征在于,包括接收部,接收从外部机器发送的数据流;至少一个流分析部,通过分析由所述接收部接收的数据流,从而判别所述对象数据;至少一个加密运算部,保持上下文,并使用所保持的所述上下文 对数据流所包含的所述对象数据进行加密运算,所述上下文包含加密 运算中使用的密钥、初始值以及加密运算中途的中间信息中的一个以 上;上下文存储部,存储多个所述上下文;对应表存储部,存储对应表,该对应表示出对数据流进行加密运 算的次数和每次加密运算中使用的上下文;上下文控制部,在所述加密运算部所保持的所述上下文与所述对 应表所示的加密运算中使用的上下文不一致的情况下,使所述加密运 算部所保持的上下文退避到所述上下文存储部,并且使所述上下文存 储部所存储的所述多个上下文中的、所述对应表所示的加密运算中使 用的上下文返回到所述加密运算部;显示部,再生并显示数据流;以及流控制部,将由所述加密运算部进行了所述对应表所示的次数的加密运算的数据流输出到所述显示部,将从所述外部装置输入的数据 流以及由所述加密运算部进行了加密运算的次数未满所述对应表所示 的次数的加密运算的数据流,输出到所述流分析部。
17、 一种机密信息处理机器,对数据流所包含的不同对象数据进行多次加密运算,其特征在于,包括至少一个流分析部,通过分析数据流,从而判别所述对象数据; 至少一个加密运算部,保持上下文,并使用所保持的所述上下文对数据流所包含的所述对象数据进行加密运算,所述上下文包含加密运算中使用的密钥、初始值以及加密运算中途的中间信息中的一个以上;上下文存储部,存储多个所述上下文;对应表存储部,存储对应表,该对应表示出对数据流进行加密运 算的次数和每次加密运算中使用的上下文;上下文控制部,在所述加密运算部所保持的所述上下文与所述对 应表所示的加密运算中使用的上下文不一致的情况下,使所述加密运 算部所保持的上下文退避到所述上下文存储部,并且使所述上下文存 储部所存储的所述多个上下文中的、所述对应表所示的加密运算中使 用的上下文返回到所述加密运算部;发送部,将数据流发送到外部机器;以及流控制部,将由所述加密运算部进行了所述对应表所示的次数的 加密运算的数据流输出到所述发送部,将从外部装置输入的数据流以 及由所述加密运算部进行了加密运算的次数未满所述对应表所示的次数的加密运算的数据流,输出到所述流分析部。
18、 一种机密信息处理装置中的机密信息处理方法,所述机密信 息处理装置对从外部装置输入的第一数据流所包含的不同对象数据进 行多次加密运算,其特征在于,所述机密信息处理装置,包括至少一个流分析部,通过分析数据流,从而判别所述对象数据; 至少一个加密运算部,保持上下文,并使用所保持的所述上下文 对数据流所包含的所述对象数据进行加密运算,所述上下文包含加密 运算中使用的密钥、初始值以及加密运算中途的中间信息中的一个以上;上下文存储部,存储多个所述上下文;对应表存储部,存储对应表,该对应表示出对数据流进行加密运 算的次数和每次加密运算中使用的上下文;上下文控制部,在所述加密运算部所保持的所述上下文与所述对 应表所示的加密运算中使用的上下文不一致的情况下,使所述加密运 算部所保持的上下文退避到所述上下文存储部,并且使所述上下文存 储部所存储的所述多个上下文中的、所述对应表所示的加密运算中使 用的上下文返回到所述加密运算部;以及流控制部,将由所述加密运算部进行加密运算的数据流输出到所 述外部装置或所述流分析部,在所述对应表示出对所述第一数据流进行两次以上的加密运算的 情况下,所述流分析部,从所述第一数据流判别出第一对象数据, 所述加密运算部,通过对所述第一数据流所包含的所述第一对象数据进行加密运算,从而生成第二数据流,所述流控制部,将所述第二数据流输出到所述流分析部, 所述流分析部,从所述第二数据流判别出第二对象数据, 所述加密运算部,通过对所述第二数据流所包含的所述第二对象数据进行加密运算,从而生成第三数据流,所述流控制部,将所述第三数据流输出到所述外部装置。
全文摘要
本发明提供机密信息处理机器、装置及方法。机密信息处理装置包括通过分析数据流判别对象数据的流分析部;加密运算部,保持上下文,使用上下文对对象数据加密运算,上下文包含加密运算中用的密钥、初始值以及加密运算中途的中间信息中的一个以上;上下文存储部;对应表存储部,存储对应表,示出对数据流进行加密运算的次数和加密运算中用的上下文;上下文控制部,使保持的上下文退避到上下文存储部,使存储的多个上下文中的、对应表所示的加密运算中用的上下文返回到加密运算部;以及流控制部,将进行了对应表所示次数的加密运算的数据流输出到外部装置,将外部装置输入的数据流以及进行了未满对应表所示次数的加密运算的数据流输出到流分析部。
文档编号H04L9/14GK101227274SQ20081000212
公开日2008年7月23日 申请日期2008年1月15日 优先权日2007年1月15日
发明者佐野正宏, 栗木悟, 根本祐辅, 藤原睦, 鸟崎唯之 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1