消息发送系统、通信终端、服务器装置、消息发送方法以及程序与流程

文档序号:18270834发布日期:2019-07-27 09:39阅读:144来源:国知局
消息发送系统、通信终端、服务器装置、消息发送方法以及程序与流程

本发明涉及加密技术,特别涉及发送接收加密的消息的消息发送技术。



背景技术:

在以商业中的使用为前提的消息发送系统中,存在使用基于云型的发送系统的消息发送系统,使得能够进行个人电脑和智能电话等多设备对应,并且考虑企业的机密信息泄露而不在客户终端中残留数据。作为这样的基于云型的消息发送系统的一个例子,举出非专利文献1中记载的产品。

在这样的消息发送系统中,通过加密通信路径而防止通信路径上的窃听,或者如已叙述的那样,通过在终端中不残留数据,防止因终端的丢失或非法的拿出引起的信息泄露。这样应对对于通信路径和终端的威胁,但是另一方面应对对于服务器的威胁并不足够。作为这里所说的对于服务器的威胁,举出对于服务器的来自外部的攻击或服务器管理者等的内部非法等。作为对于服务器的威胁举出,通过加密等对消息进行隐匿保存等对策,但是既然在服务器侧能够解码,当然来自服务器的消息泄露的可能性依然存在。因此,送到进行消息的发送接收或保存的服务器的消息对于服务器隐匿(在服务器侧不被窃听)非常重要。

一个方法是对于服务器隐匿消息,实现仅在终端可解码的端到端的加密通信,但是如何共享在终端间使用的公共密钥成为问题。作为该问题的解决对策,例如在非专利文献2中提出了在中央具有认证服务器的星型的网络中,对于认证服务器不泄露任何信息地在利用者之间共享公共密钥(以下,也称为会话密钥)的协议。由此,能够在对服务器隐匿了消息的情况下在终端间交换消息。

另一方面,若依据在商业中的利用,则需要高效地发现过去的交换的手段。作为该手段,考虑消息的搜索功能。但是,在适用利用者之间的会话密钥共享技术的情况下,云上累积的消息被隐匿,所以需要使得可在保持隐匿的情况下搜索消息。例如在非专利文献3中,搜索密钥和关键字输入到哈希函数,将其输出作为索引上传到服务器。在搜索时,将在同样的步骤中生成的加密关键字上传到服务器,服务器搜索与哈希值一致的索引并回答结果。由此,能够在隐匿了云上累积的消息的情况下进行搜索。

现有技术文献

非专利文献

非专利文献1:nttソフトウェア、“ビジネスチャットtopicroom(トピックルーム)”、[online]、[平成28年12月1日検索]、因特网<url:https://www.ntts.co.jp/products/topicroom/index.html>

非专利文献2:小林鉄太郎、米山一樹、吉田麗生、川原祐人、冨士仁、山本具英、“スケーラブルな動的多者鍵配布プロトコル”、scis2016、4e2-3、2016年

非专利文献3:w.ogata,k.koiwa,a.kanaoka,s.matsuo,"towardpracticalsearchablesymmetricencryption",proceedingsoftheadvancesininformationandcomputersecurity,lecturenotesincomputerscience,volume8231,pp.151-167,2013.



技术实现要素:

发明要解决的课题

如在上述中叙述的那样,通过在终端间共享会话密钥,可以在对服务器隐匿了消息的情况下进行交换,并且可以在隐匿了消息的情况下进行搜索。但是,如非专利文献2那样,在仅当前的参加成员希望共享会话密钥的情况下,在发生了用户的追加或删除等事件时,需要更新会话密钥。这时,具有以下与机密性有关的课题,即,若搜索密钥仍未被更新,则被删除的用户得不到会话密钥,所以无法读取消息,但是通过非法获取其他用户向服务器询问的搜索查询等,可以推测搜索的关键字的内容和服务器作为回答结果发送的消息的内容。

本发明的目的是,鉴于上述那样的问题点,提供可以在更新了会话密钥时进行再加密,以将搜索索引与更新后的会话密钥相对应,可以提高机密性的消息发送技术。

用于解决课题的手段

为了解决上述的课题,本发明的消息发送系统包含服务器装置和多台通信终端,至少一台其它通信终端接收从某个通信终端发送的消息,多台通信终端包含存储了与其它通信终端共享的会话密钥的会话密钥存储单元,至少一台通信终端进一步包含索引生成单元,将对于与消息相关联的字符串使用会话密钥生成的索引和唯一地确定消息的消息识别符设为组,发送到服务器装置,至少一台通信终端进一步包含再加密密钥生成单元,在会话密钥被更新时,使用更新前的会话密钥和更新后的会话密钥生成再加密密钥,发送到服务器装置,至少一台通信终端进一步包含查询生成单元,使用会话密钥存储单元中存储的会话密钥将搜索关键字加密,生成搜索查询,发送到服务器装置,服务器装置包括:索引存储单元,存储从通信终端接收到的索引和消息识别符的组;再加密单元,使用从通信终端接收到的再加密密钥,将索引存储单元中存储的索引更新为对于与消息相关联的字符串使用更新后的会话密钥生成的索引;以及搜索单元,提取索引存储单元中存储的索引与从通信终端接收到的搜索查询一致的消息识别符,发送到通信终端。

发明的效果

按照本发明的消息发送技术,因为在更新了会话密钥时更新搜索索引,以与更新后的会话密钥相对应,所以即使不知道更新后的会话密钥的通信终端获取了搜索查询,也不能推测消息的内容。因此,机密性提高。

附图说明

图1是例示消息发送系统的功能结构的图。

图2是例示服务器装置的功能结构的图。

图3是例示通信终端的功能结构的图。

图4是例示消息发送方法的处理步骤的图。

图5是用于说明索引的再加密的图。

具体实施方式

以下,详细地说明本发明的实施方式。而且,对于附图中具有相同的功能的结构单元附加相同的标号,省略重复说明。

在本发明的消息发送技术中,如下操作来解决上述的课题。在消息发送时,在进行与服务器的通信的通信终端侧使用会话密钥将消息内的关键字隐匿化。在更新了会话密钥时,通信终端生成用于将关键字再加密的再加密密钥,发送到服务器。服务器使用再加密密钥对用更新前的会话密钥加密的索引进行再加密,在将关键字隐匿的情况下变换为与更新后的会话密钥相对应的索引。通过以上操作,可以将消息内的关键字在隐匿的情况下发送到服务器,进而通过伴随会话密钥的更新而将索引再加密,可以防止来自参加用户以外的搜索内容的推测。

说明在以下的说明中使用的记号的定义。将g设为循环群。作为加法群,作为以素数p为模数的整数环的剩余环有g=zp,作为乘法群,有以素数p为模数的整数环的剩余环的单元群g=zp×。以下作为g为乘法群来说明。将tcrhf设为以任意长度的字符串作为输入、将群g的元作为输出的目标冲突困难哈希函数。这里,叙述目标冲突困难哈希函数族的定义。将h={hi:di→ri}i设为对于各i,具有定义域di和值域ri的哈希函数族。对于任意的多项式时间攻击者a和任意的下标i,在提供了从定义域di随机地提取的x∈di时,难以发现hi(x)=hi(x')那样的x'∈di(x'≠x)时,将h称为目标冲突困难哈希函数族。作为tcrhf的例子,将p设为256比特素数,使用sha256而举出tcrhf(x)=sha256(x)modp。但是,本发明的tcrhf不限于此。

如图1中例示的那样,实施方式的消息发送系统包含服务器装置1以及n(≧2)台通信终端21,…,2n。在该实施方式中,服务器装置1以及通信终端21,…,2n被分别连接到通信网3。通信网3是构成为在连接的各装置之间可相互通信的电路交换方式或者分组交换方式的通信网。希望通信网3是确保了安全的封闭的通信路径,但是若使用确保单独地加密各装置间的通信等安全性的手段,则也能够使用例如因特网等开放的网络。

如图2中例示的那样,服务器装置1包括:控制单元101、存储单元102、发送单元103、接收单元104、索引存储单元11、组id生成单元12、再加密单元13、以及搜索单元14。如图3中例示的那样,通信终端21,…,2n包括:控制单元201、存储单元202、发送单元203、接收单元204、组id存储单元21、会话密钥存储单元22、索引生成单元23、消息发送单元24、再加密密钥生成单元25、以及查询生成单元26。控制单元101以及201例如是中央运算处理装置(cpu:centralprocessingunit)。存储单元102以及202例如是主存储装置(ram:randomaccessmemory)。发送单元103以及203、接收单元104以及204例如是有线或者无线的网络接口卡(nic:networkinterfacecard)。通过该服务器装置1与通信终端21,…,2n一边相互通信一边进行图4所示的各步骤的处理,实现实施方式的消息发送方法。

服务器装置1例如是,在具有中央运算处理装置(cpu:centralprocessingunit)、主存储装置(ram:randomaccessmemory)等的公知或者专用的计算机中读入特别的程序而构成的特别的装置。各装置例如在中央运算处理装置的控制下执行各处理。输入到各装置的数据和在各处理中得到的数据例如被存储在主存储装置中,存储在主存储装置中的数据根据需要被读入到中央运算处理装置而利用于其它处理。各装置具有的各处理单元的至少一部分也可以由集成电路等硬件构成。各装置具有的各存储单元例如可以由ram(randomaccessmemory)等主存储装置、由硬盘或光盘或者闪存(flashmemory)那样的半导体存储器元件构成的辅助存储装置、或者关系数据库和密钥值存储等中间件构成。

通信终端21,…,2n具体地说,是移动电话、智能手机、平板电脑终端、桌面型或者笔记本型的个人计算机等信息处理装置。各终端不限于这些具体例子,只要是可以通过视觉或听觉等对利用者提示信息,通过画面操作或声音输入等接受来自利用者的输入的信息处理装置,则可以是任何装置。

参照图4,说明实施方式的消息发送方法的处理步骤。在以下的说明中,通信终端2n(n∈{1,…,n})设为是通信终端21,…,2n的任意1台。在该消息发送系统中,可以构成由多个通信终端构成的谈话组(以下,仅称为组),在该组中包含的通信终端之间可以进行消息的交换。

在步骤s1中,服务器装置1的组id生成单元12生成唯一地识别包含多个通信终端2的组的组id。生成的组id通过发送单元103分别发送到该组中包含的通信终端2。

在步骤s2中,通信终端2n从服务器装置1接收组id。接收到的组id存储到组id存储单元21。

在步骤s3中,通信终端2n与相同的组中包含的其它通信终端2n'(n'≠n)共享会话密钥sk1,存储到会话密钥存储单元22。会话密钥的生成以及共享方法可以使用公知的技术进行。而且,会话密钥sk1设为对于服务器装置1来说不知道的密钥,设为伴随组知道用户的追加或删除或者经过一定时间等事件的发生,被变更为其它的会话密钥sk2(≠sk1)的密钥。

步骤s4中,通信终端2n的索引生成单元23对于与对组发送的消息m相关联的字符串sk,使用会话密钥存储单元22中存储的会话密钥sk1生成索引indexk。k设为从1至k的各整数,k是与消息m相关联的字符串的数。索引indexk与唯一地确定消息m的消息识别符idm构成组,通过发送单元203发送到服务器装置1。具体地说,如以下那样操作,生成索引indexk。将可搜索字符串长设为l。在未对可搜索的字符串长设置上限的情况下,也可以设为l=∞,但是这里l设为有限(<∞)。在该组中,将唯一地确定消息m的识别符设为idm。由于对服务器装置1将消息m保持隐匿,所以希望从消息m生成识别符idm的函数难以进行逆像计算,即,不能容易地从识别符idm推测消息m。将函数f设为将任意长度的字符串作为输入,输出作为依赖于输入字符串的维数的、各分量的长度为l以下的字符串的向量的函数。作为函数f的例子,有输出消息m的元信息的函数、输出消息m内包含的字符串的函数、输出全部灵活运用n-gram索引的消息m内的连续n字符的字符串的函数等。而且,n-gram索引的细节记载在下述参考文献1中。

〔参考文献1〕北研二、津田和彦、獅々堀正幹著、「情報検索アルゴリズム」、共立出版、2002年

以下,函数f作为将输入的消息m内包含的连续的字符串全部输出的函数进行说明。为了生成输出字符串,将消息m的字符串长设为lengthm,设λ=min{l,lengthm},对各i=1,…,λ,索引生成单元23进行以下的操作。将消息m内的连续的i个字符串(将消息全体中的连续的字符串、或者消息区分为每个句节,考虑其中的连续的字符串等,但是不限于此)设为s1(i),s2(i),…。关于对字符串s1(i),s2(i),…各自的分配方法,例如有将从字符串的左端取得的连续的i个字符串设为s1(i),将从左端向右偏移1个而得到的连续的i个字符串设为s2(i),···这样的方法,但是不限于此。作为输出,函数f得到

维度向量

接着,读出会话密钥存储单元22中存储的会话密钥sk1,对各j=1,2,…,lengthm-λ+1,计算

得到

个indexj(i)构成的索引集合

这时,在通过会话密钥sk1的取幂计算时,如果需要则也可以在计算了基于会话密钥sk1的素数p的余数后进行取幂计算。而且,在群g为加法群的情况下,进行sk1倍计算。即,计算为

例如,在设l≧3,m=“あいう”的情况下,生成6个索引

然后,将生成的索引集合λ和对消息m赋予的消息识别符idm的组

通过发送单元103发送到服务器装置1。而且,在发送时,希望进行tls(transportlayersecurity,传输层安全性)那样的隐匿通信,但是不限定用哪样的手段进行发送。

在步骤s5中,服务器装置1从通信终端2n接收索引集合和消息识别符的组(λ,idm),存储到索引存储单元11。在索引存储单元11中,为了高效,如图5所示,在将包含关键字sk的消息的识别符设为idk1,idk2,…时,希望将对于关键字sk的索引indexk作为密钥(key),保存为(indexk,idk1,idk2,…),但是不限定形成哪样的表。

在步骤s6中,通信终端2n的消息发送单元24使用会话密钥存储单元22中存储的会话密钥sk1加密消息m。加密的消息m指定发送目的地的组id,通过发送单元203发送到服务器装置1。

在步骤s7中,通信终端2n将会话密钥存储单元22中存储的会话密钥sk1更新为新会话密钥sk2。如上述那样,作为更新会话密钥的契机,有组中的用户的追加或删除或者经过一定时间等事件的发生。但是,会话密钥的更新不限于这些契机。更新后的会话密钥sk2被存储在会话密钥存储单元22中。

在步骤s8中,在会话密钥被更新时,通信终端2n的再加密密钥生成单元25使用更新前的会话密钥sk1和更新后的会话密钥sk2,计算

rk1,2=sk2/sk1,

生成再加密密钥rk1,2,通过发送单元203发送到服务器装置1。而且,在发送时,希望进行tls那样的隐匿通信,但是不限定用哪样的手段进行发送。

在步骤s9中,如图5所示,服务器装置1的再加密单元13从通信终端2n接收再加密密钥rk1,2,通过对在索引存储单元11中存储的该组中生成的各索引indexk进行以下的计算,生成与更新后的会话密钥sk2对应的索引index'k。

这时,在基于再加密密钥rk1,2的取幂计算时,如果需要,也可以在计算了基于再加密密钥rk1,2的素数p的余数后进行取幂计算。而且,在群g为加法群的情况下,进行rk1,2倍计算。即,进行以下的计算。

index′k=rk1,2(indexk)

在步骤s10中,通信终端2n的查询生成单元26对输入的搜索关键字w用存储在会话密钥存储单元22的会话密钥sk2进行加密,生成搜索查询query,通过发送单元203发送到服务器装置1。首先,将搜索关键字w的字符串的长度与可搜索字符串长l比较,若大于l则返回错误,结束处理。若为l以下,则从会话密钥存储单元22读出当前的会话密钥sk2,计算

生成搜索查询query,通过发送单元203发送到服务器装置1。而且,在发送时,希望进行tls那样的隐匿通信,但不限定用哪样的手段进行发送。

在步骤s11中,服务器装置1的搜索单元14从通信终端2n接收搜索查询query,从索引存储单元11中存储的索引和消息识别符的组(index'k,idk1,idk2,…)中,提取满足index'k=query的全部(index'k,idk1,idk2,…)。提取的消息识别符idk1,idk2,…通过发送单元103发送到发送了搜索查询query的通信终端2n。而且,在发送时,希望进行tls那样的隐匿通信,但不限定用哪样的手段进行发送。

在步骤s12中,通信终端2n在接收对于搜索查询query的搜索结果即消息识别符idm时,获取与消息识别符idm对应的被加密的消息m,作为搜索结果显示在画面等输出单元中。显示的方法例如考虑对搜索结果即消息m的一览,将各消息中的搜索关键字w高亮显示等,但是不限于此。

在上述的说明中,作为一台通信终端2n进行从索引的生成至搜索查询的生成的全部处理的结构进行了说明,也可以混合存在仅进行索引的生成的通信终端、仅进行再加密密钥的生成的通信终端、仅进行搜索查询的生成的通信终端。例如,若为仅进行索引的生成的通信终端,则仅包括控制单元201、存储单元202、发送单元203、接收单元204、组id存储单元21、会话密钥存储单元22、索引生成单元23、以及消息发送单元24即可。而且,例如,若为仅进行再加密密钥的生成的通信终端,则仅包括控制单元201、存储单元202、发送单元203、接收单元204、组id存储单元21、会话密钥存储单元22、以及再加密密钥生成单元25即可。而且,例如,若为仅进行搜索查询的生成的通信终端,则仅包括控制单元201、存储单元202、发送单元203、接收单元204、组id存储单元21、会话密钥存储单元22、以及查询生成单元26即可。

通过上述那样构成,按照本发明的消息发送技术,可以在更新了会话密钥时隐匿了原来的字符串的情况下,将对与发送的消息相关联的字符串加密后的索引更新为与更新后的会话密钥对应的索引。因此,即使假设非法取得由其他用户发送的搜索查询等,也不能从搜索的关键字和搜索结果推测发送的消息的内容。因此,按照本发明,可以提高消息发送技术的机密性。

以上,说明了本发明的实施方式,但是具体的结构不限于这些实施方式,不用说,在不脱离本发明的宗旨的范围内即使有适当设计的变更等,也包含在本发明中。实施方式中说明的各种处理不仅按照记载的顺序时间序列地执行,也可以根据执行处理的装置的处理能力或者需要并行地或者单独地执行。

[程序,记录介质]

在通过计算机实现上述实施方式中说明的各装置中的各种处理功能的情况下,通过程序记述各装置应具有的功能的处理内容。然后,通过计算机执行该程序,在计算机上实现上述各装置中的各种处理功能。

记述了该处理内容的程序可以记录在计算机可读取的记录介质中。作为计算机可读取的记录介质,例如可以是磁记录装置、光盘、光磁记录介质、半导体存储器等任何介质。

而且,该程序的流通例如通过销售、转让、租借等记录了该程序的dvd、cd-rom等可拆装型记录介质来进行。进而,也可以设为将该程序存储在服务器计算机的存储装置中,经由网络,通过将该程序从服务器计算机转发到其它计算机,使该程序流通的结构。

执行这样的程序的计算机例如首先将可拆装型记录介质中记录的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取自己的记录装置中存储的程序,执行按照读取的程序的处理。而且,作为该程序其它执行方式,计算机也可以从可拆装型记录介质直接读取程序,执行按照该程序的处理,进而,也可以在每次从服务器计算机对该计算机转发程序时,逐次执行按照接受的程序的处理。而且,也可以设为通过不进行从服务器计算机向该计算机的程序的转发,仅通过该执行指令和结果取得来实现处理功能的、所谓asp(applicationserviceprovider,应用服务提供商)型的服务,执行上述的处理的结构。而且,本方式中的程序中,包含供电子计算机的处理用的信息即基于程序的信息(虽然不是对于计算机的直接的指令,但是具有规定计算机的处理的性质的数据等)。

而且,在本方式中,设为通过在计算机上执行规定的程序来构成本装置,但是也可以硬件性地实现这些处理内容的至少一部分。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1