用于数字签名以及认证的系统及方法

文档序号:7921592阅读:334来源:国知局
专利名称:用于数字签名以及认证的系统及方法
技术领域
本发明涉及即使是受到很大限制的计算能力,或者即使完全没有计算单元,也可以利用公开密钥加密系统来安全地对装置或数字内容的签名进行认证的方法以及装置。
背景技术
认证是为了取締盗版行为、未认证的复制或伪造,所以承担重要的作用。例如,还可以在对护照的所有者进行认证或者以反伪造为目的的、内置了可无线通信的芯片的安全的护照中采用该认证,在此,认证用芯片对制造物的出处进行认证。并且,受到著作权保护的数字媒体为了防止盗版行为等未认证行为,
包含作为DRM (digital right managements)而公知的认证用令牌。结果,支持这些认证的设备(CD、 DVD、存储卡、其他相同的存储装置)经常具备认证机制。最后,认证还有效用于防止竟争者对产品进行逆向工程,并且对于低价格大量生产也有用。例如,为了防止使用由竟争者制造的再填充用(refill)器材或伪造的墨盒(cartridge),可以在打印机墨盒中安装认证用芯片。
认证由被认证装置(prover)将用于对其进行确定的证据提示给认证装置(verifier)的协议构成。通常,认证装置传送只有被认证装置可以解决的请求(挑战challenge),在该请求依照对称密钥加密法时,纟皮认证装置和认证装置共有公共的保密密钥,与此相对,在公开密钥加密法的情况下,只有被认证装置具有保密密钥,并且,任何认证装置都可以确认"企查)由被认证装置提供的请求的解。
期待在不久的将来把RFID芯片用作认证的手段,但是在现有技术中仅用于记录标签信息、即利用无线发送来不加密地净皮发送的固有的ID号码。因此,可以接收发送频率的任何人都获知该标签信息,之后可以制作其复制品(clone )。利用基于对称密钥加密法的协议,可以对被认证装置和认证装置的通信进行加密,所以是更好的解决方式。但是,由于保密密钥由被认证装置和认证装置所共有,所以在认证装置不可靠或失去信用时,可能会发生ID欺诈。
并且,在几乎所有情况下,一个认证装置必须认证多个被认证装置,因此一旦 一个认证装置失去信用时,全部的保密密钥都被公开,然后,全部被认证装置 也同样失去信用。并且,在反伪造系统的范围内,认证装置不是认证个别的产
品,而应该能够认证整个产品线。在产品线由数百万个单元(unit)构成时, 存储全部的密钥是过分的。此时,乍一看,代替对各个单元具备一个保密密钥 而对于全线具备一个密钥是更好的主意。但是,如果不幸唯一一个单元变得危 险,则产品的全线的信用变得危险。
取而代之,公开密钥密码系统,特别是数字签名可以用于认证的目的。认 证装置将随机的消息发送给使用其保密密钥在消息中签名的被认证装置。并 且,认证装置可以不使用保密密钥而仅使用被认证装置的公开密钥认证签名, 由此可以确认被认证装置的来历。在基于公开密钥加密法的认证系统中,认证 装置不知道被认证装置的保密密钥,所以具有认证装置无法伪装成被认证装置 的优点。并且,通过使用公开密钥勤出设施,可以容易地进行产品线的认证。 即,被认证装置在请求中进行数字签名,然后与其公开密钥一同由认证中心装 置(certificate authority )进行签名,提供包含了被认证装置的保密密钥的数字 签名的用于被认证装置的公开密钥的证书。因此,认证装置为了确认被认证装 置的来历,可以认证双方的签名。该方法不仅除去了向不存储个别单元的公开 密钥、而必须存储用于证明的认证手段(例如,用于全部产品线的单一的公开 密钥,该公开密钥从制造公司取得)的认证装置的存储请求,还包含简单的取 消机构。在某个被认证装置的保密密钥的信用丧失时,可以向全部认证装置中 设置的黑名单内发送该神皮认证装置的公开密钥。
以公开密钥加密法以及数字签名为J^出的认证系统具有以下问题。即,为 了构成数字签名,被认证装置必须具有某种运算能力。在最典型的数字签名的 方案中要求相当强的运算能力。但是,从认证机制看也许有用的多个平台不具 有强大的运算单元,更何况经常完全不具有运算单元,即它们是纯粹的存储单 元。例如,CD、 DVD、 SD卡或其他存储卡等可拆装的存储介质不具备CPU, 仅由存储器构成。因此,该平台无法从以公开密钥加密法为基础的认证方法中 获得利益。在专利文献1中公开了 ,利用具有熔丝、只可写一次的(read-once)阵列, 无需在被认证装置一侧进行运算来实现认证的发明。但是,在该文献的发明中, 为了证明由确认装置提供的应答,要求在认证装置中存储保密密钥,所以基本 上成为对称密钥认证协议。
专利文献1美国专利第5,032,708号
非专利文献17一7:y卜 7乇7、 、乂亇S—/k 7"f、一 「如何Cl L T&^t自身^証明卞3力、;特定及t/署名問題^0実用的解決」CRYPTO 1986 : 186-19非专利文献2少少夕^C. ,/k:7「認証S^fc:y、乂夕/P署名」CRYPTO 1989 : 218-238

发明内容
因此,本发明的目的以及优点在于,除了在上述专利中记载的发明的目的 以及优点之外,不对确认装置一侧要求任何运算单元地提供公开密钥的认证或 数字签名的机制。通过考虑以下的记载以及附图,其它目的以及优点将会变得 明确。
被认证装置(prover)具备存储有保密数据的特别的存储单元、即所谓的 只读一次存储单元。该单元存储的数据由阵列状配置的几个对(Ui, Di)构成, 在此,仅可以读出(取出)各对内的两个要素中的一方。在读出了对(Ui, Dj)的一个要素之后,从存储器中删除该整个对。
除了只读一次存储器(read once memory)之外,被认证装置还具备其他 的存储单元,该其他的存储单元存储用于对被认证装置的公开密钥证明对(Ui, D。的认证数据。在该单元上,被认证装置存储其公开密钥和其证书。在数字 数据中进行了签名时,或者在应答了认证协议中的请求时,被认证装置表明几 个对中的一方的要素Uj或Di,伴随该读出进行破坏。按照签名或请求的比特 来选择被表明的要素。并且,被认证装置提供用于被表明的要素的认证数据。
被表明的要素Ui或Di对于被认证装置的公开密钥进行认证,然后,因为 公开密钥被进行了验证,所以被验证装置确实可以仅通过表明数据然后进行传 输(取出)来不进行任何运算地证明自己或者对数据进行签名。结果,通过该 存储单元,根据情况通过简单的存储控制器,被验证装置可以利用强大的公开
8密钥加密技术,该公开密钥加密技术可以用于实现认证、或数字签名的生成、
或7>开密钥的认_汪。


图l表示本发明的认证系统的硬件结构。 图2表示本发明的被认证装置的硬件结构。
图3表示本发明的认证装置的硬件结构。 图4是表示本发明的认证系统中的认证协议的流程的流程图。 图5是表示本发明的认证系统中的初始化的流程的流程图。 图6是表示本发明的认证系统中的签名生成流程的流程图。 图7是表示本发明的认证系统中的签名认证流程的流程图。 图8表示本发明的认证系统的应用例子。
图9表示作为本发明第二实施例的、将认证系统用于打印机墨盒的认证系 统时的硬件结构。
图IO表示上述系统中的只读一次阵列的硬件结构。
图11表示作为本发明第三实施例的、用于存储卡上的数字内容的DRM 的硬件结构。
图12表示作为本发明第四实施例的反伪造系统的硬件结构。 符号说明
101被认证装置;121认证装置;141认证中心装置;161网络;102、 122、 142输入输出接口; 103只读一次存储单元;105ROM单元;106RWM单元; 131、 151存储单元;132运算单元
具体实施例方式
以下,参照附图详细说明本发明的实施方式。 (实施例1 )
首先,作为实施例l,以下说明基于仅有存储器的平台的公开密钥认证、 以及用于数字签名的系统。
在该第一实施例中,系统由通过网络连接的至少3个独立要素构成,即, 由至少一个被认证装置(prover)、至少一个认证装置(verifier)、以及认证中 心装置(Certificate Authority)构成。认证中心装置的作用是,启动在被认i正装置的存储器内存储的数据,发行用于被认证装置的证书。除此之外,认证中 心装置维持已失去信用的认-i正装置的黑名单,并且将黑名单定期地向全部认^正 装置传输。
在该系统中,通过利用7>开密钥基础设施(public-key infrastructure),可 以通过任何认证装置来认证任何被确认装置。该系统具有以下3个参数安全 性参数[n],其是应该由被认证装置进行签名的请求(challenge)的大小;可用 性参数[p],其是可以由被认证装置进行签名的签名的数量;散列函数[H]及其 输出大小[h]。
首先,参照图1对认证系统进行详细说明。
该系统是仅有存储器的平台,由至少一个被认证装置(prover) 101、至少 一个认证装置(verifier) 121、以及认证中心装置(Certificate Authority) 141 构成。^皮i人证装置101、认证装置121以及认证中心装置141通过网络161相 连接。#:认证装置101由输入输出接口 102、只读一次存储单元(read-once memory unit) 103、只读存储单元(read-only memory unit) 105、以及读写存 储单元(read-write memory unit) 106构成。认证装置121具备输入输出接口 122、运算单元132以及存储单元(memory unit) 131。认证中心装置141具 备输入输出接口 142、运算单元(computation units ) 152以及存储单元(memory unit) 151。
净皮认证装置101和认证装置121可以从事认证协议,在此,认证装置121 向被认证装置101发送随机的请求(randomchallenge) 164,然后,被认证装 置IOI通过请求的数字签名163进行应答。在签名正确时认证成功。认证中心 装置141的作用是通过初始化数据(initialization data) 162存满被认证装置 101的存储单元,并且发行被认证装置101的公开密钥的证书。此外,该认证 中心装置141维持已失去信用的公开密钥的黑名单126,将该黑名单发送给与 网络161连接的全部认证装置121。
然后,参照图2对被认证装置进行详细说明。
被认证装置101不具有任何CPU,由存储单元103、 105、 106和输入输 出接口 102构成。该只读一次存储单元103存储有p个保密阵列104,即A。, , Ap.,,在此,在一个阵列中存储的数据只能用于一个认证。结果,被认证装置101只能进行有限次数、即p次的认证。各保密阵列104由h比特的2n个数 据块UQ. LU、 D。 . 构成。只读存储单元105通过阵列的指数(0 < i 《p-l)、数据块的指数(0《j<n-l)、以及数据块的行(D或U)来寻址。
在读出阵列Ai内的某个数据块Uj时,将数据块Ui向输入输出接口 102发 送,然后删除Uj和Uj两者。同样地,在读出Dj时,删除Uj和Uj两者,因此, 正如只读一次存储器(read-once memory)的名称那样,其存储器内容随着读 出而^皮石皮i不。
被认证装置101具备读写存储单元(read-write memory unit) 106,该读写 存储单元106将计数器107与为了选择活动(active)阵列所使用的指数(0 《Kp-l)—同存储在内部。阵列Ai用于一个认证,并且在完全删除其数据之 后,计数器107的值通过i+l进行更新。
最后,被认证装置101具备只读存储单元105,在此,数据可以没有任何 限制地自由访问。该只读存储单元105存储有唯一 (uniquely)确定被认证 装置101的确定号码112、被认证装置101的公开密钥108、由认证中心装置 141发行的用于公开密钥108的证书109、包含2p-l个数据块(^ ) 的数据树110、以及p个加密阵列111 (即Co . Cp.,)。各加密阵列含有2n 个数据块(UQ ... Un.,以及Dq ... Dn.i),其中,来自加密阵列Q的一个数 据块(Uj或Dj)对应于通过散列函数H进行了加密的、来自阵列Ai的数据块 (Uj或Dj),即Ci[Dj]=H (Ai[Dj]) and Ci[Uj]=H (Ai[Uj])。例如,散列函数H 是MD5,即可以是与认证装置121的散列函数相同的散列函数。加密阵列111 以及数据树110也可用于,通过后面说明的机制来证明来自只读一次存储器 103内的保密阵列104的数据块是被认证装置101的7>开密钥108。
然后,参照图3对认证装置121和认证中心装置141进行说明。
认证装置121具备若干运算单元,即CPU128,并且如果可能还具备能够 为了任意大小的输入X来运算散列值(H( X))的加密用协处理器(coprocessor) 129。例如,该散列函数可以是公知的MD5,或者也可以是其他任何散列函数。 此外,在此留意散列函数具有将任意长的输入数据映射为h比特的固定长的输 出的功能。在为MD5时,散列输出大小为128比特。除此之外,认证装置还 具备用于生成随机请求164的随机数生成器130。
ii认证装置121还具备用于经由通信网络161与被认证装置101、认证中心 装置141或者其他装置进行通信的输入输出接口 122。最后,认证装置121具 备存储单元,即用于暂时存储数据的易失性存储器123、以及在存储程序127 的同时还存储认证中心装置141的公开密钥125和黑名单126的非易失性存储 器124。黑名单包含已知失去信用的全部的公开密钥,并且通过在软件的更新 中传送新的黑名单的认证中心装置141被更新。
认证中心装置141基本上具备与认证装置121相同的若干构成要素,即 输入输出接口 142、 CPU148、用于运算散列值149的协处理器、随机数生成 器150、用于存储认证中心装置的公开密钥125和黑名单126以及程序147的 非易失性存储器144、以及易失性存储器143。除此之外,认证中心装置141 还可以在非易失性存储器144内存^l其私有密钥(private key) 146,并且还具 备用于生成数字签名以及证书的运算用协处理器153。认证中心装置141的作 用是在生成用于被认证装置的保密阵列104的初始化数据134的同时,还生 成加密阵列111和树数据110。除此之外,认证中心装置141还可以发行被认 证装置的公开密钥108的证书。最后,认证中心装置141根据全部失去信用的 公开密钥来维持黑名单126。即,为了防止失去信用的芯片进行认证,在认证 装置121的软件的更新中,向全部认证装置121传输其黑名单126。
然后,参照图4对认证协议进行详细说明。
被认证装置101,通过在步骤S211中向认证装置121发送的认证请求, 可以开始认证协议,在该认证请求中包含被认证装置的公开密钥108、证书 109、计数器值107以及ID112。计数器(值)对应于未使用的阵列Ai的指数。
然后,在步骤S221中,认证装置121确认公开密钥108是否存在于失去 信用的密钥的黑名单126中,当该公开密钥存在于黑名单内时,认证失败。如 果公开密钥不在黑名单内,则认证装置121在步骤222中对证书进行认证。该 证书包含由认证中心装置141签名的、被认证装置的公开密钥108的数字签名。 在证书无效时,认证失败。在证书有效时,认证装置121发送随机的n比特的 消息164。该消息是认证协议的请求(challenge),并且必须由被认证装置101 进行签名。
之后,被认证装置101通过访问阵列A104内的数据块来对请求进行签名,在此的[i]是在步骤211中发送的计数器(计数值),[Uo或D()]取决于请求的[O] 比特,或D!]取决于请求的[l]比特,并且,这种情况直到[n-l]比特也是相 同的。除此之外,^皮认证装置101向公开密钥108发送来自对应的加密的数 据块的加密的阵列Cjlll;以及来自证明来自阵列Ajl04的数据块的数据树110 的要素。通过^皮i^i正装置101向认证装置121发送的签名163由阵列Ai和C;、 以及来自树数据的数据块构成。
当接收到签名时,认证装置121在步骤241中使用来自Ci的加密数据块 和树数据,来检查来自阵列Ai的数据块对于公开密钥108进行了认证,由此 认证签名。如果签名无效则认证失败,另一方面,如果签名有效则认证成功。 最后,在步骤253中,认证装置121写入协议的日志,该协议的日志包含认 证结果(成功或失败)、认证装置的公开密钥、以及由被认证装置101利用的 指数。
然后,参照图5对存储器的初始化进行详细说明。
在使用前,被认证装置101的存储单元必须通过恰当的数据进行初始化, 即,只读一次存储单元103在其保密阵列Ajl04内存储保密的数据块,加密阵 列111存储保密数据块的加密后的值,树110由与散列函数H成对组合的加 密的数据块、以及根据与某个固有的ID号码组合的树T!的根(root:参照图 8)运算出的公开密钥108构成。被认证装置101基本上由存储单元构成,无 法通过其自身的初始化来执行所要求的运算,取而代之,全部运算由认证中心 装置141在外部执行。通过认证中心装置141运算的初始化数据134仅通过网 络161发送给被认证装置101,并且存储在被认证装置的存储单元中。
最初,在步骤301 322中,输入签名数p和消息长n,保密阵列104通过 随机数据块(random data block)被初始化。即,通过利用了随机数生成器单 元(random number generator unit) 150的认证中心装置141生成的随机数来填 充块Aj [Uo]和Aj [Do],并且同样地直到Ai [LU]、 Ai [D^]为止。之后,通过 由散列函数处理过的保密块来填充加密阵列111的对应的块,成为Q [UQ]=H (A; [U0] )、 Ci [D0]= H (A; [D0]),并且,同样地使用散列函数单元149,成为
Ci[Un+H (Ai[Un-,])、 Ci队,]-H (Ai队,])。当再次进行叙述时,这些运 算由认证中心装置141来执行。即, 一旦准备了全部的块数据,就经由网络161从认证中心装置向被认证装置101传输。
在填充了保密阵列104和加密阵列111之后,必须对树数据进行初始化。 最初,树的p个叶Tp . , T2p.,由认证中心装置141准备,并且使各叶与一个 加密的阵列相关联。更详细地说,在步骤S332中,将加密的阵列Ci内存储的 2n个数据块连成链状,并且由散列函数模块149进行处理。Ti+P=H( C; [Uo] || Q [Do] II Ci则II Ci [D,] If ... Cj [Un.,] II Cj [D"]),在此,X||Y表示两个比特流的 链。现在,当准备了树的叶Tp . . . T2l>1时,树的剩余节点可以在步骤342中 进行运算。实际上,树内剩余节点可以通过对该节点的两个子节点进行散列 (hashing)来简单地运算。即,节点Tj具有两个子节点T2i和T2w,因此,块 Ti的值由散列函数模块149来运算,成为H ( T2i|| T2i+1 )。但是,这样的树的准 备不便于之后生成认证用令牌,因此,交换树块的全部的对,即,在步骤352
中,T2i通过T2i+l来置换,并且T2i+l通过T2i来置换。 一旦处理了全部的树
块,就将它们经由网络161从认证中心装置141传输给被认证装置101。
然后,在步骤353中,根据树1^的根和唯一确定4皮认证装置101的确定 (ID)号码112来运算被认证装置101的公开密钥108。例如,该ID号码可 以是产品ID,或者在被认证装置101存储有某个数字内容时,也可以设为该 数字内容的比特值。无论在哪个情况下,公开密钥都被定义为H (T川ID),并 且存储在只读存储单元105内。之后,认证中心装置141发行公开密钥108 的证书109(步骤354),该证书包含该公开密钥的数字签名,被发送到被认证 装置101。证书109被存储在只读存储单元105内。最后,将读写存储单元106 内的计数器107初始化为"0(零)"。
然后,参照图6对签名的生成进行详细说明。
在认证处理中,在步骤231 (参照图4)中留意由被认i正装置101生成随 机请求164的签名163。以下,说明如何生成该认证。随机请求由n个比特(m-(m0. mn.,) 2)构成,并且,经由网络161从认证装置121被发送到被认证 装置101。在接收到请求后,被认证装置101表明计数器107的值(在图4 中由"i,,表示)。该计数器对保密阵列Ai中的一个以及对应的加密的阵列Cj 进行初始化。然后,扫描请求m的比特mj,然后,在步骤421-424中生成2n 个签名块,即So,o, So'.'Sj,o、 Sj,, . Sw,o、 Sn.u。在此,从保密阵列Aj104、
14或加密的阵列Cilll的一方中取出各签名块。为了生成("取出")该签名,被
认证装置101仅从这些阵列104以及111中选择数据,然后仅表明该数据,不 需要任何的运算。更详细地说在消息比特mj为O时,在步骤422中,签名 块(Sj,o, Sj,i)成为(Ai[Uj], Ai[Dj]),在消息比特mj为1时,在步骤423中, 签名块(Sj,o, Sj,,)成为(Ci[Uj], Ai[Dj])。在两个步骤422和423中,留意只 将Aj[Uj]以及Ai[Dj]的一方传输给签名163内。但是,根据只读一次存储器103 的特性,它们两者都^皮破坏。本技术(发明)的特点是对于一个消息比特,表 明唯一的保密数据块,即,在签名后保密数据块的一方仍处于保密,因此, Ai[Uj]或Ai[Dj〗中的任意一方以及签名不会被伪造。
在选择了用于(Sj,o, Sj,!)的值后,必须从树表110中选4奪log2(p)个块, 在此,所谓log2 (p)是指取整(四舍五入)为最接近的整数的、签名数p对 于2的对数(logarithm in base 2 )。应选择的最初的树块在步骤432中是设为 j-p+i的P。-Tj,然后,直到选择log2 (p)个树块为止,j反复被分离为两个。 最后,在步骤433中,将签名(S0,0, ..,, S^,p P0,….P,。g2(p)-!) 163经由网 络向认证装置121发送。
然后,参照图7对签名的认证进行详细说明。
在运算完随机请求164的签名后,被认证装置101向认证装置121回复签 名163。在该时刻,在步骤241 (参照图4)中,认证装置121必须认证n比 特的请求(m= (m。….mn-i) 2) 164的签名(S0,0, . ., S^," P0, ..., P!。g2 (p) -。163。以下,对如何认证该签名进行说明。
在输入签名(S。,q, . ., Sn.U, P。,…,P^2(pM)(步骤521)后,首先,
在步骤522和523中,认证装置121再次运算(re-compute )加密的阵列QUI 的全部的数据块,在此,"i"是在步骤211中的认证协议的开始时向认证装置 发送的计数器107(的值)。更详细地说,扫描请求比特mQ ' mn小然后, 如果mj为零(0 ),则在步骤522中,使用散列函数模块129作为H ( Sj,o )来 运算C,j,o,在此,对C,j, i赋予签名块Sj,!。实际上,如果请求比特mj为零(O), 则在步骤422中签名块Sj, o和% ,分别作为Ai[Uj]以及Q[Dj]被选择。因此, 如果在步骤231中由^皮认证装置正确地生成,则C,j.o应等于Ci[Uj], C,j,,应 等于C,[Uj]。同样,如果请求比特mj为1,则向C,j,o复制签名块Sj,o,并且在C,j,,中设定H (Sjj )。
当准备了全部的对(C,j,0, C,j,,)时,在步骤531中,运算树数据块T,。 实际上,使全部的C,j,b的值连成链,然后在步骤531中通过散列函数H129进 行散列(hash:细分)。T,=H (C,o,ollC,oH』…UCVu)。
如果在步骤231中由认证装置正确地生成了签名,则T,的值应该与来自 树数据110的树块的值、即在签名的生成中在步骤432 (参照图6)中选择出 的Po的兄弟(sibling )—致。因此,该节点为了运算树110中的亲节点(parent node),可以和签名块P。组合。更详细地说,在步骤532中,计数器"i,,被设 定为"i+p",在此,在步骤211中与公开密钥、证书一起从被认证装置104接 收计数器"i" 107的值。如果"i,,为偶数,则在步骤552中,使用散列函数 模块129将T,更新为H(T,HPo),另一方面,如果为奇数,则在步骤553中将 T,更新为H (PollT,)。此外,在正确地生成了签名时,T,应包含还作为签名块 Pj的兄弟的之前的T,和Po的亲节点。然后,对于P,, P2,, P,。g2(p-,)也重复 进行同样的步骤,并且,在重复完之后,T,的值应该与某个树数据块的值一致, 每次接近根一个等级(图8的根T,)。最后,T,包含根T,的值,然后,在步骤 555中,被认证装置101的公开密钥108可以通过运算H (T, ||ID )再次进行 运算,在此,ID是被认证装置101的确定号码112。如果公开密钥与运算H (T,IIID)的结果一致,则签名在步骤562中被接受,另一方面,如果不一致, 则在步骤563中被拒绝。
然后,参照图8对上述认证系统中的数据结构的一例进行详细说明。
图8表示在签名了 p=128个签名、并且请求具有n=4比特的情况下如何组 织数据。存在128个保密阵列AQ, ..., A127,以及128个对应的加密的阵列 C0, ,., C127。各阵列具有8个数据块Uo、 U,、 U2、 U3以及D。、 Dp D2、 D3, 并且,具有Ci [Uj]= H ( Aj [Uj])以及同样具有Cj [Dj]= H ( Aj [Dj])。当把在数 据初始化中使用的散列函数设为MD5时,h=128,各数据比特也同样具有128 个比特。
树数据110的叶T128 . . ■ T255最初如下进行运算。
T128+i=H ( Ci [U0〗|i Ci [D0] II Cj则II Ci [D,] ||Q , Q [D2] || [U3] || Ci [D3])20
例如,T154=H ( C26 [U0〗|i C26 [D0] II C26 [Ui] II C26 [D,] ||C26 [U2]|| C26 [D2] || C26 [U3] II C26 [D3])。
然后,进行将亲节点细分(hashing)为两个子节点的运算,即,进行Tr H (T2i||T2i+1)。例如,成为T77=H (T154||T155)。但是,在运算了树内的全部 的节点后,为了从丁255到T,促进生成签名,每次交换两个节点,即,将T2和
T3交换,将丁4和T5交换,以下也相同地进行交换。最后,交换Tt54和T,55。
在存在由128比特构成的8个数据块的同时,还存在128个保密阵列,因 此,只读一次存储单元103具有16千字节的容量。同样地,在存在由128比 特构成的8个凝:据块的同时还存在128个加密的阵列,并且,存在由128比特 构成的255个树节点,因此,为了存储这些要素,只读存储单元105需要20 千字节。但是,除此之外,只读存储单元105还必须存储公开密钥108和其证 书109。
此外,对签名的生成进行说明。当把计数器107设定为26时,为了生成 签名,阵列八26和(:26成为活动的(ActiveX例如,使针对签名的4比特的请 求为m-( 1001 )2。最初的比特为"1",因此,对应的签名块为C26[U0], A26[D0]。 第二比特为"0",所以对应的签名块为C26[U!], A,],以下也相同。最后, 签名请求(1001) 2的最初的部分成为(So,o, So,,, Si,o, S,,p S2,0, S2,p S3,0,
) = (C26[U0],A26[D0], A26[U。A6[D,], A26[U2],C26[D2], C26[U3],A26[D3])。
然后,为了对公开密钥认证签名的最初的块,必须选择来自树的节点。应 该选择的最初的节点为T155=H (C26 [UQ] II .. II C26 [D3])的兄弟节点, P0=TP+26=T154。下一个节点为作为节点丁155和丁154的亲节点的T76的兄弟, PfT154/2=T77。重复进行该步骤直到P^T2为止。
然后,对签名的认证进行说明。认证装置121最初接收公开密钥108、以 及在本例中i=26的计数器值107。接收签名(S。,Q,, Sv),认证装置121 利用散列函凝3莫块129再次运算来自加密的阵列C26的全部数据块。最初的请 求比特为"1",所以认证装置121运算(C,。,。, CV) = (So,o, H (S(u))。由 于第二请求比特为"0",所以认证装置121运算(d,o, C,u) = (H (S^), Su),以下也相同。在处理了全部的请求比特之后,认证装置121得到以下的 阵歹寸(C,o,o,C,o,i, C,i,o,C,i,i, C,2,o,C,2,1, C,3,0,C,3,1 )=( S。,o,H( So,i ), H( Si,o ),Si,i,
17H ( S2,0) ,S2,1, S3,0,H ( S3,1))。
在没有由被认证装置101正确地生成签名的情况下,该阵列应该具有与加密的阵列C26相同的数据块。实际上,可知(So,o, So,!) = (C26[UG], A26[D0]),因此,成为(CV C,o,J = (C26[U0], H (A26[D0])) = (C26[U0], C26[D0])。
对于其他签名块也进行同样的观测。认证装置121可以再运算加密的阵列,但认证装置121没有方法从被认证装置101得知加密的阵列的确与最初加密的阵列相同、或者加密的阵列为真的(authentic)。因此,认证装置121为了对于公开密钥108认证加密的阵列,使用剩余的签名块,即树块。
最初,认证装置121使用散列函数模块129运算丁,=11((:,0,0,(:,0,1,(:,1,(),(:,1,1,
C,2,o,C,2,。
C,3,Q,C,w )。如果正确地生成了签名,则T,应该与树节点T,55相同
(留意丁154和T。5在数据初始化阶段被进行了交换)。认i正装置121在此将P0和T,组合,即,最初将计数器"i"设定为"i+p-154"。因为"i=154,,,所以认证装置121通过散列函数模块129运算T,=H (T, II Po )。实际上,如果正确地生成签名,则T,= T,55以及Pf T154,因此,T4皮更新后的值应该为亲节点T76。然后,将"i"除以2,成为"i-77"。因为"i=77"为奇数,所以成为T,-H
(PJT,)。如果再次正确地生成签名,则T,被更新后的值应该为亲节点丁39。在利用了到P6为止的全部树块之后,如果签名正确,则认证装置121应运算了树的根,即"T,=Tr,。然后,认证装置121仅确认H (T,IIID)是否与公开密钥108的值一致。
最后,对该结构的安全性进行讨论。对于一个消息比特mj,对应的签名部分为Ai[Uj], Q[Dj]或Ci[Uj], Ai[Dj]。在双方的情况下,保密块Aj[Uj], Ai[Dj]被破坏,因此,它们的一方仍未表明,所以仍然处于保密。结果,为此需要得知没有表明的保密块,所以不会对不同的消息比特进行签名。作为一例,如果消息比特为mj=0,则针对mj=l的签名的伪造,例如像Ci[Dj]=H (Ai[D」])那样,暗示了发现Ai[Dj]。但是,该任务例如被称为Y-H(X),该Y-H(X)发现与某个被赋予的Y相对应的原像(pre-image) X,由于散列函数的特性,
这是不可能实现的。
作为不同的途径,还可以尝试注入对于树的根Tt进行认证的保密阵列A;此时,树的下部与真的树不同,例如,T,i+p<>Ti+p,但是在某个点,两个树具有相同的根,所以相同。这对于某个节点的指数"j"为(T, 2j, T,2j+1 )< > ( T2j,T2j+),但是暗示了 T,广Tj,在此,为Tj^H(T2jllT2jw)以及T,H(T,2jllTV!)。例如,H (X) =H (X,)那样的值X, X,被称为冲突(collisions),并且,根据散列函数的特性,不可能发现该沖突。因此,伪造签名的唯一途径是,观察真的被验证装置101和认证装置121之间的相互作用,然后从4皮认证装置101收集签名。然后,在从事于认证协议时,如果为相同的计数器值"i"则认证装置121与真的被认证装置101的情况相同地,发送相同的请求,伪造者可以使用对应的收集到的签名。结果,伪造签名的概率为l/2n,在此,"n"为安全性的参数。如果对于请求大小n=20,则该;慨率为100万次中1次以下的程度。
此外,本发明的范围不限于以上所述的实施例。例如,可用性参数p或签名的数量、或者安全性参数n或请求的大小等系统参数可以取任何恰当的整数值。为了高安全性的系统,n必须变大,典型地为121比特以上,这对于被认证装置101要求大的容量。为了使认证系统轻量化,例如可以像8比特那样选择较小的n,此时,作为伪造者伪造签名的概率具有1/256,这从智能卡上通过PIN码提供的安全性来看也不是非常不合理,在某种状况下可以允许。
此外,对于散列函数可以任意地选择,即,可以是具有128比特的输出大小的MD5、或SHA1、或其他任何的散列函数。
被认证装置101的存储单元可以通过几种方法来实施。更严密地说,存储单元105包含读写存储器(read-write memory),可以是任何类型的存储器。因此,可以通过ROM、 PROM、 EEPROM或闪速存储器(flash memory)或者任何存储器辅助单元来实施。关于只读一次存储单元103,例如可以是上述专利文献l记载的熔丝底座(flisebase)的真正的只读一次存储器,或者可以是FeRAM存储器或其他任何只读一次存储器,并且其功能例如可以通过作为闪速存储器的EEPROM和通过写入来删除内容的存储控制器构成的、标准的存储单元来实现(仿真)。
最后,将上述的认证系统变更为生成消息164,通过被认证装置101进行签名,然后由认证装置121进行认证的数字签名系统,对于本领域的技术人员来说应该是简单的。(实施例2 )然后,参照图9对作为本发明实施例2的用于打印机墨盒的认证系统进行详细i兌明。
该系统由认证者芯片121和被认证者芯片101构成。在本实施例中,在打印机中安装有认证者芯片121,另一方面,在墨盒中安装有被认证者芯片101。正规的墨盒可以在商店购得,此外,由竟争者制造的伪造的墨盒或再填充器材(refill kit)也相同。因此,为了禁止使用伪造的墨盒,合法的墨盒必须对打印机进行认证,并且,必须只能使用为了避免再填充而限制的次数。
墨盒101和打印机121直接接触,可以经由直接连接901交换数据。交换的数据例如可以是墨水等级(ink level)的检查等、与通常的打印机功能有关的数据,但是也可以是与包含请求164或签名163的认证数据有关的数据。
打印机121例如经由USB这样的电缆902与个人计算机911连接。在个人计算机911中,例如在安装了 USB、 LAN连接器、存储单元913、运算单元914或者几个周边设备或单元的同时,还安装了输入输出接口 912。经由电缆902,个人计算机911还可以发送与印刷请求或通常的打印机功能有关的任何数据,并且还可以提出黑名单126。实际上,个人计算机911经由因特网与认证中心装置(Certificate Authority)连接,认证中心装置将固件或软件的更新版本经由个人计算机911发送给打印机121,并且,同时还可以发送更新后的黑名单。
认证中心装置141是与因特网903连接的WEB服务器,由打印机公司来运营。与最初的实施例的情况不同,在认证中心装置141和墨盒101之间没有持久性的直接连接,因此,无法从远方执行数据的初始化。取而代之,墨盒的存储单元103、 105以及106在制造墨盒时进行初始化。此时,将墨盒与认证中心装置141物理连接,或者,为了避免将多个墨盒的保密阵列104泄露的安全性侵害,可以向不与因特网连接的专用计算机连接。
打印机121和墨盒101是自主的,并且可以不访问外部任何网络地执行认证,特别是打印机121不需要向因特网903或认证中心装置141持久性地直接连接。仅通过使用在本地存储的认证中心装置141的公开密钥125,打印机121可以通过在上述实施例1中记载的认证机制来认证合法的墨盒。可以按照打印机公司的安全性策略,以定期的时间间隔来执行认证。例如,可以在每次请求
20打印时、启动时(bootingtime)或者每天进行认证。关于认证失败时打印机如何处理,也根据打印机公司的安全性策略来决定。作为一种可能,还考虑打印机拒绝打印请求数分钟。因此,即使安全参数不是非常高,例如,即使是n-8比特的请求,实际上成为1/256的伪造概率,但如果使打印机在认证失败时成为空转(idling)大约1分钟的状态,则在使用伪造的墨盒时,其可用性受到大幅损害。
在该实施例2中,安全性参数对于消息大小为n=8比特,散列函数为输出大小h=128比特的MD5,签名数量为p=1024个。
此时,只读一次存储器存储用于保密阵列104的大约260千字节的数据,与此相对,只读存储器需要用于加密阵列111的260千字节和用于树数据110的32千字节。公开密钥108正是一个散列值,因此为16字节,证书可以是1024比特的RSA签名,因此为128字节,并且,ID112是通过4字节编码的产品编号。对只读存储器要求总共300千字节以下的容量。最后,计数器107是用于计数到1024的计数器,占用读写存储器的2字节。
只读一次存储单元103将在后面对其进行详细讨论,只读存储单元105作为PROM来实施,读写存储单元106作为EEPROM来实施。关于输入输出接口 102,是由串行数据输入输出针921、供电针922、接地针923以及时钟针924构成的单纯的连接器。
然后,参照图IO对只读一次阵列进行详细说明。
存储保密数据块Uj以及Dj的保密阵列Ajl04是认证机制的核心部分。一对阵列(Uj, Dj)只使用一次,数据在被访问后删除。在本实施例2中,该只读一次存储器通过熔丝1021来实现,更详细地说, 一个熔丝存储有一个数据比特。熔丝具有两个状态,即与比特值"0"对应的熔融状态和与比特值"1"对应的非熔融状态。除此之外,当电流流过熔丝时,熔丝熔融,然后,对应的比特值被不可恢复地设定为"0"。
此外,对保密阵列104进行详细说明。各阵列Ai具有两个输入信号,即8比特的请求164和时钟信号931。各阵列还具有作为一个输出的、签名163的一部分。8-计数计数器1002进行从"0"向"8"的计数,其输出控制复用器1001和解复用器1003。复用器1001根据计数器1002的值选择8个请求比特中的一个,例如根据"1"选择请求的比特"1"。解复用器1003按照计数器
1002的值,将输入Vcc信号1005向128比特的存储元件(cell) 1011 U0, ,U7中的一个,并且向128比特的存储元件1012 D0,, D7中的一个传播。例如,根据"1"将Vcc向U!和D!传播。各存储元件Uj或Dj存储128比特,并且,包含128个熔丝1021,熔融状态的熔丝存储比特值"0",另一方面,非熔融状态的熔丝存储比特值"1"。
留意计数器1002启动存储元件Uj内的一个、和存储元件Dj内的一个。两个存储元件将它们的128比特的存储器内容向复用器1004传输。留意计数器1002还选择请求比特mj的一个。将该请求比特的值向复用器1004传输,用于选择Uj或Dj中的某一方,如果请求比特为mji,则签名的一部分为Uj,并且,如果请求比特为m^1,则签名的一部分为Dj。
然后,对一个存储元件U()1011进行记载,但其他的元件也基本相同。如果计数器1002为"0 (零)",则将输入Vcc传输给全部的作为关断开关进行动作的128个晶体管1022。如果对于某一个晶体管对应的熔丝1021熔融,则电阻1023左右侧的电压非零。即,反相器1024的右侧具有与比特值"0"对应的电压"0"。
另一方面,如果熔丝1021没有熔融,则电阻1023的右侧与接地信号连接,该电阻的右侧的电压成为零(0)。即,反相器1024的右侧具有与比特值"1"对应的电压Vcc。但是,此时,电流通过熔丝1021,在某个时间后使熔丝熔融,然后,对应的比特数据被无法恢复地设定为零(0)。即,数据在对其进行访问后始终被删除。
如果最初没有将输入Vcc通过解复用器1003向128个晶体管传输,则它们全部作为接通开关进行动作,并且,全部晶体管的右侧的电压成为零(0),因此,存储元件Uo直到由解复用器1003启动为止,不传输其存储器内容。
但是,本发明的范围并不限于上述实施例,特别是还可以作为用于其他应用的同样的系统来使用。例如,在第二实施例中记载的认证系统还可以用于认证更换部件的 一致性(compliance )。作为典型的例子是用于膝上型电脑的电池,
损坏膝上型电脑的经验。通过利用在此记载的认证系统,膝上型电脑的制造者可以对适合于产品并且可以安全使用的膝上型电脑用电池发行数字证书。并且,当然,在此记载的认证系统也可以根据不同的安全性或可用性参数、不同
的散列函数、以及通过不同的存储器支援(memory supports )来实施。(实施例3 )
然后,作为本发明的实施例3,对用于存储卡上的数字内容的DRM进行说明。
即,在该第三实施例中,表示了本发明可以如何用于保护在存储器支援上、特别是在SD卡等由闪速存储器构成的存储卡上存储的数字内容。在默认状态下,无法根据存储器的类型来支援该只读一次访问(仅一次的读出访问),所以必须通过简单的存储控制装置来实现该功能,即,在读出了某个特定的存储器区段时,破坏该读出的内容。
作为该第三实施例,以下参照图11对用于视频游戏控制台和视频游戏的例子进4于详细i兌明。
在该第三实施例中,被认证装置是在其上装有软件、典型地装有视频游戏1126的存储卡。该视频游戏1126可以由认证装置、即视频游戏控制台121来执行。视频游戏与控制台直接连接1101,存储卡具有包含数据针1121、供电针1122、时钟针1123、以及接地针1124的几个针。向闪速存储器部1127的访问由控制访问权的存储控制器1125管理,即,存储有加密的阵列、树数据、公开密钥以及证书的存储器区段105具有只能读出的(read-only:只读访问)功能,存储有计数器的存储器区段106具有读出/写入(read/write:读写访问)功能,并且,存储有保密阵列的存储器区段103具有仅一次读出(read-once:只读一次访问)功能,并且,在读出保密阵列之后通过存储控制装置1125删除。并且,存储控制器1125如图4所记载的那样,还执行签名的生成(signaturegeneration) 231。与上述的实施例相同,为了对请求进行签名而进行访问,然后,根据情况需要删除存储器。
在视频游戏控制台中具备通常的周边设备以及包含运算单元132和存储单元131的单元。输入输出接口例如通过利用WiFi接口来控制与视频游戏存储卡101的连接,并且控制与因特网1103的连接。该控制台的主要目的是执行在存储卡101上存储的游戏软件1126。认证中心装置141是由视频游戏公司管理的WEB服务器。该WEB服务 器可以发行用于被允许在控制台121上运行的视频游戏的证书,并且维持失去 信用、以及其保密阵列被黑客披露的特定存储卡110的公开密钥的黑名单126。 控制台121不进行向因特网1103的持久性的连接,而是有时为了软件或固件 的更新而访问因特网。此时,将黑名单126向通过认证中心装置141连接的全 部控制台121进行传输。
当把视频游戏存储卡101插入控制台121中时,将游戏数据1126向控制 台传输。在该情况下中,游戏数据1126还是存储卡101的确定手段ID112。 存储卡101的公开密钥被规定为H(T川ID),所以游戏数据可以由视频游戏控 制台121来认证。本发明的目的在于防止由控制台执行没有认证的软件,根据 签名数据163,可以根据在实施例1中记载的认证协议的结果来确定是否可以 执行游戏数据1126。在该结果为在认证协议中失败时,病毒或非法的复制等 具有恶意的代码无法在视频游戏控制台上执行。并且,由视频游戏公司管理的 认证中心装置141,对于作为可以开发出能够在控制台121上运行的视频游戏 的第三方的游戏提供商,可以不向该第三方表明认证中心装置的私有密钥146 地发出证书。
在该第三实施例中,安全性参数对于请求的大小为n=32比特,因此,伪 造签名的概率为相对于四百万或其以上大约1次。在认证数次失败时,控制台 应该按照视频游戏公司的安全策略进行反应。例如,可以将存储卡的公开密钥 108加入到黑名单126中,并且,为了更新其他控制台的黑名单,可以向认证 中心装置141发送通知。可用性参数;陂选4奪为p=65,536,由此, 一个特定的-见 频游戏可以运行65,536次。最后,散列函数为h=128比特的MD5。此时,在 只读一次存储器区段103中需要67兆字节的容量,在只读存储器区段105中 需要69兆字节的容量,并且在读写存储器区段106中需要2字节的容量。
此外,本发明的范围不限于上述实施例,可以简单地通过不同的参数、例 如SHA1这样的不同的散列函数、或者例如EEPROM或其他类型的存储器来 实现同样的功能。并且,在实施例3中记载的系统还可以容易地用于其他目的, 特别是根据该系统,例如可以对电影或音乐等任何类型的数字内容进行数字签 名。并且,认证装置121并不限定为便携式音频播放器、移动电话或个人计算
24机,还可以通过任何类型的电子设备实现。 (实施例4 )
最后,以下详细说明将本发明用于基于RFID芯片的反伪造系统的实施例4。
现有的RFID标签不安装加密模块,因此不足以用于认证或反伪造。不在 该平台上执行加密算法主要有两个理由。首先,最初,为了用于加密需要消耗 大量的能量,另一方面,被动的标签即使是非常低的电力设定也进行动作。第 二,几乎所有RFID标签仅具备存储器,为了尽可能低地维持制造成本,不具 备运算单元。
在该第四实施例中表示了如何取得在实施例1中所述的认证机制的优点, 即,如何通过通常实现只读一次访问(read -once access)功能的FeRAM存"f诸 器来实现只读一次存储单元(read-once memory unit )。
首先,以下参照图12对反伪造系统进行详细说明。
对于名牌物品或高价产品来说,伪造成为最大的争论焦点,在此,加密或 数字签名确实可以有所帮助。所谓该第四实施例的典型的情况是海关的管理, 在此,为了检查具备RJFID芯片的可疑的项目,海关人员使用RFID阅读器 (RFID reader) 121。 RFID芯片与认证协议联合工作,认证项目的可靠性,对 此,伪造的产品在其自身证明失败时被检测出。RFID芯片由检查项目的制造 者(以下称为公司)制造,并进行初始化。公司起到认证中心的作用,并对海 关人员发行认证中心的公开密钥125,但是,例如在阅读器121被恶意的用户 占据等情况下,为了避免信息的泄露,保密地保存认证中心的私有密钥146。
RFID芯片101由公司安装在所制造的产品上,该芯片具备天线1201、以 及可以捕捉规定频率的无线电波,并且利用磁感应将无线电波转换为电信号的 转发器(transponder) 1202。由转发器转换的电信号传输来自阅读器121的信 息,同时还由芯片101作为电源来使用。通过对接收到的信号进行后向散射, 转发器1202和天线1201可以将数据回复给阅读器121。因此,阅读器121和 RFID芯片101使用近距离通信技术,通过无线网络相连接。
存储控制器1203控制向由FeRAM (Ferromagnetic Random Access Memory )实现的存储部1204的访问。FeRAM本来是只读一次存储器(read-oncememory),其数据与实施例3的情况不同,由于读出而4皮破坏,所以存储控制 器1203不需要表明地删除数据。因此,存储控制器的作用仅是实现存储控制, 并且执行图6所示的签名生成步骤。在此再次说明,所谓签名就是选择l丈据, 不需要进行任何运算。
FeRAM是具备类似闪速存储器的特性的非易失性存储器,并且具有几个 优点。即,低功耗,并且写入/删除循环(write/erase cycles )的次数多。FeRAM 目前在几个RFID的应用中使用。FeRAM单元1204至少具有3个存储器区段。 只读区段(read-only segment) 105存储有ID112、公开密钥108及其证书109、 树数据110、以及加密的阵列111 。读写区段(read-write segment )106存储有 计数器107,并且只读一次区段(read-once segment) 103存储有保密阵列104。 从其性质上看,FeRAM为只读一次(read-once),所以不需要任何用于实现存 储器区段103的只读一次特性(read-once functionality)的机制。但是,在只 读区段105和只读一次区4史106中存储的数据通过读出被破坏,所以必须通过 在存储控制器1203内实现的机制来再生(refresh)数据。
芯片101和阅读器121如图4所示,可以执行认证协议,在此,阅读器 121向芯片101发送随机的请求164,芯片通过请求的签名163来应答。作为 阅读器,可以是具备用于与RFID芯片101进行通信,并且在失败时显示认证 协议的结果以使海关人员可以采取恰当的应对措施的近距离通信技术的 PDA。并且,为了获得包含失去信用的产品的公开密钥的、由公司更新的黑名 单126,阅读器可以定期向因特网1212连接。但是,在阅读器为可移动(mobile) 时,并不一定持续向因特网连接,因此,芯片101和阅读器121之间的认证协 议,可以不受到任何外部千扰,或者不向因特网1212连接地执行。
在该第四方式中,安全性参数对于请求的大小选择为n=16比特,并且, 作为可用性参数为p-256个的签名。因此, 一个产品在其寿命内最多可以认证 256次。并且,只能以l/216=l/65,536这样的可以忽略的概率伪造签名。对于 散列函数使用SHAl,因此散列输出大小为h=160比特,由此,需要用于ReRAM 单元1204的330千字节的容量。
本发明的范围不限于上述的实施例,上述的系统并不限于电子护照,还可 以用于产品的跟踪(product tracking)、电子钱包(electronic wallets )或者电子月票(electronic commuter pass)等其他情况。也可以使用不同的散列函数或 实现。
2权利要求
1. 一种加密系统,其用于在不具备强大的运算单元或者完全不具有运算单元的平台中生成数字签名,其特征在于,具有(a)用于接收输入消息的第1单元;(b)用于存储保密数据的第1存储部;(c)用于存储加密后的数据、认证数据以及公开密钥的第2存储部;(d)存储了计数器的第3存储部;以及(e)用于发送所述输入消息的数字签名的第2单元,所述数字签名具备从所述保密数据中取出的数据,并且具备所述加密后的数据以及认证数据。
2. 根据权利要求1所述的加密系统,其特征在于, 所述保密数据由多个保密阵列构成,所述保密阵列存^f诸多个保密数据块,并且所述保密数据块成对地构成,在所述对的状态下只有一个所述保密数据块 可以访问,并且通过读出所述对内的要素破坏两个保密数据。
3. 根据权利要求1所述的加密系统,其特征在于,所述第1存储部是熔丝阵列,并且通过访问所述第1存储部熔化规定数量 的熔丝。
4. 根据权利要求2所述的加密系统,其特征在于,还具有存储控制器,所述存储控制器通过访问所述第1存储部消除规定数 量的所述保密数据块。
5. 根据权利要求4所述的加密系统,其特征在于, 所述第1存储部是闪速存储单元。
6. 根据权利要求4所述的加密系统,其特征在于, 所述第1存储部是EEPROM存储单元。
7. 根据权利要求4所述的加密系统,其特征在于, 所述第1存储部是FeRAM存储单元。
8. 根据权利要求2所述的加密系统,其特征在于,所述加密后的数据由多个加密后的阵列构成,该加密后的阵列存储有多个加密后的数据块,并且所述加密后的数据块存储来自通过加密处理单元加密后的所述保密阵列的所述保密数据块。
9. 根据权利要求8所述的加密系统,其特征在于,所述加密处理单元是散列函数单元。
10. 根据权利要求9所述的加密系统,其特征在于,所述认证数据构成为存储了多个节点的树状的结构,所述树的叶子存储有由所述散列函数单元进一步加密后的节点,并且,所述树内的亲节点存储有由所述散列函数单元加密后的规定数量的子节点,在此从所述树的根导出所述公开密钥。
11. 一种爿^开密钥i人-i正系统,其特征在于,具有(a) 所述权利要求1所述的加密系统;以及(b) 认证部,该认证部具有(1) 用于生成随机数消息的随机数生成单元;(2) 用于发送所述随机数消息的第l单元;(3 )用于接收数字签名的第2单元;以及(4)用于认证所述数字签名的第3单元,所述加密系统生成所述消息的数字签名,并且当正确地认证所述数字签名时,由所述认证单元来证明。
12. —种用于生成数字签名的数字签名生成方法,其具备以下的步骤(a) 提供用于存储保密数据、加密后的数据、认证数据以及公开密钥的单元;(b) 接收输入消息;(c) 从所述保密数据中取出保密数据块;(d) 从所述加密后的数据中取出加密后的块;(e) 从所述认证数据中取出认证数据块;(f) 更新计数器;(g )发送所述输入消息的数字签名,该数字签名生成方法的特征在于,所述数字签名具有所述取出的保密数据块、所述取出的加密后的数据块、以及所述耳又出的i人证数据块。
13. 根据权利要求12所述的方法,其特征在于,取出所述保密数据块的步骤还具有以下步骤(a) 消除所述取出的保密数据块;(b) 对应于各个取出的保密数据块,至少消除一个其他的保密数据块。
14. 根据权利要求12所述的方法,其特征在于,取出所述保密数据块的步骤还具有以下步骤(a) 对所述输入消息的1比特进行扫描;(b) 访问所述保密数据内的保密数据块的对;(c) 如果所述比特为0则表明所述对中的一个保密 居,如果所述比特为1则表明该对中的另一个保密数据;(d) 消除所述保密数据的所述对;(e) 对于所述输入消息的全部比特重复上述的步骤,由此,所述数字签名包含有被表明的保密数据块。
15. 才艮据权利要求12所述的方法,其特征在于,通过使用加密函数从所述保密数据中对全部的保密数据块进行加密,由此对所述加密后的数据进行初始化。
16. 根据权利要求15所述的方法,其特征在于,所述加密函数是散列函数。
17. 根据权利要求16所述的方法,其特征在于,所述认证的初始化包含以下步骤(a) 通过使用所述散列函数对规定数量的加密后的数据块执行散列,运算叶节点;(b) 通过对在所述上一步骤中运算出的规定数量的节点扭i行散列,运算至少一个新的节点;(c) 重复进行上述的步骤(b),直到剩余一个节点为止,由此,从通过所述初始化方法运算出的最后的节点导出了所述数字签名方法的公开密钥。
18. —种公开密钥认证方法,其特征在于,具有以下的步骤(a) 生成随机的消息;(b) 通过所述权利要求12所述的方法生成所述随机消息的数字签名;(c) 对所述数字签名进行认证,由此,在正确地认证了所述数字签名时,认证成功。
全文摘要
本发明提供用于在仅有存储器的结构中进行认证和数字签名的系统及方法,其具备只读一次存储单元,其存储有由于读出使内容被破坏的数据的保密阵列;以及通常的存储器,其存储有加密阵列、对于单一的公开密钥证明加密阵列的树数据、以及由认证中心装置发行的公开密钥的证书,这些存储器结构向被认证者装置发送该公开密钥和证书,在只读一次存储单元内,从保密阵列接收通过要素被签名的请求。认证系统为了检查从只读一次存储器表明的数据是否可靠,对其进行加密后将其结果与加密阵列的一个数据进行比较,并且,利用树数据来确认加密阵列是否对于公开密钥进行证明。最后,认证者装置使用证书检查公开密钥是否可靠。
文档编号H04L9/32GK101488856SQ20081017710
公开日2009年7月22日 申请日期2008年12月5日 优先权日2008年1月17日
发明者卡米尔·维尧姆, 埃里克·达尔门, 桶屋胜幸 申请人:株式会社日立制作所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1