JP5997588B2 - COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM - Google Patents

COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM Download PDF

Info

Publication number
JP5997588B2
JP5997588B2 JP2012251172A JP2012251172A JP5997588B2 JP 5997588 B2 JP5997588 B2 JP 5997588B2 JP 2012251172 A JP2012251172 A JP 2012251172A JP 2012251172 A JP2012251172 A JP 2012251172A JP 5997588 B2 JP5997588 B2 JP 5997588B2
Authority
JP
Japan
Prior art keywords
data
time
communication device
authentication
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012251172A
Other languages
Japanese (ja)
Other versions
JP2014099793A (en
Inventor
智 飯塚
智 飯塚
市原 尚久
尚久 市原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Data Corp
Original Assignee
NTT Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Data Corp filed Critical NTT Data Corp
Priority to JP2012251172A priority Critical patent/JP5997588B2/en
Publication of JP2014099793A publication Critical patent/JP2014099793A/en
Application granted granted Critical
Publication of JP5997588B2 publication Critical patent/JP5997588B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、通信システム、通信方法、通信装置、および通信プログラムに関する。   The present invention relates to a communication system, a communication method, a communication apparatus, and a communication program.

携帯電話やタブレットPC(Personal Computer)、その他の端末装置が、ネットワークを介して種々のサービスの提供を受ける際に、ネットワークを介した認証が行われる場合がある。この認証において、端末装置は、認証を行うサーバ(認証サーバ)に暗号化された認証情報を送信し、認証サーバは、受信した認証情報を復号する。そして、認証サーバは、予め登録された情報と復号した情報が一致するか否かを判定し、情報が一致した場合にサービスの提供を許可する。   When a mobile phone, a tablet PC (Personal Computer), and other terminal devices receive provision of various services via a network, authentication via the network may be performed. In this authentication, the terminal device transmits the encrypted authentication information to a server (authentication server) that performs authentication, and the authentication server decrypts the received authentication information. Then, the authentication server determines whether or not the information registered in advance matches the decrypted information, and permits the provision of the service when the information matches.

認証情報を一定期間有効なものとすると、第三者が認証情報を傍受し、試行錯誤によって認証情報を解析してしまう可能性がある。これに対し、使用される度に変化し、1回限り有効な認証情報であるワンタイムパスワードを用いて認証を行う認証方法の発明が開示されている(例えば、特許文献1参照)。この認証方法では、通信を行う機器間で時刻の同期を行っておき、時刻を非可逆性のアルゴリズムで暗号化したワンタイムパスワードが、認証情報として送信される。   If the authentication information is valid for a certain period of time, a third party may intercept the authentication information and analyze the authentication information by trial and error. On the other hand, an invention of an authentication method that changes each time it is used and performs authentication using a one-time password that is authentication information that is valid only once is disclosed (for example, see Patent Document 1). In this authentication method, time synchronization is performed between communicating devices, and a one-time password obtained by encrypting the time with an irreversible algorithm is transmitted as authentication information.

ところで、サービスを利用するためのアプリ(アプリケーションプログラム)が端末装置にインストールされる場合がある。この場合、認証を受けるための暗号処理演算手順や鍵の生成手順が、アプリに記述されるケースが増加している。これに対し、解析者(攻撃者)は、鍵の生成手順を含むアプリを読み出して他のコンピュータ装置等に格納し、リバースエンジニアリングによって鍵の生成手順を解析することが可能である。ここで、鍵の生成手順が解析され、解析者がアプリの改ざんを行って不正にサービスを受けようとした場合であっても、改ざんを検知すると正常に動作しない仕組みがアプリに埋め込まれていれば、アプリが正常に動作しない可能性が高い。しかしながら、正規なアプリのコードを再利用せず、演算手順を一から組み立てる手法(スクラッチと称される)でアプリが作成された場合、サービスが不正に利用されてしまう場合がある。   Incidentally, an application (application program) for using the service may be installed in the terminal device. In this case, there are increasing cases in which cryptographic processing calculation procedures for authentication and key generation procedures are described in an application. On the other hand, an analyst (attacker) can read an application including a key generation procedure, store it in another computer device or the like, and analyze the key generation procedure by reverse engineering. Here, even if the key generation procedure has been analyzed and the analyst has tampered with the app and tried to receive a service illegally, a mechanism that does not operate normally when tampering is detected is embedded in the app. If this is the case, the app is unlikely to work properly. However, if an application is created by a method of assembling a calculation procedure from scratch (referred to as a scratch) without reusing a legitimate application code, the service may be used illegally.

これに対し、共通鍵暗号方式で通信を行う方法の発明が開示されている(例えば、特許文献2参照)。この方法では、通信を行う第1の機器が、固定キーテーブルから任意の固定キーを選択して、所定の演算処理を加えることにより新たな共通鍵を生成する。そして、第1の機器は、生成した共通鍵を暗号化に用いると共に、固定キーのインデックス情報を第2の機器に送信する。第2の機器は、第1の機器と同じ固定キーテーブルを備えており、受信したインデックス情報を用いて固定キーテーブルから固定キーを選択し、所定の演算を加えることにより、第1の機器と同じ共通鍵を生成して復号に用いる。   On the other hand, the invention of the method of communicating by a common key encryption system is disclosed (for example, refer patent document 2). In this method, the first device that performs communication selects an arbitrary fixed key from the fixed key table and generates a new common key by applying a predetermined calculation process. The first device uses the generated common key for encryption and transmits the index information of the fixed key to the second device. The second device includes the same fixed key table as the first device, and selects the fixed key from the fixed key table using the received index information and adds a predetermined calculation to the first device. The same common key is generated and used for decryption.

また、自装置の識別子と、通信相手の識別子に基づいて選択されたアルゴリズムで、暗号鍵を取得する方法の発明が開示されている(例えば、特許文献3参照)。   Further, an invention of a method for obtaining an encryption key using an algorithm selected based on the identifier of the own device and the identifier of the communication partner is disclosed (for example, see Patent Document 3).

特許文献2、3に記載された方法によれば、鍵の生成手順がインデックス情報や識別子によって変更されるため、毎回同じ手順で鍵を生成する場合に比して、解析者がリバースエンジニアリングによって鍵の生成手順を解析することが困難となっている。   According to the methods described in Patent Documents 2 and 3, since the key generation procedure is changed by the index information and the identifier, the analyst performs the key by reverse engineering as compared with the case where the key is generated by the same procedure every time. It is difficult to analyze the generation procedure.

特開2008−198147号公報JP 2008-1981147 A 特開2012−147341号公報JP 2012-147341 A 特開平11−032034号公報Japanese Patent Laid-Open No. 11-032034

しかしながら、特許文献1に記載の方法では、認証情報の生成手順を解析されてしまう場合がある。この結果、特許文献1に記載の方法では、十分なセキュリティ性が得られない場合がある。   However, in the method described in Patent Literature 1, the authentication information generation procedure may be analyzed. As a result, the method described in Patent Document 1 may not provide sufficient security.

また、特許文献2に記載の方法に、ワンタイムパスワードとしての性質(ワンタイム性)を持たせようとすると、選択する固定キーを通信の度に変更する必要がある。この場合、暗号化通信の度に固定キーのインデックス情報を送信する必要が生じ、通信量が増加してしまう。通信量の増加は、通信料金の増加や消費電力の増加、通信帯域の消費など、通信に関するコスト(通信コスト)の増加を招く。更に、固定キーのインデックス情報を傍受された場合、同じ固定キーテーブルを有する通信主体であれば、本来の通信主体でなくとも不正なアクセスを行うことが可能となる。従って、特許文献2に記載の方法では、十分なセキュリティ性が得られない場合がある。   In addition, if the method described in Patent Document 2 is to have the property of a one-time password (one-time property), it is necessary to change the fixed key to be selected for each communication. In this case, it is necessary to transmit the index information of the fixed key every time encrypted communication is performed, and the amount of communication increases. An increase in the amount of communication leads to an increase in communication costs (communication costs) such as an increase in communication charges, an increase in power consumption, and a consumption of communication bandwidth. Further, when the index information of the fixed key is intercepted, if the communication subject has the same fixed key table, it is possible to perform unauthorized access even if it is not the original communication subject. Therefore, the method described in Patent Document 2 may not provide sufficient security.

また、特許文献3に記載の方法では、例えば同じ通信相手と何度も通信を行う場合、通信主体の識別子は変化しないため、ワンタイム性を持たせるのが困難である。異なる相手と通信を行う場合であっても、特許文献2に記載の方法と同様、暗号化通信の度に識別子を送信し合う必要があり、通信コストが増加したり、十分なセキュリティ性が得られない場合がある。   In the method described in Patent Document 3, for example, when communicating with the same communication partner many times, the identifier of the communication subject does not change, so it is difficult to provide a one-time property. Even when communicating with different parties, as in the method described in Patent Document 2, it is necessary to transmit identifiers for each encrypted communication, which increases communication costs and provides sufficient security. It may not be possible.

このように、従来の通信システムや通信方法では、通信コストを抑制しつつ、セキュリティ性を向上させることが困難であった。   As described above, in the conventional communication system and communication method, it is difficult to improve the security while suppressing the communication cost.

本発明は、このような事情を考慮してなされたものであり、通信コストを抑制しつつ、セキュリティ性を向上させることを目的の一つとする。   The present invention has been made in view of such circumstances, and an object of the present invention is to improve security while suppressing communication costs.

本発明の一態様は、第1の通信装置と第2の通信装置とを備える通信システムであって、前記第1の通信装置は、互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する第1の通信装置側鍵生成部と、前記第1の通信装置側鍵生成部により生成された鍵データを用いてデータを暗号化する暗号化部と、前記暗号化されたデータを前記第2の通信装置に送信する送信部と、を備え、前記第2の通信装置は、前記第1の通信装置から前記暗号化されたデータを受信する受信部と、前記共通する時刻の分未満を端数処理した時刻に基づいて、前記複数の演算手順から一以上の演算手順を選択することを含む処理によって鍵データを生成する第2の通信装置側鍵生成部と、前記第2の通信装置側鍵生成部により生成された鍵データを用いて前記暗号化されたデータを復号する復号部と、前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、前記認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記第2の通信装置側鍵生成部は、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、通信システムである。 One embodiment of the present invention is a communication system including a first communication device and a second communication device, wherein the first communication device is configured to perform a plurality of different calculation procedures from the own device and the second communication device. A first communication device-side key generation unit that generates key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a common time with a communication device; An encryption unit that encrypts data using the key data generated by the first communication device-side key generation unit; and a transmission unit that transmits the encrypted data to the second communication device. The second communication device includes a receiving unit that receives the encrypted data from the first communication device, and a plurality of calculation procedures based on a fractional processing time less than the common time. Selecting one or more calculation procedures from A second communication apparatus key generation unit, the second decoder which decodes the encrypted data by using the key data generated by the communication apparatus-side key generating unit for generating key data by processing, An authentication unit that performs authentication by determining whether or not the decrypted data matches the predetermined data, and in the determination by the authentication unit, the decrypted data does not match the predetermined data In this case, the second communication device side key generation unit selects one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount. And generating the key data generated by the process including the step of using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount. Te, determines data decoded by said decoding unit again whether matches a predetermined data is a communication system.

また、本発明の他の態様は、前記互いに異なる複数の演算手順は、論理演算の組み合わせが互いに異なる演算手順、または、繰り返し行われる演算の繰り返し回数が互いに異なる演算手順、または、論理演算の組み合わせが互いに異なり且つ繰り返し行われる演算の繰り返し回数が互いに異なる演算手順である通信システムである。Further, according to another aspect of the present invention, the plurality of different calculation procedures may include a calculation procedure having a different combination of logical operations, a calculation procedure having a different number of repeated operations, or a combination of logical operations. Is a communication system in which the calculation procedures are different from each other and the number of repeated calculations is different from each other.
また、本発明の他の態様は、前記第1の通信装置は、時刻を出力する時計と、前記第2の通信装置から取得した前記第2の通信装置側の時刻と、前記時計が出力した時刻との差分を演算して記憶部に格納する差分演算部と、を備え、前記第1の通信装置側鍵生成部は、前記時計が出力した時刻と前記記憶部に格納された差分を加算した時刻を、前記共通する時刻として用い、前記第2の通信装置は、自装置が備える時計が出力する時刻を、前記共通する時刻として用いる、通信システムである。Further, according to another aspect of the present invention, the first communication device outputs a timepiece that outputs time, the time on the second communication device side obtained from the second communication device, and the timepiece outputs the timepiece. A difference calculation unit that calculates a difference from the time and stores the difference in the storage unit, wherein the first communication device side key generation unit adds the time output from the clock and the difference stored in the storage unit The second communication device is a communication system that uses, as the common time, a time output from a clock included in the device.

また、本発明の他の態様は、第1の通信装置と第2の通信装置とを備える通信システムが行う通信方法であって、前記第1の通信装置が、互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、前記第1の通信装置において生成された鍵データを用いてデータを暗号化し、前記暗号化されたデータを前記第2の通信装置に送信し、前記第2の通信装置が、前記暗号化されたデータを前記第1の通信装置から受信し、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、前記第2の通信装置において生成された鍵データを用いて前記暗号化されたデータを復号し、前記復号されたデータが所定のデータと一致するか否かを判定し、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記第2の通信装置において前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定する、通信方法である。Another aspect of the present invention is a communication method performed by a communication system including a first communication device and a second communication device, wherein the first communication device is based on a plurality of different calculation procedures. Generating key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a common time between the own apparatus and the second communication apparatus; Data is encrypted using key data generated in the communication device, the encrypted data is transmitted to the second communication device, and the second communication device transmits the encrypted data to the second communication device. Receiving from one communication device, generating key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than the common time from the plurality of calculation procedures, In the second communication device The encrypted data is decrypted using the key data generated in step S5, and it is determined whether the decrypted data matches predetermined data. In the determination, the decrypted data is If the data does not match, generated by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount Generated using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount in the second communication device. In this communication method, it is determined again whether the data matches the predetermined data.

また、本発明の他の態様は、互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する鍵生成部と、前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号する復号部と、前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、該認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記鍵生成部は、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、通信装置である。According to another aspect of the present invention, there is provided key generation for generating key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding less than a minute. A decryption unit that decrypts encrypted data that is data received from another device using the generated key data, and whether or not the decrypted data matches predetermined data An authentication unit that performs authentication by determining, and in the determination by the authentication unit, if the decrypted data does not match predetermined data, the key generation unit Generating key data generated by a process including selecting one or more calculation procedures based on a time obtained by shifting a fractional processing time less than a minute of the time by a predetermined amount, and the authentication unit Using the key data generated by the process including selecting one or more calculation procedures based on the determined time, it is determined again whether the data decrypted by the decryption unit matches the predetermined data , A communication device.

また、本発明の他の態様は、通信装置に、互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成させ、前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号させ、前記復号されたデータが所定のデータと一致するか否かを判定させ、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成させ、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定させる、通信プログラムである。According to another aspect of the present invention, key data is transmitted to a communication device by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a time from a plurality of different calculation procedures. Generating the received key data, decrypting the encrypted data that is received from another device, and determining whether the decrypted data matches the predetermined data. In the determination, if the decrypted data does not match the predetermined data, one or more based on a time obtained by shifting the fractional processing time by less than a predetermined amount from the plurality of calculation procedures. Generated key data generated by a process including selecting a calculation procedure, and generated by a process including selecting one or more calculation procedures based on the time shifted by the predetermined amount Data using the decoded data to re-determine whether to match the predetermined data, a communication program.

本発明の一態様によれば、通信コストを抑制しつつ、セキュリティ性を向上させることができる。   According to one embodiment of the present invention, security can be improved while suppressing communication costs.

本発明の第1実施形態に係る通信システムのシステム構成例である。1 is a system configuration example of a communication system according to a first embodiment of the present invention. 端末装置1の機能構成例である。2 is a functional configuration example of a terminal device 1; 認証サーバ3の機能構成例である。3 is a functional configuration example of an authentication server 3. サービスサーバ5の機能構成例である。3 is a functional configuration example of a service server 5. 端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その1)である。It is an example (the 1) of the flowchart which shows the flow of the process performed by the terminal device 1 and the authentication server 3. 端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その2)である。It is an example (the 2) which shows the flow of the process performed by the terminal device 1 and the authentication server 3. 時刻候補が複数設定される場合の処理の流れを示すフローチャートの一部である。It is a part of flowchart which shows the flow of a process in case multiple time candidates are set. 第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。It is a figure which shows the process performed by the 2nd terminal side key generation part 16 and the 2nd server side key generation part 33 in the format of a code. 第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。It is a figure which shows the process performed by the 2nd terminal side key generation part 16 and the 2nd server side key generation part 33 in the format of a code. アプリがシミュレーション環境下で実行する一連の命令を、アセンブリ形式で表した図である。It is a figure showing a series of instructions which an application performs under a simulation environment in an assembly format. 第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。It is a figure which shows the process performed by the 2nd terminal side key generation part 16 and the 2nd server side key generation part 33 in the format of a code.

以下、図面を参照し、本発明の通信システム、通信方法、通信装置、および通信プログラムの実施形態について説明する。   Hereinafter, a communication system, a communication method, a communication apparatus, and a communication program according to embodiments of the present invention will be described with reference to the drawings.

<第1実施形態>
図1は、本発明の第1実施形態に係る通信システムのシステム構成例である。通信システムは、端末装置1と、認証サーバ3と、サービスサーバ5とを備える。これらの構成要素は、ネットワーク9によって接続されている。
<First Embodiment>
FIG. 1 is a system configuration example of a communication system according to the first embodiment of the present invention. The communication system includes a terminal device 1, an authentication server 3, and a service server 5. These components are connected by a network 9.

[端末装置1の構成]
端末装置1は、携帯電話やタブレットPC、ノートPC、デスクトップPC、その他の端末装置である。認証サーバ3は、例えば1台以上のサーバ装置によって実現され、端末装置1がサービスサーバ5からサービスを受ける際に、端末装置1に対する認証を行い、認証結果が正当であればサービスの提供を許可する。サービスサーバ5は、例えば1台以上のサーバ装置によって実現され、端末装置1に、メールの送受信などの各種サービスを提供する。ネットワーク9は、例えば、3G(3rd. Generation)網などの携帯電話網、Wi−Fi網、光通信網などの通信網を含む。図1では、端末装置1を単独のものとして示したが、複数の端末装置1がネットワーク9を介して認証サーバ3やサービスサーバ5に接続されることがある。
[Configuration of Terminal Device 1]
The terminal device 1 is a mobile phone, a tablet PC, a notebook PC, a desktop PC, or other terminal devices. The authentication server 3 is realized by, for example, one or more server devices. When the terminal device 1 receives a service from the service server 5, the authentication server 3 authenticates the terminal device 1, and permits the service if the authentication result is valid. To do. The service server 5 is realized by, for example, one or more server devices, and provides the terminal device 1 with various services such as mail transmission / reception. The network 9 includes, for example, a mobile phone network such as a 3G (3rd. Generation) network, a communication network such as a Wi-Fi network, and an optical communication network. Although FIG. 1 shows the terminal device 1 as a single device, a plurality of terminal devices 1 may be connected to the authentication server 3 and the service server 5 via the network 9.

図2は、端末装置1の機能構成例である。端末装置1は、例えば、入力部11、出力部12、通信部13、アプリ実行部14、第1の端末側鍵生成部15、第2の端末側鍵生成部16、時計17、暗号処理部18、認証トークン取得部19、差分演算部20、記憶部21を備える。   FIG. 2 is a functional configuration example of the terminal device 1. The terminal device 1 includes, for example, an input unit 11, an output unit 12, a communication unit 13, an application execution unit 14, a first terminal side key generation unit 15, a second terminal side key generation unit 16, a clock 17, and an encryption processing unit. 18, an authentication token acquisition unit 19, a difference calculation unit 20, and a storage unit 21.

記憶部21には、アプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dなどが格納される。アプリID21Aは、アプリを特定する識別子である。アプリ認証用パスワード21Bは、アプリによるサービスを受けるためのパスワードである。アプリ認証用パスワードの有効期限21Cは、認証サーバ3によって設定されるアプリ認証用パスワードの有効期限である。時刻差分情報21Dについては後述する。   The storage unit 21 stores an application ID 21A, an application authentication password 21B, an application authentication password expiration date 21C, time difference information 21D, and the like. The application ID 21A is an identifier that identifies the application. The application authentication password 21B is a password for receiving a service by the application. The application authentication password expiration date 21 </ b> C is the expiration date of the application authentication password set by the authentication server 3. The time difference information 21D will be described later.

入力部11は、例えば、ボタンやキー、タッチパネル、キーボード、マウスなどであり、ユーザによる入力を受ける。出力部12は、例えば、LCD(Liquid Crystal Display)などの表示装置、スピーカなどを含む。通信部13は、ネットワーク9を介して、他の装置との間でデータを送受信する。アプリ実行部14は、サービスサーバ5から提供されるサービスを利用するアプリケーションを実行する。   The input unit 11 is, for example, a button, a key, a touch panel, a keyboard, a mouse, or the like, and receives input from the user. The output unit 12 includes, for example, a display device such as an LCD (Liquid Crystal Display), a speaker, and the like. The communication unit 13 transmits and receives data to and from other devices via the network 9. The application execution unit 14 executes an application that uses a service provided from the service server 5.

第1の端末側鍵生成部15は、暗号処理部18が暗号化および復号に用いる鍵データK1〜K3を生成する。第2の端末側鍵生成部16は、暗号処理部18が暗号化および復号に用いる鍵データK4を生成する。第2の端末側鍵生成部16は、互いに異なる複数の演算手順から、端末装置1と認証サーバ3との間で共通する時刻に基づいて一以上の演算手順を選択することを含む処理によって、端末装置1と認証サーバ3との間で共通する鍵データK4を生成する。第1実施形態では、「端末装置1と認証サーバ3との間で共通する時刻」とは、時計17が出力する時刻に、時刻差分情報21Dを加算して得られる認証サーバ3の時計34(後述)の推定時刻である。   The first terminal-side key generation unit 15 generates key data K1 to K3 that the encryption processing unit 18 uses for encryption and decryption. The second terminal-side key generation unit 16 generates key data K4 that the encryption processing unit 18 uses for encryption and decryption. The second terminal-side key generation unit 16 performs a process including selecting one or more calculation procedures based on a common time between the terminal device 1 and the authentication server 3 from a plurality of different calculation procedures. Key data K4 that is common between the terminal device 1 and the authentication server 3 is generated. In the first embodiment, the “time common between the terminal device 1 and the authentication server 3” refers to the clock 34 (the time of the authentication server 3 obtained by adding the time difference information 21D to the time output by the clock 17 ( Estimated time) (described later).

暗号処理部18は、第1の端末側鍵生成部15や第2の端末側鍵生成部16が生成した鍵データを用いて、データの暗号化および復号を行う。鍵データを用いた暗号化アルゴリズムとしては、例えば、AES(Advanced Encryption Standard)を用いることができる。   The encryption processing unit 18 encrypts and decrypts data using the key data generated by the first terminal-side key generation unit 15 and the second terminal-side key generation unit 16. As an encryption algorithm using key data, for example, AES (Advanced Encryption Standard) can be used.

認証トークン取得部19は、所定のタイミングで、認証トークン払い出し要求を認証サーバ3に送信する。そして、認証トークン取得部19は、認証サーバ3から受信し、暗号処理部18によって復号された認証トークンの少なくとも一部を、記憶部21に格納する。   The authentication token acquisition unit 19 transmits an authentication token payout request to the authentication server 3 at a predetermined timing. Then, the authentication token acquisition unit 19 stores at least a part of the authentication token received from the authentication server 3 and decrypted by the encryption processing unit 18 in the storage unit 21.

認証トークンには、例えば、認証トークンの送信時に認証サーバ3の時計34が出力した時刻情報、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21Cなどが含まれる。アプリ認証用パスワードの有効期限21Cは、例えば3か月と定められる。認証トークン取得部19は、この有効期限が切れると、認証トークンの払い出し要求を認証サーバ3に送信するように通信部13を制御する。   The authentication token includes, for example, time information output from the clock 34 of the authentication server 3 when the authentication token is transmitted, an application authentication password 21B, an application authentication password expiration date 21C, and the like. The expiration date 21C of the application authentication password is determined to be, for example, 3 months. When this expiration date expires, the authentication token acquisition unit 19 controls the communication unit 13 to transmit an authentication token payout request to the authentication server 3.

差分演算部20は、認証サーバ3から受信したサーバ時刻情報から、認証トークンの受信時に時計17が出力した時刻を差し引き、時刻差分情報21Dを生成して記憶部21に格納する。サーバ時刻情報は、認証サーバ3が認証トークンを生成する際に、時計34が出力した時刻の情報である。時刻差分情報21Dは、時計17と時計34の間の誤差を反映した時間である。   The difference calculation unit 20 subtracts the time output by the clock 17 when the authentication token is received from the server time information received from the authentication server 3, generates time difference information 21 </ b> D, and stores it in the storage unit 21. The server time information is time information output by the clock 34 when the authentication server 3 generates an authentication token. The time difference information 21 </ b> D is a time reflecting an error between the clock 17 and the clock 34.

[認証サーバ3の構成]
図3は、認証サーバ3の機能構成例である。認証サーバ3は、例えば、通信部31、第1のサーバ側鍵生成部32、第2のサーバ側鍵生成部33、時計34、暗号処理部35、認証トークン生成部36、認証部37、記憶部38などを備える。
[Configuration of Authentication Server 3]
FIG. 3 is a functional configuration example of the authentication server 3. The authentication server 3 includes, for example, a communication unit 31, a first server side key generation unit 32, a second server side key generation unit 33, a clock 34, an encryption processing unit 35, an authentication token generation unit 36, an authentication unit 37, a storage The unit 38 and the like are provided.

なお、図2、3に示す矢印は、通信システムにおける代表的な情報の流れを例示したものであり、図2、3に示す以外の情報の流れも発生し得る。   The arrows shown in FIGS. 2 and 3 exemplify typical information flows in the communication system, and information flows other than those shown in FIGS.

記憶部38には、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM(Subscriber Identity Module)識別情報38Fなどが格納される。   The storage unit 38 stores an application ID 38A, an application authentication password 38B, an application authentication password expiration date 38C, server time information 38D, terminal identification information 38E, SIM (Subscriber Identity Module) identification information 38F, and the like.

端末識別情報38Eとしては、例えば、IMEI(International Mobile Equipment Identity)を用いることができる。また、SIM識別情報38Fとしては、例えば、MSN(Multiple Subscriber Number)やICCID(Integrated Circuit Card ID)、Wi−Fi(登録商標)パスワードなどを用いることができる。SIM識別情報38Fは、例えば、網認証によって、予め端末装置1と認証サーバ3との間で共有されているものとする。   As the terminal identification information 38E, for example, IMEI (International Mobile Equipment Identity) can be used. As the SIM identification information 38F, for example, a multiple subscriber number (MSN), an integrated circuit card ID (ICCID), a Wi-Fi (registered trademark) password, or the like can be used. It is assumed that the SIM identification information 38F is shared between the terminal device 1 and the authentication server 3 in advance by network authentication, for example.

通信部31は、ネットワーク9を介して、他の装置との間でデータを送受信する。   The communication unit 31 transmits and receives data to and from other devices via the network 9.

第1のサーバ側鍵生成部32は、暗号処理部35が暗号化および復号に用いる鍵データK1、K2を生成する。第2のサーバ側鍵生成部33は、暗号処理部35が暗号化および復号に用いる鍵データK4を生成する。第2のサーバ側鍵生成部33は、互いに異なる複数の演算手順から、時計34の出力する時刻に基づいて一以上の演算手順を選択することを含む処理によって、端末装置1と認証サーバ3との間で共通する鍵データK4を生成する。   The first server side key generation unit 32 generates key data K1 and K2 used by the encryption processing unit 35 for encryption and decryption. The second server side key generation unit 33 generates key data K4 used by the encryption processing unit 35 for encryption and decryption. The second server side key generation unit 33 performs a process including selecting one or more calculation procedures based on the time output from the clock 34 from a plurality of different calculation procedures, and the terminal device 1 and the authentication server 3. Key data K4 that is common between the two is generated.

暗号処理部35は、第1のサーバ側鍵生成部32や第2のサーバ側鍵生成部33が生成した鍵データを用いて、データの暗号化および復号を行う。鍵データを用いた暗号化アルゴリズムとしては、例えば、AESを用いることができる。   The encryption processing unit 35 encrypts and decrypts data using the key data generated by the first server side key generation unit 32 and the second server side key generation unit 33. As an encryption algorithm using the key data, for example, AES can be used.

認証トークン生成部36は、端末装置1から受信した認証トークン払い出し要求に応じ、認証トークンを生成し、認証トークンを端末装置1に送信する。認証部37は、サービスサーバ5が端末装置1から受信した認証情報の認証を行い、認証結果をサービスサーバ5に送信する。   In response to the authentication token payout request received from the terminal device 1, the authentication token generation unit 36 generates an authentication token and transmits the authentication token to the terminal device 1. The authentication unit 37 authenticates authentication information received from the terminal device 1 by the service server 5 and transmits an authentication result to the service server 5.

記憶部38には、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM識別情報38Fなどが格納される。   The storage unit 38 stores an application ID 38A, an application authentication password 38B, an application authentication password expiration date 38C, server time information 38D, terminal identification information 38E, SIM identification information 38F, and the like.

[サービスサーバ5の構成]
図4は、サービスサーバ5の機能構成例である。サービスサーバ5は、例えば、通信部51、認証依頼部52、サービス提供部53などを備える。
[Configuration of Service Server 5]
FIG. 4 is a functional configuration example of the service server 5. The service server 5 includes, for example, a communication unit 51, an authentication request unit 52, a service providing unit 53, and the like.

通信部51は、ネットワーク9を介して他の装置との間でデータを送受信する。認証依頼部52は、端末装置1から受信した認証情報を認証サーバ3に送信し、認証を依頼する。認証依頼部52は、認証の依頼に対応して認証サーバ3から認証失敗を受信した場合、その旨を端末装置1に通知する。サービス提供部53は、認証の依頼に対応して認証サーバ3から認証成功を受信した場合、端末装置1にサービスを提供する。   The communication unit 51 transmits / receives data to / from other devices via the network 9. The authentication request unit 52 transmits the authentication information received from the terminal device 1 to the authentication server 3 and requests authentication. If the authentication request unit 52 receives an authentication failure from the authentication server 3 in response to the authentication request, the authentication request unit 52 notifies the terminal device 1 to that effect. The service providing unit 53 provides a service to the terminal device 1 when receiving a successful authentication from the authentication server 3 in response to the request for authentication.

なお、サービスサーバ5が複数台備えられる場合、各サービスサーバ5は、異なるサービスを提供するものであってもよい。例えば、サービスサーバ5は、メールサーバ、POP(Post Office Protocol)サーバ、情報提供サーバなどでありうる。   When a plurality of service servers 5 are provided, each service server 5 may provide a different service. For example, the service server 5 can be a mail server, a POP (Post Office Protocol) server, an information providing server, or the like.

[フローチャート(その1)]
ユーザによって端末装置1のアイコンがタップされること等により、アプリの起動が指示されると、端末装置1と認証サーバ3は、以下に例示するように、乱数の交換によるワンタイムパスワードを用いて情報を送受信する。
[Flowchart (Part 1)]
When the application is instructed by the user tapping the icon of the terminal device 1 or the like, the terminal device 1 and the authentication server 3 use a one-time password by exchanging random numbers as illustrated below. Send and receive information.

図5は、端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その1)である。図5のフローチャートにおける各手順は、例えば、ユーザによりアプリの起動が指示されときに開始される。   FIG. 5 is an example (part 1) of a flowchart showing a flow of processing executed by the terminal device 1 and the authentication server 3. Each procedure in the flowchart of FIG. 5 is started, for example, when an instruction to start an application is given by the user.

まず、端末装置1のアプリ実行部14が、アプリを起動し(ステップS100)、認証トークン取得部19が、乱数R1を生成する(ステップS102)。乱数R1および後述する乱数R2は、例えば、メンセルヌ・ツイスタ、PRNG(Pseudo Random Number Generator)等の疑似乱数生成アルゴリズムによって生成される。   First, the application execution unit 14 of the terminal device 1 starts an application (step S100), and the authentication token acquisition unit 19 generates a random number R1 (step S102). The random number R1 and the random number R2 to be described later are generated by a pseudo-random number generation algorithm such as Menselne Twister or PRNG (Pseudo Random Number Generator).

次に、端末装置1の第1の端末側鍵生成部15が、図示しないモジュールなどから読み出したSIM識別情報に基づき、鍵データK1を生成する(ステップS104)。そして、暗号処理部18が、鍵データK1を用いて乱数R1を暗号化する(ステップS106)。暗号化された乱数R1は、認証サーバ3に送信される(ステップS108)。   Next, the first terminal-side key generation unit 15 of the terminal device 1 generates key data K1 based on SIM identification information read from a module (not shown) or the like (step S104). Then, the encryption processing unit 18 encrypts the random number R1 using the key data K1 (step S106). The encrypted random number R1 is transmitted to the authentication server 3 (step S108).

認証サーバ3の第1のサーバ側鍵生成部32は、暗号化された乱数R1を受信すると、記憶部38に格納された端末1のSIM識別情報38Fに基づき、鍵データK1を生成する(ステップS110)。そして、暗号処理部35が、鍵データK1を用いて、暗号化された乱数R1を復号する(ステップS112)。   When receiving the encrypted random number R1, the first server-side key generation unit 32 of the authentication server 3 generates key data K1 based on the SIM identification information 38F of the terminal 1 stored in the storage unit 38 (step S1). S110). Then, the encryption processing unit 35 decrypts the encrypted random number R1 using the key data K1 (step S112).

次に、認証サーバ3の認証トークン生成部36が、乱数R2を生成し(ステップS114)、暗号処理部35が、鍵データK1を用いて、乱数R2を暗号化する(ステップS116)。暗号化された乱数R2は、端末装置1に送信される(ステップS118)。   Next, the authentication token generation unit 36 of the authentication server 3 generates a random number R2 (step S114), and the encryption processing unit 35 encrypts the random number R2 using the key data K1 (step S116). The encrypted random number R2 is transmitted to the terminal device 1 (step S118).

端末装置1の暗号処理部18は、鍵データK1を用いて、暗号化された乱数R2を復号する(ステップS120)。次に、認証トークン取得部19が、認証トークン払い出し要求を生成する(ステップS122)。次に、第1の端末側鍵生成部15が、乱数R1と乱数R2に基づいて鍵データK2を生成する(ステップS124)。そして、暗号処理部18が、鍵データK2を用いて、図示しないモジュールなどから読み出した自装置(端末装置1)の端末識別情報と認証トークン払い出し要求を暗号化する(ステップS126)。通信部13は、暗号化された端末識別情報と認証トークン払い出し要求は、認証サーバ3に送信する(ステップS128)。   The encryption processing unit 18 of the terminal device 1 decrypts the encrypted random number R2 using the key data K1 (step S120). Next, the authentication token acquisition unit 19 generates an authentication token payout request (step S122). Next, the first terminal-side key generation unit 15 generates key data K2 based on the random number R1 and the random number R2 (step S124). Then, the encryption processing unit 18 encrypts the terminal identification information of the own device (terminal device 1) and the authentication token payout request read from a module (not shown) using the key data K2 (step S126). The communication unit 13 transmits the encrypted terminal identification information and the authentication token payout request to the authentication server 3 (step S128).

認証サーバ3の第1のサーバ側鍵生成部32は、乱数R1と乱数R2に基づいて、鍵データK2を生成する(ステップS130)。次に、暗号処理部35が、鍵データK2を用いて端末識別情報と認証トークン払い出し要求を復号する(ステップS132)。次に、認証トークン生成部36が、アプリIDと認証トークンを生成する(ステップS134)。認証トークンには、例えば、アプリ認証用パスワード、アプリ認証用パスワードの有効期限、およびサーバ時刻情報が含まれる。サーバ時刻情報は、ステップS134において認証トークンを生成する際に、時計34から取得した時刻の情報である。   The first server-side key generation unit 32 of the authentication server 3 generates key data K2 based on the random number R1 and the random number R2 (step S130). Next, the encryption processing unit 35 decrypts the terminal identification information and the authentication token payout request using the key data K2 (step S132). Next, the authentication token generation unit 36 generates an application ID and an authentication token (step S134). The authentication token includes, for example, an application authentication password, an expiration date of the application authentication password, and server time information. The server time information is time information acquired from the clock 34 when generating the authentication token in step S134.

認証トークン生成部36は、上記のように設定等した情報を、アプリID38A、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、サーバ時刻情報38D、端末識別情報38E、SIM識別情報38Fとして記憶部38に格納する(ステップS136)。そして、暗号処理部35が、鍵データK2を用いて、アプリIDと認証トークンを暗号化する(ステップS138)。通信部31は、暗号化されたアプリIDと認証トークンは、端末装置1に送信される(ステップS140)。   The authentication token generator 36 uses the information set as described above as application ID 38A, application authentication password 38B, application authentication password expiration date 38C, server time information 38D, terminal identification information 38E, and SIM identification information 38F. The data is stored in the storage unit 38 (step S136). Then, the encryption processing unit 35 encrypts the application ID and the authentication token using the key data K2 (step S138). The communication unit 31 transmits the encrypted application ID and authentication token to the terminal device 1 (step S140).

端末装置1の暗号処理部18は、鍵データK2を用いてアプリIDと認証トークンを復号する(ステップS142)。次に、差分演算部20が、サーバ時刻情報から時計17の出力する時刻を差し引き、時刻差分情報を生成する(ステップS144)。   The encryption processing unit 18 of the terminal device 1 decrypts the application ID and the authentication token using the key data K2 (step S142). Next, the difference calculation unit 20 subtracts the time output by the clock 17 from the server time information to generate time difference information (step S144).

次に、端末装置1の第1の端末側鍵生成部15が、SIM識別情報と端末識別情報に基づいて、鍵データK3を生成する(ステップS146)。暗号処理部18は、鍵データK3を用いて、アプリID、アプリ認証用パスワード、アプリ認証用パスワードの有効期限の情報、時刻差分情報を暗号化する(ステップS148)。暗号化されたアプリID、アプリ認証用パスワード、アプリ認証用パスワードの有効期限の情報、時刻差分情報は、アプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dとして記憶部21に格納される。   Next, the first terminal-side key generation unit 15 of the terminal device 1 generates key data K3 based on the SIM identification information and the terminal identification information (step S146). Using the key data K3, the encryption processing unit 18 encrypts the application ID, the application authentication password, the expiration date information of the application authentication password, and the time difference information (step S148). The encrypted application ID, the application authentication password, the expiration date information of the application authentication password, and the time difference information are the application ID 21A, the application authentication password 21B, the expiration date 21C of the application authentication password, and the time difference information 21D. Stored in the storage unit 21.

[フローチャート(その2)]
図5に例示したフローチャートの手順によってアプリID21Aなどが記憶部21に格納されると、ユーザがアプリによるサービスを受けることが可能な状態となる。この状態で、例えば、ユーザがメール取得のボタンを押下する等して、サービス利用要求を行うと、端末装置1と認証サーバ3は、時刻に基づいて演算手順が選択される鍵データ生成手順によって鍵データK4を生成し、暗号化通信を行う。
[Flowchart (Part 2)]
When the application ID 21A or the like is stored in the storage unit 21 by the procedure of the flowchart illustrated in FIG. 5, the user can receive a service from the application. In this state, for example, when the user makes a service use request by pressing a mail acquisition button or the like, the terminal device 1 and the authentication server 3 perform a key data generation procedure in which a calculation procedure is selected based on time. Key data K4 is generated and encrypted communication is performed.

図6は、端末装置1と認証サーバ3により実行される処理の流れを示すフローチャートの一例(その2)である。図6のフローチャートにおける各手順は、例えば、ユーザによりサービスの利用要求がなされたときに開始される。   FIG. 6 is an example (part 2) of a flowchart showing a flow of processing executed by the terminal device 1 and the authentication server 3. Each procedure in the flowchart of FIG. 6 is started, for example, when a service use request is made by the user.

まず、端末装置1の第1の端末側鍵生成部15が、自装置(端末装置1)の端末識別情報とSIM識別情報に基づいて、鍵データ3を生成する(ステップS200)。次に、暗号処理部18が、鍵データK3を用いて、記憶部21に格納されたアプリID21A、アプリ認証用パスワード21B、アプリ認証用パスワードの有効期限21C、時刻差分情報21Dを復号する(ステップS202)。   First, the first terminal-side key generation unit 15 of the terminal device 1 generates the key data 3 based on the terminal identification information and the SIM identification information of the own device (terminal device 1) (step S200). Next, the encryption processing unit 18 decrypts the application ID 21A, the application authentication password 21B, the application authentication password expiration date 21C, and the time difference information 21D stored in the storage unit 21, using the key data K3 (step S21). S202).

次に、端末装置1のアプリ実行部14が、アプリ認証用パスワードの有効期限が切れているか否かを判定する(ステップS204)。アプリ認証用パスワードの有効期限が切れている場合、例えば図5のフローチャートの手順が実行される(ステップS206)。   Next, the application execution unit 14 of the terminal device 1 determines whether or not the expiration date of the application authentication password has expired (step S204). When the expiration date of the application authentication password has expired, for example, the procedure of the flowchart of FIG. 5 is executed (step S206).

次に、端末装置1の第2の端末側鍵生成部16が、時計17の出力する時刻と差分時刻情報の示す時間を加算し、認証サーバ3の推定時刻(認証サーバ3と共通する時刻)を算出する(ステップS208)。次に、第2の端末側鍵生成部16が、加算した認証サーバ3の推定時刻の分未満を端数処理して分単位の時刻に丸める(ステップS210)。ステップS210の端数処理は、(a)切り捨て、(b)切り上げ、(c)30秒未満なら切り捨て/30秒以上なら切り上げなど、如何なる処理であっても構わない。   Next, the second terminal-side key generation unit 16 of the terminal device 1 adds the time output by the clock 17 and the time indicated by the difference time information, and the estimated time of the authentication server 3 (the time common to the authentication server 3). Is calculated (step S208). Next, the second terminal-side key generation unit 16 rounds off the minutes less than the added estimated time of the authentication server 3 to a time in minutes (step S210). The rounding process in step S210 may be any process such as (a) rounding down, (b) rounding up, (c) rounding down if less than 30 seconds / rounding up if longer than 30 seconds.

そして、端末装置1の第2の端末側鍵生成部16が、丸めた時刻を用いて鍵データK4を生成する(ステップS212)。ステップS212の処理の詳細については、後述する。   And the 2nd terminal side key generation part 16 of the terminal device 1 produces | generates key data K4 using the rounded time (step S212). Details of the processing in step S212 will be described later.

端末装置1の暗号処理部18は、鍵データK4を用いてアプリ認証用パスワード、端末識別情報、SIM識別情報を暗号化する(ステップS214)。アプリIDと、ステップS214で暗号化されたアプリ認証用パスワード、端末識別情報、SIM識別情報は、サービスサーバ5に送信される(ステップS216)。   The encryption processing unit 18 of the terminal device 1 encrypts the application authentication password, the terminal identification information, and the SIM identification information using the key data K4 (step S214). The application ID, the application authentication password, the terminal identification information, and the SIM identification information encrypted in step S214 are transmitted to the service server 5 (step S216).

サービスサーバ5の認証依頼部52は、受信したアプリIDと、暗号化されたアプリ認証用パスワード、端末識別情報、およびSIM識別情報とを、認証サーバ3に転送する(ステップS218)。   The authentication request unit 52 of the service server 5 transfers the received application ID, the encrypted application authentication password, the terminal identification information, and the SIM identification information to the authentication server 3 (step S218).

サービスサーバ5から情報が転送されて来ると、認証サーバ3の第2のサーバ側鍵生成部33は、時計34が出力した時刻の秒以下を端数処理して分単位の時刻に丸める(ステップS220)。端数処理としては、如何なる処理を行ってもよいが、端末装置1と共通する処理が行われることが望ましい。   When the information is transferred from the service server 5, the second server side key generation unit 33 of the authentication server 3 rounds down the second of the time output by the clock 34 to the time in minutes (step S 220). ). As the fraction processing, any processing may be performed, but it is desirable that processing common to the terminal device 1 is performed.

次に、認証サーバ3の第2のサーバ側鍵生成部33は、丸めた時刻を用いて鍵データK4を生成する(ステップS224)。ステップS224の処理は、端末装置1によりステップS212として行われる処理と同じである。従って、ステップ224における「丸めた時刻」が、S212における「丸めた時刻」と一致すれば、端末装置1と認証サーバ3の双方で生成される鍵データK4は一致する。   Next, the second server-side key generation unit 33 of the authentication server 3 generates key data K4 using the rounded time (step S224). The process in step S224 is the same as the process performed by the terminal device 1 as step S212. Therefore, if the “rounded time” in step 224 matches the “rounded time” in S212, the key data K4 generated by both the terminal device 1 and the authentication server 3 match.

そして、認証サーバ3の暗号処理部35は、生成された鍵データK4を用いてアプリ認証用パスワード、端末識別情報、およびSIM識別情報を復号する(ステップS226)。   Then, the encryption processing unit 35 of the authentication server 3 decrypts the application authentication password, the terminal identification information, and the SIM identification information using the generated key data K4 (step S226).

次に、認証サーバ3の認証部37は、アプリIDをキーとして記憶部38を検索し、アプリ認証用パスワード38B、アプリ認証用パスワードの有効期限38C、端末識別情報38E、SIM識別情報38Fを取得する(ステップS228)。次に、認証部37は、アプリ認証用パスワードの有効期限が切れていないかを検証し(ステップS230)、更に、ステップS226で復号された情報と、記憶部38から取得した情報が一致するか否かを判定して認証を行う(ステップS232)。認証部37は、認証結果をサービスサーバ5に通知する(ステップS234)。なお、認証部37は、アプリ認証用パスワードの有効期限が切れている場合には、認証トークンの払い出し処理などを行う。   Next, the authentication unit 37 of the authentication server 3 searches the storage unit 38 using the application ID as a key, and acquires the application authentication password 38B, the expiration date 38C of the application authentication password, the terminal identification information 38E, and the SIM identification information 38F. (Step S228). Next, the authentication unit 37 verifies whether or not the expiration date of the application authentication password has expired (step S230). Further, whether the information decrypted in step S226 matches the information acquired from the storage unit 38. Authentication is performed by determining whether or not (step S232). The authentication unit 37 notifies the authentication result to the service server 5 (step S234). The authentication unit 37 performs an authentication token payout process or the like when the expiration date of the application authentication password has expired.

サービスサーバ5のサービス提供部53は、認証サーバ3による認証が成功したか否かを判定する(ステップS236)。サービス提供部53は、認証が成功した場合、端末装置1にサービス提供(例えば、メール内容の送信など)を行う(ステップS238)。端末装置1では、アプリ実行部14がサービス内容を出力部12に出力させる(ステップS240)。   The service providing unit 53 of the service server 5 determines whether or not the authentication by the authentication server 3 has succeeded (step S236). If the authentication is successful, the service providing unit 53 provides the terminal device 1 with a service (for example, transmission of mail contents) (step S238). In the terminal device 1, the application execution unit 14 causes the output unit 12 to output the service content (step S240).

ここで、端末装置1において算出される「丸めた時刻」と、認証サーバ3において算出される「丸めた時刻」は、分の切り替わり前後に端末装置1および認証サーバ3で処理が行われた場合や、通信時間が長くなった場合に、ずれを生じる可能性がある。これに対して、認証サーバ3は、自装置が算出した「丸めた時刻」の例えば1分前や1分後、2分前、2分後など、少々ずれた時刻に基づいて端末装置1がK4を生成した可能性を考慮し、以下に説明するように、複数の時刻候補を設定してもよい。   Here, the “rounded time” calculated in the terminal device 1 and the “rounded time” calculated in the authentication server 3 are processed in the terminal device 1 and the authentication server 3 before and after switching of minutes. If the communication time becomes longer, there is a possibility of deviation. On the other hand, the authentication server 3 determines that the terminal device 1 is based on a slightly different time such as 1 minute before, 1 minute, 2 minutes before, 2 minutes after the “rounded time” calculated by itself. Considering the possibility of generating K4, a plurality of time candidates may be set as described below.

図7は、時刻候補が複数設定される場合の処理の流れを示すフローチャートの一部である。図7は、図6のフローチャートにおけるステップS220からステップS234までの処理を変更したものであり、変更箇所以外の箇所を省略して示している。また、図6との間で共通する処理については、同一のステップ番号を付している。   FIG. 7 is a part of a flowchart showing a flow of processing when a plurality of time candidates are set. FIG. 7 shows a modification of the processing from step S220 to step S234 in the flowchart of FIG. 6, and omits parts other than the changed part. Moreover, the same step number is attached | subjected about the process which is common between FIG.

図7において、ステップS220の端数処理が行われると、認証サーバ3の第2のサーバ側鍵生成部33は、時刻候補を複数設定し、まず、第1候補の時刻候補を選択する(ステップS222)。例えば、ステップS220における端数処理が「切り捨て」であり、時計34の出力した時刻が12時01分25秒であったとすると、第2のサーバ側鍵生成部33は、端数処理によって丸めた時刻(12時01分)を第1候補とし、これに1分を加算した時刻(12時02分)を第2候補とし、2分を加算した時刻(12時03分)を第3候補とし、というように、所定数の時刻候補を順に設定する。これに限らず、第2のサーバ側鍵生成部33は、端数処理によって丸めた時刻から所定数を減算した時刻候補を設定してもよい。そして、第2のサーバ側鍵生成部33は、選択した時刻候補を用いて鍵データK4を生成する(ステップS224)。   In FIG. 7, when the fraction processing in step S220 is performed, the second server-side key generation unit 33 of the authentication server 3 sets a plurality of time candidates, and first selects the first candidate time candidate (step S222). ). For example, if the rounding process in step S220 is “rounded down” and the time output by the clock 34 is 12:01:25, the second server-side key generation unit 33 uses the rounded time ( 12:01) is the first candidate, the time when 1 minute is added to this (12:02) is the second candidate, and the time when 12 minutes is added (12:03) is the third candidate. As described above, a predetermined number of time candidates are set in order. Not limited to this, the second server-side key generation unit 33 may set a time candidate obtained by subtracting a predetermined number from the time rounded by the fraction processing. Then, the second server-side key generation unit 33 generates key data K4 using the selected time candidate (step S224).

以下、図6と同様に、暗号処理部35が鍵データK4を用いてアプリ認証用パスワードなどを復号し(ステップS226)、認証部37がアプリ認証用パスワード38Bなどを取得し(ステップS228)、アプリ認証用パスワードの有効期限が切れていないかを検証し(ステップS230)、ステップS226で復号された情報と、記憶部38から取得した情報が一致するか否かを判定して認証を行う(ステップS232)。   Thereafter, similarly to FIG. 6, the encryption processing unit 35 decrypts the application authentication password using the key data K4 (step S226), and the authentication unit 37 acquires the application authentication password 38B (step S228). It is verified whether the password for application authentication has expired (step S230), and authentication is performed by determining whether the information decrypted in step S226 matches the information acquired from the storage unit 38 (step S230). Step S232).

図7において、ステップS232で認証が行われると、認証サーバ3の第2のサーバ側鍵生成部33は、認証が成功したか否かを判定する(ステップS250)。認証が失敗した場合、第2のサーバ側鍵生成部33は、所定数(例えば3個など)の時刻候補を既に選択し、これに基づいて所定数の鍵データK4を生成したか否かを判定する(ステップS252)。所定数の時刻候補を未だ選択していない場合、第2のサーバ側鍵生成部33は、次の時刻候補を選択し(ステップS254)、ステップS224に戻る。この結果、新たに選択された時刻候補に基づいて鍵データK4が生成され、アプリ認証用パスワードなどの復号が行われる。所定数の時刻候補が既に選択されている場合、認証サーバ3は、ステップS234に進み、認証失敗をサービスサーバ5に通知する。   In FIG. 7, when authentication is performed in step S232, the second server-side key generation unit 33 of the authentication server 3 determines whether the authentication is successful (step S250). If the authentication fails, the second server side key generation unit 33 has already selected a predetermined number (for example, three) of time candidates, and determines whether or not a predetermined number of key data K4 has been generated based on this. Determination is made (step S252). If the predetermined number of time candidates have not yet been selected, the second server-side key generation unit 33 selects the next time candidate (step S254) and returns to step S224. As a result, key data K4 is generated based on the newly selected time candidate, and the application authentication password and the like are decrypted. If the predetermined number of time candidates have already been selected, the authentication server 3 proceeds to step S234 and notifies the service server 5 of the authentication failure.

[時刻に基づいて演算手順が選択される鍵データ生成手順]
以下、図6または図7のフローチャートにおけるステップS212、およびステップS224の処理について、より詳細に説明する。なお、以下に具体例として示す演算手順は、あくまで一例であり、時刻に基づいて演算手順が選択される性質を有する限り、如何なる演算手順が実行されてもよい。
[Key data generation procedure in which calculation procedure is selected based on time]
Hereinafter, the processing of step S212 and step S224 in the flowchart of FIG. 6 or 7 will be described in more detail. Note that the calculation procedure shown below as a specific example is merely an example, and any calculation procedure may be executed as long as the calculation procedure is selected based on time.

第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、例えば以下のように定義された関数を使用する。「hash()」は、括弧内の値のハッシュ値を求める関数である。時刻情報は、第2の端末側鍵生成部16においてはステップS210で生成された「丸めた時刻」である。また、時刻情報は、第2のサーバ側鍵生成部33においてはステップS220で生成された「丸めた時刻」、或いはステップS222またはステップS254で選択された時刻候補(図7のフローチャートを実行する場合)である。
x=hash(時刻情報)
y=hash(アプリ認証用パスワード)
N=アプリ認証用パスワードの最下位バイトの値
α=アプリ認証用パスワードの最上位バイトの値
The second terminal side key generation unit 16 and the second server side key generation unit 33 use functions defined as follows, for example. “Hash ()” is a function for obtaining a hash value of a value in parentheses. The time information is the “rounded time” generated in step S210 in the second terminal-side key generation unit 16. The time information is the “rounded time” generated in step S220 in the second server-side key generation unit 33, or the time candidate selected in step S222 or step S254 (when executing the flowchart of FIG. 7). ).
x = hash (time information)
y = hash (password for app authentication)
N = Value of the least significant byte of the password for application authentication α = Value of the most significant byte of the password for application authentication

図8および図9は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。図8は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行されるメインのループ処理を示す図であり、図9は、メインのループ処理によって呼び出される関数を示す図である。   FIG. 8 and FIG. 9 are diagrams illustrating processing executed by the second terminal-side key generation unit 16 and the second server-side key generation unit 33 in the form of codes. FIG. 8 is a diagram showing main loop processing executed by the second terminal-side key generation unit 16 and the second server-side key generation unit 33, and FIG. 9 shows functions called by the main loop processing. FIG.

図8に示すように、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、関数func1〜func3のいずれかを選択して実行することを、N回繰り返し実行する(図中、(1)(2)(5)が相当)。そして、いずれの関数を選択するかは、パラメータαを3で除算した剰余によって決定される(図中、(3)〜(4))が相当)。   As shown in FIG. 8, the second terminal-side key generation unit 16 and the second server-side key generation unit 33 repeatedly execute N times by selecting and executing any one of the functions func1 to func3 ( (In the figure, (1), (2) and (5) correspond). Which function is selected is determined by the remainder obtained by dividing the parameter α by 3 (corresponding to (3) to (4) in the figure).

図9(A)は、メインのループ処理によって呼び出される関数func1の内容を示し、図9(B)は、関数func2の内容を示し、図9(C)は、関数func3の内容を示す。また、図9において、「OR」は、演算子の左右のオペランド(ビット列)の各ビットの論理和を並べたビット列を求めることを示し、「AND」は演算子の左右のオペランド(ビット列)の各ビットの論理積を並べたビット列を求めることを示し、「XOR」は、演算子の左右のオペランド(ビット列)の各ビットの排他的論理和を並べたビット列を求めることを示す。また、図9において、msは最上位ビットを求める関数であり、lsは最下位ビットを求める関数である。   9A shows the contents of the function func1 called by the main loop process, FIG. 9B shows the contents of the function func2, and FIG. 9C shows the contents of the function func3. In FIG. 9, “OR” indicates that a bit string in which the logical sum of each bit of the left and right operands (bit string) of the operator is arranged is obtained, and “AND” indicates that the left and right operands (bit string) of the operator are “XOR” indicates that a bit string in which exclusive OR of each bit of the left and right operands (bit strings) of the operator is arranged is obtained. In FIG. 9, ms is a function for obtaining the most significant bit, and ls is a function for obtaining the least significant bit.

パラメータαは、図8に示すループ処理の1回目では、アプリ認証用パスワードの最上位バイトの値、すなわち時刻情報とは無関係であるが、図9に示すように、ループ処理の2回目以降では、時刻情報を反映した「x」の内容に基づくものとなっている。このため、ループ処理の2回目以降では、時刻情報に基づいて、互いに異なる複数の関数(演算手順)func1〜func3のうち1つが選択される。   The parameter α is irrelevant to the value of the most significant byte of the application authentication password, that is, the time information, in the first loop process shown in FIG. 8, but as shown in FIG. 9, in the second and subsequent loop processes. , Based on the contents of “x” reflecting the time information. Therefore, in the second and subsequent loop processing, one of a plurality of different functions (calculation procedures) func1 to func3 is selected based on the time information.

そして、N回のループ処理が行われた結果、例えば最後に演算結果として得られたビット列「y」が、鍵データK4に設定される。   Then, as a result of N times of loop processing, for example, the bit string “y” finally obtained as the operation result is set in the key data K4.

なお、上記の例では、ループ回数を決定するNを、アプリ認証用パスワードの最下位バイトの値に設定するものとしたが、ループ回数を決定するNについても、時刻情報に基づく値に設定してよい。   In the above example, N for determining the number of loops is set to the value of the least significant byte of the password for application authentication. However, N for determining the number of loops is also set to a value based on time information. It's okay.

このように、本実施形態の通信システム1は、時刻情報に基づいて演算手順が選択されることを含む処理によって、鍵データK4を生成することにより、セキュリティ性を向上させることができる。   As described above, the communication system 1 according to the present embodiment can improve the security by generating the key data K4 by the process including the selection of the calculation procedure based on the time information.

前述したように、端末装置1にインストールされたアプリが暗号処理手順や鍵データの生成手順を記述している場合、解析者は、インストールされた鍵データの生成手順を含むアプリを他のコンピュータ装置等に吸い出し、鍵データの生成手順を解析することが可能である。図10は、アプリがシミュレーション環境下で(上記「他のコンピュータ装置等」で)実行する一連の命令を、アセンブリ形式で表した図である。解析者は、図10で示すような命令の流れを見ることができる可能性がある。従って、鍵データの生成手順がいつも同じであると、どこからどこまでが鍵データの生成手順であるか見当を付け易く、アプリの実行に伴ってメモリに格納される値を併せて考慮することによって、鍵データの生成手順が判明してしまう可能性が高くなってしまう。   As described above, when the application installed in the terminal device 1 describes the encryption processing procedure and the key data generation procedure, the analyst can transfer the application including the installed key data generation procedure to another computer device. It is possible to analyze the key data generation procedure. FIG. 10 is a diagram showing a series of instructions executed by the application in a simulation environment (in the above-mentioned “other computer apparatus”) in an assembly format. The analyst may be able to see the flow of instructions as shown in FIG. Therefore, if the key data generation procedure is always the same, it is easy to determine where the key data generation procedure is, and by taking into account the value stored in the memory as the application is executed, There is a high possibility that the key data generation procedure will be revealed.

これに対し、本実施形態の第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、時刻情報に基づいて演算手順が選択されることを含む処理によって、鍵データK4を生成するため、鍵データの生成手順は毎回異なるものとなる(同じ時間の同じ分に生成された場合を除く)。従って、図10に示す(1)〜(10)の命令が、例えば(8)→(4)→(2)→(1)→(7)の順で実行されたり、(5)→(1)→(9)→(3)の順で実行されたりするため、解析者にとって、どこからどこまでが鍵データの生成手順であるか見当を付けるのが困難となる。この結果、本実施形態の通信システム1は、セキュリティ性を向上させることができる。   On the other hand, the second terminal-side key generation unit 16 and the second server-side key generation unit 33 of the present embodiment obtain the key data K4 by a process including selection of a calculation procedure based on time information. In order to generate the key data, the key data generation procedure is different every time (except when the key data is generated at the same time and at the same time). Accordingly, the instructions (1) to (10) shown in FIG. 10 are executed in the order of (8) → (4) → (2) → (1) → (7), or (5) → (1 ) → (9) → (3), it is difficult for the analyst to determine where the key data is generated from where. As a result, the communication system 1 of the present embodiment can improve security.

また、一度、サーバ時刻情報を取得して時刻差分情報を記憶部21に格納してしまえば、端末装置1と認証サーバ3は、それぞれの時計に基づいて、端末装置1と認証サーバ3で共通する時刻情報を取得することができる。このため、共通する時刻情報を暗号化通信の度に送受信するといった処理を行う必要が無いため、鍵データの生成手順を毎回変更することに起因して通信コストは増加しない。サーバ時刻情報の取得自体は、サービス提供を受けるための通常の処理として実行されるものであるため、通信コストの増加を招くものではない。   Further, once the server time information is acquired and the time difference information is stored in the storage unit 21, the terminal device 1 and the authentication server 3 are common to the terminal device 1 and the authentication server 3 based on the respective clocks. Time information can be acquired. For this reason, since it is not necessary to perform a process of transmitting / receiving common time information each time encrypted communication is performed, the communication cost does not increase due to changing the key data generation procedure each time. The acquisition of the server time information itself is executed as a normal process for receiving service provision, and thus does not cause an increase in communication cost.

また、時刻情報を暗号化通信の度に送受信すると、解析者が送受信情報を傍受した場合に、鍵データの生成手順に時刻情報を用いているかも知れないというヒントを解析者に与えてしまう可能性がある。しかしながら、本実施形態の通信システム1は、暗号化通信の度に時刻情報を送受信しないため、セキュリティ性の低下を防止することができる。   Also, sending and receiving time information every time encrypted communication can give the analyst a hint that the time information may be used in the key data generation procedure if the analyst intercepts the sent and received information There is sex. However, since the communication system 1 of the present embodiment does not transmit / receive time information every time encrypted communication is performed, it is possible to prevent a decrease in security.

これらの結果、本実施形態の通信システムは、通信コストを抑制しつつ、セキュリティ性を向上させることができる。   As a result, the communication system of this embodiment can improve security while suppressing communication costs.

なお、時刻に基づいて演算手順が選択される鍵データ生成手順は、認証を行う場面以外の場面においても行われてよい。例えば、端末装置1がサービスサーバ5とデータを送受信する際に行われてもよいし、その他の場面で行われてもよい。   Note that the key data generation procedure in which the calculation procedure is selected based on the time may be performed in a scene other than the scene where authentication is performed. For example, it may be performed when the terminal device 1 transmits / receives data to / from the service server 5 or may be performed in other situations.

[鍵データ生成手順の応用例]
なお、上記では、時刻情報とアプリ認証用パスワードを入力パラメータとする簡易な鍵データ生成手順を例示したが、入力パラメータを増加させることによって、よりセキュリティ性の高い暗号化を行うことができる。
[Application example of key data generation procedure]
In the above, a simple key data generation procedure using the time information and the application authentication password as input parameters has been exemplified. However, by increasing the input parameters, it is possible to perform encryption with higher security.

例えば、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、時刻情報およびアプリ認証用パスワードに加えて、端末識別情報、SIM識別情報などを入力パラメータとすることができる。入力パラメータを例えばy1,y2,‥,ykのk個とし、そのうちの少なくとも1つの入力パラメータを、時刻情報を反映したものとする。そして、例えばm個の互いに異なる関数func1〜funcmを定義し、図11に例示するループ処理を実行する。図11は、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33により実行される処理をコードの形式で示す図である。関数funcmは、例えば以下のように概念的に表される。各定義式において、f1m、f2m、fkm、gmは、引数mが異なれば内容が異なり、括弧内のデータを入力パラメータとする任意の関数(演算手順)である。   For example, the second terminal side key generation unit 16 and the second server side key generation unit 33 can use terminal identification information, SIM identification information, and the like as input parameters in addition to time information and an application authentication password. . Assume that there are k input parameters y1, y2,..., Yk, for example, and at least one input parameter reflects time information. Then, for example, m different functions func1 to funcm are defined, and the loop processing illustrated in FIG. 11 is executed. FIG. 11 is a diagram illustrating processing executed by the second terminal-side key generation unit 16 and the second server-side key generation unit 33 in the form of a code. The function funcm is conceptually expressed as follows, for example. In each definition formula, f1m, f2m, fkm, and gm are different functions when the argument m is different, and are arbitrary functions (calculation procedures) using data in parentheses as input parameters.

funcm{
y1=f1m(y1,y2,‥,yk,α);
y2=f2m(y1,y2,‥,yk,α);

yk=fkm(y1,y2,‥,yk,α);
α =gm(y1,y2,‥,yk,α);
funcm {
y1 = f1m (y1, y2,..., yk, α);
y2 = f2m (y1, y2,..., yk, α);
...
yk = fkm (y1, y2,..., yk, α);
α = gm (y1, y2,..., yk, α);
}

[まとめ]
以上説明した本実施形態の端末装置1および認証サーバ3を含む通信システムによれば、通信コストを抑制しつつ、セキュリティ性を向上させることができる。
[Summary]
According to the communication system including the terminal device 1 and the authentication server 3 of the present embodiment described above, it is possible to improve security while suppressing communication costs.

<第2実施形態>   Second Embodiment

以下、本発明の第2実施形態に係る通信システムについて説明する。第2実施形態における端末装置1および認証サーバ3が有する時計17および34は、例えば電波時計のように、標準時刻を取得可能な時計である。このため、第2実施形態に係る端末装置1では、差分演算部20を省略することが可能であり、時刻差分情報21Dを記憶部21に格納する必要がない。   The communication system according to the second embodiment of the present invention will be described below. The clocks 17 and 34 included in the terminal device 1 and the authentication server 3 in the second embodiment are clocks that can acquire a standard time, such as a radio clock. For this reason, in the terminal device 1 which concerns on 2nd Embodiment, it is possible to abbreviate | omit the difference calculating part 20, and it is not necessary to store the time difference information 21D in the memory | storage part 21. FIG.

この場合、端末装置1で暗号化データが生成される際に時計17の出力する時刻と、認証サーバ3が暗号化データを受信して復号をする際に時計34の出力する時刻は、一致する可能性が高い。また、端末装置1と認証サーバ3の双方において分未満の端数処理を行うのであれば、通信環境が良好ならば、通信時間は誤差の範囲内となる可能性が高い。このため、第2の端末側鍵生成部16および第2のサーバ側鍵生成部33は、それぞれ時計17および34が出力する時刻(或いは端数処理を行って丸めたもの)を、共通する時刻として扱う。   In this case, the time output from the clock 17 when the encrypted data is generated by the terminal device 1 and the time output from the clock 34 when the authentication server 3 receives and decrypts the encrypted data match. Probability is high. Further, if fractional processing of less than a minute is performed in both the terminal device 1 and the authentication server 3, the communication time is likely to be within the error range if the communication environment is good. For this reason, the second terminal-side key generation unit 16 and the second server-side key generation unit 33 use the times (or rounded values obtained by rounding off) output from the clocks 17 and 34 as common times, respectively. deal with.

<ハードウェア構成等>
前述した各実施形態における端末装置1、認証サーバ3、およびサービスサーバ5は、内部にコンピュータシステムを有している。「コンピュータシステム」は、CPU(Central Processing Unit)、RAM(Random Access Memory)等のメモリ装置、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等の記憶装置、記憶媒体を装着可能なドライブ装置、周辺機器等のハードウェアを含むものである。
<Hardware configuration>
The terminal device 1, the authentication server 3, and the service server 5 in each embodiment described above have a computer system therein. The “computer system” includes a memory device such as a CPU (Central Processing Unit) and a RAM (Random Access Memory), a storage device such as a ROM (Read Only Memory), an HDD (Hard Disk Drive), and an SSD (Solid State Drive). It includes hardware such as a drive device and a peripheral device in which a medium can be mounted.

そして、前述した端末装置1のアプリ実行部14、第1の端末側鍵生成部15、第2の端末側鍵生成部16、暗号処理部18、認証トークン取得部19、差分演算部20、認証サーバ3の第1のサーバ側鍵生成部32、第2のサーバ側鍵生成部33、暗号処理部35、認証トークン生成部36、認証部37等の動作の過程は、例えば、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。なお、上記各機能部の処理が、全てプログラムを実行することによって行われる必要は無く、一部の機能部は、IC(Integrated Circuit)やLSI(Large Scale Integration)などのハードウェアによって実現されてもよい。   And the application execution part 14, the 1st terminal side key generation part 15, the 2nd terminal side key generation part 16, the encryption process part 18, the authentication token acquisition part 19, the difference calculating part 20, authentication of the terminal device 1 mentioned above The operation process of the first server side key generation unit 32, the second server side key generation unit 33, the encryption processing unit 35, the authentication token generation unit 36, the authentication unit 37, etc. of the server 3 is, for example, in the form of a program. The program is stored in a computer-readable recording medium, and the above processing is performed by the computer system reading and executing this program. Note that the processing of each functional unit need not be performed by executing a program, and some functional units are realized by hardware such as IC (Integrated Circuit) and LSI (Large Scale Integration). Also good.

「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光ディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるHDD等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。   The “computer-readable recording medium” refers to a portable medium such as a flexible disk, an optical disk, a magneto-optical disk, a ROM, and a CD-ROM, and a storage device such as an HDD built in the computer system. Furthermore, the “computer-readable recording medium” dynamically holds a program for a short time like a communication line when transmitting a program via a network such as the Internet or a communication line such as a telephone line. In this case, a volatile memory in a computer system serving as a server or a client in that case, and a program that holds a program for a certain period of time are also included.

また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、更に、前述した機能を、コンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。   The program may be for realizing a part of the functions described above, and further, the program described above may be realized in combination with a program already recorded in a computer system. good.

なお、上記各実施形態における第2の端末側鍵生成部16が、「第1の通信装置側鍵生成部」の一例であり、第2のサーバ側鍵生成部33が、「第2の通信装置側鍵生成部」の一例である。   The second terminal side key generation unit 16 in each of the above embodiments is an example of a “first communication device side key generation unit”, and the second server side key generation unit 33 includes “second communication”. It is an example of a “device-side key generation unit”.

<その他>
以上、本発明を実施するための形態について実施形態を用いて説明したが、本発明はこうした実施形態に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形、置換、他の構成要素の追加などを行うことができる。
<Others>
As mentioned above, although the form for implementing this invention was demonstrated using embodiment, this invention is not limited to such embodiment at all, In the range which does not deviate from the summary of this invention, various deformation | transformation and substitution Other components can be added.

例えば、第1実施形態では、端末装置1で時刻差分情報に基づく演算を行った結果として得られる時刻に基づき鍵データK4を生成し、認証サーバで自装置の時計34の出力した時刻に基づき鍵データK4を生成するものとしたが、この関係は逆であってもよい。すなわち、認証サーバ3が、予め時刻差分情報を保持しておき、端末装置1が、時計17の出力した時刻に基づいて鍵データK4を生成し、認証サーバ3が、暗号化データの受信時に時計34の出力した時刻に時刻差分情報を加算(または減算)した時刻に基づいて鍵データK4を生成してもよい。   For example, in the first embodiment, the key data K4 is generated based on the time obtained as a result of the calculation based on the time difference information in the terminal device 1, and the key is based on the time output from the clock 34 of the own device by the authentication server. Although the data K4 is generated, this relationship may be reversed. That is, the authentication server 3 holds the time difference information in advance, the terminal device 1 generates the key data K4 based on the time output from the clock 17, and the authentication server 3 receives the clock when receiving the encrypted data. The key data K4 may be generated based on the time obtained by adding (or subtracting) the time difference information to the time outputted by 34.

1 端末装置
11 入力部
12 出力部
13 通信部
14 アプリ実行部
15 第1の端末側鍵生成部
16 第2の端末側鍵生成部
17 時計
18 暗号処理部
19 認証トークン取得部
20 差分演算部
21 記憶部
21A アプリID
21B アプリ認証用パスワード
21C アプリ認証用パスワードの有効期限
21D 時刻差分情報
3 認証サーバ
31 通信部
32 第1のサーバ側鍵生成部
33 第2のサーバ側鍵生成部
34 時計
35 暗号処理部
36 認証トークン生成部
37 認証部
38 記憶部
38A アプリID
38B アプリ認証用パスワード
38C アプリ認証用パスワードの有効期限
38D サーバ時刻情報
38E 端末識別情報
38F SIM識別情報
5 サービスサーバ
9 ネットワーク
DESCRIPTION OF SYMBOLS 1 Terminal device 11 Input part 12 Output part 13 Communication part 14 Application execution part 15 1st terminal side key generation part 16 2nd terminal side key generation part 17 Clock 18 Cryptographic process part 19 Authentication token acquisition part 20 Difference calculation part 21 Storage unit 21A App ID
21B Application authentication password 21C Application authentication password expiration date 21D Time difference information 3 Authentication server 31 Communication unit 32 First server side key generation unit 33 Second server side key generation unit 34 Clock 35 Cryptographic processing unit 36 Authentication token Generation unit 37 Authentication unit 38 Storage unit 38A Application ID
38B Application Authentication Password 38C Application Authentication Password Expiration Date 38D Server Time Information 38E Terminal Identification Information 38F SIM Identification Information 5 Service Server 9 Network

Claims (6)

第1の通信装置と第2の通信装置とを備える通信システムであって、
前記第1の通信装置は、
互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する第1の通信装置側鍵生成部と、
前記第1の通信装置側鍵生成部により生成された鍵データを用いてデータを暗号化する暗号化部と、
前記暗号化されたデータを前記第2の通信装置に送信する送信部と、を備え、
前記第2の通信装置は、
前記第1の通信装置から前記暗号化されたデータを受信する受信部と、
前記共通する時刻の分未満を端数処理した時刻に基づいて、前記複数の演算手順から一以上の演算手順を選択することを含む処理によって鍵データを生成する第2の通信装置側鍵生成部と、
前記第2の通信装置側鍵生成部により生成された鍵データを用いて前記暗号化されたデータを復号する復号部と、
前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、
を備え、
前記認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記第2の通信装置側鍵生成部は、前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、
通信システム。
A communication system comprising a first communication device and a second communication device,
The first communication device is:
Key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding a fraction less than a common time between the own device and the second communication device. A first communication device side key generation unit for generating
An encryption unit that encrypts data using the key data generated by the first communication device side key generation unit;
A transmission unit for transmitting the encrypted data to the second communication device,
The second communication device is:
A receiving unit for receiving the encrypted data from the first communication device;
A second communication device-side key generation unit that generates key data by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by performing fraction processing on less than the common time; ,
A decryption unit for decrypting the encrypted data using the key data generated by the second communication device side key generation unit;
An authentication unit that performs authentication by determining whether or not the decrypted data matches predetermined data;
With
In the determination by the authentication unit, if the decrypted data does not match the predetermined data,
The second communication device side key generation unit selects one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a fractional processing time less than the common time by a predetermined amount. Generate key data generated by the process including,
The authentication unit uses the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, and the data decrypted by the decryption unit matches the predetermined data Determine again whether or not to
Communications system.
請求項1に記載の通信システムであって、
前記互いに異なる複数の演算手順は、論理演算の組み合わせが互いに異なる演算手順、または、繰り返し行われる演算の繰り返し回数が互いに異なる演算手順、または、論理演算の組み合わせが互いに異なり且つ繰り返し行われる演算の繰り返し回数が互いに異なる演算手順である、
通信システム。
The communication system according to claim 1,
The plurality of different arithmetic procedures are arithmetic procedures with different combinations of logical operations, arithmetic procedures with different numbers of repeated operations, or repeated operations with different combinations of logical operations and repeated operations. The number of times is a different calculation procedure.
Communications system.
請求項1または2に記載の通信システムであって、
前記第1の通信装置は、
時刻を出力する時計と、
前記第2の通信装置から取得した前記第2の通信装置側の時刻と、前記時計が出力した時刻との差分を演算して記憶部に格納する差分演算部と、を備え、
前記第1の通信装置側鍵生成部は、前記時計が出力した時刻と前記記憶部に格納された差分を加算した時刻を、前記共通する時刻として用い、
前記第2の通信装置は、自装置が備える時計が出力する時刻を、前記共通する時刻として用いる、
通信システム。
The communication system according to claim 1 or 2,
The first communication device is:
A clock that outputs the time,
A difference calculation unit that calculates a difference between the time on the second communication device acquired from the second communication device and the time output by the timepiece and stores the difference in a storage unit;
The first communication device side key generation unit uses, as the common time, a time obtained by adding the time output from the clock and the difference stored in the storage unit,
The second communication device uses a time output by a clock included in the device as the common time.
Communications system.
第1の通信装置と第2の通信装置とを備える通信システムが行う通信方法であって、
前記第1の通信装置が、
互いに異なる複数の演算手順から、自装置と前記第2の通信装置との間で共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、
前記第1の通信装置において生成された鍵データを用いてデータを暗号化し、
前記暗号化されたデータを前記第2の通信装置に送信し、
前記第2の通信装置が、
前記暗号化されたデータを前記第1の通信装置から受信し、
前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成し、
前記第2の通信装置において生成された鍵データを用いて前記暗号化されたデータを復
し、
前記復号されたデータが所定のデータと一致するか否かを判定し、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記複数の演算手順から、前記共通する時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記第2の通信装置において前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定する、
通信方法。
A communication method performed by a communication system including a first communication device and a second communication device,
The first communication device is
Key data by a process including selecting one or more calculation procedures from a plurality of different calculation procedures based on a time obtained by rounding a fraction less than a common time between the own device and the second communication device. Produces
Encrypting the data using the key data generated in the first communication device;
Sending the encrypted data to the second communication device;
The second communication device is
Receiving the encrypted data from the first communication device;
From the plurality of calculation procedures, generate key data by a process including selecting one or more calculation procedures based on a time obtained by rounding the fraction of the common time.
Decrypting the encrypted data using the key data generated in the second communication device ;
It is determined whether or not the decoded data matches the predetermined data, and in the determination, if the decoded data does not match the predetermined data,
From the plurality of calculation procedures, generate key data generated by a process including selecting one or more calculation procedures based on a time shifted by a predetermined amount from a time when the fractional processing of less than the common time is performed,
Using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount in the second communication device, the decrypted data matches the predetermined data. Determine again whether or not
Communication method.
互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成する鍵生成部と、
前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化されたデータを復号する復号部と、
前記復号されたデータが所定のデータと一致するか否かを判定することにより認証を行う認証部と、を備え、
該認証部による判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記鍵生成部は、前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成し、
前記認証部は、前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号部により復号されたデータが所定のデータと一致するか否かを再度判定する、
通信装置。
A key generation unit that generates key data by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction less than a time from a plurality of different calculation procedures;
A decryption unit for decrypting encrypted data that is data received from another device using the generated key data;
An authentication unit that performs authentication by determining whether or not the decrypted data matches predetermined data,
In the determination by the authentication unit, when the decrypted data does not match the predetermined data,
The key generation unit generates key data generated by a process including selecting one or more calculation procedures from the plurality of calculation procedures based on a time obtained by shifting a time obtained by rounding a fractional part of the time by a predetermined amount. Produces
The authentication unit uses the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, and the data decrypted by the decryption unit matches the predetermined data Determine again whether or not to
Communication device.
通信装置に、
互いに異なる複数の演算手順から、時刻の分未満を端数処理した時刻に基づいて一以上の演算手順を選択することを含む処理によって鍵データを生成させ、
前記生成された鍵データを用いて、他装置から受信したデータであって、暗号化された
データを復号させ、
前記復号されたデータが所定のデータと一致するか否かを判定させ、前記判定において、前記復号されたデータが所定のデータと一致しなかった場合、
前記複数の演算手順から、前記時刻の分未満を端数処理した時刻を所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成される鍵データを生成させ、
前記所定分ずらした時刻に基づいて一以上の演算手順を選択することを含む処理によって生成された鍵データを用いて、前記復号されたデータが所定のデータと一致するか否かを再度判定させる、
通信プログラム。
In the communication device,
Key data is generated by a process including selecting one or more calculation procedures based on a time obtained by rounding a fraction of a time from a plurality of different calculation procedures,
Using the generated key data, the data received from another device, the encrypted data is decrypted,
In the case where the decrypted data does not match the predetermined data in the determination, it is determined whether or not the decrypted data matches the predetermined data.
From the plurality of calculation procedures, generate key data generated by a process including selecting one or more calculation procedures based on a time shifted by a predetermined amount from the time when the fractional processing of the time is less than a minute,
Using the key data generated by the process including selecting one or more calculation procedures based on the time shifted by the predetermined amount, it is determined again whether or not the decrypted data matches the predetermined data. ,
Communication program.
JP2012251172A 2012-11-15 2012-11-15 COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM Active JP5997588B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012251172A JP5997588B2 (en) 2012-11-15 2012-11-15 COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012251172A JP5997588B2 (en) 2012-11-15 2012-11-15 COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM

Publications (2)

Publication Number Publication Date
JP2014099793A JP2014099793A (en) 2014-05-29
JP5997588B2 true JP5997588B2 (en) 2016-09-28

Family

ID=50941455

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012251172A Active JP5997588B2 (en) 2012-11-15 2012-11-15 COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM

Country Status (1)

Country Link
JP (1) JP5997588B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI694707B (en) * 2016-10-03 2020-05-21 日商日本電氣股份有限公司 Communication device, communication method, communication system and recording medium
US11528260B2 (en) 2018-09-20 2022-12-13 Sony Semiconductor Solutions Corporation Transmitting device and transmitting method, and receiving device and receiving method
US10826912B2 (en) * 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
CN112073188B (en) * 2020-08-31 2023-01-24 北京市商汤科技开发有限公司 Authentication method, device, equipment and computer readable storage medium

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61194940A (en) * 1985-02-22 1986-08-29 Nec Corp Data communication equipment
JP2689383B2 (en) * 1988-02-18 1997-12-10 株式会社 日立製作所 Encrypted communication system
JPH06282504A (en) * 1993-03-30 1994-10-07 Mitsubishi Electric Corp Time control system
JP4815855B2 (en) * 2005-04-20 2011-11-16 ブラザー工業株式会社 Encryption key setting device

Also Published As

Publication number Publication date
JP2014099793A (en) 2014-05-29

Similar Documents

Publication Publication Date Title
WO2022206349A1 (en) Information verification method, related apparatus, device, and storage medium
US20230269241A1 (en) Secure multi-party protocol
EP3420677B1 (en) System and method for service assisted mobile pairing of password-less computer login
CN109150499B (en) Method and device for dynamically encrypting data, computer equipment and storage medium
KR101130415B1 (en) A method and system for recovering password protected private data via a communication network without exposing the private data
US10164963B2 (en) Enforcing server authentication based on a hardware token
JP6399382B2 (en) Authentication system
KR20180053701A (en) Local device authentication
US20130019299A1 (en) Distributed Authentication with Data Cloud
JP5997588B2 (en) COMMUNICATION SYSTEM, COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM
US20170279798A1 (en) Multi-factor authentication system and method
JP5206992B2 (en) Authentication system, authentication device, terminal device, authentication method, and program
KR20160066728A (en) Nfc package for storing biometric information and electronic device
WO2019120038A1 (en) Encrypted storage of data
US10635826B2 (en) System and method for securing data in a storage medium
JP3833652B2 (en) Network system, server device, and authentication method
JP2007058487A (en) Log-in information management device and method
CN113507482B (en) Data security transmission method, security transaction method, system, medium and equipment
CN107548542B (en) User authentication method with enhanced integrity and security
CN113329004B (en) Authentication method, system and device
JP2007060581A (en) Information management system and method
WO2017029708A1 (en) Personal authentication system
CN112150151B (en) Secure payment method, apparatus, electronic device and storage medium
JP2019057827A (en) Distributed authentication system and program
JP2012128726A (en) Network authentication system, network authentication method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150324

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151222

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160408

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20160510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160721

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20160803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160823

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160826

R150 Certificate of patent or registration of utility model

Ref document number: 5997588

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350