本申請(qǐng)要求2015年10月27日在韓國(guó)知識(shí)產(chǎn)權(quán)局提交的韓國(guó)專利申請(qǐng)No.10-2015-0149491的權(quán)益,通過(guò)引用的方式將其公開內(nèi)容全文合并在此。
技術(shù)領(lǐng)域
一個(gè)或多個(gè)示例性實(shí)施例涉及用于傳送和接收消息的用戶終端和方法以及/或者存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì),更具體來(lái)說(shuō)涉及被配置成使得不與消息服務(wù)器共享被用于加密或解密消息的密鑰信息的用戶終端、方法以及/或者存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì)。
背景技術(shù):
基于信使(messenger)的通信在多個(gè)終端與服務(wù)器之間傳送和接收消息。當(dāng)?shù)谝挥脩敉ㄟ^(guò)安裝在他或她的終端上的消息應(yīng)用輸入文本時(shí),所述文本通過(guò)相應(yīng)的信使服務(wù)提供商的服務(wù)器被傳送到安裝在第二用戶的終端上的消息應(yīng)用。大多數(shù)消息應(yīng)用在終端(例如智能電話)與服務(wù)器之間應(yīng)用加密設(shè)備。被傳送到服務(wù)器的已加密消息通常由服務(wù)器解密。
根據(jù)相關(guān)的技術(shù),消息可以由服務(wù)器解密。因此,如果服務(wù)器被破解,則在用戶之間傳送的消息可能會(huì)被公之于眾或者可能會(huì)被未經(jīng)授權(quán)的第三方訪問(wèn)。
為了解決這樣的問(wèn)題,已經(jīng)應(yīng)用了允許所選的用戶終端解密消息的端對(duì)端加密技術(shù)。
但是如果應(yīng)用端對(duì)端加密技術(shù),則相同的消息根據(jù)接收方或發(fā)送方被不同地加密,并且服務(wù)器需要單獨(dú)管理用戶之間的消息。
技術(shù)實(shí)現(xiàn)要素:
一個(gè)或多個(gè)示例性實(shí)施例包括用戶終端、方法以及/或者存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì),其通過(guò)使用加密密鑰對(duì)第一消息進(jìn)行加密,把第一消息從第一用戶終端傳送到第二用戶終端,并且通過(guò)使用與加密密鑰配對(duì)的解密密鑰對(duì)接收自第二用戶終端的第二消息進(jìn)行解密。
一個(gè)或多個(gè)示例性實(shí)施例包括用戶終端、方法以及/或者存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì),其在作為由用戶持有的另一個(gè)終端的第二用戶終端上實(shí)施認(rèn)證,并且在認(rèn)證完成時(shí)實(shí)施控制以便與第二用戶終端共享消息。
一個(gè)或多個(gè)示例性實(shí)施例包括用戶終端、方法以及/或者存儲(chǔ)計(jì)算機(jī)程序的計(jì)算機(jī)可讀記錄介質(zhì),其中不與控制一個(gè)或多個(gè)用戶終端之間的消息的傳送和接收的消息服務(wù)器共享不應(yīng)由該消息服務(wù)器解碼的已加密或已解密的消息。
附加的方面將部分地在后面的描述中進(jìn)行闡述并且部分地將通過(guò)所述描述而變得顯而易見(jiàn),或者可以通過(guò)實(shí)踐所給出的示例性實(shí)施例而獲知。
根據(jù)一個(gè)示例性實(shí)施例,提供一種存儲(chǔ)計(jì)算機(jī)可讀指令的非瞬時(shí)性計(jì)算機(jī)可讀記錄介質(zhì),所述計(jì)算機(jī)可讀指令在由第一用戶終端執(zhí)行時(shí)使得第一用戶終端實(shí)施一種方法,所述方法包括:接收包括第一隨附文件的第一消息;基于第一隨附文件的類型生成用于對(duì)第一消息進(jìn)行加密的至少一個(gè)加密密鑰;利用所述至少一個(gè)加密密鑰對(duì)第一隨附文件進(jìn)行加密;把發(fā)送方信息添加到第一消息,所述發(fā)送方信息與第一消息相關(guān)聯(lián);以及把包括發(fā)送方信息的第一消息傳送到消息服務(wù)器。
在一些示例性實(shí)施例中,所述生成至少一個(gè)加密密鑰可以包括生成第一隨附文件的散列值以作為第一隨附文件的加密密鑰。
在一些示例性實(shí)施例中,當(dāng)?shù)谝浑S附文件的類型是視頻文件時(shí),所述生成至少一個(gè)加密密鑰可以包括生成第一隨附文件的散列值以作為第一隨附文件的加密密鑰。
在一些示例性實(shí)施例中,所述生成至少一個(gè)加密密鑰可以包括生成用于多個(gè)第二用戶終端的多個(gè)加密密鑰以用于把第一消息傳送到所述多個(gè)第二用戶終端。
在一些示例性實(shí)施例中,所述方法還可以包括:接收第二消息以及與第二隨附文件相關(guān)聯(lián)的索引,所述第二消息由第二用戶終端通過(guò)消息服務(wù)器傳送;提取索引;利用索引從消息服務(wù)器調(diào)用第二隨附文件;以及利用接收自第二用戶終端的解密密鑰對(duì)第二隨附文件進(jìn)行解密。
在一些示例性實(shí)施例中,所述方法還可以包括輸入認(rèn)證密鑰,所述認(rèn)證密鑰從第二用戶終端通過(guò)消息服務(wù)器傳送,以便從第二用戶終端讀取第一消息。
在一些示例性實(shí)施例中,所述輸入認(rèn)證密鑰可以包括:從第二用戶終端向消息服務(wù)器傳送認(rèn)證密鑰;響應(yīng)于所傳送的認(rèn)證密鑰接收關(guān)于認(rèn)證密鑰的驗(yàn)證結(jié)果;以及根據(jù)驗(yàn)證結(jié)果把第一消息和第二消息傳送到第二用戶終端。
在一些示例性實(shí)施例中,所述輸入認(rèn)證密鑰可以包括通過(guò)使用認(rèn)證密鑰對(duì)第一和第二消息進(jìn)行加密并且把已加密的第一和第二消息傳送到第二用戶終端。
根據(jù)一個(gè)示例性實(shí)施例,一種用戶終端包括通信器、存儲(chǔ)器和至少一個(gè)處理器,其包括:被配置成接收包括第一隨附文件的第一消息的輸入控制器,所述第一消息包括發(fā)送方信息;被配置成通過(guò)考慮第一隨附文件的類型生成用于對(duì)第一消息進(jìn)行加密的加密密鑰;被配置成通過(guò)使用加密密鑰對(duì)第一消息的第一隨附文件進(jìn)行加密的加密器;以及被配置成把第一消息傳送到消息服務(wù)器的消息傳送器。
在一些示例性實(shí)施例中,當(dāng)?shù)谝浑S附文件的大小等于或大于閾值時(shí),密鑰生成器還可以被配置成生成第一隨附文件的散列值以作為第一隨附文件的加密密鑰。
在一些示例性實(shí)施例中,當(dāng)?shù)谝浑S附文件的類型是視頻文件時(shí),密鑰生成器還可以被配置成生成第一隨附文件的散列值以作為第一隨附文件的加密密鑰。
在一些示例性實(shí)施例中,當(dāng)希望把第一消息傳送到多個(gè)用戶終端時(shí),密鑰生成器還可以被配置成生成用于各個(gè)用戶終端的多個(gè)加密密鑰。
在一些示例性實(shí)施例中,所述至少一個(gè)處理器還可以包括:被配置成接收第二消息以及與第二隨附文件相關(guān)聯(lián)的索引的消息接收器,所述第二消息由第二用戶終端通過(guò)消息服務(wù)器傳送;被配置成提取索引并且利用索引從消息服務(wù)器調(diào)用第二隨附文件的數(shù)據(jù)調(diào)用器;以及被配置成通過(guò)使用接收自第二用戶終端的解密密鑰對(duì)第二隨附文件進(jìn)行解密的解密器。
在一些示例性實(shí)施例中,所述至少一個(gè)處理器還可以包括被配置成輸入認(rèn)證密鑰的認(rèn)證管理器,所述認(rèn)證密鑰從第二用戶終端通過(guò)消息服務(wù)器傳送,以便從第二用戶終端讀取第一消息。
在一些示例性實(shí)施例中,認(rèn)證管理器還可以被配置成:從第二用戶終端向消息服務(wù)器傳送認(rèn)證密鑰;響應(yīng)于所傳送的認(rèn)證密鑰接收關(guān)于認(rèn)證密鑰的驗(yàn)證結(jié)果;以及根據(jù)驗(yàn)證結(jié)果把第一消息和第二消息傳送到第二用戶終端。
在一些示例性實(shí)施例中,認(rèn)證管理器還可以被配置成通過(guò)使用認(rèn)證密鑰對(duì)第一和第二消息進(jìn)行加密并且把已加密的第一和第二消息傳送到第二用戶終端。
通過(guò)附圖、權(quán)利要求書和關(guān)于示例性實(shí)施例的詳細(xì)描述,其他方面、特征、優(yōu)點(diǎn)將變得顯而易見(jiàn)。
附圖說(shuō)明
通過(guò)后面結(jié)合附圖對(duì)示例性實(shí)施例作出的描述,前述和/或其他方面將變得顯而易見(jiàn)并且更容易認(rèn)識(shí)到,其中:
圖1是根據(jù)一個(gè)示例性實(shí)施例的用于傳送和接收消息的系統(tǒng)的示意圖;
圖2是根據(jù)一個(gè)示例性實(shí)施例的消息服務(wù)器的方塊圖;
圖3是根據(jù)一個(gè)示例性實(shí)施例的消息服務(wù)器的處理器的方塊圖;
圖4是根據(jù)一個(gè)示例性實(shí)施例的用戶終端的方塊圖;
圖5是根據(jù)一個(gè)示例性實(shí)施例的用戶終端的處理器的方塊圖;
圖6是根據(jù)一個(gè)示例性實(shí)施例的用戶終端的認(rèn)證管理器的方塊圖;
圖7和8是根據(jù)一個(gè)示例性實(shí)施例的傳送和接收消息的方法的流程圖;
圖9和10是用戶終端與消息服務(wù)器之間的數(shù)據(jù)傳送和接收的流程圖;
圖11到14是示出了根據(jù)一些示例性實(shí)施例的用戶界面的實(shí)例的圖示;以及
圖15A和15B是用于詳細(xì)描述加密處理的圖示。
具體實(shí)施方式
下面將參照附圖詳細(xì)描述一個(gè)或多個(gè)示例性實(shí)施例。但是示例性實(shí)施例可以通過(guò)多種不同形式來(lái)具體實(shí)現(xiàn),并且不應(yīng)當(dāng)被解釋成僅限制到所示出的實(shí)施例。相反,作為實(shí)例提供所示出的實(shí)施例是為了使得本公開內(nèi)容透徹且完整,并且將向本領(lǐng)域技術(shù)人員完全傳達(dá)本公開內(nèi)容的概念。因此,關(guān)于其中一些示例性實(shí)施例可以不描述已知的處理、元件和技術(shù)。除非另行聲明,否則相同的附圖標(biāo)記在附圖和書面描述中始終標(biāo)示相同的元件,因此將不重復(fù)描述。
雖然在這里可以使用術(shù)語(yǔ)“第一”、“第二”、“第三”等等來(lái)描述各個(gè)元件、組件、區(qū)段、層和/或節(jié)段,但是這些元件、組件、區(qū)段、層和/或節(jié)段不應(yīng)受限于這些術(shù)語(yǔ)。這些術(shù)語(yǔ)僅僅被用來(lái)將一個(gè)元件、組件、區(qū)段、層或節(jié)段與另一個(gè)區(qū)段、層或節(jié)段進(jìn)行區(qū)分。因此,下面所討論的第一元件、組件、區(qū)段、層或節(jié)段也可以被稱作第二元件、組件、區(qū)段、層或節(jié)段而不會(huì)背離本公開內(nèi)容的范圍。
為了易于描述,在這里可以使用諸如“之下”、“以下”、“下方”、“下面”、“以上”、“上方”等空間相對(duì)術(shù)語(yǔ)來(lái)描述如圖中所示的一個(gè)元件或特征與另一個(gè)(或多個(gè))元件或特征的關(guān)系。應(yīng)當(dāng)理解的是,所述空間相對(duì)術(shù)語(yǔ)意圖涵蓋除了圖中所描繪的指向之外的設(shè)備在使用或操作中的不同指向。舉例來(lái)說(shuō),如果圖中的設(shè)備被翻轉(zhuǎn),則被描述成處于其他元件或特征“以下”、“之下”或“下面”的元件的指向?qū)⑹瞧渌蛱卣鳌耙陨稀?。因此,示例性術(shù)語(yǔ)“以下”和“下面”可以同時(shí)涵蓋“以上”和“以下”的指向。還可以使得設(shè)備具有其他指向(旋轉(zhuǎn)90度或處于其他指向)并且相應(yīng)地解釋這里所使用的空間相對(duì)描述項(xiàng)。此外,當(dāng)一個(gè)元件被稱為處于兩個(gè)元件“之間”時(shí),該元件可以是處于所述兩個(gè)元件之間的僅有的元件,或者可以存在一個(gè)或多個(gè)中間元件。
除非上下文清楚地另有所指,否則這里所使用的單數(shù)形式“一個(gè)”、“一項(xiàng)”和“所述”也意圖包括復(fù)數(shù)形式。還應(yīng)當(dāng)理解的是,在本說(shuō)明書中所使用的術(shù)語(yǔ)“包括”和/或“包含”表明所述特征、整數(shù)、步驟、操作、元件和/或組件的存在,而不排除存在或添加一個(gè)或多個(gè)其他特征、整數(shù)、步驟、操作、元件、組件和/或其組合。這里所使用的術(shù)語(yǔ)“和/或”包括所列出的相關(guān)聯(lián)的項(xiàng)目當(dāng)中的一項(xiàng)或多項(xiàng)的任意和所有組合。當(dāng)處在元件列表之前時(shí),例如“至少其中之一”之類的表達(dá)法修飾整個(gè)元件列表而不修飾所述列表的單獨(dú)元件。此外,術(shù)語(yǔ)“示例性”意圖指代實(shí)例或說(shuō)明。
當(dāng)提到一個(gè)元件處于另一個(gè)元件“之上”、與之“連接”、與之“耦合”或與之“鄰近”時(shí),所述元件可以直接處于所述另一個(gè)元件之上、與之連接、與之耦合或與之鄰近,或者可以存在一個(gè)或多個(gè)中間元件。與此相對(duì),當(dāng)提到一個(gè)元件“直接”處于另一個(gè)元件“之上”、與之“直接連接”、與之“直接耦合”或與之“緊鄰”時(shí),則不存在中間元件。
除非另行定義,否則這里使用的所有術(shù)語(yǔ)(包括技術(shù)和科學(xué)術(shù)語(yǔ))都具有與示例性實(shí)施例所屬領(lǐng)域內(nèi)的技術(shù)人員通常所理解的相同的含義。除非在這里被明確定義,否則例如在通常使用的字典中定義的那些術(shù)語(yǔ)應(yīng)當(dāng)被解釋成具有與其在相關(guān)領(lǐng)域和/或本公開內(nèi)容的情境中的含義一致的含義,而不應(yīng)按照理想化或者過(guò)于正式的意義來(lái)解釋。
可以參照能夠結(jié)合后面更加詳細(xì)地討論的單元和/或設(shè)備實(shí)施的動(dòng)作和操作的符號(hào)表示來(lái)描述示例性實(shí)施例(例如采取流程圖、程序圖、數(shù)據(jù)流圖、結(jié)構(gòu)圖、方塊圖等形式)。雖然是通過(guò)特定方式來(lái)討論,但是在特定方塊中規(guī)定的功能或操作可以按照不同于在流程圖、程序圖等等中規(guī)定的流程的方式來(lái)實(shí)施。舉例來(lái)說(shuō),被圖示成在兩個(gè)相繼的方塊中依次實(shí)施的功能或操作可以實(shí)際上被同時(shí)實(shí)施,或者在某些情況下可以按照相反的順序來(lái)實(shí)施。
根據(jù)一個(gè)或多個(gè)示例性實(shí)施例的單元和/或設(shè)備可以利用硬件和/或硬件與軟件的組合來(lái)實(shí)施。舉例來(lái)說(shuō),硬件設(shè)備可以利用處理電路來(lái)實(shí)施,比如(而不限于)處理器、中央處理單元(CPU)、控制器、算術(shù)邏輯單元(ALU)、數(shù)字信號(hào)處理器、微型計(jì)算機(jī)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、芯片上系統(tǒng)(SoC)、可編程邏輯單元、微處理器或者能夠按照已定義的方式對(duì)指令作出響應(yīng)并且執(zhí)行指令的任何其他設(shè)備。
軟件可以包括用于獨(dú)立地或統(tǒng)一地指示或配置硬件設(shè)備按照所期望的方式操作的計(jì)算機(jī)程序、程序代碼、指令或者其某種組合。計(jì)算機(jī)程序和/或程序代碼可以包括程序或計(jì)算機(jī)可讀指令、軟件組件、軟件模塊、數(shù)據(jù)文件、數(shù)據(jù)結(jié)構(gòu)等等,其能夠由一個(gè)或多個(gè)硬件設(shè)備實(shí)施,比如前面所提到的其中一個(gè)或多個(gè)硬件設(shè)備。程序代碼的實(shí)例既包括由編譯器產(chǎn)生的機(jī)器代碼也包括利用解釋器執(zhí)行的更高層級(jí)程序代碼。
舉例來(lái)說(shuō),當(dāng)硬件設(shè)備是計(jì)算機(jī)處理設(shè)備(例如處理器、中央處理單元(CPU)、控制器、算術(shù)邏輯單元(ALU)、數(shù)字信號(hào)處理器、微型計(jì)算機(jī)、微處理器等等)時(shí),所述計(jì)算機(jī)處理設(shè)備可以被配置成通過(guò)根據(jù)程序代碼實(shí)施算術(shù)、邏輯以及輸入/輸出操作來(lái)實(shí)施所述程序代碼。一旦程序代碼被加載到計(jì)算機(jī)處理設(shè)備中,所述計(jì)算機(jī)處理設(shè)備可以被編程來(lái)實(shí)施所述程序代碼,從而將所述計(jì)算機(jī)處理設(shè)備變成專用計(jì)算機(jī)處理設(shè)備。在一個(gè)更加具體的實(shí)例中,當(dāng)程序代碼被加載到處理器中時(shí),所述處理器被編程來(lái)實(shí)施所述程序代碼和與之對(duì)應(yīng)的操作,從而將所述處理器變成專用處理器。
軟件和/或數(shù)據(jù)可以永久性地或者臨時(shí)被具體實(shí)現(xiàn)在能夠向硬件設(shè)備提供指令或數(shù)據(jù)或者能夠由硬件設(shè)備解釋的任何類型的機(jī)器、組件、物理或虛擬裝備或者計(jì)算機(jī)存儲(chǔ)介質(zhì)或設(shè)備中。軟件還可以通過(guò)網(wǎng)絡(luò)耦合的計(jì)算機(jī)系統(tǒng)分發(fā),從而按照分布式方式來(lái)存儲(chǔ)和執(zhí)行軟件。具體來(lái)說(shuō),例如軟件和數(shù)據(jù)可以由一個(gè)或多個(gè)計(jì)算機(jī)可讀記錄介質(zhì)存儲(chǔ),其中包括這里所討論的有形或非瞬時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
根據(jù)一個(gè)或多個(gè)示例性實(shí)施例,計(jì)算機(jī)處理設(shè)備可以被描述成包括實(shí)施各種操作和/或功能的各種功能單元以使得描述更加明晰。但是計(jì)算機(jī)處理設(shè)備不應(yīng)當(dāng)被限制到這些功能單元。舉例來(lái)說(shuō),在一個(gè)或多個(gè)示例性實(shí)施例中,某些功能單元的各種操作和/或功能可以由其他功能單元實(shí)施。此外,計(jì)算機(jī)處理設(shè)備可以實(shí)施各種功能單元的操作和/或功能而無(wú)需把計(jì)算機(jī)處理單元的操作和/或功能細(xì)分到所述各種功能單元中。
根據(jù)一個(gè)或多個(gè)示例性實(shí)施例的單元和/或設(shè)備還可以包括一個(gè)或多個(gè)存儲(chǔ)設(shè)備。所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備可以是有形或非瞬時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),比如隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、永久性大容量存儲(chǔ)設(shè)備(比如硬盤驅(qū)動(dòng)器)、固態(tài)(例如NAND閃存)設(shè)備以及/或者能夠存儲(chǔ)和記錄數(shù)據(jù)的任何其他類似的數(shù)據(jù)存儲(chǔ)機(jī)制。所述一個(gè)或多個(gè)存儲(chǔ)設(shè)備可以被配置成存儲(chǔ)用于一個(gè)或多個(gè)操作系統(tǒng)以及/或者用于實(shí)施這里所描述的示例性實(shí)施例的計(jì)算機(jī)程序、程序代碼、指令或者其某種組合。還可以利用驅(qū)動(dòng)機(jī)制把計(jì)算機(jī)程序、程序代碼、指令或者其某種組合從單獨(dú)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)加載到一個(gè)或多個(gè)存儲(chǔ)設(shè)備和/或一個(gè)或多個(gè)計(jì)算機(jī)處理設(shè)備中。這樣的單獨(dú)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括通用串行總線(USB)閃存驅(qū)動(dòng)器、記憶棒、Blu-ray/DVD/CD-ROM驅(qū)動(dòng)器、記憶卡以及/或者其他類似的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)??梢酝ㄟ^(guò)網(wǎng)絡(luò)接口而不是通過(guò)本地計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)把計(jì)算機(jī)程序、程序代碼、指令或者其某種組合從遠(yuǎn)程數(shù)據(jù)存儲(chǔ)設(shè)備加載到一個(gè)或多個(gè)存儲(chǔ)設(shè)備和/或一個(gè)或多個(gè)計(jì)算機(jī)處理設(shè)備中。此外,可以把計(jì)算機(jī)程序、程序代碼、指令或者其某種組合從被配置成通過(guò)網(wǎng)絡(luò)傳輸和/或分發(fā)計(jì)算機(jī)程序、程序代碼、指令或者其某種組合的遠(yuǎn)程計(jì)算系統(tǒng)加載到一個(gè)或多個(gè)存儲(chǔ)設(shè)備和/或一個(gè)或多個(gè)處理器中。所述遠(yuǎn)程計(jì)算系統(tǒng)可以通過(guò)有線接口、空中接口和/或任何其他類似的介質(zhì)來(lái)傳輸和/或分發(fā)計(jì)算機(jī)程序、程序代碼、指令或者其某種組合。
所述一個(gè)或多個(gè)硬件設(shè)備、一個(gè)或多個(gè)存儲(chǔ)設(shè)備以及/或者計(jì)算機(jī)程序、程序代碼、指令或者其某種組合可以特別出于示例性實(shí)施例的目的而被設(shè)計(jì)和構(gòu)造,或者其可以是出于示例性實(shí)施例的目的而被改動(dòng)和/或修改的已知設(shè)備。
例如計(jì)算機(jī)處理設(shè)備之類的硬件設(shè)備可以運(yùn)行操作系統(tǒng)(OS)以及在OS上運(yùn)行的一個(gè)或多個(gè)軟件應(yīng)用。計(jì)算機(jī)處理設(shè)備還可以響應(yīng)于軟件的執(zhí)行來(lái)訪問(wèn)、存儲(chǔ)、操縱、處理以及創(chuàng)建數(shù)據(jù)。為了簡(jiǎn)單起見(jiàn),一個(gè)或多個(gè)示例性實(shí)施例可以被簡(jiǎn)化成一個(gè)計(jì)算機(jī)處理設(shè)備;但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,硬件設(shè)備可以包括多個(gè)處理元件以及多種類型的處理元件。舉例來(lái)說(shuō),硬件設(shè)備可以包括多個(gè)處理器或者一個(gè)處理器和一個(gè)控制器。此外,其他處理配置也是可能的,比如并行處理器。
雖然參照具體實(shí)例和附圖進(jìn)行了描述,但是本領(lǐng)域技術(shù)人員根據(jù)所述描述可以對(duì)示例性實(shí)施例作出各種修改、添加和替換。舉例來(lái)說(shuō),可以按照不同于所描述的方法的順序來(lái)實(shí)施所描述的技術(shù),并且/或者可以按照不同于前述方法的方式連接或組合例如所描述的系統(tǒng)、架構(gòu)、設(shè)備、電路等的組件,或者可以通過(guò)其他組件或等效方案實(shí)現(xiàn)適當(dāng)?shù)慕Y(jié)果。
在后面的示例性實(shí)施例中,“電路”例如可以單獨(dú)地或者組合地包括硬連線電路、可編程電路、狀態(tài)機(jī)電路和/或固件,其存儲(chǔ)由可編程電路執(zhí)行的指令。應(yīng)用可以通過(guò)可在可編程電路(例如寄主處理器或其他可編程電路)上執(zhí)行的代碼或指令來(lái)實(shí)施。在示例性實(shí)施例中使用的模塊可以通過(guò)電路來(lái)實(shí)施,并且電路可以通過(guò)例如集成電路芯片之類的集成電路來(lái)實(shí)施。
此外,這里所使用的術(shù)語(yǔ)“單元”、“——器”和“模塊”表示用于處理至少一項(xiàng)功能或操作的設(shè)備,其可以通過(guò)硬件、軟件或者硬件與軟件的組合來(lái)實(shí)施。
圖1是根據(jù)一個(gè)示例性實(shí)施例的用于傳送和接收消息的系統(tǒng)10的圖示。
參照?qǐng)D1,根據(jù)所述示例性實(shí)施例的系統(tǒng)10可包括消息服務(wù)器100、用戶終端200和300以及通信網(wǎng)絡(luò)400。
消息服務(wù)器100可以在多個(gè)用戶終端200和300之間傳送和接收消息。舉例來(lái)說(shuō),消息服務(wù)器100可以通過(guò)一個(gè)或多個(gè)規(guī)程(例如成員注冊(cè)規(guī)程和/或登錄規(guī)程)在用戶終端200和300之間傳送或接收消息。此外,消息服務(wù)器100可以提供聊天室,從而允許多個(gè)用戶終端200和300之間的聊天。消息服務(wù)器100可以控制聊天室,從而使得與聊天室中的其他用戶共享聊天室中的某一用戶的聊天輸入或者由聊天室中的某一用戶接收到的聊天。
消息服務(wù)器100可以向例如尚未完成成員注冊(cè)規(guī)程、登錄規(guī)程等等的用戶終端200和/或300傳送聊天室邀請(qǐng)消息。
消息服務(wù)器100可以對(duì)用戶終端200和300之間的消息、聊天或談話進(jìn)行加密或解密。舉例來(lái)說(shuō),消息服務(wù)器100可以通過(guò)使用端對(duì)端加密技術(shù)來(lái)接收和傳送消息或者處理聊天室中的聊天。此外,消息服務(wù)器100例如還可以向發(fā)送方本身的用戶終端傳輸通過(guò)端對(duì)端加密技術(shù)所加密的消息,并且不可以存儲(chǔ)和/或管理與已加密消息的解密和/或解碼相關(guān)聯(lián)的信息。
此外,消息服務(wù)器100可以控制傳送,從而把將要傳送到第一用戶終端201的消息傳送到與第一用戶終端201進(jìn)行交互的第二用戶終端202。消息服務(wù)器100可以實(shí)施認(rèn)證處理,以便在第一用戶終端201與第二用戶終端202之間確認(rèn)身份。此外,消息服務(wù)器100可以控制傳送,從而將被用于由第一用戶終端201傳送和接收消息的加密密鑰傳送到與第一用戶終端201進(jìn)行交互的第二用戶終端202。可以利用被用于對(duì)第一用戶終端201和第二用戶終端202進(jìn)行認(rèn)證的認(rèn)證密鑰在已加密狀態(tài)下傳送和接收加密密鑰。
此外,消息服務(wù)器100可以把消息傳送和接收應(yīng)用分發(fā)到用戶終端200和300。
用戶可以通過(guò)用戶終端200和300來(lái)訪問(wèn)消息服務(wù)器100。用戶終端200和300可以在其上安裝消息傳送和接收應(yīng)用(例如計(jì)算機(jī)程序),并且可以通過(guò)使用消息傳送和接收應(yīng)用向/從用戶終端200和300傳送和接收消息。
此外,用戶終端200和300可以對(duì)消息進(jìn)行加密從而使得消息不被公之于眾,并且傳送已加密消息。用戶終端200和300不可以與消息服務(wù)器100共享加密相關(guān)信息。
用戶終端200和300可以意味著能夠在有線和/或無(wú)線通信環(huán)境下使用web服務(wù)的通信終端。用戶終端200和300可以是用戶的個(gè)人計(jì)算機(jī)201和301,或者可以是用戶的移動(dòng)終端202和302。移動(dòng)終端202和302在圖1中被圖示成智能電話,但是不限于此。如前所述,移動(dòng)終端202和302可以是其上安裝有能夠進(jìn)行web瀏覽的應(yīng)用的任何終端。為了彼此區(qū)分,用戶終端201、202、301和302可以分別被命名為第一用戶終端、第二用戶終端、第三用戶終端和第四用戶終端。作為一個(gè)實(shí)例,后面將描述包括第一到第四用戶終端的用戶終端200和300。在該例中,第一和第二用戶終端201、202由一個(gè)用戶持有,第三和第四用戶終端301、302由另一個(gè)用戶持有。
用戶終端200的實(shí)例可以包括計(jì)算機(jī)(例如臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)等等)、媒體計(jì)算平臺(tái)(例如有線電視、衛(wèi)星機(jī)頂盒、數(shù)字視頻記錄器等等)、手持式計(jì)算設(shè)備(例如個(gè)人數(shù)字助理(PDA)、電子郵件客戶端等等)、任何類型的移動(dòng)電話或者任何類型的計(jì)算或通信平臺(tái),但是不限于此。
通信網(wǎng)絡(luò)400可以把多個(gè)用戶終端200和300連接到消息服務(wù)器100。也就是說(shuō),例如通信網(wǎng)絡(luò)400可以意味著提供連接路徑的通信網(wǎng)絡(luò),從而使得用戶終端200和300向/從消息服務(wù)器100傳送和接收數(shù)據(jù)。通信網(wǎng)絡(luò)400的實(shí)例可以包括有線網(wǎng)絡(luò)(例如局域網(wǎng)(LAN)、城域網(wǎng)(MAN)或綜合服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN))和無(wú)線網(wǎng)絡(luò)(例如無(wú)線LAN、碼分多址(CDMA)、Bluetooth或衛(wèi)星通信),但是不限于此。
圖2是根據(jù)一個(gè)示例性實(shí)施例的消息服務(wù)器100的方塊圖。
參照?qǐng)D2,根據(jù)一個(gè)示例性實(shí)施例的消息服務(wù)器100可以包括通信器110、處理器120和數(shù)據(jù)庫(kù)130。
通信器110可以包括允許消息服務(wù)器100與一個(gè)或多個(gè)用戶終端200和300之間的通信的一個(gè)或多個(gè)元件。
通信器110可以是包括對(duì)于通過(guò)與其他網(wǎng)絡(luò)設(shè)備的有線/無(wú)線連接來(lái)傳送和接收信號(hào)(例如控制信號(hào)和/或數(shù)據(jù)信號(hào))所期望的硬件和軟件的設(shè)備。
處理器120可以控制消息服務(wù)器100的總體操作。舉例來(lái)說(shuō),處理器120可以通過(guò)執(zhí)行存儲(chǔ)在數(shù)據(jù)庫(kù)130中的程序來(lái)控制通信器110、數(shù)據(jù)庫(kù)130等等。
處理器120可以包括能夠處理數(shù)據(jù)的任何類型的設(shè)備。“處理器”可以意味著嵌入在硬件中的數(shù)據(jù)處理器,其包括被物理構(gòu)造來(lái)實(shí)施由包括在程序中的代碼或命令所表示的功能的電路。如前所述,嵌入在硬件中的數(shù)據(jù)處理器的實(shí)例可以包括微處理器、中央處理單元(CPU)、處理器核心、多處理器、專用集成電路(ASIC)和現(xiàn)場(chǎng)可編程門陣列(FPGA),但是不限于此。
數(shù)據(jù)庫(kù)130可以存儲(chǔ)用于處理器120的處理和控制的程序以及輸入/輸出數(shù)據(jù)(例如多個(gè)菜單,對(duì)應(yīng)于多個(gè)菜單當(dāng)中的每一個(gè)的多個(gè)第一層子菜單,以及/或者對(duì)應(yīng)于多個(gè)第一層子菜單當(dāng)中的每一個(gè)的多個(gè)第二層子菜單)。
數(shù)據(jù)庫(kù)130可以包括閃存、硬盤、多媒體卡微型存儲(chǔ)器、卡型存儲(chǔ)器(例如SD或XD存儲(chǔ)器)、隨機(jī)存取存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)、只讀存儲(chǔ)器(ROM)、電可擦寫可編程只讀存儲(chǔ)器(EEPROM)、可編程只讀存儲(chǔ)器(PROM)、磁性存儲(chǔ)器、磁盤或者光盤中的至少其中之一。消息服務(wù)器100可以操作因特網(wǎng)上的基于數(shù)據(jù)庫(kù)130的存儲(chǔ)功能的web存儲(chǔ)或云端服務(wù)器。
存儲(chǔ)在數(shù)據(jù)庫(kù)130中的程序可以根據(jù)其功能被分類成多個(gè)模塊,例如用戶界面(UI)模塊、觸摸屏模塊和/或通知模塊。
消息服務(wù)器100可以向用戶終端200和300傳送消息(例如短消息、即時(shí)消息和/或電子郵件)。由消息服務(wù)器100傳送和接收的消息類型是多樣的,并且不限于一種類型。
圖3是消息服務(wù)器100的處理器120的一個(gè)示例性實(shí)施例的方塊圖。
參照?qǐng)D3,消息服務(wù)器100的處理器120可以包括消息接收器121、消息處理器122和索引生成器123。
消息接收器121可以接收來(lái)自用戶終端200和300的消息。所述消息例如可以包括消息的標(biāo)題、內(nèi)容、發(fā)送方信息、接收方信息和/或隨附文件。消息的發(fā)送方信息和接收方信息可以包括用戶的ID信息、電子郵件地址、電話號(hào)碼等等。隨附文件可以包括圖像、視頻、語(yǔ)音文件、鏈接信息等等。消息服務(wù)器100可以在已經(jīng)通過(guò)成員注冊(cè)規(guī)程注冊(cè)為成員的用戶的用戶終端200和300之間傳送和接收消息。
消息處理器122可以把接收自消息發(fā)送方的用戶終端200和300之一的一條或多條消息傳送到用戶終端200和300中的另一個(gè)。當(dāng)消息包括隨附文件時(shí),消息處理器122可以把用于隨附文件的索引(例如僅有索引)傳送到用戶終端200或300而不是傳送隨附文件。舉例來(lái)說(shuō),當(dāng)一個(gè)隨附文件由許多用戶傳送或共享時(shí),消息處理器122可以實(shí)施處理,從而通過(guò)一個(gè)索引傳送或共享隨附文件,而不是存儲(chǔ)和管理與隨附文件的傳送或共享的數(shù)目一樣多的隨附文件拷貝和索引。舉例來(lái)說(shuō),在受人歡迎的視頻的情況下,可能會(huì)發(fā)生在許多用戶之間交換同一視頻的事件。在這種情況下,如果消息服務(wù)器100在由用戶創(chuàng)建的每一個(gè)事件(消息傳送和接收)中都生成視頻或者對(duì)應(yīng)于視頻的索引,則會(huì)浪費(fèi)資源。為了減少這種浪費(fèi),消息處理器122可以被配置成確定是否存在表明所接收到的消息的隨附文件已被傳送的歷史,并且確定是否要新生成用于隨附文件的元數(shù)據(jù)。
消息處理器122可以根據(jù)消息的接收方信息把消息傳送到能夠接收消息的另一服務(wù)器,并且/或者可以把消息直接傳送到用戶終端200和300。
當(dāng)消息包括隨附文件時(shí),索引生成器123可以生成能夠標(biāo)識(shí)隨附文件的索引,并且生成其中索引對(duì)應(yīng)于隨附文件的表。索引生成器123可以生成對(duì)應(yīng)于隨附文件或消息的索引。
圖4是根據(jù)一個(gè)示例性實(shí)施例的用戶終端200的方塊圖。
參照?qǐng)D4,根據(jù)所述示例性實(shí)施例的用戶終端200可以包括通信器210、處理器250和存儲(chǔ)器260,并且還可以包括輸出設(shè)備230和用戶輸入設(shè)備240。
通信器210可以包括允許用戶終端200和300之間的通信或者用戶終端200與消息服務(wù)器100之間的通信的一個(gè)或多個(gè)元件。舉例來(lái)說(shuō),通信器210可以包括短距離無(wú)線通信器211和移動(dòng)通信器212。
短距離無(wú)線通信器211的實(shí)例可以包括Bluetooth通信器、Bluetooth低能量(BLE)通信器、近場(chǎng)通信器、無(wú)線LAN(WLAN)(Wi-Fi)通信器、ZigBee通信器、紅外數(shù)據(jù)關(guān)聯(lián)(IrDA)通信器、Wi-Fi直連(WFD)通信器以及/或者Ant+通信器,但是不限于此。
移動(dòng)通信器212可以通過(guò)移動(dòng)通信網(wǎng)絡(luò)向/從基站、外部終端或服務(wù)器的至少其中之一傳送和接收無(wú)線電信號(hào)。所述無(wú)線電信號(hào)可以包括語(yǔ)音呼叫信號(hào)、視頻呼叫信號(hào)或者根據(jù)文本/多媒體消息的傳送和接收的各種類型的數(shù)據(jù)。
通信器210可以接收來(lái)自消息服務(wù)器100或者其他用戶終端200和300的消息。
輸出設(shè)備230可以包括顯示設(shè)備231、音頻輸出設(shè)備232、振動(dòng)電動(dòng)機(jī)233等等。
顯示設(shè)備231可以輸出由用戶終端200處理的信息。舉例來(lái)說(shuō),顯示設(shè)備231可以輸出在執(zhí)行消息傳送和接收應(yīng)用時(shí)所提供的用戶界面。根據(jù)所安裝的消息傳送和接收應(yīng)用,顯示設(shè)備231可以顯示與消息生成或消息接收相關(guān)聯(lián)的用戶界面。顯示設(shè)備231可以根據(jù)所安裝的消息傳送和接收應(yīng)用的版本顯示不同的用戶界面。當(dāng)所接收到的消息是已加密消息時(shí),顯示設(shè)備231可以顯示例如請(qǐng)求用戶認(rèn)證的屏幕。顯示設(shè)備231可以提供被配置成根據(jù)用戶輸入改變的用戶界面。
當(dāng)顯示設(shè)備231包括具有分層結(jié)構(gòu)和觸摸板的觸摸屏?xí)r,顯示設(shè)備231可以被用作輸入設(shè)備以及輸出設(shè)備。顯示設(shè)備231可以包括液晶顯示器、薄膜晶體管液晶顯示器、有機(jī)發(fā)光二極管顯示器、柔性顯示器、三維(3D)顯示器或電泳顯示器的至少其中之一。根據(jù)一些示例性實(shí)施例,消息服務(wù)器100可以包括兩個(gè)或更多顯示設(shè)備231。在這種情況下,所述兩個(gè)或更多顯示設(shè)備231可以通過(guò)使用鉸鏈而朝向彼此。
音頻輸出設(shè)備232可以輸出接收自通信器210或者存儲(chǔ)在存儲(chǔ)器260中的音頻數(shù)據(jù)。此外,音頻輸出設(shè)備232可以輸出與由用戶終端200實(shí)施的功能相關(guān)聯(lián)的音頻信號(hào)(例如執(zhí)行消息應(yīng)用時(shí)輸出的背景聲音,以及/或者每當(dāng)消息應(yīng)用實(shí)施操作時(shí)生成的效果聲音)。音頻輸出設(shè)備232例如可以包括揚(yáng)聲器或蜂鳴器。
振動(dòng)電動(dòng)機(jī)233可以輸出振動(dòng)信號(hào)。舉例來(lái)說(shuō),振動(dòng)電動(dòng)機(jī)233可以輸出對(duì)應(yīng)于音頻數(shù)據(jù)或圖像數(shù)據(jù)的輸出的振動(dòng)信號(hào)(例如每當(dāng)游戲應(yīng)用實(shí)施操作時(shí)或者每當(dāng)圖像作為游戲應(yīng)用實(shí)施的操作的結(jié)果而改變時(shí)生成的效果振動(dòng)信號(hào))。此外,振動(dòng)電動(dòng)機(jī)233可以在觸摸被輸入到觸摸屏?xí)r輸出振動(dòng)信號(hào)。
處理器250可以控制用戶終端200的總體操作。舉例來(lái)說(shuō),處理器250可以通過(guò)執(zhí)行存儲(chǔ)在存儲(chǔ)器260中的程序來(lái)控制通信器210、輸出設(shè)備230、用戶輸入設(shè)備240和/或存儲(chǔ)器260。
處理器250可以基于與存儲(chǔ)(例如預(yù)先存儲(chǔ))在存儲(chǔ)器260中的消息傳送和接收應(yīng)用相關(guān)聯(lián)的元數(shù)據(jù)確定對(duì)應(yīng)于用戶輸入的操作和/或用戶終端200的狀態(tài)信息。
用戶輸入設(shè)備240可以是允許用戶輸入數(shù)據(jù)以便控制用戶終端200的設(shè)備。用戶輸入設(shè)備240的實(shí)例可以包括小鍵盤、穹頂開關(guān)、觸摸板(例如電容性類型的觸摸屏、電阻性類型的觸摸屏、紅外光束類型的觸摸屏、表面聲波類型的觸摸屏、整體應(yīng)變計(jì)類型的觸摸屏或者壓電效應(yīng)類型的觸摸屏)、撥動(dòng)輪或者撥動(dòng)開關(guān),但是不限于此。
存儲(chǔ)器260可以存儲(chǔ)用于處理器250的處理和控制的程序以及輸入/輸出數(shù)據(jù)(例如多個(gè)菜單,對(duì)應(yīng)于多個(gè)菜單當(dāng)中的每一個(gè)的多個(gè)第一層子菜單,以及/或者對(duì)應(yīng)于多個(gè)第一層子菜單當(dāng)中的每一個(gè)的多個(gè)第二層子菜單)。
存儲(chǔ)器260可以在先存儲(chǔ)與消息傳送和接收應(yīng)用相關(guān)聯(lián)的元數(shù)據(jù)。
存儲(chǔ)器260可以包括閃存、硬盤、多媒體卡微型存儲(chǔ)器、卡型存儲(chǔ)器(例如SD或XD存儲(chǔ)器)、RAM、SRAM、ROM、EEPROM、PROM、磁性存儲(chǔ)器、磁盤或者光盤的至少其中之一。此外,用戶終端200可以操作因特網(wǎng)上的基于存儲(chǔ)器260的存儲(chǔ)功能的web存儲(chǔ)或云端服務(wù)器。
圖5是用戶終端200或300的處理器250的示例性結(jié)構(gòu)的方塊圖。
參照?qǐng)D5,用戶終端200或300的處理器250可以包括輸入控制器251、消息接收器252、消息傳送器253、數(shù)據(jù)調(diào)用器254、加密器255、解密器256、密鑰生成器257以及認(rèn)證管理器258。首先將參照關(guān)于消息傳送的一些示例性實(shí)施例來(lái)描述用戶終端200的結(jié)構(gòu)。
輸入控制器251可以實(shí)施控制第一消息的輸入操作。輸入控制器251可以實(shí)施控制,從而根據(jù)通過(guò)用戶輸入設(shè)備240輸入的輸入信號(hào)生成第一消息。輸入控制器251可以響應(yīng)于由用戶輸入的輸入信號(hào)生成第一消息,其中例如包括第一消息的標(biāo)題、內(nèi)容、發(fā)送方信息、接收方信息和/或隨附文件。
消息傳送器253可以把第一消息傳送到用戶終端300(例如第一消息的接收方)。消息傳送器253可以根據(jù)與第一消息相關(guān)聯(lián)的協(xié)議改變第一消息的格式。舉例來(lái)說(shuō),當(dāng)通過(guò)例如傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議TCP/IP或近場(chǎng)通信(NFC)之類的通信網(wǎng)絡(luò)傳送和接收第一消息時(shí),消息傳送器253可以改變第一消息的結(jié)構(gòu)以符合相關(guān)的通信標(biāo)準(zhǔn)。此外,消息傳送器253可以例如根據(jù)由用戶所設(shè)定的設(shè)定對(duì)第一消息的參數(shù)進(jìn)行加密。也就是說(shuō),例如,根據(jù)由用戶設(shè)定的安全性相關(guān)設(shè)定,消息傳送器253可以加密并傳送第一消息或者在不加密的情況下傳送第一消息。在一些示例性實(shí)施例中,消息傳送器可以把第一消息的發(fā)送方信息添加到第一消息并且把所得到的第一消息(包括發(fā)送方信息)傳送到用戶終端300。
密鑰生成器257可以生成用于加密第一消息的加密密鑰。密鑰生成器257可以生成用于加密第一消息的加密密鑰(私有密鑰)以及對(duì)應(yīng)于加密密鑰的解密密鑰(公共密鑰)。加密密鑰與解密密鑰之間的關(guān)系可以是對(duì)稱或不對(duì)稱的。
密鑰生成器257可以生成用于加密第一消息的內(nèi)容的密鑰以及用于加密第一消息的隨附文件的密鑰。首先,對(duì)于生成隨附文件的加密密鑰的操作,密鑰生成器257可以通過(guò)例如考慮第一消息的隨附文件的大小而生成第一消息的隨附文件的加密密鑰。舉例來(lái)說(shuō),當(dāng)?shù)谝幌⒌碾S附文件的大小小于閾值大小時(shí),密鑰生成器257可以生成隨機(jī)值以作為隨附文件的加密密鑰而不管隨附文件的類型如何。
當(dāng)?shù)谝幌⒌碾S附文件的大小大于閾值大小時(shí),密鑰生成器257可以生成隨附文件的散列值以作為隨附文件的加密密鑰。當(dāng)生成隨機(jī)值以作為隨附文件的加密密鑰時(shí),控制用戶終端200和300之間的消息傳送和接收的消息服務(wù)器100把具有相同內(nèi)容的隨附文件加密成具有不同內(nèi)容的文件,因此許多資源被利用來(lái)管理隨附文件。另一方面,當(dāng)生成散列值以作為隨附文件的加密密鑰時(shí),控制用戶終端200和300之間的消息傳送和接收的根據(jù)所述示例性實(shí)施例的消息服務(wù)器100僅僅管理一個(gè)原始文件,而不管隨附文件被傳送到多少用戶終端或者在多少用戶終端之間共享。
密鑰生成器257可以例如通過(guò)考慮第一消息的隨附文件的類型而生成第一消息的隨附文件的加密密鑰。舉例來(lái)說(shuō),當(dāng)?shù)谝幌⒌碾S附文件是視頻文件時(shí),密鑰生成器257可以生成隨附文件的散列值以作為隨附文件的加密密鑰。當(dāng)消息的隨附文件是語(yǔ)音文件或圖像文件時(shí),密鑰生成器257可以生成隨機(jī)值以作為隨附文件的加密密鑰而不管隨附文件如何。
在一些示例性實(shí)施例中,密鑰生成器257可以通過(guò)考慮消息接收方的數(shù)目或者第一消息被共享的次數(shù)而生成第一消息的隨附文件的加密密鑰。舉例來(lái)說(shuō),如果希望把輸入消息傳送到許多用戶并且第一消息的接收方的數(shù)目等于或大于閾值,則密鑰生成器257可以生成隨附文件的散列值以作為關(guān)于第一消息的接收方的隨附文件的加密密鑰,而不是根據(jù)第一消息的接收方信息生成用于加密隨附文件的密鑰。如果希望與許多其他用戶共享輸入消息,并且消息被共享的次數(shù)等于或大于閾值,則密鑰生成器257可以生成隨附文件的散列值以作為隨附文件的加密密鑰,而不管消息的發(fā)送方或接收方如何。接下來(lái),對(duì)于生成用于加密消息內(nèi)容的加密密鑰的操作,密鑰生成器257可以按照隨機(jī)方式生成用于加密消息內(nèi)容的加密密鑰。在這種情況下,可以例如通過(guò)考慮接收方信息、發(fā)送方信息、發(fā)送時(shí)間和/或發(fā)送日期按照隨機(jī)方式生成加密密鑰。
在另一個(gè)示例性實(shí)施例中,如果將把第一消息傳送到多個(gè)接收方的用戶終端200和300,則密鑰生成器257可以對(duì)于各個(gè)接收方生成不同的加密密鑰。如果將把第一消息傳送到第三用戶終端301和第四用戶終端302,則密鑰生成器257可以生成被用來(lái)把第一消息傳送到第三用戶終端301的第一加密密鑰以及被用來(lái)把第一消息傳送到第四用戶終端302的第二加密密鑰。
對(duì)于散列值,隨附文件的散列值可以是通過(guò)散列函數(shù)或散列算法在隨附文件的數(shù)據(jù)上實(shí)施計(jì)算而獲得的值,并且可以是用于隨附文件的唯一值。由于散列值是用于隨附文件的唯一值,因此兩個(gè)不同文件的散列值彼此相等的事實(shí)可以意味著所述兩個(gè)文件實(shí)質(zhì)上是相同的文件。散列函數(shù)的實(shí)例可以包括CRC32、md5、SHA-1、RIPEMD-128和Tiger。
對(duì)于加密方法,根據(jù)本示例性實(shí)施例的用戶終端200或300可以使用利用不對(duì)稱密鑰的加密方法,以便當(dāng)在發(fā)送方與接收方之間傳送和接收第一消息時(shí)防止除了發(fā)送方和接收方之外的第三方解密消息。也就是說(shuō),例如,根據(jù)本示例性實(shí)施例的用戶終端200或300可以生成用于加密第一消息的私有密鑰,或者用于由傳送第一消息的用戶終端200或者由接收第一消息的第二用戶終端300解密第一消息的公共密鑰。通過(guò)使用第一私有密鑰加密的消息可以通過(guò)使用對(duì)應(yīng)于第一私有密鑰的第一公共密鑰來(lái)解密,并且通過(guò)使用第一公共密鑰加密的消息可以通過(guò)使用第一私有密鑰來(lái)解密。也就是說(shuō),例如,私有密鑰和對(duì)應(yīng)于私有密鑰的公共密鑰可以關(guān)于彼此具有對(duì)應(yīng)關(guān)系,并且可以被用來(lái)實(shí)施解密或加密。在對(duì)稱密碼術(shù)中,相同的加密密鑰(私有密鑰)可以被用于加密和解密。另一方面,在不對(duì)稱密碼術(shù)中,用于加密的私有密鑰和用于解密的公共密鑰關(guān)于彼此具有鑰和鎖的關(guān)系,并且相對(duì)難以從私有密鑰解密公共密鑰。對(duì)稱密碼術(shù)的實(shí)例可以包括DES、雙重DES、三重DES、AES、IDEA、SEED、Blowfish和ARIA。不對(duì)稱密碼術(shù)的實(shí)例可以包括RSA、DSA、ECC、EIGamal和Rabin。根據(jù)本示例性實(shí)施例的用戶終端200或300可以通過(guò)使用對(duì)稱密碼術(shù)來(lái)加密第一消息。
加密器255可以通過(guò)使用由密鑰生成器257生成的加密密鑰對(duì)第一消息的內(nèi)容和隨附文件進(jìn)行加密。加密器255可以通過(guò)使用一個(gè)或多個(gè)加密密鑰對(duì)第一消息的內(nèi)容和隨附文件進(jìn)行加密。加密器255可以通過(guò)使用對(duì)于各個(gè)接收方生成的加密密鑰來(lái)加密希望被傳送到多個(gè)接收方的第一消息。
加密器255通過(guò)考慮隨附文件的大小和類型選擇隨附文件的加密方法。當(dāng)隨附文件的大小等于或大于閾值大小或者隨附文件的類型是視頻時(shí),加密器255生成隨附文件的散列值以作為加密密鑰,當(dāng)不是這種情況時(shí),加密器255可以生成隨機(jī)加密密鑰。加密器255可以把散列值或加密密鑰傳送到接收方的用戶終端300,此時(shí)加密器255可以傳送通過(guò)使用另一加密密鑰對(duì)散列值或加密密鑰進(jìn)行加密而生成的密鑰。此時(shí),可以與接收方預(yù)先共享另一個(gè)加密密鑰。
根據(jù)本示例性實(shí)施例的用戶終端200或300可以通過(guò)使用按照隨機(jī)方式生成的加密密鑰來(lái)加密第一消息的內(nèi)容,并且把第一消息傳送到消息服務(wù)器100。舉例來(lái)說(shuō),用戶終端200或300可以通過(guò)使用考慮第一消息的隨附文件的類型或大小而生成的加密密鑰來(lái)加密第一消息的內(nèi)容并且傳送消息,使得消息的內(nèi)容不會(huì)被公之于眾。
接下來(lái)將通過(guò)專注于與消息接收有關(guān)的一些示例性實(shí)施例來(lái)描述用戶終端200或300的結(jié)構(gòu)。
消息接收器252可以接收由用戶終端300通過(guò)消息服務(wù)器100傳送的第二消息或者對(duì)應(yīng)于第二消息的索引。消息接收器252可以接收用于解密第二消息的解密密鑰連同第二消息或者對(duì)應(yīng)于第二消息的索引。根據(jù)本示例性實(shí)施例的用戶終端200可以使用解密密鑰來(lái)傳送用于第二消息的響應(yīng)消息。所述索引可以是由消息服務(wù)器100生成和管理的信息。由于索引的傳送和接收所消耗的資源少于消息的傳送和接收,因此可以在不傳送和接收消息自身的情況下傳送對(duì)應(yīng)于消息的索引。
當(dāng)在沒(méi)有加密的情況下傳送和接收消息時(shí),可能不需要數(shù)據(jù)的調(diào)用。在傳送和接收分別對(duì)應(yīng)于第二消息及其隨附文件的索引(而不是未加密的消息)的情況下,數(shù)據(jù)調(diào)用器254可以提取與包括在第二消息中的隨附文件相關(guān)聯(lián)的索引,并且通過(guò)使用對(duì)應(yīng)于包括在來(lái)自消息服務(wù)器100的第二消息中的隨附文件的索引來(lái)調(diào)用隨附文件。對(duì)于第二消息的內(nèi)容,當(dāng)數(shù)據(jù)調(diào)用器254未能接收到第二消息的內(nèi)容時(shí),第一用戶終端201可以通過(guò)使用對(duì)應(yīng)于第二消息的索引來(lái)調(diào)用第二消息的內(nèi)容。數(shù)據(jù)調(diào)用器254可以通過(guò)使用索引調(diào)用包括在第二消息中的一個(gè)或多個(gè)項(xiàng)目。
解密器256可以通過(guò)使用解密密鑰來(lái)解密所接收到的索引、第二消息的內(nèi)容、隨附文件等等。
接下來(lái)將描述與通過(guò)使用由同一用戶攜帶或擁有的多個(gè)終端(例如第一用戶終端201和第二用戶終端202)來(lái)使用消息傳送和接收服務(wù)的方法有關(guān)的配置。
認(rèn)證管理器258可以對(duì)第二用戶終端202實(shí)施認(rèn)證,從而使得通過(guò)第一用戶終端201傳送和接收消息的用戶與第二用戶終端202共享第一用戶終端201的傳送和接收歷史。
如圖6中所示,認(rèn)證管理器258可以包括認(rèn)證密鑰接收器2581、認(rèn)證密鑰處理器2582、加密器2583以及密鑰傳送器2584。
首先,用戶可能需要通過(guò)消息傳送和接收應(yīng)用完成登錄規(guī)程,以便通過(guò)使用第二用戶終端202來(lái)傳送和接收消息(例如第二用戶終端是由第一用戶終端201的用戶持有的另一用戶終端)。當(dāng)?shù)卿浺?guī)程中的用戶ID和口令與第一用戶終端201的用戶信息完全相同時(shí),消息服務(wù)器100可以通過(guò)第一用戶終端201和第二用戶終端202傳送和接收消息。
當(dāng)通過(guò)第一用戶終端201傳送和接收消息時(shí),不同于第一用戶終端201的第二用戶終端202的認(rèn)證密鑰接收器2581可以從消息服務(wù)器100接收用于消息共享以及消息傳送和接收的第一認(rèn)證密鑰。
第二用戶終端202可以包括被配置成輸入所接收到的認(rèn)證密鑰的認(rèn)證密鑰處理器2582。認(rèn)證密鑰處理器2582可以輸入通過(guò)第一用戶終端201接收到的認(rèn)證密鑰。此外,認(rèn)證密鑰處理器2582可以把第二認(rèn)證密鑰傳送到消息服務(wù)器100。認(rèn)證密鑰處理器2582可以響應(yīng)于第二認(rèn)證密鑰的傳送接收關(guān)于第二認(rèn)證密鑰是否有效的確定的結(jié)果。當(dāng)?shù)谝徽J(rèn)證密鑰與第二認(rèn)證密鑰完全相同時(shí),認(rèn)證密鑰處理器2582可以接收表明認(rèn)證已完成的消息。因此,第二用戶終端202可以例如與第一用戶終端201共享傳送到和通過(guò)第一用戶終端201接收的一條或多條消息。
此外,認(rèn)證密鑰處理器2582可以通過(guò)使用認(rèn)證密鑰從第一用戶終端201接收加密密鑰或解密密鑰。當(dāng)消息傳送和接收通過(guò)認(rèn)證變?yōu)榭赡軙r(shí),認(rèn)證密鑰處理器2582可以通過(guò)實(shí)施控制以共享加密密鑰或解密密鑰來(lái)實(shí)現(xiàn)消息的解密和加密。在這種情況下,加密密鑰或解密密鑰可以通過(guò)使用認(rèn)證密鑰被加密,并且可以從第一用戶終端201被傳送到第二用戶終端202。
加密器2583可以通過(guò)使用通過(guò)認(rèn)證密鑰處理器2582接收的認(rèn)證密鑰來(lái)加密消息。
因此,用戶可以通過(guò)使用第二用戶終端202以及第一用戶終端201來(lái)傳送和接收消息,并且可以通過(guò)第二用戶終端202讀取由第一用戶終端201傳送和接收的消息。
因此,可以根據(jù)接收方對(duì)隨附文件進(jìn)行加密,并且可以節(jié)省對(duì)于單獨(dú)存儲(chǔ)已加密數(shù)據(jù)所需要的資源。由于在發(fā)送方與接收方之間僅僅傳輸用于訪問(wèn)具有較大大小的隨附文件的索引信息而不是傳輸隨附文件本身,因此減少了對(duì)于傳輸隨附文件所需的存儲(chǔ)空間和通信容量,并且可以通過(guò)使用這樣的存儲(chǔ)空間和通信容量來(lái)傳輸隨附文件。通過(guò)傳輸對(duì)應(yīng)于包括在被傳送到多個(gè)接收方的消息中的隨附文件的已加密索引而不是根據(jù)接收方對(duì)隨附文件進(jìn)行加密,減少了對(duì)于傳輸隨附文件所需的存儲(chǔ)空間和通信容量,并且可以通過(guò)使用所述存儲(chǔ)空間和通信容量來(lái)傳輸隨附文件。
圖7和8是根據(jù)示例性實(shí)施例的傳送和接收消息的方法的流程圖。
參照?qǐng)D7,根據(jù)本示例性實(shí)施例的傳送和接收消息的方法可以包括消息輸入操作S110、密鑰生成操作S120、加密操作S130以及傳送操作S140。
在操作S110中,第一用戶終端201可以輸入第一消息。第一用戶終端201可以實(shí)施控制,從而根據(jù)通過(guò)用戶輸入設(shè)備240輸入的輸入信號(hào)生成第一消息。第一用戶終端201可以生成對(duì)應(yīng)于由用戶輸入的輸入信號(hào)的第一消息,其中例如包括第一消息的標(biāo)題、內(nèi)容、發(fā)送方信息、接收方信息以及隨附文件。
在操作S120中,第一用戶終端201可以生成用于加密第一消息的加密密鑰。在一些示例性實(shí)施例中,第一用戶終端201可以生成用于加密第一消息的加密密鑰(私有密鑰)以及對(duì)應(yīng)于加密密鑰的解密密鑰(公共密鑰)。
第一用戶終端201可以生成用于加密第一消息的內(nèi)容的密鑰以及用于加密第一消息的隨附文件的密鑰。首先,對(duì)于生成隨附文件的加密密鑰的操作,第一用戶終端201可以通過(guò)例如考慮消息的隨附文件的大小生成第一消息的隨附文件的加密密鑰。舉例來(lái)說(shuō),當(dāng)消息的隨附文件的大小小于給定的(或者所期望的或預(yù)定的)閾值大小時(shí),第一用戶終端201可以生成隨機(jī)值以作為隨附文件的加密密鑰而不管隨附文件的類型如何。當(dāng)?shù)谝幌⒌碾S附文件的大小大于給定的(或者所期望的或預(yù)定的)閾值大小時(shí),第一用戶終端201可以生成隨附文件的散列值以作為隨附文件的加密密鑰。
第一用戶終端201可以通過(guò)考慮消息的隨附文件的類型生成第一消息的隨附文件的加密密鑰。當(dāng)?shù)谝幌⒌碾S附文件是視頻文件時(shí),第一用戶終端201可以生成隨附文件的散列值以作為隨附文件的加密密鑰。當(dāng)?shù)谝幌⒌碾S附文件是語(yǔ)音文件或圖像文件時(shí),第一用戶終端201可以生成隨機(jī)值以作為隨附文件的加密密鑰而不管隨附文件如何。
接下來(lái),對(duì)于生成用于加密第一消息的內(nèi)容的加密密鑰的操作,第一用戶終端201可以按照隨機(jī)方式生成用于加密第一消息的內(nèi)容的加密密鑰。在這種情況下,可以例如通過(guò)考慮接收方信息、發(fā)送方信息、發(fā)送時(shí)間和/或發(fā)送日期按照隨機(jī)方式生成加密密鑰。
在另一個(gè)示例性實(shí)施例中,如果由第一用戶終端201生成的第一消息將被傳送到多個(gè)接收方,則第一用戶終端201可以生成用于各個(gè)接收方的不同加密密鑰。如果第一消息將被傳送到第三用戶終端301和第四用戶終端302,則第一用戶終端201可以生成被用來(lái)把第一消息傳送到第三用戶終端301的第一加密密鑰以及被用來(lái)把第一消息傳送到第四用戶終端302的第二加密密鑰。
在操作S130中,第一用戶終端201可以通過(guò)使用由密鑰生成器257生成的加密密鑰對(duì)第一消息的內(nèi)容和隨附文件進(jìn)行加密。第一用戶終端201可以通過(guò)使用一個(gè)或多個(gè)加密密鑰(或密碼密鑰)對(duì)第一消息的內(nèi)容和隨附文件進(jìn)行加密。第一用戶終端201可以通過(guò)使用對(duì)于各個(gè)用戶生成的加密密鑰對(duì)希望傳送到多個(gè)用戶的第一消息進(jìn)行加密。
在操作S140中,第一用戶終端201可以把已加密的第一消息傳送到消息服務(wù)器100,以便把已加密的第一消息傳送到第二用戶終端(例如第一消息的接收方)。此外,第一用戶終端201可以通過(guò)使用另一加密密鑰來(lái)加密和傳送被用來(lái)加密第一消息的加密密鑰。
參照?qǐng)D8,根據(jù)本示例性實(shí)施例的傳送和接收消息的方法可以包括消息接收操作S210、消息調(diào)用操作S220以及消息解密操作S230。
在操作S210中,第一用戶終端201可以接收由用戶終端300通過(guò)消息服務(wù)器100傳送的第二消息或者對(duì)應(yīng)于第二消息的索引。第一用戶終端201可以接收用于解密第二消息的解密密鑰連同第二消息或者對(duì)應(yīng)于第二消息的索引。
在操作S220中,如果消息被原樣傳送和接收(沒(méi)有被加密),則不需要調(diào)用數(shù)據(jù)。但是在傳送和接收對(duì)應(yīng)于第二消息及其隨附文件的索引的情況下,第一用戶終端201可以通過(guò)使用對(duì)應(yīng)于包括在第二消息中的隨附文件的索引來(lái)調(diào)用隨附文件。對(duì)于第二消息的內(nèi)容,當(dāng)?shù)谝挥脩艚K端201未能接收到第二消息的內(nèi)容時(shí),第一用戶終端201可以通過(guò)使用對(duì)應(yīng)于第二消息的索引來(lái)調(diào)用第二消息的內(nèi)容。第一用戶終端201可以通過(guò)使用索引調(diào)用包括在第二消息中的一個(gè)或多個(gè)項(xiàng)目。
在操作S230中,第一用戶終端201可以通過(guò)使用解密密鑰對(duì)所接收到的第二消息的索引、內(nèi)容和隨附文件等等進(jìn)行解密。當(dāng)?shù)谝挥脩艚K端201未能實(shí)施解密時(shí),第一用戶終端201可以顯示包括請(qǐng)求針對(duì)第二消息的安全性的內(nèi)容的屏幕。為了獲得解密密鑰,第一用戶終端201可以附加地接收加密密鑰,并且此時(shí)可以通過(guò)使用預(yù)先接收或預(yù)先存儲(chǔ)的另一加密密鑰對(duì)被用來(lái)加密第二消息或隨附文件的加密密鑰進(jìn)行加密。換句話說(shuō),第一用戶終端201可以通過(guò)對(duì)加密密鑰進(jìn)行解密而獲得加密密鑰。
圖9是在用戶終端200與用戶終端300之間傳送和接收消息的方法的一個(gè)示例性實(shí)施例的流程圖。
在操作S901中,用戶終端200(例如第一用戶終端201)可以生成用于加密輸入消息的加密密鑰并且生成對(duì)應(yīng)于加密密鑰的解密密鑰。由于前面已經(jīng)描述了加密密鑰與解密密鑰之間的關(guān)系,因此將省略其詳細(xì)描述。加密密鑰可以分別被生成來(lái)加密消息的內(nèi)容和隨附文件。
在操作S902中,用戶終端200可以接收用于生成包括隨附文件的消息的用戶輸入。
在操作S903中,用戶終端200可以通過(guò)使用加密密鑰對(duì)消息的隨附文件和內(nèi)容進(jìn)行加密。
在操作S904和S905中,用戶終端200可以把解密密鑰以及已加密的文件和消息傳送到消息服務(wù)器100。在這種情況下,可以分別對(duì)于消息和包括在消息中的隨附文件生成多個(gè)解密密鑰。
在操作S906和S907中,用戶終端300可以從消息服務(wù)器100接收解密密鑰以及已加密的文件和消息。
在操作S908中,在接收到解密密鑰以及已加密的文件和消息之后,用戶終端300可以通過(guò)使用解密密鑰對(duì)消息和包括在消息中的隨附文件進(jìn)行解密。
圖10是在第一用戶終端與第二用戶終端之間共享消息的方法的一個(gè)示例性實(shí)施例的流程圖。
在操作S1001中,攜帶或擁有第一用戶終端201和第二用戶終端202二者的用戶可以通過(guò)第二用戶終端202輸入用于消息傳送和接收的登錄信息。
在操作S1002中,第二用戶終端202可以把登錄信息傳送到消息服務(wù)器100。
在操作S1003中,消息服務(wù)器100可以確定登錄信息是否有效。也就是說(shuō),例如消息服務(wù)器100可以確定包括在登錄信息中的ID信息和口令信息是否彼此相關(guān)聯(lián)。
在操作S1004中,消息服務(wù)器100可以確定第一用戶的ID和口令是否相關(guān)聯(lián)。當(dāng)?shù)卿浶畔⒂行r(shí),消息服務(wù)器100可以把按照隨機(jī)方式生成的第一認(rèn)證數(shù)字傳送到第二用戶終端202。隨后,可以把請(qǐng)求用戶輸入認(rèn)證數(shù)字的信號(hào)傳送到同樣由該用戶攜帶或擁有的第一用戶終端201。
在操作S1005中,第一用戶終端201可以響應(yīng)于所述信號(hào)顯示請(qǐng)求認(rèn)證數(shù)字的輸入的用戶界面。
在操作S1006中,第一用戶終端201可以通過(guò)所述用戶界面接收第二認(rèn)證數(shù)字。
在操作S1007中,第一用戶終端201可以把所輸入的第二認(rèn)證數(shù)字傳送到消息服務(wù)器100。
在操作S1008中,消息服務(wù)器100可以確定第一認(rèn)證數(shù)字是否與第二認(rèn)證數(shù)字相同。
在操作S1009中,當(dāng)?shù)谝徽J(rèn)證數(shù)字與第二認(rèn)證數(shù)字相同時(shí),消息服務(wù)器100可以結(jié)束第二用戶終端202的認(rèn)證。
在操作S1001到操作S1009之后,消息服務(wù)器100可以把由第一用戶終端201接收或傳送的消息傳輸?shù)降诙脩艚K端202。類似地,消息服務(wù)器100可以把由第二用戶終端202接收或傳送的消息傳輸?shù)降谝挥脩艚K端201。也就是說(shuō),例如,第一用戶終端201和第二用戶終端202可以彼此共享相同的消息傳送和接收歷史。
在一些示例性實(shí)施例中,表明每一條消息是否被讀取的信息在第一用戶終端201與第二用戶終端202之間可以是不同的。舉例來(lái)說(shuō),在第一用戶終端201上被讀取的消息可能在第二用戶終端202上被顯示成未讀消息。
圖11到14是根據(jù)一些示例性實(shí)施例的示出了由用戶終端提供的用戶界面的實(shí)例的圖示。
在圖11中,附圖標(biāo)記1101可以表示顯示在第一用戶終端201上的用戶界面,其是請(qǐng)求輸入被傳送到第二用戶終端202的認(rèn)證數(shù)字的屏幕。如圖11中所示,當(dāng)用戶輸入作為六位數(shù)字的認(rèn)證數(shù)字并且點(diǎn)擊身份確認(rèn)按鈕1102時(shí),第一用戶終端201可以實(shí)施認(rèn)證。
在圖12中,附圖標(biāo)記1201可以表示用于在用戶終端200或300上顯示消息的用戶界面。尚未完成身份確認(rèn)的用戶終端200或300可以在已加密狀態(tài)下顯示消息(1202),并且用戶可能需要通過(guò)點(diǎn)擊用于身份確認(rèn)的按鈕1203來(lái)單獨(dú)實(shí)施身份確認(rèn)。
在圖13中,附圖標(biāo)記1301可以顯示以下兩項(xiàng):顯示出由用戶創(chuàng)建的一個(gè)或多個(gè)聊天室的列表的屏幕,以及顯示出每一個(gè)聊天室中的對(duì)話的屏幕。當(dāng)對(duì)話方傳送需要附加的安全性規(guī)程的消息1302時(shí),即使對(duì)于已經(jīng)完成身份確認(rèn)的用戶也不可以顯示該消息。因此,用戶終端200或300可以實(shí)施控制以請(qǐng)求用戶完成附加的認(rèn)證規(guī)程以便讀取消息的內(nèi)容(S1303)。
如圖14中所示,附圖標(biāo)記1401可以顯示聊天室的列表,并且在聊天室的列表中不顯示已加密消息(1402)。
圖15A和15B是用于詳細(xì)描述加密處理的圖示。
參照?qǐng)D15A,在操作S1500中,發(fā)送方的第一用戶終端200接收針對(duì)從發(fā)送方傳送文件的請(qǐng)求。當(dāng)文件的類型是圖像或者文件的大小小于閾值大小時(shí),安裝在第一用戶終端200中的消息應(yīng)用在操作S1501中生成用于加密文件的隨機(jī)第一加密密鑰SRK。第一用戶終端200在操作S1502中通過(guò)利用第一加密密鑰SRK加密文件而生成已加密文件EF,并且在操作1503中通過(guò)利用與發(fā)送方共享的第二加密密鑰AK加密第一加密密鑰SRK而生成已加密密鑰EK以用于消息傳送和接收。換句話說(shuō),在根據(jù)一個(gè)或多個(gè)實(shí)施例的傳送和接收消息的方法中,為了防止被生成來(lái)加密文件的第一加密密鑰SRK泄露,通過(guò)另一加密密鑰(即第二加密密鑰AK)對(duì)第一加密密鑰SRK進(jìn)行加密以用于消息傳送和接收。第一用戶終端200在操作S1504中把已加密文件EF傳送到消息服務(wù)器100,并且在操作S1505中把已加密密鑰EK傳送到消息服務(wù)器100。消息服務(wù)器100分別在操作S1506和S1507中把已加密文件EF和已加密密鑰EK完好地傳送到第二用戶終端300。接收方的第二用戶終端300通過(guò)安裝在其中的消息應(yīng)用接收已加密文件EF和已加密密鑰EK。在對(duì)已加密文件EF進(jìn)行解密之前,第二用戶終端300在操作S1508中通過(guò)使用第二加密密鑰AK對(duì)已加密密鑰EK進(jìn)行解密以便獲得第一加密密鑰SRK。第二用戶終端300在操作S1509中通過(guò)使用第一加密密鑰SRK對(duì)已加密文件EF進(jìn)行解密以便生成當(dāng)時(shí)由發(fā)送方傳送的原始文件。
如圖15B中所示,當(dāng)將由發(fā)送方的第一用戶終端200傳送的文件的類型是視頻或者文件的大小大于閾值大小時(shí),可以把文件的散列值FH用作加密密鑰。
第一用戶終端200在操作1510中接收來(lái)自發(fā)送方的文件傳送的輸入,并且在操作S1511中計(jì)算文件的散列值FH。第一用戶終端200在操作S1512中通過(guò)使用文件的散列值FH對(duì)文件進(jìn)行加密而生成已加密文件EF。第一用戶終端200在操作S1513中通過(guò)使用與接收方共享的第二加密密鑰AK對(duì)散列值FH進(jìn)行加密而生成已加密密鑰EK。第一用戶終端200分別在操作S1514和S1515中把已加密文件EF和已加密密鑰EK傳送到消息服務(wù)器100,并且消息服務(wù)器100分別在操作S1516和S1517中把已加密文件EF和已加密密鑰EK傳送到第二用戶終端300。第二用戶終端300在操作S1518中通過(guò)在解密之前使用第二加密密鑰AK對(duì)已加密密鑰EK進(jìn)行解密而輸出散列值FH,并且在操作S1519中通過(guò)使用散列值FH對(duì)已加密文件EF進(jìn)行解密而輸出原始文件。
正如前面類似地討論的那樣,在這里闡述的示例性實(shí)施例可以被具體實(shí)現(xiàn)為可以由各種元件在計(jì)算機(jī)上執(zhí)行的計(jì)算機(jī)程序,并且所述計(jì)算機(jī)程序可以由非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)實(shí)施。非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)的實(shí)例可以包括磁性介質(zhì)(例如硬盤、軟盤、磁帶等等)、光學(xué)介質(zhì)(例如緊致盤只讀存儲(chǔ)器(CD-ROM)、數(shù)字通用盤(DVD)等等)、磁-光介質(zhì)(例如軟光盤等等)以及特別被配置成存儲(chǔ)和執(zhí)行程序指令的硬件設(shè)備(例如ROM、隨機(jī)存取存儲(chǔ)器(RAM)、閃存等等)。非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)可以包括被實(shí)施成可以在網(wǎng)絡(luò)上傳送的無(wú)形介質(zhì)。舉例來(lái)說(shuō),非瞬時(shí)性計(jì)算機(jī)可讀介質(zhì)可以由能夠通過(guò)網(wǎng)絡(luò)傳送和分發(fā)的軟件或應(yīng)用來(lái)實(shí)施。
所述計(jì)算機(jī)程序可以是特別針對(duì)本公開內(nèi)容設(shè)計(jì)和配置的,或者可以是計(jì)算機(jī)軟件領(lǐng)域的技術(shù)人員所熟知并且可以由其使用的。計(jì)算機(jī)程序的實(shí)例不僅可以包括由編譯器準(zhǔn)備的機(jī)器語(yǔ)言代碼,而且還可以包括可由計(jì)算機(jī)通過(guò)使用解釋器執(zhí)行的高層級(jí)代碼。
這里所示出和描述的特定實(shí)現(xiàn)方式是本公開內(nèi)容的說(shuō)明性實(shí)例,而不意圖以任何方式限制本公開內(nèi)容的范圍。為了簡(jiǎn)明起見(jiàn),可能沒(méi)有詳細(xì)描述傳統(tǒng)的電子裝置、控制系統(tǒng)、軟件以及系統(tǒng)的其他功能方面。此外,各幅圖中示出的連接線或連接構(gòu)件意圖表示各個(gè)元件之間的示例性功能關(guān)系以及/或者物理或邏輯連接。應(yīng)當(dāng)提到的是,可以存在許多替換的或附加的功能關(guān)系、物理連接或者邏輯連接。此外,除非元件被特別描述成“必要的”或“關(guān)鍵的”,否則沒(méi)有組件對(duì)于示例性實(shí)施例的實(shí)踐來(lái)說(shuō)是必要的。
除非在這里另行表明,否則這里對(duì)于值范圍的引述僅僅意圖作為單獨(dú)提到落在該范圍內(nèi)的每一個(gè)單獨(dú)值的簡(jiǎn)寫方法,并且每一個(gè)單獨(dú)值都被合并到說(shuō)明書中就如同其在這里被單獨(dú)引述。最后,除非在這里另行表明或者在上下文中明顯存在矛盾,否則這里所描述的所有方法步驟可以按照任何適當(dāng)?shù)捻樞騺?lái)實(shí)施。除非另行聲明,否則對(duì)于任何和所有實(shí)例以及這里所提供的示例性語(yǔ)言(例如“比如”)的使用僅僅意圖更好地闡明本公開內(nèi)容,并且不對(duì)本公開內(nèi)容的范圍構(gòu)成限制。在不背離本公開內(nèi)容的精神和范圍的情況下,本領(lǐng)域技術(shù)人員將很容易認(rèn)識(shí)到許多修改和適配。
應(yīng)當(dāng)理解的是,這里所描述的示例性實(shí)施例應(yīng)當(dāng)僅僅在描述性的意義下來(lái)考慮,而不是出于限制的目的。關(guān)于每一個(gè)示例性實(shí)施例的各個(gè)特征或方面的描述通常應(yīng)當(dāng)被視為可用于其他示例性實(shí)施例中的其他類似特征或方面。
雖然參照附圖描述了一個(gè)或多個(gè)示例性實(shí)施例,但是本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在不背離由所附權(quán)利要求書限定的發(fā)明概念的精神和范圍的情況下,可以在其形式和細(xì)節(jié)方面作出各種改變。