JP4983165B2 - 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体 - Google Patents

通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体 Download PDF

Info

Publication number
JP4983165B2
JP4983165B2 JP2006240065A JP2006240065A JP4983165B2 JP 4983165 B2 JP4983165 B2 JP 4983165B2 JP 2006240065 A JP2006240065 A JP 2006240065A JP 2006240065 A JP2006240065 A JP 2006240065A JP 4983165 B2 JP4983165 B2 JP 4983165B2
Authority
JP
Japan
Prior art keywords
capability
algorithm
capability list
list
information processing
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.)
Expired - Fee Related
Application number
JP2006240065A
Other languages
English (en)
Other versions
JP2008066834A (ja
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.)
Sony Corp
Original Assignee
Sony 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
Priority to JP2006240065A priority Critical patent/JP4983165B2/ja
Application filed by Sony Corp filed Critical Sony Corp
Priority to CN201410465047.5A priority patent/CN104283676A/zh
Priority to CNA2007800012933A priority patent/CN101356763A/zh
Priority to EP07806711A priority patent/EP2023527A4/en
Priority to KR1020087010733A priority patent/KR101464768B1/ko
Priority to PCT/JP2007/067256 priority patent/WO2008029823A1/ja
Priority to US12/090,878 priority patent/US8811613B2/en
Publication of JP2008066834A publication Critical patent/JP2008066834A/ja
Application granted granted Critical
Publication of JP4983165B2 publication Critical patent/JP4983165B2/ja
Priority to US14/341,166 priority patent/US9325673B2/en
Priority to US15/073,255 priority patent/US9973479B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/04Key management, e.g. using generic bootstrapping architecture [GBA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/50Secure pairing of devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • H04L63/205Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks

Description

本発明は、通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体に関し、特に、安全かつ利便性の高い情報通信を行うときに、互いの通信能力などを考慮して通信が行えるようにする通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体に関する。
情報技術の発展に伴い、コンピュータ等の情報処理装置をWLAN(Wireless Local Area Network)や、Bluetooth(登録商標)等の無線通信手段で接続し、ファイルやデータ等の情報を送受信したり、共有したりする通信システムが構築されている。
Bluetooth等を用いた広域通信可能な通信装置を携帯電話、パーソナルコンピュータに搭載した広域通信機能搭載機器を利用して、動画データや、音楽データ等の大容量データを送受信している。また、一方で広域通信によるデータ通信において、第三者の広域通信機能搭載機器によってデータが盗聴されたり、データが改ざんされたりする等のセキュリティ上の危険性を低減するため、広域通信においても、データを暗号化する暗号化処理を導入するのが一般的となっている。
しかしながら、Bluetoothをはじめとする広域通信に暗号化処理を実行するためには、まず通信相手を特定する必要があるが、広域通信の通信可能エリアが広いため、想定外の広域通信機能搭載機器が通信相手として特定されてしまう可能性があった。
通信相手を特定しても、さらにセキュアな通信を開始するためのセッション鍵を通信相手双方で共有する必要があるが、広域通信の通信可能エリアが広いという特性上、セッション鍵を通信相手に送信する際に、第三者が使用する広域通信機能搭載機器によって、その鍵が盗聴され、解読されてしまう可能性があったため、鍵長を長くするなどセッション鍵の強度を高める必要があり、そのためには広域通信機能搭載機器の高い処理能力が必要とされていた。
そこで、通信装置の双方でセキュアにセッション鍵を共有することを可能にすることが提案されている。(例えば、特許文献1参照)
ここで、特許文献1に開示されている通信について、図1を参照して簡便に説明を加える。通信を行う装置を、ここでは、イニシエータ(Initiator)とターゲット(Target)と称する。
イニシエータは、ステップS11において、鍵の生成と送信を行う。イニシエータは、例えば、ポーリング(問合せ処理)を実行し、そのポーリングに対してターゲットからの応答が送信されてくると、その応答を受信し、暗号化鍵と復号鍵とを生成する。イニシエータは、生成した暗号化鍵をターゲットに送信する。
ステップ21において、ターゲットは、暗号化鍵を受信する。ステップS22において、ターゲットは、乱数を発生し、その発生した乱数をセッション鍵とする。そしてセッション鍵は、受信された暗号化鍵を鍵として暗号化される。暗号化されたセッション鍵は、イニシエータに送信される。
イニシエータは、ステップS12において、ターゲットから暗号化されたセッション鍵を受信すると、復号鍵で復号し、セッション鍵を取得する。ステップS13において、復号されたセッション鍵を用いた通信が開始される。
このようにイニシエータは、暗号化されたセッション鍵を受信すると、その暗号化されたセッション鍵を、既に生成している復号鍵で復号し、セッション鍵を取得する。このようにして、イニシエータとターゲットとの間で、共通のセッション鍵が共有される。そして、このセッション鍵が用いられた通信、例えば、セッション鍵で授受するデータを暗号化する通信が行われる。
特開2006−14076号公報
特許文献1に開示されているように、セッション鍵を共有するようにすれば、セキュアな通信を行うことが可能となる。さらに、例えば、授受するデータにより、アルゴリズムを変更するなどすれば、よりセキュアな通信を行えるようになり、かつ、拡張性のある通信を行えるようになる。
本発明は、このような状況に鑑みてなされたものであり、よりセキュアな通信を行えるようにし、かつ、拡張性のある通信を行えるようにするものである。
本発明の一側面の情報処理システムは、通信を行う情報処理装置およびデバイスにより構成される通信システムであって、前記情報処理装置または前記デバイスのうちの一方から他方に、暗号に関する能力を表す第1の能力リストであり、複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、扱える暗号に関する能力に対応する欄にフラグが立てられた前記第1の能力リストを送信する第1の送信手段と、前記第1の送信手段により送信された前記第1の能力リストを受信した前記他方は、受信された第1の能力リストを参照し、自己の暗号に関する能力で前記一方と通信を行うことができるアルゴリズムを選択して第2の能力リストを作成し、送信する第2の送信手段と、前記第2の送信手段により送信された前記第2の能力リストを受信した前記一方は、受信された第2の能力リストを参照し、自己の暗号に関する能力で前記他方と通信を行うことができるアルゴリズムを決定する決定手段と、前記決定手段により決定された前記アルゴリズムで通信を行う通信手段とを備え、前記第2の能力リストは、前記第1の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
本発明の一側面の情報処理システムの通信方法は、通信を行う情報処理装置およびデバイスにより構成される通信システムの通信方法であって、前記情報処理装置または前記デバイスのうちの一方から他方に、暗号に関する能力を表す第1の能力リストであり、複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、扱える暗号に関する能力に対応する欄にフラグが立てられた前記第1の能力リストを送信し、送信された前記第1の能力リストを受信した前記他方は、受信された第1の能力リストを参照し、自己の暗号に関する能力で前記一方と通信を行うことができるアルゴリズムを選択して第2の能力リストを作成し、送信し、送信された前記第2の能力リストを受信した前記一方は、受信された第2の能力リストを参照し、自己の暗号に関する能力で前記他方と通信を行うことができるアルゴリズムを決定し、決定された前記アルゴリズムで通信を行うステップを含み、前記第2の能力リストは、前記第1の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
本発明の一側面の情報処理システムおよび通信方法においては、情報処理装置またはデバイスのうちの一方から他方に、暗号に関する能力を表す第1の能力リストであり、複数の暗号に関する能力が記載され、複数の暗号に関する能力のうち、扱える暗号に関する能力に対応する欄にフラグが立てられた第1の能力リストが送信され、送信された第1の能力リストを受信した他方は、受信された第1の能力リストを参照し、自己の暗号に関する能力で一方と通信を行うことができるアルゴリズムを選択して第2の能力リストを作成し、送信し、送信された第2の能力リストを受信した一方は、受信された第2の能力リストを参照し、自己の暗号に関する能力で他方と通信を行うことができるアルゴリズムを決定し、決定されたアルゴリズムで通信を行う。そして第2の能力リストは、第1の能力リストに記載されている複数の暗号に関する能力が記載され、選択されたアルゴリズムに対応する欄にフラグが立てられたリストである
本発明の一側面の情報処理装置は、デバイスと通信を行う情報処理装置であって、暗号に関する能力を表す第1の能力リストを記憶する記憶手段と、前記記憶手段に記憶されている前記第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成する作成手段と、前記第の能力リストを前記デバイスに送信する送信手段と、前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信する受信手段と、前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定する決定手段と、前記決定手段により決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信する送信手段とを備え、前記第3の能力リストは、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
前記送信手段により送信される前記第の能力リストは、前記記憶手段により記憶されている前記第1の能力リストから、前記決定手段による決定の処理が行われるときの候補となるアルゴリズムが選択され、その選択されたアルゴリズムに対応する欄にフラグが立てられたリストである。
前記決定手段は、セキュリティレベルに応じて前記アルゴリズムを決定するようにすることができる。
本発明の一側面の情報処理方法は、デバイスと通信を行う情報処理装置の情報処理方法であって、記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、前記第の能力リストを前記デバイスに送信し、前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信するステップを含み、前記第3の能力リストは、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられているリストである
本発明の一側面のプログラムは、デバイスと通信を行う情報処理装置を制御するコンピュータのプログラムであって、記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、前記第の能力リストを前記デバイスに送信し、前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられている前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信するステップを含む処理をコンピュータに実行させる。
本発明の一側面の記録媒体は、デバイスと通信を行う情報処理装置に、記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、前記第の能力リストを前記デバイスに送信し、前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられている前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信するステップを含む処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムを記録している。
本発明の一側面の情報処理装置、情報処理方法、およびプログラムにおいては、記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストが作成され、デバイスに送信され、デバイスが第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた第の能力リストが受信され、第2の能力リストに記載されている複数の暗号に関する能力が記載され、選択されたアルゴリズムに対応する欄にフラグが立てられているの能力リストが参照され、デバイスと通信を行うアルゴリズムが決定され、決定されたアルゴリズムを識別するための識別情報が、アルゴリズムによる鍵または鍵の素材がデバイスに送信される。
本発明の一側面のデバイスは、情報処理装置と通信を行うデバイスであって、前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信する第1の受信手段と、受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信する送信手段と、前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信する第2の受信手段と、前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号する暗号化復号手段とを備え、前記送信手段は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する
前記第1の受信手段は、前記情報処理装置が行うポーリングで、前記第2の能力リストを受信するようにすることができる。
本発明の一側面の情報処理方法は、情報処理装置と通信を行うデバイスの情報処理方法であって、前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号するステップを含み、前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む
本発明の一側面のプログラムは、情報処理装置と通信を行うデバイスを制御するコンピュータのプログラムであって、前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号するステップを含み、前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む処理をコンピュータに実行させる。
本発明の一側面の記録媒体は、情報処理装置と通信を行うデバイスに、前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号するステップを含み、前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムが記録されている。
本発明の一側面のデバイス、情報処理方法、およびプログラムにおいては、情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストが受信され、受信された第の能力リストが参照され、自己の暗号に関する能力で通信を行うことができるアルゴリズムが選択されて第の能力リストが作成され、情報処理装置に送信され、情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報が受信され、識別情報からアルゴリズムが特定され、その特定されたアルゴリズムでデータが暗号化または復号される。そして、送信は、第2の能力リストに記載されている複数の暗号に関する能力が記載され、選択されたアルゴリズムに対応する欄にフラグが立てられた第3の能力リストを作成し、送信する処理を含む
本発明の一側面によれば、複数のアルゴリズム、復号方式を選択できる。また、選択された方式で通信を行うことが可能となる。
以下に、本発明の実施の形態について図面を参照して説明する。
[システムの構成例]
図2は、本発明を適用した通信システム50の一実施の形態における構成例を示すブロック図である。通信システム50は、リーダライタ100とICカード200により構成されており、リーダライタ100とICカード200は、例えば、それぞれが有するアンテナなどを介して無線による通信を行う。
リーダライタ100は、制御部101、能力リスト記憶部102、鍵生成部103、データ記憶部104、暗号化部105、復号部106、および通信部107を含む構成とされている。
制御部101は、例えばCPU(Central Processing Unit)を含む構成とされ、リーダライタ100の各部を制御する。能力リスト記憶部102は、後述する通信に関する能力、特に、暗号化方式や復号方式(アルゴリズム:本明細書においては、アルゴリズムとの記載には、方式とその方式の鍵の長さについて含む場合もある)に関する能力のリストを記憶する。能力リスト記憶部102に記憶されている能力リストは、必要に応じ通信部107を介して、ICカード200に提供される。鍵生成部103は、暗号化や復号に用いる鍵を生成する。
データ記憶部104は、RAM(Random Access Memory)、ROM(Read Only Memory)などの記憶媒体や記録媒体を含む構成とされ、制御部101がリーダライタ100の各部を制御する上で必要とされるプログラムやデータを記憶し、また、ICカード200からのデータやICカード200に提供するデータなどを記憶する。
暗号化部105は、ICカード200に供給する鍵やデータを暗号化する。復号部106は、ICカード200からの暗号化されている鍵やデータを復号する。暗号化部105と復号部106は、それぞれ、能力リストに記載されている複数のアルゴリズムのうちの1つのアルゴリズムに基づき、暗号化や復号を行う。能力リストには、自己が扱える複数(1以上)のアルゴリズムが記載されており、その記載されている複数のアルゴリズムのうちから1つのアルゴリズムが選択され(指定され)、その選択(指定)されたアルゴリズムに基づく暗号化や復号が行われる。
通信部107は、ICカード200との通信を行う。リーダライタ100の通信部107は、所定の電磁波を輻射し、それに対する負荷の変化に基づいて、ICカード200が近接されたか否かを検出するとともに、例えば、ICカード200が近接されたとき、ICカード200と各種のデータを送受信するアンテナ(不図示)を有する構成とされる。
通信部107は、例えば、発振回路(OSC)から供給される所定の周波数の搬送波を、ICカード200に送信するデータに基づきASK(Amplitude Shift Keying)変調し、生成された変調波を、電磁波としてアンテナから出力する。また、通信部107は、アンテナを介して取得した変調波(ASK変調波)を復調し、復調したデータを制御部101などに適宜供給する。
ICカード200は、制御部201、能力リスト記憶部202、乱数生成部203、データ記憶部204、暗号化部205、復号部206、および通信部207を含む構成とされている。
制御部201は、例えばCPUを含む構成とされ、ICカード200の各部を制御する。能力リスト記憶部202は、後述する通信に関する能力、特に、暗号化方式や復号方式(アルゴリズム)に関する能力のリストを記憶する。能力リスト記憶部202に記憶されている能力リストは、必要に応じ通信部207を介して、リーダライタ100に提供される。乱数生成部203は、乱数を生成する。生成される乱数は、後述するように、リーダライタ100との通信におけるセッション鍵として用いられる。
データ記憶部204は、RAM、ROM、EEPROM(Electrically Erasable Programmable Read-Only Memory)などの記憶(記録)媒体を含む構成とされ、制御部201がICカード200の各部を制御する上で必要とされるプログラムやデータを記憶し、また、リーダライタ100からのデータやリーダライタ100に提供するデータなどを記憶する。
暗号化部205は、リーダライタ100に供給する鍵やデータを暗号化する。復号部206は、リーダライタ100からの暗号化されている鍵やデータを復号する。暗号化部205と復号部206は、それぞれ、能力リストに記載されている複数のアルゴリズムのうちの1つのアルゴリズムに基づき、暗号化や復号を行う。能力リストには、自己が扱える複数(1以上)のアルゴリズムが記載されており、その記載されている複数のアルゴリズムのうちから1つのアルゴリズムが選択され(指定され)、その選択(指定)されたアルゴリズムに基づく暗号化や復号が行われる。
通信部207は、例えば、コイル状のアンテナとコンデンサにより構成されるLC回路を有する構成とされ、LC回路が近傍に配置されたリーダライタ100から輻射される所定の周波数の電磁波と共振するようになされている。また、通信部207は、アンテナにおいて励起された交流磁界をASK復調により整流し、それを安定化し、各部に直流電源として供給する。リーダライタ100から輻射される電磁波の電力は、ICカード200に必要な電力をまかなう磁界を発生させるように調整されている。
また、通信部207は、アンテナを介して受信した変調波(ASK変調波)を包絡線検波して復調し、復調後のデータをBPSK(Binary Phase Shift Keying)復調して制御部201などに供給するとともに、受信信号のクロック周波数と同一の周波数のクロック信号を発生して制御部201に供給する。
さらに、通信部207は、所定の情報をリーダライタ100に送信する場合、BPSK変調されたデータを、例えばアンテナの負荷の変動に基づいてASK変調し、その変調成分を、アンテナを介してリーダライタ100に送信する。
上述したように、リーダライタ100とICカード200は、無線による通信を行うので、同時に二つ以上のICカードまたはリーダライタが電波を送出し、その結果、ICカードまたはリーダライタがどの対象から電波が発せられたものであるかを区別できなくなるという、いわゆる衝突が懸念されるが、通信システム50におけるリーダライタ100とICカード200のそれぞれは、リーダライタと通信可能な範囲にあるICカードやRFIDを識別することが可能な通信方式であるNFCIP(Near Field Communication - Interface and Protocol)-1に適合する通信を行う。
NFCIP-1には、他のNFCIP-1デバイスの通信ならびに同帯域で通信している他の装置による通信との両立を図るため、RF検知と衝突回避の仕組が盛り込まれており、NFC識別子(NFCID(NFC Identifier))と呼ばれるRF衝突回避の際および単一デバイス探知処理に用いられる乱数を利用したNFCデバイスの識別子が用いられる。例えば、従来の通信システムにおいては、ICカードの固有のIDをリーダライタに送信し、リーダライタがそのIDに基づいて個々のICカードを識別することで衝突の防止を図るものも多いが、NFCIP-1ではICカードに固有のIDをリーダライタに送信する必要はない。
従って、通信システム50においては、ICカード200に固有のカードIDをリーダライタ100に送信しなくも、リーダライタ100とICカード200がそれぞれ通信相手を一意に識別し、衝突を防止することが可能となる。
なお、NFCIP-1については、ISO/IEC18092にその詳細が記述されている。
以降においては、リーダライタ100がNFCIP-1に規定されるイニシエータ(Initiator)として動作し、ICカード200がNFCIP-1に規定されるターゲット(Target)として動作する場合を例として説明する。
[システムの動作について]
次に、図2に示した通信システム50の動作について図3のフローチャートを参照して説明する。まず、図3のフローチャートを参照し、通信システム50における動作を簡便に説明し、その後、リーダライタ100とICカード200の、それぞれの動作の詳細について説明を加える。
リーダライタ100は、ステップS51において、能力リストをICカード200に対して送信する。送信された能力リストは、ステップS61において、ICカード200により受信される。ICカード200は、リーダライタ100から能力リストを受信すると、ステップS62において、自己の能力リストを、リーダライタ100に送信する。送信された能力リストは、ステップS52において、リーダライタ100に受信される。
このようにして、リーダライタ100とICカード200は、互いに、相手の通信能力に関わる情報、この場合、暗号化や復号に関わるアルゴリズムに関する情報を交換する。
リーダライタ100は、ステップS53において、自己の能力リストとICカード200の能力リストを参照し、互いのリストに記載されているアルゴリズム、すなわち、共通するアルゴリズムのうちから、暗号化や復号に用いるアルゴリズムを選択する。
ステップS54において、選択されたアルゴリズムに基づき、暗号化鍵と復号鍵が生成され、そのうちの暗号化鍵がICカード200に送信される。なお、ここでは、暗号化鍵と復号鍵が生成されるアルゴリズムが選択された場合を例に挙げて説明をしているが、選択されたアルゴリズムにより、生成される鍵や生成の仕方などは異なる。
ICカード200は、ステップS63において、リーダライタ100からの暗号化鍵を受信すると、ステップS64において、乱数を発生し、その発生した乱数を、セッション鍵として設定する。そして、セッション鍵は、受信された暗号化鍵で暗号化され、リーダライタ100に送信される。
リーダライタ100は、ステップS55において、暗号化されたセッション鍵を受信すると、ステップS56において、ステップS54において生成した復号鍵を用いて暗号化されているセッション鍵を復号する。
このようにして、セッション鍵がリーダライタ100とICカード200との間で共用される。セッション鍵が共用された後、このセッション鍵を用いた通信が適宜行われる。
なお、ここでは、上記したように、例えば、ステップSステップS64において、セッション鍵が暗号化されて送信されるとしたが、セッション鍵そのものが送信されるのではなく、セッション鍵を生成するための素材が送信されるようにしても良い。
すなわち、本実施の形態においては、以下に説明を続けるように、能力リストを交換することにより、暗号化方式が決定されるが、その決定された暗号化方式に基づき、セッション鍵そのものが送受信される場合もあるし、セッション鍵を生成するための素材が送受信される場合もある。また、決定された暗号化方式によっては、セッション鍵に関係のない情報が送受信される場合もあり、送受信される情報は、決定された暗号化方式に依存する。
次に、図4のフローチャートを参照し、リーダライタ100の動作について詳細に説明する。
ステップS101において、リーダライタ100は、能力リストを生成する。リーダライタ100の制御部101は、能力リスト記憶部102に記憶されている能力リストを参照し、ICカード200に送信する能力リストを生成する。生成された能力リストは、ステップS102において、ICカード200に対して送信される。
ここで、能力リスト記憶部102に記憶されている能力リスト(以下適宜、第1の能力リストと記述する)と、生成される能力リスト(以下適宜、第2の能力リストと記述する)との関係について、図5と図6を参照して説明する。
図5は、能力リスト記憶部102に記憶されている能力リストの一例を示す図である。暗号化や復号に関わるアルゴリズムを、鍵共有方式と暗号通信方式の2つに分ける。能力リストもここでは、説明の都合上、図5に示したように2つのリストに分けて説明するが、1つのリスト形式としても勿論よい。
能力リスト記憶部102には、鍵共有方式として、16個のアルゴリズムが登録できるリストと、暗号通信方式として、16個のアルゴリズムが登録できるリストが、それぞれ記憶されている。ここで、それぞれのリストに16個のアルゴリズムが登録できるとしたのは、図6に示したように、ICカード200に送信する第2の能力リストを16ビットで表現するときに対応している。よって、16ビット以外のビット数で第2の能力リストを生成するのであれば、そのビット数に応じた数のアルゴリズムを、第1の能力リストとして記憶させることができる。
図6に示した第2の能力リストは、鍵共有方式に16ビット割り当て、暗号通信方式に16ビット割り当てたときの一例を示している。図5と図6において、鍵共有方式を適宜“K”と表し、暗号通信方式を適宜“C”と表す。
図5に示した第1の能力リストと図6に示した第2の能力リストとの関係を説明するに、第1の能力リストの“K−0”の欄に記載されているアルゴリズムをリーダライタ100が処理する能力を有していれば、図6に示した第2の能力リストの鍵供給方式の“K−0”のビットが1にセットされる。なお、ここでは、有している能力に対応するビットが1にセットされ、有していない能力に対応するビットが0にセットされるとして説明を続けるが、有している能力に対応するビットが0にセットされ、有していない能力に対応するビットが1にセットされるようにすることも可能である。
第1の能力リストの各欄には、1つのアルゴリズムが割り当てられている。例えば、図5を参照するに、“K−0”という欄には、鍵共有方式である“DH 768bit”というアルゴリズムが割り当てられている。この割り当てられているアルゴリズムを扱える場合、その欄に何らかの情報が書き込まれている。欄に書き込まれる情報としては、扱えあるか否かを示すフラグであっても良いし、アルゴリズムの名称などの情報でも良い。
このように、能力リスト記憶部102に記憶されている第1の能力リストの所定の欄は、所定のアルゴリズムと対応付けられている。図5に示したように、リーダライタ100が扱わないアルゴリズムに対応する欄は空欄にされる(情報が記載されないか、または、対応するアルゴリズムを処理する能力がないということを示す情報が記載される)。
または、図示はしないが、第1の能力リストは、例えば、リーダライタ100が扱うアルゴリズムだけの情報だけが記載されたようなリストでもよい。例えば、図5に示した例によれば、“K−0,K−1,K−4,K−5,K−8,K−9,K−C,C−0,C−1,C−2,C−4,C−5,C−6”といった情報からなるリストとしても良い。
また、このような第1の能力リストは更新可能としても良い。例えば、通信部107(図2)における通信で、新たなアルゴリズムに関するデータが授受され、データ記憶部104に、授受されたアルゴリズムのデータが記憶されるとともに、能力リスト記憶部102に記憶されている第1の能力リストも更新(新たに追加されたアルゴリズムに対応する欄に、情報が記載される)ようにしても良い。能力リストに記載されているアルゴリズムを削除することも可能であるし、既に記載されている情報を上書きすることも可能であるようにしても良い。
図5に示したような第1の能力リストが参照され、図6に示した第2の能力リストが生成されるようにしても良い。すなわち、第1の能力リストに情報が記載されている欄に対応するビットを1にすることにより、第2の能力リストが生成されるようにしても良い。または、図6に示した第2の能力リストにおいて、扱われるアルゴリズムのビットが1にされている第1の能力リストとしても良い(すなわち、第1の能力リスト=第2の能力リストの関係が満たされ、能力リスト記憶部102に記憶されいる能力リストが読み出され、送信されるようにしても良い)。
図5において、“DH”は“Diffie-Hellman”の略であり、“ECDH”は“Elliptic Curve Diffie-Hellman”の略であり、“RSA”は“Rivest, Shamir, Adleman”の略であり、“DES”は“Data Encryption Standard”の略であり、“AES”は“Advanced Encryption Standard”の略である。また、“Pre-shared key”は、事前共有鍵による鍵共有方式を示す。
図4のフローチャートの説明に戻る。
ステップS101,102において、能力リストが生成され、送信される。送信される第2の能力リストは、リーダライタ100の能力全てが記載されたリストでも良い(能力リスト記憶部102に記憶されている第1の能力リストの全ての情報が反映された第2の能力リストとしても良い)し、一部の能力が記載されたリストでも良い。
一部の能力が記載された能力リストが送信される場合、例えば、後の処理で授受するデータの重要性から、必要とされるセキュリティレベルを満たすアルゴリズムのみ記載された能力リストが生成され、送信されるようにしても良い。換言すれば、一部の能力が記載された能力リストが送信される場合、後の処理、具体的にはステップS104の処理で、通信に用いるアルゴリズムが決定されるが、その決定される際の候補となるアルゴリズムのみが記載された能力リストが生成され、送信されるようにしても良い。
ステップS103において、能力リストが受信されたか否かが判断される。リーダライタ100からICカード200に対して、リーダライタ100の能力リストが送信される(図3のステップS51の処理に相当)と、その応答として、ICカード200からICカードの能力リストが送信されてくる(図3のステップS52の処理に相当)。
ICカード200の能力リスト記憶部202には、リーダライタ100の能力リスト記憶部102と同様に能力リストが記憶されている。すなわち、ICカード200の能力リスト記憶部202には、図5に示したような第1の能力リストが記憶され、図6に示したような第2の能力リストが、リーダライタ100に送信されてくる。
ステップS103において、リーダライタ100の制御部101は、通信部107により、ICカード200からの能力リストを受信したと判断すると、ステップS104において、アルゴリズムの決定を行う。制御部101は、受信されたICカード200の能力リストと、能力リスト記憶部102に記憶されている能力リストとを参照し、互いに扱えるアルゴリズムを選択する(2つの能力リストにおいて共にフラグが立てられているアルゴリズムを選択する)。
例えば、リーダライタ100とICカード200が共に、図5に示した能力リストを記憶していたような場合、“K−0,K−1,K−4,K−5,K−8,K−9,K−C,C−0,C−1,C−2,C−4,C−5,C−6”の欄にフラグが立てられているので、“K−0,K−1,K−4,K−5,K−8,K−9,K−C”の鍵共有方式(K)の中から、1つのアルゴリズムが選択され、“C−0,C−1,C−2,C−4,C−5,C−6”の暗号通信方式(C)の中から、1つのアルゴリズムが選択される。
この場合、例えば、鍵共用方式(K)においては、“K−0,K−1,K−4,K−5,K−8,K−9,K−C”という7個の欄に対応するアルゴリズムが選択肢とあげられることになる。このように、複数の選択肢が存在するときに、どのアルゴリズムを選択するかの条件は、リーダライタ100がどのような機能を有し、どのようなデータを管理するかなどを考慮し、設計段階などで適宜設定されるようにしてもよい。
また、例えば、優先順位をつけておき、その優先順位に従って、順位の高いアルゴリズムが選択されるようにしても良い。または、この後の処理として、例えば、ICカード200とデータの授受が行われるが、そのデータの重要性などに基づいて選択されるようにしても良い。データの重要性などに基づいて選択されるとは、重要なデータを授受するときには、解読しづらいアルゴリズムが選択されることを意味する。一般的に鍵が長いほど解読されづらいので、例えば、選択肢として“K−0(DH 768bit)”と“K−1(DH 1024bit)”があるような場合、鍵の長い“K−1(DH 1024bit)”が選択される。
このように、何らかの条件に基づいて、暗号化や復号に用いるアルゴリズムが決定される。
ステップS105において、決定されたアルゴリズムに基づいて暗号化鍵と復号鍵が生成される。制御部101は、決定したアルゴリズムに基づいて、鍵を生成するように、鍵生成部103に指示を出す。鍵生成部103は、指示を受けると、決定されたアルゴリズムに基づき、暗号化鍵と復号鍵を生成する。
決定されたアルゴリズムによるが、鍵生成部103が生成する暗号化鍵と復号鍵は、一組の鍵とされる。この生成された暗号化鍵(以下適宜、公開鍵と記載する場合もある)で暗号化された平文(データ)は、一組に生成された復号鍵(以下適宜、秘密鍵と記載する場合もある)でなければ復号することができない。
ステップS106において、生成された暗号化鍵が送信される。通信部107は、鍵生成部103により生成された暗号化鍵を、ICカード200に対して送信する。暗号化鍵とともに、決定されたアルゴリズム(暗号化鍵を生成するのに用いたアルゴリズム)を識別するための情報(以下適宜、識別情報と記述する)も送信される。識別情報として、例えば、図6に示した能力リストの形式で、決定されたアルゴリズムのビットのみが立てられた能力リストを用いることが可能である。
暗号化鍵がICカード200に供給されるとICカード200は、暗号化鍵を鍵として暗号化した暗号化セッション鍵を送信してくる(図3のステップS64の処理に相当)。リーダライタ100は、ステップS107において、ICカード200から暗号化セッション鍵を受信したか否かを判断し、受信したと判断するまで受信の待機状態を維持する。
ステップS107において、暗号化セッション鍵を受信したと判断された場合、ステップS108に処理が進められ、暗号化セッション鍵が復号される。復号部106は、通信部107により暗号化セッション鍵が受信されると、鍵生成部103により生成された復号鍵で暗号化セッション鍵を復号する。
ステップS109において、復号されたセッション鍵を用いた通信が開始される。例えば、リーダライタ100からデータ記憶部104に記憶されているデータがICカード200に送信される場合、データ記憶部104からデータが読み出され、暗号化部105でセッション鍵を鍵とした暗号化が行われ、通信部107によりICカード200に対して送信される。また、ICカード200からデータが送信されてきた場合、通信部107により受信され、復号部106により、セッション鍵を鍵とした復号が行われる。
このようにして、本実施の形態においては、セッション鍵の授受が行われる前の時点で、暗号化や復号に関わるアルゴリズムの能力に関する情報が授受される。また、その授受される情報に基づいて、アルゴリズムが選択される。このようにすることで、複数のアルゴリズムを扱うことが可能となる。また、複数のアルゴリズムを扱うことができることにより、より高いセキュリティレベルが要求されるような通信のときでも、または逆に、低いセキュリティレベルでも良いような通信のときでも、幅広く対応することができ、通信の拡張性をもたせることが可能となる。
次に、ICカード200の動作について、図7のフローチャートを参照して説明する。
ステップS201において、ICカード200は、能力リストを受信したか否かを判断する。ICカード200の制御部201は、通信部207によりリーダライタ100からの能力リストを受信したか否かを判断し、受信したと判断するまで、受信の待機状態を維持する。
ステップS201においてリーダライタ100からの能力リストを受信したと判断された場合、ステップS202において、能力リストが生成され、ステップS203において、生成された能力リストが送信される。
このステップS202とステップS203の処理は、基本的に、リーダライタ100で実行されるステップS101とステップS102の処理と基本的に同様に行われる。すなわち、ICカード200も、能力リスト記憶部202に図5に示したような第1の能力リストを記憶し、図6に示したような第2の能力リストで送信される。
なお、ICカード200が能力リスト(第2の能力リスト)を送信する際、その送信する能力リストは、ICカード200の能力全てが記載されたリストでも良い(能力リスト記憶部202に記憶されている第1の能力リストの全ての情報が反映された第2の能力リストとしても良い)し、一部の能力が選択的に記載されたリストでも良い。
一部の能力が記載された能力リストが送信される場合、例えば、受信したリーダライタ100の能力リストが参照され、リーダライタ100と一致するアルゴリズムが選択され、その選択されたアルゴリズムだけが記載された能力リストが生成され、送信される。また、一致するアルゴリズムがない場合、同一のアルゴリズムでの暗号化や復号を行うことができないので、能力リストが送信されないようにしても良い。
また、ICカード200は、能力リストを生成する前に、リーダライタ100の能力リストを参照し、リーダライタ100と通信を継続するか否かを判断するようにしても良い。例えば、ICカード200は、授受するデータの重要性から必要とされるセキュリティレベルを満たすアルゴリズムを判断し、リーダライタ100の能力リストを参照し、セキュリティレベルを満たすアルゴリズムをリーダライタ100は扱える装置でないと判断したとき、通信を継続しないと判断し、その後の処理を継続しないようにしても良い。
図7のフローチャートの説明に戻り、ステップS203において、能力リストが送信されると、ステップS204に処理が進められ、暗号化鍵を受信したか否かが判断される。リーダライタ100は、上述したように、ICカード200から能力リストを受信すると、暗号化鍵を生成し、送信してくる。その送信された暗号化鍵を受信したか否かが判断される。
ステップS204において、暗号化鍵を受信したと判断された場合、ステップS205に処理が進められ、アルゴリズムが特定される。アルゴリズムの特定は、暗号化鍵とともにリーダライタ100から送られてきた識別情報を基に特定される。
ステップS206において、乱数生成部203は、乱数Aを生成(発生)する。ステップS207において、制御部201は、生成された乱数Aを、例えば、データ記憶部204の中の予め定められた所定の領域に記憶する。
なおここでは、特定されたアルゴリズムが、以下に説明するように、乱数を生成し、その乱数をセッション鍵とするというアルゴリズムである場合を例に挙げて説明している。よって、例えば、図8以降の図面を参照して説明するように、他のアルゴリズムが特定された場合には、その特定されたアルゴリズムに基づいてステップS206以下の処理が実行されるため、必ずしも乱数が生成されるわけではない。
ステップS208において、暗号化部206は、通信部207により受信された暗号化鍵を鍵とし、乱数生成部203により生成された乱数Aを暗号化する。ステップS209において、暗号化された乱数Aをセッション鍵とし、例えば、データ記憶部204の中の予め定められた所定の領域に記憶する。
ステップS210において、暗号化された乱数A、すなわち、暗号化されたセッション鍵が、リーダライタ100に対して送信される。
このように、データの授受などの処理を始める前の段階で、データの授受を行う装置間で暗号化や復号に関するアルゴリズムのリストを交換するようにしたので、複数のアルゴリズムを扱えるようになり、例えばセキュリティレベルによって、アルゴリズムを使い分けることができるようになり、通信に拡張性を持たせることが可能となる。
上述したように、複数のアルゴリズムを扱えるようにした場合、リーダライタ100やICカード200は、それぞれ自己が扱うアルゴリズムに対応する構成とされる必要がある。図2を参照して説明したリーダライタ100とICカード200の構成においてリーダライタ100は、暗号化鍵を生成し、送信できる構成とされ、ICカード200は、送信されたきた暗号化鍵を鍵として乱数を暗号化し、送信できる構成とされていた。このような構成においては、上述したように、ICカード200側で生成された乱数をセッション鍵とするアルゴリズムに対応している。
次に、他のアルゴリズムが適用される場合の本実施の形態について説明を加える。
図8乃至図10を参照し、アルゴリズムとしてDH(Diffie-Hellman)法を適用した場合の本実施の形態について説明する。
DH法では、通信を行う双方で、公開鍵と秘密鍵を生成(保持)する必要があるため、図8に示すように、ICカード200は、鍵を生成する鍵生成部301を備える構成とされる。
図8に示した通信システム50は、図2に示した通信システム50と同様に、リーダライタ100とICカード200とから構成されている。リーダライタ100は、図2に示したリーダライタ100と同様の構成とされている。ICカード200は、鍵を生成する鍵生成部301を備える構成とされている。図8に示したICカード200の構成によれば、上記した乱数を生成し、その乱数をセッション鍵とするようなアルゴリズムにも対応できるし、以下に説明する鍵を生成し、その鍵をセッション鍵とするようなアルゴリズムにも対応できる。
図8に示した通信システム50の動作は、基本的に、図3に示したフローチャートを参照して説明した場合と同様に行われる。すなわち、鍵の授受が行われる前に、どのようなアルゴリズムに基づいて鍵を生成するかを示す能力リストが交換され、交換後、アルゴリズムに基づく鍵の生成や授受が行われる。
リーダライタ100とICカード200のそれぞれの動作について以下に説明する。
まず、図9のフローチャートを参照し、リーダライタ100の動作について説明する。なお、図4のフローチャートを参照して説明したリーダライタ100の動作と同様に行われる動作については、適宜、その説明を省略する。
ステップS301,S302において、能力リストが生成され、送信される。ステップS303において、ICカード200からの能力リストが受信されると、ステップS304において、アルゴリズムが決定される。
このステップS301乃至S304の処理は、図2のステップS101乃至S104と同様に行われる。すなわち、能力リストの授受に関する処理は、後の処理で用いられるアルゴリズムによらず同様に行われる。
ステップS304において、アルゴリズムが決定される。ここでは、DH法と決定されるとして説明を続ける。
ステップS305において、鍵生成部103(図8)は、決定されたアルゴリズムであるDH法に基づき、公開鍵と秘密鍵を生成する。リーダライタ100が生成する公開鍵と秘密鍵とICカード200が生成する公開鍵と秘密鍵を区別するために、ここでは、リーダライタ100が生成する公開鍵と秘密鍵をそれぞれ公開鍵Kiと秘密鍵Kiと記述し、ICカード200が生成する公開鍵と秘密鍵をそれぞれ公開鍵Ktと秘密鍵Ktと記述する。
鍵生成部103は、秘密鍵Kiを生成する。そして鍵生成部103は、生成した秘密鍵Kiを用いて、公開鍵Kiを、次式に基づいて生成する。
公開鍵ki=g^秘密鍵Ki mod p
この式において、g,pは、ドメインパラメータなどと称される値であり、リーダライタ100とICカード200で同じ値が用いられる。
このようにして生成された公開鍵Kiと秘密鍵Kiは、データ記憶部104に記憶される。
ステップS306において、生成された公開鍵Kiと、ステップS304において決定されたアルゴリズムを識別するための識別情報が、ICカード200に送信される。
ステップS308において、ICカード200からICカード200の公開鍵Ktを受信したか否かが判断される。リーダライタ100が、公開鍵Kiを送信したことに対応し、ICカード200は、自己の公開鍵Ktを送信してくる。その送信されてきた公開鍵Ktを受信したか否かが、ステップS308において判断され、受信したと判断されるまで受信待ちの状態が維持される。
ステップS309において、ICカード200からのセッション鍵を復号する。セッション鍵は、受信されたICカード200の公開鍵Ktとリーダライタ100の秘密鍵Kiが用いられ、以下の式により導出される。
セッション鍵=公開鍵Kt^秘密鍵Ki mod p
セッション鍵が導出されと、ステップS310において、セッション鍵を用いた通信が開始される。
このように、能力リストを交換し、アルゴリズムが決定されると、そのアルゴリズムに基づく処理が実行される。換言すれば、アルゴリズムが決定される前の処理は、アルゴリズムによらず共通して行われ、アルゴリムが決定された後は、決定されたアルゴリズムに基づく処理が実行される。このように、アルゴリズムに基づく処理を行う前に、互いにどのようなアルゴリズムを扱えるかの情報を交換することで、複数のアルゴリズムを扱うことが可能となり、複数のアルゴリズムのなかから、通信を行う上で適切なアルゴリズムを選択できるようになり、通信に拡張性をもたせることが可能となる。
次に、図9に示したフローチャートの処理がリーダライタ100側で行われるときのICカード200の動作について、図10のフローチャートを参照して説明する。ステップS401乃至S403の処理は、図7のステップS201乃至S203の処理と同様である。すなわちこの場合も、能力リストの交換における処理は、アルゴリズムによらず、同一に行われる。
ステップS404において、リーダライタ100からの公開鍵Kiを受信したか否かが判断される。ステップS404において、公開鍵Kiを受信したと判断されると、ステップS405に処理が進めら、アルゴリズムが特定される。ステップS404,S405の処理は、図7のステップS204,S205と基本的に同様であるが、受信する鍵が公開鍵Kiである点が異なる。
ステップS406において、ICカード200の鍵生成部301は、公開鍵Ktと秘密鍵Ktを生成する。制御部201は、通信部207により公開鍵Kiとアルゴリズムを識別するための識別情報を受信すると、まず、その識別情報からアルゴリズムを特定する。そして、制御部201は、特定されたアルゴリズムに応じて、乱数生成部203か鍵生成部301に対して指示を出す。この場合、特定されるアルゴリズムは、DH法であるので、鍵生成部301に対して、DH法に基づく公開鍵Ktと秘密鍵Ktを生成するように指示が出される。
鍵生成部301において、秘密鍵Ktがまず生成される。生成された秘密鍵Ktが用いられて、公開鍵Ktが、次式に基づいて生成される。
公開鍵kt=g^秘密鍵Kt mod p
このようにして生成された公開鍵Ktと秘密鍵Ktは、ステップS407において、データ記憶部204に記憶される。
ステップS408において、受信された公開鍵Kiと生成された秘密鍵Ktでセッション鍵が生成される。鍵生成部301または暗号化部206において、次式に基づいてセッション鍵が生成される。
セッション鍵=公開鍵ki^秘密鍵Kt mod p
DH法に基づいてセッション鍵が生成される場合、リーダライタ100とICカード200は、それぞれセッション鍵を生成(導出)するが(リーダライタ100はステップS309において生成し、ICカード200はステップS408において生成する)、同一のセッション鍵が生成(導出)されるため、リーダライタ100とICカード200は、同一のセッション鍵を共有することになる。
ステップS410において、生成された公開鍵Ktが、リーダライタ100に対して送信される。この公開鍵Ktを用いてリーダライタ100は、上述したように、セッション鍵を導出する。
このようにして、複数のアルゴリズムを扱えるようになり、選択されたアルゴリズムに応じた処理ができるようになる。リーダライタ100やICカード200の構成は、図2や図8に示した構成例に限定されるのではなく、扱うアルゴリズムに応じて必要とされる機能を実現するための構成が適宜、追加、削除されることは勿論のことである。
さらに本実施の形態に関し、交換される能力リストなどの具体例を挙げ、図11のフローチャートを参照して説明を加える。
ステップS501において、リーダライタ100は、能力リストを生成し、送信する。能力リスト記憶部102には、図12に示したような能力リストが記憶されている場合を例に挙げて説明する。図12に示した能力リストは、鍵共有方式Kiとして“K−0”の欄に{DH 768bit}が、“K−4”の欄に{EDch 160bit}が、それぞれ記載され、暗号化通信方式Ciとして“C−0”の欄に{DES 56bit}が、“C−4”の欄に{AES 128bit}が、それぞれ記載されている。
このような図12に示したような能力リストが参照されて生成される能力リストは、例えば、図13に示すようになる。すなわち、送信される能力リストは、鍵共有方式Kiとして{DH 768bit}、{EDch 160bit}という2つの方式にそれぞれ対応する“K−0”と“K−4”という欄のビットが1に設定され、暗号化通信方式Ciとして{DES 56bit}、{AES 128bit}という2つの方式にそれぞれ対応する“C−1”と“C−4”という欄のビットが1に設定されたリストである。
このような能力リストが送信されると、ステップS601において、ICカード200により受信される。ステップS602において、ICカード200は、能力リストを生成し、送信する。能力リスト記憶部202には、図14に示したような能力リストが記憶されている場合を例に挙げて説明する。図14に示した能力リストは、鍵共有方式Ktとして“K−0”の欄に{DH 768bit}が、“K−1”の欄に{DH 1024bit}が、それぞれ記載され、暗号化通信方式Ctとして“C−4”の欄に{AES 128bit}が記載されている。
このような図14に示したような能力リストが参照されて生成される能力リストは、例えば、図15に示すようになる。すなわち、送信される能力リストは、鍵共有方式Ktとして{DH 768bit}、{DH 1024bit}という2つの方式にそれぞれ対応する“K−0”と“K−1”という欄のビットが1に設定され、暗号化通信方式Ctとして{AES 128bit}という1つの方式にそれぞれ対応する“C−4”という欄のビットが1に設定されたリストである。
このような能力リストが送信されると、ステップS502において、リーダライタ100により受信される。ステップS503において、リーダライタ100は、アルゴリズムを決定する。鍵共有方式Kとしてはこの場合、リーダライタ100が{DH 768bit,EDch 160bit}という2つの方式に対応し、ICカード200が{DH 68bit,DH 1024bit}という1つの方式で2つの異なるセキュリティレベルに対応しているため、共通している方式である{DH 768bit}が選択される。
また、暗号通信方式Cとしてはこの場合、リーダライタ100が{DES 56bit,AES 128bit}という2つの方式に対応し、ICカード200が{AES 128bit}という1つの方式に対応しているため、共通している方式である{AES 128bit}が選択される。
結果として、アルゴリズムとして、鍵共有方式K={DH 768bit}、暗号通信方式C={AES 128bit}が選択される。
ステップS504において、リーダライタ100は、公開鍵Kiと秘密鍵Kiを生成する。この場合、鍵共有方式としてDH方式が選択されているため、秘密鍵Kiが生成され、その生成された秘密鍵Kiを用いて、公開鍵Kiが、次式に基づいて生成される。
公開鍵ki=g^秘密鍵Ki mod p
ステップS505において、公開鍵Kiとアルゴリズムの識別情報が送信される。この場合、アルゴリズムの識別情報としては、鍵共有方式K={DH 768bit}、暗号通信方式C={AES 128bit}という情報が、ICカード200側で識別できるような情報である。
このような公開鍵Kiと識別情報が送信されると、ステップS603において、ICカード200により受信される。ステップS604において、公開鍵Ktと秘密鍵Ktが生成される。この場合、識別情報からアルゴリズムはDH法であり、鍵長が768bitであると特定されるので、DH法に基づく公開鍵Ktと秘密鍵Ktが生成される。
ICカード200において、秘密鍵Ktが生成されると、その生成された秘密鍵Ktが用いられて、公開鍵Ktが、次式に基づいて生成される。
公開鍵kt=g^秘密鍵Kt mod p
ステップS605において、セッション鍵が生成される。セッション鍵は、受信された公開鍵Kiと生成された秘密鍵Ktから次式に基づいて生成される。
セッション鍵=公開鍵ki^秘密鍵Kt mod p
ステップS606において、生成された公開鍵Ktが、リーダライタ100に対して送信される。
ステップS506において、リーダライタ100が、ICカード200からの公開鍵Ktを受信すると、ステップS507において、セッション鍵を導出する。セッション鍵は、以下の式により導出される。
セッション鍵=公開鍵Kt^秘密鍵Ki mod p
セッション鍵が導出されと、その導出されたセッション鍵をパケット暗号化に利用する暗号化通信が行われる。この場合、セッション鍵を{AES 128bit}の暗号化に利用した暗号化通信が行われる。
すなわち、ステップS508において、ICカード200に送信するデータ(平文i)が、セッション鍵を鍵としたAES方式の暗号化方式で、暗号化され、暗号文iが生成され、送信される。
暗号文i=AES128_ENC(平文i)
送信された暗号文iが、ステップS607において、ICカード200により受信されると、ステップS608において解読される。すなわち、ICカード200は、この場合、受信した暗号文iは、AES方式で暗号化されていることを認識しているので、受信した暗号文iを、AES方式で、セッション鍵を用いて復号し、平文iを取得する。
平文i=AES128_DES(暗号文i)
このようにして平文iを取得したICカード200は、必要に応じ、リーダライタ100に対してデータを暗号化して送信する。ここではステップS609において、ICカード200は、平文tをAES方式で暗号化して暗号文tを生成し、送信するとする。
暗号文t=AES128_ENC(平文t)
送信された暗号文tが、ステップS509において、リーダライタ100により受信されると、ステップS510において、解読される。すなわち、リーダライタ100は、この場合、受信した暗号文tは、AES方式で暗号化されていることを認識しているので、受信した暗号文tを、AES方式で、セッション鍵を用いて復号し、平文tを取得する。
平文t=AES128_DES(暗号文t)
このようにして、必要な回数だけデータの授受が繰り返し行われる。
なお、上述した実施の形態においては、リーダライタ100側でアルゴリズムを決定するようにしたが、ICカード200側で決定するようにしても良い。
なお、上述した実施の形態における能力リストの交換に関わる処理は、アルゴリズムを決定する前の段階で行われていれば、どのようなタイミングで行われても良い。例えば、リーダライタ100側でポーリングリクエストを出すときに、そのポーリングリクエストとして、能力リストを送信するようにしても良い。
また例えば、リーダライタ100側でポーリングリクエストを出し、そのポーリングリクエストに対してICカード200が応答してきた時点で、能力リストが送信されるようにしても良い。
さらには、上述した実施の形態においては、リーダライタ100側から能力リストが送信され、その後に、ICカード200側から能力リストが送信されるとして説明したが、例えば、ICカード200側が、リーダライタ100からのポーリングリクエストを受信し、その応答としてICカード200が能力リストを送信し、その応答としてリーダライタ100が能力リストを送信するといったように、ICカード200から先に能力リストを送信するようにしても良い。
なお、上述した実施の形態においては、リーダライタ100とICカード200は、それぞれ能力リストを送信するとしたが、どちらか一方のみが他方に能力リストを送信するようにしても良い。例えば、リーダライタ100からICカード200に能力リストを送信し、ICカード200は、リーダライタ100からの能力リストを参照し、所望のアルゴリズムを選択し、その選択したアルゴリズムの識別情報をリーダライタ100に送信するようにし、ICカード200からはICカード200の能力リストを送信しないようにしても良い。
または、例えば、ICカード200からリーダライタ100に能力リストを送信し、リーダライタ100は、ICカード200からの能力リストを参照し、所望のアルゴリズムを選択し、その選択したアルゴリズムの識別情報をICカード200に送信するようにし、リーダライタ100からはリーダライタ100の能力リストを送信しないようにしても良い。
換言すれば、一方から他方に能力リストを送信し、能力リストを受信した他方において利用するアルゴリズムを決定し、決定したアルゴリズムの識別情報を一方に送信するようにし、互いに能力リストを交換することがないようにしても良い。
本発明によれば、データの授受を行うときの暗号化や復号に用いるアルゴリズムを、複数(1以上)、扱うことが可能となり、それらの複数のアルゴリズムから、授受するデータの重要性などに応じて、適切なアルゴリズムを選択して利用することが可能となる。よって、例えば、低いセキュリティレベルから高いセキュリティレベルまでの通信を、必要なセキュリティレベルで対応できる通信が可能となり、通信に拡張性をもたせることが可能となる。
本明細書における情報処理装置、デバイスとの用語は、例えば、NFCIP-1の規格においては、イニシエータとターゲット、すなわち、それぞれ、RFフィールドを発生し、NFCIP-1通信を開始する装置と負荷変調または自ら発生したRFフィールドの変調を利用してイニシエータからの命令に応答する装置に対応する。また、これら装置は、それぞれの機能を有する1つ以上のICチップを搭載した通信装置であって、他の機能等を有した装置であっても良い。
上述した実施の形態においては、イニシエータとしてリーダライタ100を例に挙げ、ターゲットとしてICカード200を例に挙げて説明したが、本発明は、リーダライタ100やICカード200だけに適用が限定されるものではない。例えば、本発明は、データを授受する装置に適用することが可能であり、授受する際、無線で通信を行う装置であっても、有線で通信を行う装置であっても適用することが可能である。
[記録媒体について]
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、図2のCPU105またはCPU207により実行され、それらのプログラムは、リーダライタ100(300)またはICカード200(400)が読み取り可能な記録媒体などから読み込まれる。
本明細書において上述した一連の処理を実行するステップは、記載された順序に沿って時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
従来の通信方式の一例について説明するフローチャートである。 本発明の通信システムの一実施の形態の構成を示す図である。 通信システムの動作について説明するフローチャートである。 リーダライタの動作について説明するフローチャートである。 能力リストについて説明する図である。 能力リストについて説明する図である。 ICカードの動作について説明するフローチャートである。 通信システムの他の構成例を示す図である。 リーダライタの他の動作について説明するフローチャートである。 ICカードの他の動作について説明するフローチャートである。 通信システムの動作について説明するフローチャートである。 能力リストについて説明する図である。 能力リストについて説明する図である。 能力リストについて説明する図である。 能力リストについて説明する図である。
符号の説明
50 通信システム, 100 リーダライタ, 101 制御部、 102 能力リスト記憶部, 103 鍵生成部, 104 データ記憶部, 105 暗号化部, 106 復号部, 107 通信部, 200 ICカード, 201 制御部、 202 能力リスト記憶部, 203 乱数生成部, 204 データ記憶部, 205 暗号化部, 206 復号部, 207 通信部, 301 鍵生成部

Claims (13)

  1. 通信を行う情報処理装置およびデバイスにより構成される通信システムであって、
    前記情報処理装置または前記デバイスのうちの一方から他方に、暗号に関する能力を表す第1の能力リストであり、複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、扱える暗号に関する能力に対応する欄にフラグが立てられた前記第1の能力リストを送信する第1の送信手段と、
    前記第1の送信手段により送信された前記第1の能力リストを受信した前記他方は、受信された第1の能力リストを参照し、自己の暗号に関する能力で前記一方と通信を行うことができるアルゴリズムを選択して第2の能力リストを作成し、送信する第2の送信手段と、
    前記第2の送信手段により送信された前記第2の能力リストを受信した前記一方は、受信された第2の能力リストを参照し、自己の暗号に関する能力で前記他方と通信を行うことができるアルゴリズムを決定する決定手段と、
    前記決定手段により決定された前記アルゴリズムで通信を行う通信手段と
    を備え
    前記第2の能力リストは、前記第1の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
    通信システム。
  2. 通信を行う情報処理装置およびデバイスにより構成される通信システムの通信方法であって、
    前記情報処理装置または前記デバイスのうちの一方から他方に、暗号に関する能力を表す第1の能力リストであり、複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、扱える暗号に関する能力に対応する欄にフラグが立てられた前記第1の能力リストを送信し、
    送信された前記第1の能力リストを受信した前記他方は、受信された第1の能力リストを参照し、自己の暗号に関する能力で前記一方と通信を行うことができるアルゴリズムを選択して第2の能力リストを作成し、送信し、
    送信された前記第2の能力リストを受信した前記一方は、受信された第2の能力リストを参照し、自己の暗号に関する能力で前記他方と通信を行うことができるアルゴリズムを決定し、
    決定された前記アルゴリズムで通信を行う
    ステップを含み
    前記第2の能力リストは、前記第1の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
    通信方法。
  3. デバイスと通信を行う情報処理装置であって、
    暗号に関する能力を表す第1の能力リストを記憶する記憶手段と、
    前記記憶手段に記憶されている前記第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成する作成手段と、
    前記第の能力リストを前記デバイスに送信する送信手段と、
    前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信する受信手段と、
    前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定する決定手段と、
    前記決定手段により決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信する送信手段と
    を備え
    前記第3の能力リストは、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられたリストである
    情報処理装置。
  4. 前記送信手段により送信される前記第の能力リストは、前記記憶手段により記憶されている前記第1の能力リストから、前記決定手段による決定の処理が行われるときの候補となるアルゴリズムが選択され、その選択されたアルゴリズムに対応する欄にフラグが立てられたリストである
    請求項3に記載の情報処理装置。
  5. 前記決定手段は、セキュリティレベルに応じて前記アルゴリズムを決定する
    請求項3に記載の情報処理装置。
  6. デバイスと通信を行う情報処理装置の情報処理方法であって、
    記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、
    前記第の能力リストを前記デバイスに送信し、
    前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、
    前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、
    決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信する
    ステップを含み
    前記第3の能力リストは、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられているリストである
    情報処理方法。
  7. デバイスと通信を行う情報処理装置を制御するコンピュータのプログラムであって、
    記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、
    前記第の能力リストを前記デバイスに送信し、
    前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、
    前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられている前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、
    決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信する
    ステップを含む処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
  8. デバイスと通信を行う情報処理装置に、
    記憶されている第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを作成し、
    前記第の能力リストを前記デバイスに送信し、
    前記デバイスが前記第の能力リストを受信し、その受信された第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、送信してきた前記第の能力リストを受信し、
    前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられている前記第の能力リストを参照し、前記デバイスと通信を行うアルゴリズムを決定し、
    決定された前記アルゴリズムを識別するための識別情報と、前記アルゴリズムによる鍵または鍵の素材を前記デバイスに送信する
    ステップを含む処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムを記録している記録媒体。
  9. 情報処理装置と通信を行うデバイスであって、
    前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信する第1の受信手段と、
    受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信する送信手段と、
    前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信する第2の受信手段と、
    前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号する暗号化復号手段と
    を備え
    前記送信手段は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する
    デバイス。
  10. 前記第1の受信手段は、前記情報処理装置が行うポーリングで、前記第2の能力リストを受信する
    請求項9に記載のデバイス。
  11. 情報処理装置と通信を行うデバイスの情報処理方法であって、
    前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、
    受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、
    前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、
    前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号する
    ステップを含み、
    前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む
    情報処理方法。
  12. 情報処理装置と通信を行うデバイスを制御するコンピュータのプログラムであって、
    前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、
    受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、
    前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、
    前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号する
    ステップを含み、
    前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む
    処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラム。
  13. 情報処理装置と通信を行うデバイスに、
    前記情報処理装置が記憶している暗号に関する能力を表す第1の能力リストに記載されている複数の暗号に関する能力が記載され、前記複数の暗号に関する能力のうち、自己が扱える暗号に関する能力に対応する欄にフラグが立てられた第2の能力リストを受信し、
    受信された前記第の能力リストを参照し、自己の暗号に関する能力で通信を行うことができるアルゴリズムを選択して第の能力リストを作成し、前記情報処理装置に送信し、
    前記情報処理装置により決定され、データの授受を行うときに用いるアルゴリズムを識別するための識別情報を受信し、
    前記識別情報から前記アルゴリズムを特定し、その特定されたアルゴリズムでデータを暗号化または復号する
    ステップを含み、
    前記送信は、前記第2の能力リストに記載されている前記複数の暗号に関する能力が記載され、選択された前記アルゴリズムに対応する欄にフラグが立てられた前記第3の能力リストを作成し、送信する処理を含む
    処理をコンピュータに実行させるためのコンピュータ読み取り可能なプログラムが記録されている記録媒体。
JP2006240065A 2006-09-05 2006-09-05 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体 Expired - Fee Related JP4983165B2 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
JP2006240065A JP4983165B2 (ja) 2006-09-05 2006-09-05 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
CNA2007800012933A CN101356763A (zh) 2006-09-05 2007-09-05 通信系统和通信方法
EP07806711A EP2023527A4 (en) 2006-09-05 2007-09-05 COMMUNICATION SYSTEM AND METHOD
KR1020087010733A KR101464768B1 (ko) 2006-09-05 2007-09-05 정보 처리 장치, 정보 처리 방법, 디바이스 및 기록 매체
CN201410465047.5A CN104283676A (zh) 2006-09-05 2007-09-05 通信系统和通信方法
PCT/JP2007/067256 WO2008029823A1 (en) 2006-09-05 2007-09-05 Communication system and communication method
US12/090,878 US8811613B2 (en) 2006-09-05 2007-09-05 Communication system and communication method
US14/341,166 US9325673B2 (en) 2006-09-05 2014-07-25 Communication system and communication method
US15/073,255 US9973479B2 (en) 2006-09-05 2016-03-17 Communication system and communication method for communication based on encryption capabilities of device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006240065A JP4983165B2 (ja) 2006-09-05 2006-09-05 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体

Publications (2)

Publication Number Publication Date
JP2008066834A JP2008066834A (ja) 2008-03-21
JP4983165B2 true JP4983165B2 (ja) 2012-07-25

Family

ID=39157249

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006240065A Expired - Fee Related JP4983165B2 (ja) 2006-09-05 2006-09-05 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体

Country Status (6)

Country Link
US (3) US8811613B2 (ja)
EP (1) EP2023527A4 (ja)
JP (1) JP4983165B2 (ja)
KR (1) KR101464768B1 (ja)
CN (2) CN104283676A (ja)
WO (1) WO2008029823A1 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099603B2 (en) * 2006-05-22 2012-01-17 Corestreet, Ltd. Secure ID checking
CN101822082B (zh) 2007-10-05 2013-06-12 交互数字技术公司 用于uicc和终端之间安全信道化的技术
CN102037707B (zh) 2008-04-07 2015-06-03 交互数字专利控股公司 安全会话密钥生成
JP2014116641A (ja) * 2011-03-31 2014-06-26 Panasonic Corp 通信装置及び、通信システム
CN102685740B (zh) * 2012-03-29 2016-01-27 公安部第三研究所 一种短程无线通信节点及无线通信方法
EP2843973B1 (en) * 2012-04-27 2019-02-06 Sony Corporation Information processing device, information processing method, and program
CN103457727B (zh) * 2012-05-29 2018-01-23 华为技术有限公司 一种实现媒体数据处理的方法、装置和系统
WO2014026384A1 (zh) * 2012-08-17 2014-02-20 华为技术有限公司 用户设备配对处理方法、网络侧设备和用户设备
US10694378B2 (en) * 2013-03-29 2020-06-23 Sony Corporation Integrated circuit, communication method, computer program, and communication apparatus
CN103235912B (zh) * 2013-04-12 2015-12-02 福建伊时代信息科技股份有限公司 可信进程识别装置和可信进程识别方法
KR102046094B1 (ko) * 2013-04-23 2019-11-18 삼성전자주식회사 전자 기기 및 이의 개인 클라우드 기기 등록 방법
WO2015008521A1 (ja) * 2013-07-19 2015-01-22 ソニー株式会社 コンテンツ送信装置及びコンテンツ送信方法、コンテンツ受信装置及びコンテンツ受信方法、コンピューター・プログラム、並びにコンテンツ伝送システム
US9774448B2 (en) 2013-10-30 2017-09-26 Duo Security, Inc. System and methods for opportunistic cryptographic key management on an electronic device
US9742738B2 (en) * 2014-06-17 2017-08-22 Cisco Technology, Inc. Method and apparatus for enforcing storage encryption for data stored in a cloud
RU2598337C2 (ru) * 2014-12-19 2016-09-20 Закрытое акционерное общество "Лаборатория Касперского" Система и способ выбора средств перехвата данных, передаваемых по сети
US9516065B2 (en) * 2014-12-23 2016-12-06 Freescale Semiconductor, Inc. Secure communication device and method
US9641341B2 (en) 2015-03-31 2017-05-02 Duo Security, Inc. Method for distributed trust authentication
KR102466315B1 (ko) 2016-01-13 2022-11-15 삼성전자주식회사 전자 장치, 그의 통신 방법 및 암호화 방법
US11038698B2 (en) * 2018-09-04 2021-06-15 International Business Machines Corporation Securing a path at a selected node
US11477016B1 (en) 2019-09-10 2022-10-18 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11240014B1 (en) 2019-09-10 2022-02-01 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11626983B1 (en) 2019-09-10 2023-04-11 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11343270B1 (en) 2019-09-10 2022-05-24 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11533175B1 (en) 2020-01-30 2022-12-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography on a smartcard
US11322050B1 (en) * 2020-01-30 2022-05-03 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11838410B1 (en) 2020-01-30 2023-12-05 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
US11449799B1 (en) * 2020-01-30 2022-09-20 Wells Fargo Bank, N.A. Systems and methods for post-quantum cryptography optimization
KR102222080B1 (ko) * 2020-02-24 2021-03-04 한국전자통신연구원 양자 개체 인증 장치 및 방법
WO2023287328A1 (en) * 2021-07-12 2023-01-19 Telefonaktiebolaget Lm Ericsson (Publ) Hash function and lawful interception

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4652990A (en) * 1983-10-27 1987-03-24 Remote Systems, Inc. Protected software access control apparatus and method
US5081678A (en) * 1989-06-28 1992-01-14 Digital Equipment Corporation Method for utilizing an encrypted key as a key identifier in a data packet in a computer network
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
JPH07336328A (ja) * 1994-06-07 1995-12-22 Nec Corp 秘匿装置
US5651068A (en) * 1995-03-08 1997-07-22 Hewlett-Packard Company International cryptography framework
US6125186A (en) * 1996-11-28 2000-09-26 Fujitsu Limited Encryption communication system using an agent and a storage medium for storing that agent
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
US6094485A (en) * 1997-09-18 2000-07-25 Netscape Communications Corporation SSL step-up
US6212633B1 (en) * 1998-06-26 2001-04-03 Vlsi Technology, Inc. Secure data communication over a memory-mapped serial communications interface utilizing a distributed firewall
US6134662A (en) * 1998-06-26 2000-10-17 Vlsi Technology, Inc. Physical layer security manager for memory-mapped serial communications interface
AU4781899A (en) * 1998-07-03 2000-01-24 Nokia Mobile Phones Limited Secure session set up based on the wireless application protocol
JP2000278260A (ja) 1999-03-24 2000-10-06 Hitachi Information Systems Ltd 暗号通信方法およびそのプログラムを記録した記録媒体
US7146505B1 (en) * 1999-06-01 2006-12-05 America Online, Inc. Secure data exchange between date processing systems
US6931532B1 (en) * 1999-10-21 2005-08-16 International Business Machines Corporation Selective data encryption using style sheet processing
US6961849B1 (en) * 1999-10-21 2005-11-01 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a group clerk
US6941459B1 (en) * 1999-10-21 2005-09-06 International Business Machines Corporation Selective data encryption using style sheet processing for decryption by a key recovery agent
US7188176B1 (en) * 2000-01-20 2007-03-06 Priceline.Com Incorporated Apparatus, system, and method for maintaining a persistent data state on a communications network
US7231517B1 (en) * 2000-03-03 2007-06-12 Novell, Inc. Apparatus and method for automatically authenticating a network client
JP2002152307A (ja) * 2000-11-09 2002-05-24 Sony Corp データ受信装置、データ送信装置、データ通信システム、データ受信方法、データ送信方法、データ通信方法、並びにプログラム記憶媒体
FI111423B (fi) * 2000-11-28 2003-07-15 Nokia Corp Järjestelmä kanavanvaihdon jälkeen tapahtuvan tietoliikenteen salauksen varmistamiseksi
US20020169965A1 (en) * 2001-05-08 2002-11-14 Hale Douglas Lavell Clearance-based method for dynamically configuring encryption strength
US20030063750A1 (en) * 2001-09-26 2003-04-03 Alexander Medvinsky Unique on-line provisioning of user terminals allowing user authentication
US20030059053A1 (en) * 2001-09-26 2003-03-27 General Instrument Corporation Motorola, Inc. Key management interface to multiple and simultaneous protocols
US7237108B2 (en) * 2001-09-26 2007-06-26 General Instrument Corporation Encryption of streaming control protocols and their headers
JP4734585B2 (ja) * 2001-09-28 2011-07-27 ハイ デンスィティ デバイスィズ アクシエセルスカプ 大容量記憶装置におけるデータの暗号化/復号化の方法及び装置
US6993652B2 (en) * 2001-10-05 2006-01-31 General Instrument Corporation Method and system for providing client privacy when requesting content from a public server
US7243366B2 (en) * 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
JP4122777B2 (ja) * 2002-01-18 2008-07-23 日本ビクター株式会社 コンテンツ記録再生装置
US7231663B2 (en) * 2002-02-04 2007-06-12 General Instrument Corporation System and method for providing key management protocol with client verification of authorization
US7818792B2 (en) * 2002-02-04 2010-10-19 General Instrument Corporation Method and system for providing third party authentication of authorization
US7219223B1 (en) * 2002-02-08 2007-05-15 Cisco Technology, Inc. Method and apparatus for providing data from a service to a client based on encryption capabilities of the client
US7263192B2 (en) * 2002-02-14 2007-08-28 Hewlett-Packard Development Company, L.P. Establishing an encrypted session
US20030163693A1 (en) * 2002-02-28 2003-08-28 General Instrument Corporation Detection of duplicate client identities in a communication system
US7356687B2 (en) * 2002-05-21 2008-04-08 General Instrument Corporation Association of security parameters for a collection of related streaming protocols
US7529933B2 (en) * 2002-05-30 2009-05-05 Microsoft Corporation TLS tunneling
JP2004015667A (ja) * 2002-06-10 2004-01-15 Takeshi Sakamura Icカード間暗号通信方法、電子チケット流通システムにおけるicカード間暗号通信方法およびicカード
US20040059913A1 (en) * 2002-09-13 2004-03-25 Sun Microsystems, Inc., A Delaware Corporation Accessing for controlled delivery of digital content in a system for digital content access control
JP4566546B2 (ja) * 2002-10-31 2010-10-20 パナソニック株式会社 通信装置、通信システムおよびアルゴリズム選択方法
KR100949420B1 (ko) * 2002-10-31 2010-03-24 파나소닉 주식회사 통신장치, 통신 시스템 및 알고리즘 선택방법
US20050050316A1 (en) * 2003-08-25 2005-03-03 Amir Peles Passive SSL decryption
GB0321335D0 (en) * 2003-09-11 2003-10-15 Rogers Paul J Method and apparatus for use in security
JP2005099885A (ja) * 2003-09-22 2005-04-14 Minolta Co Ltd プリントジョブの処理プログラム、印刷装置、および印刷システム
ATE514294T2 (de) * 2003-09-26 2011-07-15 Ericsson Telefon Ab L M Verbesserter sicherheitsentwurf für die kryptographie in mobilkommunikationssystemen
WO2005067199A1 (ja) * 2003-12-26 2005-07-21 Mitsubishi Denki Kabushiki Kaisha 被認証装置及び認証装置及び認証方法
US20050204038A1 (en) * 2004-03-11 2005-09-15 Alexander Medvinsky Method and system for distributing data within a network
US7574600B2 (en) * 2004-03-24 2009-08-11 Intel Corporation System and method for combining user and platform authentication in negotiated channel security protocols
GB2414144B (en) * 2004-04-19 2006-07-26 Matsushita Electric Ind Co Ltd Fast and secure connectivity for a mobile node
US7747862B2 (en) * 2004-06-28 2010-06-29 Intel Corporation Method and apparatus to authenticate base and subscriber stations and secure sessions for broadband wireless networks
JP4670270B2 (ja) 2004-06-28 2011-04-13 ソニー株式会社 通信システム及び通信装置
US20060126836A1 (en) * 2004-12-10 2006-06-15 Hector Rivas System and method for dynamic generation of encryption keys
US7900039B2 (en) * 2005-01-17 2011-03-01 Lg Electronics, Inc. TLS session management method in SUPL-based positioning system
US7350074B2 (en) * 2005-04-20 2008-03-25 Microsoft Corporation Peer-to-peer authentication and authorization
DE102005025806B4 (de) * 2005-06-02 2008-04-17 Bundesdruckerei Gmbh Verfahren zum Zugriff von einer Datenstation auf ein elektronisches Gerät
US20060294366A1 (en) * 2005-06-23 2006-12-28 International Business Machines Corp. Method and system for establishing a secure connection based on an attribute certificate having user credentials
US7730309B2 (en) * 2005-07-27 2010-06-01 Zimmermann Philip R Method and system for key management in voice over internet protocol
US20070025341A1 (en) * 2005-07-28 2007-02-01 Texas Instruments Incorporated Device, system and/or method for provisioning a device in a packet network
US20070180237A1 (en) * 2005-12-22 2007-08-02 Cisco Technology, Inc. Apparatus and methods for interaction between message groups and encryption methods
US8112787B2 (en) * 2005-12-31 2012-02-07 Broadcom Corporation System and method for securing a credential via user and server verification
KR100750153B1 (ko) * 2006-01-03 2007-08-21 삼성전자주식회사 Wusb 보안을 위한 세션 키를 제공하는 방법 및 장치,이 세션 키를 획득하는 방법 및 장치
US8127130B2 (en) * 2006-04-18 2012-02-28 Advanced Communication Concepts, Inc. Method and system for securing data utilizing reconfigurable logic
US7464865B2 (en) * 2006-04-28 2008-12-16 Research In Motion Limited System and method for managing multiple smart card sessions
US20080022124A1 (en) * 2006-06-22 2008-01-24 Zimmer Vincent J Methods and apparatus to offload cryptographic processes
CN101102185B (zh) * 2006-07-06 2012-03-21 朗迅科技公司 Ims会话的媒体安全
US8112794B2 (en) * 2006-07-17 2012-02-07 Research In Motion Limited Management of multiple connections to a security token access device
US20080011827A1 (en) * 2006-07-17 2008-01-17 Research In Motion Limited Automatic management of security information for a security token access device with multiple connections
US8079068B2 (en) * 2006-07-17 2011-12-13 Research In Motion Limited Management of multiple connections to a security token access device

Also Published As

Publication number Publication date
KR20090045883A (ko) 2009-05-08
US9973479B2 (en) 2018-05-15
CN101356763A (zh) 2009-01-28
EP2023527A1 (en) 2009-02-11
US20140337625A1 (en) 2014-11-13
KR101464768B1 (ko) 2014-11-24
US20160197892A1 (en) 2016-07-07
US20080247545A1 (en) 2008-10-09
US8811613B2 (en) 2014-08-19
WO2008029823A1 (en) 2008-03-13
JP2008066834A (ja) 2008-03-21
CN104283676A (zh) 2015-01-14
EP2023527A4 (en) 2011-01-05
US9325673B2 (en) 2016-04-26

Similar Documents

Publication Publication Date Title
JP4983165B2 (ja) 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
EP1770900B1 (en) Communication system and communication device
JP4881813B2 (ja) 通信装置、通信装置の通信方法、プログラム、記憶媒体
US8837725B2 (en) Communication system and communication method
EP1868314B1 (en) Communication apparatus and method thereof
JP4987939B2 (ja) 保安モードに応じる手動型rfid保安方法
JP2009276916A (ja) 通信装置、通信方法、リーダライタ及び通信システム
KR100856408B1 (ko) 데이터 전송 방법 및 장치
JP4635182B2 (ja) 無線通信システム
JP5908869B2 (ja) 通信装置
JP2012118806A (ja) ストレージ拡張アダプタ、ストレージ拡張方法、およびストレージ拡張システム
Healy et al. A novel and scalable key management scheme for wireless sensor networks

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120112

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

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: 20120327

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120409

R151 Written notification of patent or utility model registration

Ref document number: 4983165

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150511

Year of fee payment: 3

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

LAPS Cancellation because of no payment of annual fees