本实施方式通常涉及通信装置。
背景技术:
存在一种通过在通信装置间收发数据,向各通信装置发送内容等通用的数据的方法。在该方法中,通信装置通过将接收到的数据向其他通信装置发送来进行数据中继。与该数据中继的受领相关的信息(受领信息)作为向有助于数据中继的通信装置的报酬赋予、传送效率的解析、销售(marketing)等的材料而使用。
然而,受领信息有可能被窜改。因此,希望在防止受领信息的窜改的同时收集受领信息。
技术实现要素:
实施方式的目的在于,提供优异的通信装置。
实施方式中,提供了一种通信装置,其特征在于,
通信装置具备收发部,所述收发部从第1终端接收第1内容,生成第2内容向第2终端发送,所述第1内容具有所述第1终端所固有的第1附加信息和第1至第n区块,所述第2内容具有所述通信装置所固有的第2附加信息和所述第1至第n区块,其中,n为2以上的整数,
所述收发部具备认证部,
所述认证部,
生成所述第2附加信息,所述第2附加信息包含第1至第n区块认证码、第1内容认证码以及第1签名、所述第p区块认证码是与所述通信装置和所述第p区块对应的信息,所述第1内容认证码是基于所述通信装置 和所述第1至第n区块的信息,所述第1签名是基于所述第1内容认证码的信息,其中,p是1以上且n以下的整数,
在能够基于所述第1附加信息判定出所述第1内容的发送源是所述第1终端的情况下,生成表示所述第1内容的受领事实的受领信息,
所述收发部将所述受领信息向外部装置发送。
附图说明
图1是表示实施方式的通信网络的结构的图。图2a~图2d是用于说明实施方式的数据发送方法的图。
图3a和图3b是表示内容的数据结构的图。
图4是表示实施方式的通信装置的结构的框图。
图5是表示实施方式的中继验证器(relayauthenticator)的结构的框图。
图6是表示实施方式的订阅终端的发送时的工作处理步骤的流程图。
图7是表示实施方式的订阅终端的接收时的工作处理步骤的流程图。
图8是用于说明对发射塔(celltower)或接入点的负荷的图。
图9a和图9b是用于说明使用了哈希值的连锁的数据发送方法的图。
具体实施方式
以下,参照附图,详细地说明实施方式的通信装置。此外,并不通过该实施方式来限定本发明。
(实施方式)
图1是表示实施方式的通信网络的结构的图。通信网络100是成为数据源(datasource)的发布终端(publisher)(例如内容服务器)pub1向作为通信装置的订阅终端(subscriber)(后述的订阅终端sx)进行内容传送(contentdelivery)等的通信系统。此外,在本实施方式中,针对订阅终端sx通过无线通信进行数据传送的情况进行说明,但是订阅终端sx也可以通过有线通信进行数据传送。在以下的说明中,有时将发送内容的发 布终端pub1或订阅终端sx称为发送终端ds。另外,有时将接收内容的订阅终端sx称为接收终端dr。
通信网络100含有作为进行特别的内容传送的传送源的1~多个发布终端pub1。另外,通信网络100含有进行内容的中继的m(m是2以上的自然数)台订阅终端sub1,sub2,…,subm。此外,以下,针对m=8的情况进行说明,但是m也可以是2~7,也可以是9以上。另外,在以下的说明中,有时将订阅终端sub1~sub8的任一个或多个称为订阅终端sx。
在图1中,示出了用于向全部订阅终端sx普及内容的传送路径的例子,可知中继回数根据各订阅终端sx而不同。由于该传送路径根据各订阅终端sx向哪台订阅终端sx中继内容而改变,所以若从各订阅终端sx收集受领信息(后述的受领信息),则可知各订阅终端sx的中继负荷和内容传送路径。受领信息是证明订阅终端sx之间的数据中继的信息。
在通信网络100中,通过订阅终端sx反复进行数据中继,各订阅终端sx能够取得来自发布终端pub1的内容。发布终端pub1、订阅终端sx是便携式电话机、平板终端等无线通信终端。
订阅终端sx构成为能够进行内容的接收和对接收到的内容进行中继。订阅终端sx从其他订阅终端sx或发布终端pub1接收内容,根据需要向其他订阅终端sx中继内容。这样,在通信网络100中,通过进行特别的内容传送,内容被传递。由此,能够从最初发送了内容的发布终端pub1将内容传送到即使直接的无线通信也未必传送得到的远离的许多订阅终端sx。
将这样的主要使用了便携式电话机等的可运输型无线通信装置的对等(peertopeer)型的内容传送称为移动p2p通信(mobileadhocnetwork:移动自组网)。另外,将与移动p2p通信相关的包含了发布终端pub1和订阅终端sx的终端总称为移动p2p终端。在移动p2p通信中,订阅终端sx将内容等数据向其他订阅终端sx逐台依次以单播(unicast)方式发送。或者,订阅终端sx向其他多台订阅终端sx通过组播/广播方式(multicast/broadcast)一齐进行数据发送。作为数据中继手段,例如使用 无线互联网接入直连(wi-fidirect)等终端间邻近无线通信(device-to-deviceproximity-basedwirelesscommunication)。
在通信网络100中,例如,来自发布终端pub1的内容向订阅终端sub1,sub2传送(deliver)。另外,订阅终端sub2将接收到的内容向订阅终端sub3~sub5中继。进而,订阅终端sub5对接收到的内容向订阅终端sub6中继。并且,订阅终端sub6将接收到的内容向订阅终端sub7,sub8中继。并且,从订阅终端sub1~sub8收集受领信息。作为收集受领信息的意义,例如列举以下的(意义1)~(意义3)等。
(意义1)受领信息能够用于向订阅终端sx提供数据中继的奖励的根据。在对各订阅终端sx来说仅以接收自己的内容为目的的情况下,分割进一步的资源(时间、网络频带、电力、cpu等的计算负荷)对接收到的数据进行中继并不会成为订阅终端sx自身的利益。因此,虽然仅受益(内容接收)而不对对等型网络作出贡献(数据中继)的搭便车(freeriding)对各订阅终端sx来说是最佳的行动,但是若全部订阅终端sx采取该行动那么对等型网络就无法发挥作用。因此,发布终端pub1或第三者考虑为了促使订阅终端sx的中继行为而赋予一些报酬(reward)。报酬可以是金钱也可以是内容接收优先权等一些权利。所述报酬多赋予给进行了很多中继的订阅终端sx是合理的,为此收集与各订阅终端sx的中继行为相关的受领信息是有意义的。
(意义2)受领信息能够作为用于解析传送效率的信息来使用。使全部订阅终端sx普及内容的效率(直到内容普及为止的时间、在该期间消耗的电力等)大大依赖于传送路径。并且,由于传送路径依赖于哪个订阅终端sx向多少台订阅终端sx发送中继数据,所以受领信息在传送效率的解析中是重要的信息。例如若明白某个订阅终端sx的中继负荷比其他的订阅终端sx高,则从外部向该订阅终端sx和邻近的订阅终端sx发出指示以变更中继路径、定时(timing)等,能够成为改善传送效率的对策。
(意义3)受领信息能够用于销售。订阅终端sx为便携终端,在用于中继的终端间通信中使用邻近无线的情况下,在终端间引起中继的事实表 示两个终端的用户间曾在一定时间靠近。另外,在各用户持有基于各自的趣味趣向(interest)的订阅列表的情况下,中继的事实暗示用户有通用的趣味趣向的可能性。由此,第三者能够通过收集受领信息来推测用户的趣味趣向、用户间的关系(亲密度等),能够利用于提高第三者的产品和/或提供的服务、促进销售中。
这样,发布者或第三者从订阅终端sx收集受领信息就有意义。但是,有时订阅终端sx通过信息的窜改、捏造而不正当地得到报酬,会引起传送效率降低、销售搅乱。在本实施方式中,提供了用于防止这样的窜改等的机制。
本实施方式的订阅终端sx具有将受领信息向第三者通知的功能,以使得无法窜改从某个订阅终端sx向其他订阅终端sx存在数据通信的事实。具体而言,订阅终端sx对内容被分割得到的各区块(block)赋予订阅终端sx所固有的消息认证码。另外,订阅终端sx生成将多个区块的消息认证码作为输入得到的签名σ(电子签名σ)。并且,订阅终端sx将消息认证码和签名附加给内容,向其他订阅终端sx发送。由此,能够防止与订阅终端sx间的数据中继相关的受领信息的窜改。
图2a~图2d是用于说明实施方式的数据发送方法的图。图2a示出了作为数字(digital)内容的内容(sourcedata:源数据)50x的区块结构。另外,图2b示出了内容的收发顺序。另外,图2c示出了通过发布终端pub1生成的数据的结构,图2d示出了通过订阅终端sx生成的数据的结构。
如图2a所示,内容50x包含多个区块而构成。换言之,内容50x的数据被分割为发送单位的区块。在此,示出了内容50x包含区块b1~b4而构成的情况。本实施方式的发布终端pub1使用内容50x生成内容50a。内容50a是对内容50x附加了发布终端pub1生成的预定的信息(附加信息)得到的内容。因此,内容50a包含内容50x和发布终端pub1生成的附加信息。附加信息是表示订阅终端sx进行了数据发送(中继)的信息。
此外,在以下的说明中,有时将发送终端ds(发布终端pub1、订阅 终端sub1~sub8的任一个)生成的附加信息称为附加信息info(ds)。例如,发布终端pub1生成的附加信息是附加信息info(pub1)。
在生成了内容50a之后,如图2b所示,发布终端pub1将内容50a向订阅终端sub1传送。由此,订阅终端sub1接收具有附加信息info(pub1)的内容50a。
然后,订阅终端sub1从内容50a中取出内容50x和来自发布终端pub1的附加信息info(pub1)。进而,订阅终端sub1使用内容50x生成内容50b。内容50b是对内容50x附加订阅终端sub1生成的附加信息info(sub1)得到的内容。因此,内容50b包含内容50x和订阅终端sub1生成的附加信息info(sub1)。
在生成了内容50b之后,订阅终端sub1将内容50b向订阅终端sub2发送(中继)。由此,订阅终端sub2接收具有附加信息info(sub2)的内容50b。然后,订阅终端sub2从内容50b中取出内容50x和来自订阅终端sx的附加信息info(sub1)。此外,在以下的说明中,有时将内容50x,50a,50b称为内容50。
发布终端pub1生成的附加信息info(pub1)包含发布终端pub1所固有的消息认证码(区块认证码)和发布终端pub1生成的签名σ。例如,如图2c和图2d所示,对第i(i是自然数)区块bi赋予发送终端ds(发布终端pub1、订阅终端sub1~sub8的任一个)所固有的消息认证码(区块认证码)ci(ds)。
此外,在以下的说明中,将发布终端pub1所固有的消息认证码作为固有的消息认证码ci(p)进行说明。另外,将订阅终端sx所固有的消息认证码作为固有的消息认证码ci(sx)进行说明。例如,订阅终端sub1所固有的消息认证码是固有的消息认证码ci(s1)。
这里的发布终端pub1将消息认证码ci(p)附加给各区块bi。另外,发布终端pub1将签名σ附加给内容50x。对内容50x附加了消息认证码ci(p)和签名σ得到的内容是内容50a。
同样地订阅终端sub1将消息认证码ci(s1)附加给各区块bi。另外, 订阅终端sub1将签名σ附加给内容50x。对内容50x附加了消息认证码ci(s1)和签名σ得到的内容是内容50b。消息认证码ci(ds)例如使用基于哈希算法的消息认证码(hmac:hash-basedmessageauthenticationcode)而算出。并且,基于使消息认证码ci(ds)连锁得到的哈希(cryptographichash:加密哈希)值生成签名σ。在签名σ中使用例如rsa公钥加密系统(public-keycryptosystem)。
在此,针对内容50x的数据结构进行说明。图3a和图3b是表示内容的数据结构的图。图3a示出了内容50x内的文件结构。另外,图3b示出了作为内容50x内的文件的信息的toc的结构。
内容50x包含存储照片、运动图像、声音、文书等数字数据的文件的集合(文件f1~ff)(f是自然数)和将这些信息汇总的内容表(toc)。
各文件的大小是任意的,为了方便传送,将各文件分割为被称为数据块(chunk)的单位(例如1mb)。数据块被进一步分割为n个区块(大小例如为1kb)。
在图3a中,示出了内容50x包含文件f1~ff,各文件f1~ff包含数据块ch1-ch3的情况。另外,数据块ch1-ch3包含区块b1~bn。此外,在图3a中,将区块b1~bn如“b1”、“b2”···“bn”那样进行图示。另外,在此,虽然将各数据块的第1个区块如“b1”那样示出,将第n个区块如“bn”那样示出,但是区块内的数据按每个文件、每个数据块而不同。
如图3b所示,toc包含识别toc的tocid、构成内容50x的文件数(numberoffiles)、数据块大小(chunksize)、区块大小(blocksize)、内容50x的标题、内容50x被制作而成的时刻(creationtimestamp:创建时间戳)、内容作者的签名σ(signature)等。
另外,toc具有各文件的文件信息(fileinfo)。各文件信息具有文件id(fileid)、文件名(filename)、文件的数据大小(filesize)、文件所包含的数据块数(numberofchunks)、各数据块的总和检验码(checksums)。
如在图2b中说明的那样,发布终端pub1将内容50a发送至订阅终端sx,订阅终端sub1向其他订阅终端sub2发送内容50b。此外,发布终端pub1可以是内容作者自身,也可以是内容作者请求了的终端。
发布终端pub1在传送内容50x时,首先将toc向订阅终端sx传送。并且,订阅终端sx观察toc,判断内容是否是应接收的内容。此外,也存在订阅终端sx自身不需要内容,而为了向其他订阅终端sx中继而进行接收这一判断的情况。toc的数据大小通常小于构成内容的文件组的合计大小,传送负荷也小。因此,toc也可以不经由对等型的网络而使用网络基础设施(internetinfra)向订阅终端sx传送。
存在订阅终端sx作为发送终端ds(发送者)工作的情况和作为接收终端dr(接收者)工作的情况。在从发送终端ds向接收终端dr进行数据传送中,有时因通信不良而发生数据的缺损和错误(error)。接收终端dr以区块为单位对此进行判定。即,发送终端ds在发送某数据块中的第i(=1,2,…,n)个区块bi时,通过一起发送区块序号i,在接收终端dr中能够把握缺损了的区块的序号。通过前向纠错(forwarderrorcorrection)对区块bi进行编码,由此接收终端dr能够修正某种程度上的错误,并且能够检测出无法修正的错误。或者,接收终端dr也可以通过总和检验码来检测错误,并判断为缺损。作为结果,为区块被正确接收或区块缺损。在缺损了的情况下,接收终端dr向发送终端ds请求该缺损区块的再发送,发送终端ds将该区块bi再发送。
在接收终端dr接收数据块中的全部区块时,计算该数据块的总和检验码,确认其是否与toc的对应的总和检验码一致。若总和检验码一致,则能够确认接收到的数据块是内容作者制作而成的数据。若不一致,则判断为引起了一些错误,还是成为内容50x被窜改等的不可靠的数据而将该数据块废弃。
在本实施方式中,提供了证明从发送终端ds向接收终端dr发送了1个数据块的方法。例如,订阅终端sub1可以从发布终端pub1取得构成内容50x的全部数据块,也可以从其他订阅终端sub2等中继接收。另外, 订阅终端sub1也可以从包含发布终端pub1和订阅终端sub2~sub8中的几个的多个终端接收不同的数据块。若订阅终端sx最终能够取得全部数据块,则内容50x的接收完成。向订阅终端sub1传送内容50x的路径因数据块而不同。据此,附加信息info(ds)按照数据块而被输出。
在本实施方式中按每个数据块进行受领证明,因此,之后为了便于说明,将内容所包含的数据块数设为1。在以后的上下文中内容和数据块为可互换的(interchangeable),将受领证明作为对内容全体的流程进行说明。向内容包含多个数据块的情况的扩张是明确的(straightforward)。接收终端dr和1~多个发送终端,针对多个数据块的每一个,进行对单一的数据块的流程即可。如上所述,由于订阅终端sub1可以从多个终端接收不同的数据块,所以例如在从发布终端pub1接收到某数据块的情况下,在作为发送者的发布终端pub1和作为接收者的订阅终端sub1之间对该数据块进行受领证明流程。在从订阅终端sub2接收到其他数据块的情况下,在作为发送者的订阅终端sub2和作为接收者的订阅终端sub1之间对该数据块进行受领证明流程。在本实施方式中,由于按每个数据块进行受领证明,所以需要从同一发送者接收数据块所包含的多个区块的全部。设计(design)为针对从不同的发送者接收到的区块集合而得到的数据块,想要进行受领证明也使流程失败。
以后,说明以单播方式从发送者向接收者传送内容的例子,但是本实施方式也能够应用于通过组播/广播对多个接收者进行一齐传送的情况。在该情况下,针对发送者和各接收者的组分别进行受领证明流程。发送者的流程不论使用单播还是使用组播/广播都相同。各接收者不论发送者使用了单播还是使用了组播/广播,都针对受领到的数据块在与发送者之间进行受领证明流程。
在图2c和图2d中,示出了如何从构成发布了的内容数据(publishedcontentdata)50x的某数据块的区块b1,b2,…,bn(在此n=4)生成发送终端ds要发送的数据(内容50a,50b)。
发送终端ds对第i个区块bi赋予发送终端ds(=p,s1,s2,…的任 一个)所固有的消息认证码ci(ds)。该消息认证码ci(ds)能够使用例如基于哈希算法的消息认证码(hmac:hash-basedmessageauthenticationcode)用下式(1)计算。
ci(ds)=hash((km(ds)+o)|hash((km(ds)+i)|bi))···(1)
在此hash()是加密哈希函数(cryptographichashfunction),例如使用sha-1(securehashalgorithm:安全散列算法)。“+”是排他的逻辑或(exclusiveor),“|”表示数据的联结(concatenation)。“o”是外部填充(outerpadding)(例如0x5c5c5c…5c等的固定值)。另外,“i”是内部填充(innerpadding)(例如0x363636…36等的固定值),km(ds)是终端ds的mac用私钥(secretkey)。并且,计算使消息认证码连锁而成的哈希值。取得某初始值v,使用下式(2),依次计算至hn(ds)。
h1(ds)=hash(v|c1(ds)),
h2(ds)=hash(h1(ds)|c2(ds)),
h3(ds)=hash(h2(ds)|c3(ds))···(2)
其中,发送终端ds发送初始值v和作为最终哈希值的哈希链链尾(hashchaintail)hn(ds)。并且,发送终端ds不发送其他哈希值hi(ds)(i<n)。进而,发送终端ds对最终哈希值赋予作为签名σ的sign(ds,hn(ds)),也发送该sign(ds,hn(ds))。该sign(ds,hn(ds))是由发送终端ds产生的哈希值hn(ds)的签名σ。另外,由于使用了发送终端ds所固有的消息认证码(mac),所以哈希值hn(ds)也依赖于终端ds。因此,附加信息具有以下的特征。
(特征1)
由于对各区块bi赋予发送终端ds固有的mac,所以接收终端dr能够区别(distinguish)直接的发送终端ds。例如,在图2d中对订阅终端sub2接收的数据附加了中继的订阅终端sub1赋予的macci(s1),这与发布终端pub1附加的macci(p)不同。此外,以下,有时将消息认证码ci(ds)称为macci(ds)或mac。
(特征2)
发送终端ds对使发送终端ds所固有的macci(ds)连锁而成的最终哈希值(哈希链链尾hn(ds))附加发送终端ds的签名σ=sign(ds,hn(ds))。因此,接收终端dr能够确认对构成数据块的各区块赋予的全部macci(ds)是发送终端ds的macci(ds),进而能够向第三者证明。
(特征3)
由于发送终端ds不发送途中的哈希值hi(ds)(i<n),所以只要接收终端dr不接收附随于数据块数据(chunkdata)即区块b1,b2,…,bn的全部的mac并自己计算哈希值hi(ds),接收终端dr就无法确认签名σ所包含的最终哈希值hn(ds)的正确性。
在通常的mac的使用方法中,由发送终端ds和接收终端dr共有mac用的私钥km(ds)。并且,接收终端dr使用km(ds)来计算接收数据的mac,在计算出的mac与发送终端ds制作并发送来的mac一致的情况下,判断为接收到的数据是从发送终端ds发送来的数据。
本实施方式的通信网络100适用与该通常的mac的使用方法不同的使用方法。在通信网络100中,各发送终端ds持有固有的mac私钥km(ds),不与其他发送终端ds共有该mac私钥km(ds)。为此,接收终端dr(订阅终端sx)并不将mac本身用于数据的认证。接收终端dr通过与mac的哈希链链尾hn(ds)有关的签名σ=sign(ds,hn(ds))来进行发送终端ds的识别(identification)。另外,接收终端dr使用toc所记载的(非发送终端ds所固有的)总和检验码来进行内容50x本身没有被窜改或缺少即完整性(integrity)的验证。
在使用了公钥加密系统的签名σ中,各终端d(发送终端ds、接收终端dr)持有公钥kp(d)和私钥ks(d),将公钥kp(d)向作为第三者的认证机关(certificateauthority)登记并公开。在将利用私钥k产生的消息数据m的加密记作encrypt(k,m)、将解密记作decrypt(k,m)时,存在decrypt(kp,encrypt(ks,m))=m的关系。在对某消息数据m赋予了签名σ的情况下,消息数据m用私钥ks(d)被加密。另外, 设为sign(d,m)=encrypt(ks(d),m)。另外,在消息数据m的数据大小大的情况下,也可以取得哈希值之后进行加密。该情况下,成为sign(d,m)=encrypt(ks(d),hash(m))。将这样的使用了公钥加密系统的签名方法以满足以下3个条件的方式进行运用。
·利用私钥ks(d)进行了加密的数据只能通过公钥kp(d)解密。
·通过认证机关来保证公钥kp(d)是终端d的公钥kp(d)。
·用于生成签名σ=sign(d,m)的私钥ks(d)仅终端d知道。
通过这3点,其他终端d’在被提供消息数据m和签名σ=sign(d,m)时,通过decrypt(kp(d),σ)与消息数据m或hash(m)一致,可知消息数据m是来自终端d的数据。
向第三者证明进行了中继的事实通过接收终端dr(=s1,s2,…的任一个)向第三者发行作为受领证明的受领信息(receipt)来进行。该受领信息包含作为发送终端ds的识别信息的发送终端id(ds)和作为接收终端dr的识别信息的接收终端id(dr),并被赋予接收终端dr的签名σ。受领信息另外还可以包含发送时刻ts、接收时刻tr、区块数n、数据块的接收数据大小l、用于识别数据块的id(tocid)、文件(file)id、数据块id等的信息。因此,受领信息例如是包含id(ds),id(dr)、ts、tr、n、l、tocid、文件id、数据块id、sign(dr,ds|dr|ts|tr|n|l|tocid|文件id|数据块id)的数据。
在此,针对发布终端pub1生成的附加信息info(pub1)的具体例进行说明。如图2c所示,作为发送终端ds的发布终端pub1对第一区块b1赋予发布终端pub1所固有的消息认证码c1(p)。这里的c1(p)按照式(1)为c1(p)=hash((km(p)+o)|hash((km(p)+i)|b1))。km(p)是发布终端pub1持有的mac用私钥。进而,发布终端pub1使用初始值v算出哈希值h1(p)。这里的h1(p)按照式(2)为h1(p)=hash(v|c1(p))。
另外,发布终端pub1对第二区块b2赋予发布终端pub1所固有的消息认证码c2(p)。这里的c2(p)按照式(1)为c2(p)=hash((km (p)+o)|hash((km(p)+i)|b2))。进而,发布终端pub1使用哈希值h1(p)和c2(p)算出哈希值h2(p)。这里的h2(p)按照式(2)为h2(p)=hash(h1(p)|c2(p))。
同样地,发布终端pub1对第三区块b3按照式(1)赋予c3(p)=hash((km(p)+o)|hash((km(p)+i)|b3))。进而,发布终端pub1使用哈希值h2(p)和c3(p),按照式(2)算出h3(p)=hash(h2(p)|c3(p))。
同样地,发布终端pub1对第四区块b4按照式(1)赋予c4(p)=hash((km(p)+o)|hash((km(p)+i)|b4))。进而,发布终端pub1使用哈希值h3(p)和c4(p),按照式(2)算出h4(p)=hash(h3(p)|c4(p))。
此外,数据列包含区块b1-b4,第一区块b1是包含所述数据列的第一数据列的区块,第二区块b2是与所述数据列的第二数据列对应的区块。另外,第三区块b3是与所述数据列的第三数据列对应的区块,第四区块b4是包含所述数据列的末尾的数据列的区块。因此,通过按区块b1、区块b2、区块b3、区块b4的顺序依次读出数据而成为连续的数据列。
另外,发布终端pub1使用哈希值h4(p)生成签名σ=sign(p,h4(p))。并且,发布终端pub1将内容50x和附加信息info(pub1)作为内容50a发送给订阅终端sub1。具体而言,发布终端pub1将区块b1和c1(p)、区块b2和c2(p)、区块b3和c3(p)、区块b4和c4(p)、哈希值h4(p)、签名σ=sign(p,h4(p))发送给订阅终端sub1。在该情况下,发布终端pub1将区块b1和c1(p)、区块b2和c2(p)、区块b3和c3(p)、区块b4和c4(p)分别进行关联发送给订阅终端sub1。
订阅终端sub1从内容50a取得区块b1~b4。接着,针对订阅终端sub1生成的附加信息info(sub1)的具体例进行说明。如图2d所示,作为发送终端ds的订阅终端sub1对第一区块b1赋予订阅终端sub1所固有的消息认证码c1(s1)。这里的c1(s1)按照式(1)为c1(s1)=hash((km(s1)+o)|hash((km(s1)+i)|b1))。km(s1)是订 阅终端sub1持有的mac用私钥。进而,订阅终端sub1使用初始值v算出哈希值h1(s1)。这里的h1(s1)按照式(2)为h1(s1)=hash(v|c1(s1))。
另外,订阅终端sub1对第二区块b2赋予订阅终端sub1所固有的消息认证码c2(s1)。这里的c2(s1)按照式(1)为c2(s1)=hash((km(s1)+o)|hash((km(s1)+i)|b2))。进而,订阅终端sub1使用哈希值h1(s1)和c2(s1),算出哈希值h2(s1)。这里的h2(s1)按照式(2)为h2(s1)=hash(h1(s1)|c2(s1))。
同样地,订阅终端sub1对第三区块b3,按照式(1)赋予c3(s1)=hash((km(s1)+o)|hash((km(s1)+i)|b3))。进而,订阅终端sub1使用哈希值h2(s1)和c3(s1),按照式(2)算出h3(s1)=hash(h2(s1)|c3(s1))。
同样地,订阅终端sub1对第四区块b4,按照式(1)赋予c4(s1)=hash((km(s1)+o)|hash((km(s1)+i)|b4))。进而,订阅终端sub1使用哈希值h3(s1)和c4(s1),按照式(2)算出h4(s1)=hash(h3(s1)|c4(s1))。
另外,订阅终端sub1使用哈希值h4(s1)生成签名σ=sign(s1,h4(s1))。并且,订阅终端sub1将内容50x和附加信息info(s1)作为内容50b发送给订阅终端sub2。具体而言,订阅终端sub1将区块b1和c1(s1)、区块b2和c2(s1)、区块b3和c3(s1)、区块b4和c4(s1)、哈希值h4(s1)、签名σ=sign(s1,h4(s1))发送给订阅终端sub2。
接着,对作为通信装置的订阅终端sx的结构和工作处理步骤进行说明。此外,由于订阅终端sx都具有同样的结构,所以以下对订阅终端sub1的结构和工作处理步骤进行说明。
图4是表示实施方式的通信装置的结构的框图。作为通信装置的订阅终端sub1具有网络接口(networkinterface)11、数据发送器/接收器12、非易失性存储器(non-volatilememory)13等存储器。非易失性存储器13存储要发送的数据、接收到的数据等。非易失性存储器13例如存储内容 50x等。
网络接口11是用于利用网络收发(transfer)数据的装置。网络接口11是以太网(ethernet(登记商标))卡,无线局域网适配器(wirelesslanadapter)等。
网络提供与其他终端的通信路径。网络用于与发布终端pub1、订阅终端sub1等其他终端的通信。网络例如是互联网、有线/无线局域网(lan)、便携式电话机网等。此外,在进行移动p2p通信的情况下,网络是在邻近终端间构成的利用wifi(登记商标)等的无线通信路径。网络接口11从发布终端pub1等接收用于传送的数据(内容50a),向订阅终端sub2发送用于传送的数据(内容50b)。
数据发送器/接收器12按照预定的内容传送协议从网络接口11接收作为传送数据的内容50a。数据发送器/接收器12根据接收到的内容50a生成内容50x和附加信息info(pub1),并存储在非易失性存储器13中。
另外,数据发送器/接收器12从非易失性存储器13内读出内容50x,根据内容50x生成内容50b。这里的内容50b包含内容50x和附加信息info(sub1)。并且,数据发送器/接收器12按照预定的内容传送协议将内容50b通过网络接口11向其他终端(订阅终端sub2等)发送。
就数据发送器/接收器12使用的内容传送协议而言,记载在例如“通信装置和通信方法”这一于2014年3月7日申请的美国专利申请14/200,494号、“通信装置和通信方法”这一于2014年9月11日申请的美国专利申请14/483,581号中。这些专利申请的整体在本申请说明书中通过参照进行引用。数据发送器/接收器12在传送内容50b时,附加基于内容传送协议的第1附加信息(发布者id、发送终端id、将数据分割并发送时的序号、总和检验码等)。在图4中,将基于内容传送协议的第1附加信息作为用于内容传输的附加数据(additionaldataforcontentdelivery)230a进行图示。
另外,数据发送器/接收器12在接收内容50a时,接收基于内容传送 协议的第2附加信息。在图4中,将基于内容传送协议的第2附加信息作为用于内容传输的附加数据230b进行图示。
数据发送器/接收器12具备中继验证器(relayauthenticator)20。在数据发送器/接收器12从发布终端pub1接收内容50a时,中继验证器20验证内容50a内的附加信息info(pub1)并生成受领信息。具体而言,中继验证器20从接收到的内容50a中取出内容50x和附加信息info(pub1)。并且,中继验证器20验证附加信息info(pub1),生成作为验证结果的受领信息。
另外,在数据发送器/接收器12向订阅终端sub1发送内容50b时,中继验证器20向内容50x追加附加信息info(sub1)。具体而言,中继验证器20基于内容50x生成附加信息info(sub1)。并且,中继验证器20通过对内容50x进行附加信息info(sub1)的附加,生成内容50b。
数据发送器/接收器12使用网络接口11将生成的受领信息向第三者(网络管理机关等的中继信息收集者)发送。此时的发送路径无需是p2p,受领信息也可以被直接向第三者提供的服务器等上传(upload)。
网络接口11从其他终端(发布终端pub1等)接收内容50a,向其他终端(订阅终端sub2等)发送内容50b。另外,网络接口11向作为第三者的外部装置发送受领信息。在图4中,将内容50a,50b和受领信息等的通信数据作为要传送的数据(datatobetransferred)250进行图示。
图5是表示实施方式的中继验证器的结构的框图。订阅终端sub1具备的中继验证器20具有mac计算器(calculator)21、选择器(selector)22、哈希计算器(hashcalculator(hashm))23m、哈希计算器(hashc)24c、rtc(realtimeclock:实时时钟)25、签名者/验证者(signer/verifier)26、区块计数器(blockcounter)27。
mac计算器21与非易失性存储器13和选择器22连接。选择器22的输入侧与非易失性存储器13和mac计算器21连接,输出侧与哈希计算器23m连接。
哈希计算器23m与选择器22、rtc25、签名者/验证者26连接。哈 希计算器24c与非易失性存储器13连接。签名者/验证者26与非易失性存储器13、哈希计算器23m、rtc25、区块计数器27连接。
mac计算器21从非易失性存储器13中读出第i区块bi,按照前述式(1)计算终端d所固有的macci(d)。这里的mac计算器21计算订阅终端sub1所固有的macci(s1)。此外,在图5的说明中,将macci(s1)省略对终端d的依赖性而作为macci进行说明。
向选择器22输入由mac计算器21计算出的macci(generatedmacci:生成的macci)和从非易失性存储器13内读出的macci(readmacci:读出的macci)。选择器22将生成的macci或读出的macci作为macci向哈希计算器23m和外部输出。选择器22在接收内容50a时,将读出的macci发送给哈希计算器23m。另外,选择器22在发送内容50b时,将生成的macci输出至哈希计算器23m和外部。
rtc25保持当前的时刻。rtc25将表示当前的时刻的时间戳(timestamp)t向签名者/验证者26和外部输出。另外,rtc25基于当前的时刻设定mac的链(chain)的初始值(initialvalue)v,向哈希计算器23m和外部输出。初始值v被设定为例如当前的时刻本身、以当前的时刻为种子(seed)的随机数、基于当前的时刻的哈希值等。
哈希计算器23m计算macci的哈希链(hashchain)hi。哈希计算器23m将途中经过的哈希值(rm)作为mac寄存器(register)rm来保持。哈希计算器23m如以下的式(3)那样,将保持当前的哈希值的mac寄存器rm和macci联结取得哈希值,将该哈希值作为新的mac寄存器rm的值。
rm←hash(rm|ci)···(3)
哈希计算器23m将mac寄存器rm的初始值作为初始值v,一边使区块序号递增(increment)为i=1,2,3,…,一边依次适用式(3)。由此,哈希计算器23m如式(2)那样,计算作为哈希链(hashchain)hi的哈希值并将其保持于mac寄存器rm。哈希计算器23m将计算出的哈希链 链尾hn向签名者/验证者26和外部输出。
具体而言,哈希计算器23m在接收内容50a时,使用附随于接收到的区块b1的消息认证码c1(p)和初始值v,算出哈希值h1(p)。当作为rm=v,i=1而适用式(3)时,更新后的mac寄存器rm的值成为h1(p)。进而,哈希计算器23m使用附随于接收到的区块b2的消息认证码c2(p)和算出的哈希值h1(p),算出哈希值h2(p)(作为i=2适用式(3))。同样地,哈希计算器23m使用附随于接收到的区块b3的消息认证码c3(p)和算出的哈希值h2(p),算出哈希值h3(p)(作为i=3适用式(3))。同样地,哈希计算器23m使用附随于接收到的区块b4的消息认证码c4(p)和算出的哈希值h3(p),算出哈希值h4(p)(作为i=4适用(3))。mac寄存器rm的最终值(finalvalue)成为哈希链链尾h4(p)。
哈希计算器23m在发送内容50b时,使用根据要发送的区块b1生成的消息认证码c1(s1)和初始值v,算出哈希值h1(s1)。当作为rm=v,i=1适用式(3)时,更新后的mac寄存器rm的值成为h1(s1)。进而,哈希计算器23m使用根据要发送的区块b2生成的消息认证码c2(s1)和算出的哈希值h1(s1),算出哈希值h2(s1)(作为i=2适用式(3))。同样地,哈希计算器23m使用根据要发送的区块b3生成的消息认证码c3(s1)和算出的哈希值h2(s1),算出哈希值h3(s1)(作为i=3适用式(3))。同样地,哈希计算器23m使用根据要发送的区块b4生成的消息认证码c4(s1)和算出的哈希值h3(s1),算出哈希值h4(s1)(作为i=4适用式(3))。mac寄存器rm的最终值(finalvalue)成为哈希链链尾h4(s1)。
哈希计算器24c计算内容50x全体的区块b1|b2|…|bn的哈希值(总和检验码)。哈希计算器24c为了针对区块bi依次计算哈希值,将途中经过的哈希值(rc)作为总和检验码寄存器rc保持。哈希计算器24c对计算出的值(总和检验码寄存器rc的最终值)和从非易失性存储器13读出的参考总和检验码(referencechecksum)进行比较,若一致则能够确 认没有对内容50x本身进行窜改。在哈希值与参考总和检验码不一致的情况下,订阅终端sub1判断为发生了窜改,在内容50a的接收时中止接收,在内容50b的发送时中止发送。
区块计数器27对处理完毕的区块数进行计数,保持当前处理中的区块序号i(=1,2,…,n)。区块计数器27将作为计数结果的区块计数(blockcount)i向签名者/验证者26和外部输出。
签名者/验证者26对接收到的内容50a的签名σ进行验证(verify)。另外,签名者/验证者26对要发送的内容50b进行签名(sign)。在签名σ中使用例如rsa公钥加密系统(public-keycryptosystem)。
签名者/验证者26在接收内容50a时,验证附随于内容50a的最终区块的签名σ。这里的签名者/验证者26从非易失性存储器13中读出作为内容50a的一部份接收到的哈希值h4(p)和签名σ=sign(p,h4(p))。并且,确认使用发送终端pub1的公钥kp(p)对签名sign(p,h4(p))进行解密而得到的值是否与接收到的哈希值h4(p)一致。若不一致则签名σ的验证失败。在此,发送终端pub1的公钥kp(p)可以从第三者的认证机关直接取得,也可以使用在自终端sub1或其他终端、其他服务器等中缓存了的值。在后者的情况下,确认公钥kp(p)是认证机关保证的最新的公钥就成为签名的验证者(接收终端sub1)的责任。
签名者/验证者26进一步使用哈希链链尾hn对接收到的签名σ进行验证,哈希链链尾hn是使用附随于接收到的区块bi的消息认证码ci(p)和初始值v通过哈希计算器23m而计算出的值。
具体而言,签名者/验证者26对哈希计算器23m算出的哈希值h4(p)和作为内容50a的一部份接收到的哈希值h4(p)进行比较。若不一致则签名σ的验证失败。
另外,签名者/验证者26基于sign(p,h4(p))内的区块数n、时间戳t等,验证sign(p,h4(p))。若验证全部成功则签名者/验证者26将表示验证成功的受领信息向外部输出。在受领信息中包含证明内容50a的发送者和接收者的信息等。
另外,签名者/验证者26在内容50b的发送时,在哈希计算器23m针对最后的区块bn的处理结束后,对存储于mac寄存器rm的哈希链链尾hn进行签名。由此,生成sign(d,hn)。这里的签名者/验证者26使用哈希值h4(s1),生成sign(s1,h4(s1))。
具体而言,签名者/验证者26使用哈希计算器23m算出的哈希值h4(s1)、时间戳t、区块数n生成sign(s1,h4(s1))。进而,签名者/验证者26将生成的sign(s1,h4(s1))和哈希值h4(s1)附加于最后的区块b4。
图6是表示实施方式的订阅终端进行发送时的工作处理步骤的流程图。订阅终端sub1具备的中继验证器20在发送内容50b时,进行寄存器等的初始化(步骤st10)。具体而言,进行以下的(s1)~(s4)的处理。
(s1)区块计数器27将区块序号i设定为1。
(s2)哈希计算器23m将mac的链的初始值设定为v。例如,在初始值的v为从rtc25得到的当前时刻的情况下,rtc25将当前时刻输入至哈希计算器23m。
(s3)哈希计算器23m将mac寄存器rm初始化为v。
(s4)哈希计算器24c对总和检验码寄存器rc进行初始化。
签名者/验证者26从非易失性存储器13读入区块bi(步骤st20)。并且,进行macci、hash值的算出、寄存器的更新(步骤st30)。具体而言,进行以下的(s11)~(s13)的处理。
(s11)mac计算器21计算区块bi的macci。
(s12)哈希计算器23m使用生成的(generated)macci和式(3)来更新mac寄存器rm。具体而言,哈希计算器23m算出hash(rm|ci),将算出结果设定在mac寄存器rm中。
(s13)哈希计算器24c以区块bi更新总和检验码寄存器rc。
之后,按区块序号进行分支。具体而言,中继验证器20确认区块bi的区块序号(步骤st40)。在区块bi为最初的区块的情况下(步骤st40,i=1),订阅终端sub1将macc1和初始值v与区块b1一起发送给订阅 终端sub2(步骤st50)。并且,区块计数器27使区块序号i递增(步骤st60)。之后,进行步骤st20~st40的处理。
并且,在区块bi既不是最初的区块也不是最后的区块的情况下(步骤st40,1<i<n)、订阅终端sub1将macci与区块bi一起发送给订阅终端sub2(步骤st70)。然后,区块计数器27使区块序号i递增(步骤st60)。之后,进行步骤st20~st40的处理。并且,反复进行st70、st60、步骤st20~st40的处理,直到区块bi成为最后的区块为止。
当区块bi成为最后的区块时(步骤st40,i=n),进行验证处理和签名处理(步骤st80)。具体而言,进行以下的(s21)~(s23)的处理。
(s21)哈希计算器24c从总和检验码寄存器rc输出总和检验码digest(rc),与参考总和检验码进行比较验证。若总和检验码digest(rc)与参考总和检验码不一致则哈希计算器24c输出错误。
(s22)签名者/验证者26从rtc25得到当前的时刻(发送时刻)ts。
(s23)签名者/验证者26对区块数n、时刻ts、区块bn、作为mac寄存器rm的哈希链链尾hn进行订阅终端sub1所固有的签名,由此得到签名σ。签名σ例如是sign(ds,hn|n|ts|bn)。
之后,订阅终端sub1将cn,hn,n,ts,签名σ与区块bn一起向订阅终端sub2发送(步骤st90)。由此,发送处理结束。
图7是表示实施方式的订阅终端进行接收时的工作处理步骤的流程图。订阅终端sub1具备的中继验证器20在接收内容50a时,进行寄存器等的初始化(步骤st110)。具体而言,进行以下的(s31)~(s33)的处理。
(s31)区块计数器27将区块序号i设定为1。
(s32)哈希计算器23m将mac寄存器rm初始化为接收到的初始值v。
(s33)哈希计算器24c对总和检验码寄存器rc进行初始化。
签名者/验证者26从非易失性存储器13读入区块bi(步骤st120)。然后,进行寄存器的更新等(步骤st130)。具体而言,进行以下的(s41) ~(s42)的处理。
(s41)哈希计算器23m使用接收到的mac值ci和式(3)更新mac寄存器rm。具体而言,哈希计算器23m算出hash(rm|ci),将算出结果设定在mac寄存器rm中。此时,不使用mac计算器21。
(s42)哈希计算器24c以区块bi更新总和检验码寄存器rc。
之后,按区块序号进行分支。具体而言,中继验证器20确认区块bi的区块序号(步骤st140)。在区块bi不是最后的区块的情况下(步骤st140,0<i<n),区块计数器27使区块序号i递增(步骤st150)。之后,进行步骤st120~st140的处理。并且,反复进行st150、步骤st120~st140的处理,直到区块bi成为最后的区块。
当区块bi成为最后的区块时(步骤st140,i=n),进行验证处理等(步骤st160)。具体而言,进行以下的(s51)~(s55)的处理。
(s51)哈希计算器24c从总和检验码寄存器rc输出总和检验码digest(rc),与参考总和检验码进行比较验证。若总和检验码digest(rc)与参考总和检验码不一致则哈希计算器24c输出错误。
(s52)签名者/验证者26对接收到的签名σ进行验证。
(s53)签名者/验证者26对签名后的接收数据、即哈希链链尾hn进行验证。具体而言,签名者/验证者26确认哈希链链尾hn与在步骤st130中更新后的mac寄存器rm是否一致。
(s54)签名者/验证者26对区块数n进行验证。具体而言,签名者/验证者26确认签名后的区块数与接收区块数是否一致。
(s55)签名者/验证者26验证发送时刻ts。具体而言,签名者/验证者26从rtc25得到当前的时刻(接收时刻)tr,确认与发送时刻ts之差是否小于阈值e(tr–ts<e)。
订阅终端sub1在步骤st160的全部验证成功时,输出受领信息(步骤st170)。这样,作为发送终端ds的订阅终端sub1在将分割内容50x而得到的各区块向作为接收终端dr的订阅终端sub2发送时,向各区块赋予消息认证符号。另外,订阅终端sub1向所述多个区块中的1个赋予将 多个区块的消息认证符号作为输入的签名σ。并且,订阅终端sub2仅在对接收数据完成了订阅终端sub1赋予的签名σ验证的情况下,输出该多个区块的受领证明(受领信息)。由于签名σ的验证需要多个区块的全部消息认证符号,所以能够证明订阅终端sub2接收了全部区块。
此外,使中继验证器20黑盒化(blackbox)、且以用户空间应用(userspaceapplication)看不到的方式构成。即,在上述的收发处理中登场的数据和/或值中,没有经由网络接口11收发的数据和/或值,也无法从作为通信装置的订阅终端sx的内部的用户应用(userapplications)和外部进行参照或变更。该数据和/或值包含mac用私钥km(d)、签名用私钥ks(d)、mac寄存器rm、总和检验码寄存器rc、rtc、区块计数i。
例如,在将中继验证器20作为硬件芯片(hardwarechip)安装的情况下,仅能够进行输入数据的控制和输出数据的读取。另外,在将中继验证器20作为软件(software)安装的情况下,中继验证器20能够在可信执行环境(trustedexecutionenvironment)这样安全(secure)的环境下执行。由此,在中继验证器20中,无法从其他的应用参照存储器的内容。mac用私钥km(d)在硬件芯片内、固件、或者非易失性存储器13中被加密并保存,在中继验证器启动时被读出。或者,也可以在中继验证器启动时通过随机数生成mac用私钥km(d)。如上所述,在本实施方式中,由于mac用私钥km(d)并不在终端间共有,所以根据需要生成mac用私钥km(d),即使更新,本实施方式也按意图工作。作为在消息认证码生成中使用的式(1)中的固定值的内部填充(innerpadding)i和外部填充(outerpadding)o也无需在全部终端共有。固定值i和o存储在硬件芯片内、固件、或者非易失性存储器13中,不被加密也可。
在图6中说明的生成ci,v,hn,n,ts,σ这样的附加信息时,例如,在数据发送器/接收器12发送区块bi的同时联机(onthefly)执行区块计数i的处理。另外,数据发送器/接收器12在发送bi前执行区块计数i的处理,也可以在中继验证器20内的(无法从外部参照)缓存中放置事先计算出的附加信息。但是,当发送终端ds计算出附加信息的时间ts过早时, 接收终端dr以与接收时刻tr之差大(tr–ts>e)为由而认证失败。因此,发送终端ds即使事先计算也需要在比阈值e充分短的时间内发送。
在进行图7中说明的接收处理时,数据发送器/接收器12也可以在接收区块bi的同时联机执行区块计数i的处理。另外,数据发送器/接收器12也可以将接收到的数据存储在硬盘、非易失性存储器(non-volatilememory13)等的存储装置中之后再度读出并执行。
在图5的说明中,针对中继验证器20从非易失性存储器13读出数据的情况进行了说明,但是在联机执行的情况下,非易失性存储器13也可以是网络接口11、数据发送器/接收器12内的缓存。
在使用无线通信等的可靠性低的通信路径收发内容50的情况下,区块bi有可能消失。该情况下,发送终端ds根据接收终端dr的要求再发送缺损区块,但是在与区块bi的顺次(sequential)发送非同步进行再发送的情况下,发送终端ds需要再发送比顺次发送中的序号i向前追溯的区块bj(j<i)。在预测到这样的需要的情况下,通过图6的处理得到的附加信息(ci,v,hn,n,ts,σ)无论是联机处理还是不联机处理,都需要暂时存储于中继验证器20内的缓存中。另外,对于接收终端dr来说,区块bi也未必按区块序号i的顺序送达。因此,接收终端dr在发生再发送的环境下,进行数据接收直到将区块bi存储于非易失性存储器13并能够连号处理为止,之后进行在图7中说明的处理。
接着,针对不使用对等型的网络而传送内容50的情况的问题进行说明。图8是用于说明对发射塔或接入点的负荷的图。通信网络200作为网络基础设施而具有服务器(server)101、作为电波塔的发射塔(celltower)102、接入点103。并且,服务器101、发射塔102、接入点103经由有线的基础网络(wirednetwork)110而连接。此外,将这里的订阅终端设为订阅终端su1~su8,将发布终端设为发布终端pu1。另外,在以下的说明中,有时将订阅终端su1~su8称为订阅终端sux。
接入点103在wi-fi(登记商标)热点(hotspot)等的无线lan(localareanetwork:局域网)热点内与订阅终端sux进行无线通信。接入点 103是构成为便携式电话机、平板终端等的无线通信终端能够进行无线连接的通信设备。在此,示出了订阅终端su6~su8与接入点103连接的情况。
发射塔102是无线通信的基站,使用便携式电话机网等的通信手段与订阅终端sux、发布终端pu1进行无线通信。服务器101将从发布终端pu1上载的数据经由发射塔102接收并存储。服务器101将服务器101内的数据(内容等)经由发射塔102向订阅终端sux发送。在此,示出了订阅终端su1~su5和发布终端pu1与发射塔102连接的情况。
在通信网络200内,发布终端pu1能够在该发布终端pu1与发射塔102等之间进行无线通信。另外,在通信网络200内,订阅终端sux与发射塔102或接入点103连接并能够从发布终端pu1接收内容。
在这样的通信网络200中,来自发布终端pu1的内容经由发射塔102或接入点103被发送至订阅终端sux。换言之,并不在订阅终端sux进行数据中继,从发射塔102或接入点103向订阅终端sux传送内容。
在通信网络200中,进行将内容传送等的通用的数据送到多个订阅终端sux的处理。在该情况下,当从成为数据源的发布终端pu1或内容服务器向全部订阅终端sux发送数据时,发布终端pu1的处理和通信负荷变高。虽然也考虑配置镜像服务器(mirrorserver)等发布终端pu1的复制来进行负荷分散的方法,但是通常那些复制的终端需要内容传送者进行管理,因此装置和管理花费费用。
例如,在订阅终端sux是由用户搬运移动的便携终端(mobiledevices)(典型的为便携式电话机)的情况下,各订阅终端sux利用便携式电话机网等从服务器接收数据。该情况下,在城市、活动现场等许多用户聚集的场所,对提供便携式电话机网的电波塔(发射塔102)、提供wi-fi访问的接入点103(hotspot)的负荷提高,通信速度降低。即,不仅对服务器101,对网络基础设施的负荷也变高。
对此,若数据接收完毕的订阅终端sux向其他订阅终端sux传送该数据,则能够减轻发布终端pu1的负荷。订阅终端sux对数据进行中继 (relay),订阅终端sux彼此进行通信这样的网络为对等(peer-to-peer,p2p)型的网络。在将便携终端作为订阅终端su1的对等型的网络中,订阅终端sux不使用便携式电话机网等而对数据进行中继,由此减轻了对基础设施的负荷。这样的网络是移动对等网络(mobilep2pnetwork)。
在对等型的网络的内容传送中,虽然期待数据接收完毕的订阅终端sux对数据进行中继,但是数据中继的负荷因订阅终端sux的不同而不同。
在这样的对等型的网络中,有时为了计量订阅终端sux的贡献度等而想证明进行了数据的收发。例如,假设现在某发布终端pu1或订阅终端sux(发送终端dsx)向其他的1个或多个订阅终端(接收终端drx)sux发送了数据。在该情况下,由于想证明从发送终端dsx向接收终端drx发送了数据,所以进行受领信息的收集。
在此,针对接收终端能够确认数据的发送源的方法进行说明。在该方法中,通常在发送大小很大或不终止的数据流时,将数据分割为小的单位(区块)。并且,对各区块赋予消息认证码ci。当使用mac时,接收终端drx能够确认接收到的数据的确是发送终端dsx发送的数据。另外,由于是按区块的处理,所以具有能够以区块为单位进行认证而不等待到内容的接收的最后的优点。然而,在该方法中,无法对第三者证明从发送终端dsx接收到数据的事实。
接着,针对能够向第三者证明数据的收发的方法进行说明。在该方法中,发送终端dsx对数据赋予签名σ,由此接收终端drx能够向第三者证明数据是从该发送终端dsx发送来的数据。但是,在该方法中,由于签名σ的计算量大,所以当按区块单位赋予签名σ时,不仅生成签名σ的发送终端dsx,对该签名σ进行验证的接收终端drx的处理负荷也变大。
因此,制作哈希值的连锁,仅对使多个区块连锁而成的结果的哈希值赋予签名σ,由此也可以向第三者证明数据的收发。在该方法中,计算某区块的加密的哈希(cryptographichash)值。并且,将该计算出的值与其他区块联结,对该联结而成的数据同样计算哈希值,将该值进一步与其他区块的数据联结,对该联结而成的数据计算哈希值。并且,仅对使多个区 块连锁而成的结果的哈希值赋予签名σ。
图9a和图9b是用于说明使用了哈希值的连锁的数据发送方法的图。图9a示出了由发布终端pu1生成的数据结构,图9b示出了由订阅终端sux生成的数据结构。
内容包括区块b1,b2,b3,b4这4个区块,从发布终端pu1经由订阅终端su1向订阅终端su2传送内容。如图9a所示,发布终端pub1计算h1=hash(b1)作为预定的区块(在此为最前头区块b1)的哈希值h1。
接着,发布终端pu1将哈希值h1与相邻的区块b2联结而计算哈希值h2。哈希值h2为h2=hash(b2|h1)。同样地,发布终端pu1反复进行数据的联结和哈希值的计算。具体而言,发布终端pu1设为h3=hash(b3|h2),h4=hash(b4|h3),对哈希值h4进行签名。由发布终端pu1进行的哈希值h4的签名σ为sign(p,h4)。发布终端pu1除了区块b1,b2,b3,b4以外,还将哈希值h1,h2,h3,h4和签名σ=sign(p,h4)向订阅终端su1发送。
订阅终端su1通过与发布终端pu1同样的方法,计算哈希值h1,h2,h3,h4。并且,发布终端pu1对哈希值h4进行签名。由订阅终端su1进行的哈希值h4的签名σ为sign(s1,h4)。订阅终端su1除了区块b1,b2,b3,b4以外,还将哈希值h1,h2,h3,h4和签名σ=sign(s1,h4)向订阅终端su2发送。这样,从发布终端pu1经由订阅终端su1向订阅终端su2传送内容。
通过该方法,对多个区块,仅通过发送终端dsx和接收终端drx一起进行1个签名的处理(生成或验证),对该多个区块的任一个,接收终端drx都能够向第三者证明是发布者发送的区块。但是,在该方法中,对相同的内容而言,除去了签名σ以外的发送数据(区块数据bd1-bd4、哈希值h1-h4)不论发送终端dsx如何都相同。因此,即使订阅终端su1将签名σ更换为自身的sign(s1,h4)进行中继,订阅终端su2也无法区别签名σ以外的接收数据是从发布者直接接收的数据还是从中继者su1接收到的数据并向第三者证明。
另一方面,通信网络100内的订阅终端sx对各区块赋予订阅终端sx所固有的消息认证码ci,生成将多个区块的消息认证码ci作为输入而得到的签名σ。并且,订阅终端sx将消息认证码ci(区块认证码)、哈希值h4(内容认证码)和签名σ附加给内容,向其他订阅终端sx发送。由此,即使对非发布者的发送终端ds即成为中继者的订阅终端sx,也能够将终端间的收发的事实向第三者证明。
以下,对设想的受领信息的窜改等的攻击和将该攻击适用于订阅终端sx的情况下,作为该攻击难以进行的理由、或该攻击不合理的理由进行说明。
(案例1)
发送终端ds主张对尚未发送的内容50进行了发送。
(在案例1中也没有问题的理由)
在通信网络100中,由于接收终端dr输出受领信息,所以不会引起该问题。
(案例2)
接收终端dr主张对尚未接收的内容50进行了接收。
(在案例2中也没有问题的理由)
虽然接收终端dr接收到的事实通过受领信息证明,但是为了得到受领信息,需要发送终端ds的签名σ和与该签名σ关联的全部macci(ds)。另外,在macci(ds)的生成中需要发送终端ds的mac用私钥km(ds),并且在签名σ中需要发送终端ds的签名用私钥ks(ds)。因此,不知道这些密钥而假冒macci(ds)和签名σ很困难。
(案例3)
接收终端dr主张从发送终端ds接收到的数据块是从其他发送终端ds’接收的数据块。
(在案例3中也没有问题的理由)
由于接收终端dr假冒签名σ很困难,所以考虑仅从发送终端ds’接收由发送终端ds’赋予了签名σ’的最终的区块bn,使用从发送终端ds接收 到的其他区块bi(i<n)来制作受领信息。该情况下,接收终端dr为了签名σ’的验证而需要发送终端ds’的macci(ds’)。但是,由于接收终端dr从发送终端ds接收区块bi,所以持有macci(ds),在受领信息制作中失败。
(案例4)
接收终端dr针对受领信息已经生成完毕的数据块再度生成受领信息。即,对1回的发送而假装存在多回的发送。
(在案例4中也没有问题的理由)
由于接收终端dr在发送时间ts和接收时间tr之差不为阈值e以下时无法生成受领信息,所以当经过预定时间时无法对接收完毕的数据块生成受领信息。接收终端dr对阈值e以下的最近的接收数据块能够生成受领信息,但是这样生成的多个受领信息s除了接收时间tr不同以外内容相同。因此,受领信息(受领信息)的合计者仅受领接收时间tr最小的信息而废弃剩余的即可。
(案例5)
针对发送终端ds和接收终端dr已经共有的数据块,发送终端ds再度生成mac和签名σ,接收终端dr仅接收mac和签名σ,赋予给已经持有的数据块数据并生成受领信息。由于发送终端ds再度进行mac和签名σ的生成,所以能够始终减小上述的发送时间ts与接收时间tr之差。因此,能够生成受领信息。
(在案例5中也没有问题的理由)
与案例4的情况同样地,由于受领信息s除了发送时间ts和接收时间tr不同以外内容都相同,所以合计者能够检测。
(案例6)
发送终端ds和接收终端dr串谋并主张接收终端dr以比发送数据块全体少的通信量接收到数据块全体。发送终端ds与接收终端dr之间,协议发送小于n个的m(<n)个区块,若窜改toc的数据块大小和要发送的数据块的总和检验码,则接收终端dr能够输出受领信息。
(在案例6中也没有问题的理由)
由于在受领信息中埋入区块数m的信息,所以合计者能够通过与toc不一致而拒绝该受领信息。
(案例7)
发送终端ds使用其他发送终端ds’生成的macci(ds’)和签名σ’发送数据块,接收终端dr尽管从发送终端ds进行了接收但是主张从发送终端ds’进行了接收。发送终端ds尽管向接收终端dr发送了数据块,但是导致向发送终端ds’给与了数据中继的功绩(credit)。
(在案例7中也没有问题的理由)
为了对自身进行正确评价,通过本实施方式的流程赋予自身的macci(ds)和签名σ是发送终端ds的责任。
(案例8)
接收终端dr没有将受领信息发送给合计者。
(在案例8中也没有问题的理由)
由于这并不困难,所以使用促使受领信息的提出的机制(以下的例等)。
(例1)对发出了受领信息的接收终端dr也给与一些报酬。
(例2)公开各终端的受领信息提出数。将受领信息提出数多的终端视为优良接收终端dr,比受领信息提出数少的终端优先传送内容。
(例3)在利用对等型的网络传送经加密的内容,用于阅览内容的解密密钥需要从内容提供者另行得到的用例中,将受领信息的提出作为密钥供给的条件。
这样,本实施方式的订阅终端s1具备数据发送器/接收器12。数据发送器/接收器12从第1其他终端(例如,发布终端pub1等)接收内容50a等。该内容50a具有发布终端pub1所固有的附加信息info(p)和多个区块(block)bi。另外,数据发送器/接收器12生成内容50b向第2其他终端(订阅终端s2等)发送。该第2内容50b具有订阅终端s1所固有的附加信息info(s1)和多个区块bi。另外,数据发送器/接收器12具备中继验证器20。中继验证器20生成附加信息info(s1)。该附加信息info (s1)包含消息认证码ci(s1)、哈希值hn(s1)、sign(s1,hn(s1))。
消息认证码ci(s1)是与订阅终端s1和区块bi相应的信息。
另外,哈希值hn(s1)是与订阅终端s1和区块b1-bn相应的信息。另外,sign(s1,hn(s1))是订阅终端s1和哈希值hn(s1)所固有的信息。
另外,中继验证器20基于附加信息info(p),对内容50a的发送源是订阅终端sx进行验证,在能够验证出的情况下生成表示内容50a的受领事实的受领信息。并且,数据发送器/接收器12将受领信息向第三者机关等的外部装置发送。
这样,在实施方式中,由于订阅终端sx附加发送终端ds所固有的信息而发送内容50,所以能够防止受领信息被窜改,并且能够收集受领信息。
对本发明的几个实施方式进行了说明,但这些实施方式是作为例子进行了提示,并不意在限定发明的范围。这些新的实施方式能够在其他各种方式中实施,能够在不脱离发明的要旨的范围内进行各种省略、替换、变更。这些实施方式及其变形包含在发明的范围和要旨中,并且包含在与专利权利要求的范围所记载的发明及其均等的范围中。