WO2012056608A1 - 署名処理装置 - Google Patents

署名処理装置 Download PDF

Info

Publication number
WO2012056608A1
WO2012056608A1 PCT/JP2011/003006 JP2011003006W WO2012056608A1 WO 2012056608 A1 WO2012056608 A1 WO 2012056608A1 JP 2011003006 W JP2011003006 W JP 2011003006W WO 2012056608 A1 WO2012056608 A1 WO 2012056608A1
Authority
WO
WIPO (PCT)
Prior art keywords
calculation
signature
subsystem
signature processing
requests
Prior art date
Application number
PCT/JP2011/003006
Other languages
English (en)
French (fr)
Inventor
澄夫 森岡
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Priority to US13/881,537 priority Critical patent/US20140032917A1/en
Priority to JP2012540645A priority patent/JP5849962B2/ja
Publication of WO2012056608A1 publication Critical patent/WO2012056608A1/ja

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/125Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations

Definitions

  • the present invention relates to a signature processing apparatus, and more particularly to a group signature processing apparatus that processes a plurality of group signatures simultaneously.
  • the group signature technique is a technique for authenticating whether or not a signer belongs to a group.
  • the signer can be anonymous about which member of the group he is in.
  • the privileged person can deprive the anonymity of the member as necessary, and the abuse of anonymity can be prevented.
  • Non-Patent Document 1 discloses a basic algorithm for generating and authenticating a group signature. Further, Non-Patent Document 1 discloses a circuit that can perform group signature processing at high speed even though it is small.
  • Patent Document 1 discloses a signature processing apparatus. In Patent Document 1, as shown in FIG. 13, the signature processing apparatus 300 includes an elliptic curve calculation unit 301, a remainder calculation unit 302, a pseudo-random number generation unit 303, an integer calculation unit 305, and a hash calculation unit 306. Are connected by a low-bandwidth bus.
  • the group signature device disclosed in these documents is intended for portable terminal devices used by a single user, and does not assume a device handled by a plurality of users at the same time.
  • FIG. 13 it is necessary to perform the signature processing not only on a personal terminal but also on a server in a wide area data center where many users access simultaneously. In this case, it is necessary to perform a plurality of signature processes simultaneously.
  • group signatures take 0.1 to several seconds to process once. Therefore, if the request processing is sequentially performed in the group signature processing for a plurality of users, there is a problem that the average response time is remarkably deteriorated and the experience speed of providing the service is slowed down.
  • group signatures in order to keep the average response time of group signatures for multiple users at the same level as a single signature, as many signature processing devices as the number of requests are prepared as shown in FIG. Processing in parallel can be considered as a general solution.
  • the cost becomes N times.
  • the chip area of the LSI circuit is increased N times, and the number of processors for program processing is increased N times.
  • the power consumption is increased N times.
  • the number of devices directly affects facility costs and operation costs. Further, the increase in power consumption makes it difficult to manage the temperature of the apparatus.
  • An object of the present invention is to provide a signature generation device and a signature authentication device capable of performing many signature processes while suppressing an increase rate of power consumption and a circuit scale without reducing an average response speed of signature processing. There is.
  • one or a plurality of basic operation execution units for each type of basic operation included in the signature processing procedure and a dispatcher that monitors the operation state and instructs the execution of the operation are interconnected. Configure the system A plurality of the subsystems are connected through a buffer memory that relays calculation requests.
  • the signature processing method of the present invention includes: Multiple basic operations included in the signature processing procedure are executed simultaneously by one or more basic operation execution units, Instruct the basic operation execution unit that can monitor and accept the operation status to execute the operation sequentially, It is characterized in that operations in different requests are allocated to each basic operation unit and executed simultaneously without being occupied by a single request.
  • the signature processing program of the present invention A computer having a plurality of processors; For each type of basic operation included in the signature processing procedure, one or a plurality of basic operation execution units and a dispatcher for monitoring the operation state and instructing the execution of the operation are interconnected to function as a subsystem. A plurality of signature generation requests or signature authentication requests are received by a single input, and a plurality of requests are processed in parallel.
  • FIG. 1 is a diagram showing an overall configuration of a signature generation apparatus as a first embodiment.
  • FIG. 3 is a diagram showing a configuration of a random number generation subsystem in the first embodiment.
  • FIG. 3 is a diagram showing a configuration of an elliptic curve calculation subsystem in the first embodiment.
  • FIG. 3 is a diagram showing a configuration of a remainder calculation subsystem in the first embodiment.
  • 6 is a flowchart showing an operation of a dispatcher in the first embodiment.
  • FIG. 9 is a diagram showing a configuration of a signature authentication device as a third embodiment. 9 is a flowchart showing an algorithm for group signature authentication in the third embodiment.
  • FIG. 1 is a diagram showing a configuration of a signature generation device (signature processing device) according to the present invention.
  • the signature generation device 100 A random number generation subsystem 101; An elliptic curve calculation subsystem 107; Residue calculation subsystem 112; Hash / integer operation subsystem 118, Packet relay buffer memories 105, 106, and 117.
  • the random number generation subsystem 101 and the elliptic curve calculation subsystem 107 are connected via a packet relay buffer memory 105.
  • the random number generation subsystem 101 and the remainder calculation subsystem 112 are connected via a packet relay buffer memory 106.
  • the computation results of the elliptic curve computation subsystem 107 and the remainder computation subsystem 112 are input to the hash / integer computation subsystem 118 via the packet relay buffer memory 117.
  • the signature generation device 100 has one input port 130 and one output port 131. Then, a plurality of request packets are sequentially received from the input port 130, and final results (signature or authentication) are sequentially output from the output port 131.
  • the request packet is, for example, the opening manager's public key, the user's private key, the issuing manager's public key, the revocation manager's public key, or a message.
  • the signature generation device 100 accepts the next request even if the processing of one request is not completed.
  • the accepted requests are sequentially sent from the previous stage to the subsequent subsystems 101, 107, 112, and 118 via the packet relay buffer memories 105, 106, and 117, and the calculation process proceeds.
  • FIG. 2 is a diagram showing a configuration of the random number generation subsystem 101.
  • FIG. 3 is a diagram showing a configuration of the elliptic curve calculation subsystem 107.
  • FIG. 4 is a diagram showing a configuration of the remainder calculation subsystem 112.
  • FIG. 5 is a diagram showing a configuration of the hash / integer operation subsystem 118.
  • each subsystem 101, 107, 112, 118 includes a dispatcher 102, 108, 113, 119, a local bus 104, 111, 116, 123, and one or more basic arithmetic units 103. , 110, 114, 120, 121.
  • Some subsystems 101, 107, 112, and 118 have local buffer memories 109, 115, and 122 therein.
  • the random number generation subsystem 101 includes a dispatcher 102, a pseudo-random number generation unit 103, and a local bus 104 as shown in FIG.
  • a dispatcher 102 the random number generation subsystem 101 performs random number generation in the signature generation process.
  • a pseudo-random number generation unit 103 performs random number generation in the signature generation process.
  • the elliptic curve calculation subsystem 107 includes a dispatcher 108, an elliptic curve calculation unit 110 as a basic calculation unit, a temporary data buffer memory 109, and a local bus 111.
  • a plurality of elliptic curve calculation units 110 are provided.
  • six elliptic curve calculation units 110 are provided.
  • the elliptic curve calculation subsystem 107 performs an elliptic curve calculation in the signature generation process.
  • the remainder calculation subsystem 112 includes a dispatcher 113, a remainder calculation unit 114 as a basic calculator, a temporary data buffer memory 115, and a local bus 116.
  • a plurality of residue calculation units 114 are provided, and nine residue calculation units 114 are provided in the present embodiment.
  • the remainder calculation subsystem 112 performs remainder calculation in the signature generation process.
  • the hash / integer operation subsystem 118 includes a dispatcher 119, a hash operation unit 120, an integer operation unit 121, a temporary data buffer memory 122, and a local bus 123.
  • a hash operation unit 120 and one integer operation unit 121 are provided.
  • the hash / integer operation subsystem 118 performs hash operation and integer operation in signature generation and signature authentication.
  • the group signature processing for one request is configured by combining a plurality of random number generation operations, a plurality of elliptic curve operations, a plurality of remainder operations, a plurality of hash operations, and a plurality of integer operations. Further, in each calculation process, even if the type of the calculation process itself is the same, the bit width of the data to be handled is different. Since such a plurality of calculations are combined, the calculation time required for each subsystem varies, and the time required for each internal basic calculation is not constant. Therefore, when focusing on each subsystem, even if a group signature is being calculated, the internal basic calculation units include both moving and stopped ones. The execution start timing of each operation changes dynamically depending on the interval and number of incoming packets, and cannot be determined statically. For this reason, a control mechanism that constantly monitors the input packet and the execution status of the operation and instructs the free operation unit to perform the operation is required. The dispatchers 102, 108, 113, and 119 perform this function.
  • FIG. 6 is a flowchart showing the operation of the dispatcher.
  • the dispatcher constantly monitors the number of packets in the input buffer and the output buffer and the usage status of the basic arithmetic unit. If there is an input packet in the input buffer (ST502), the dispatcher extracts it (ST503), and determines whether all of the argument calculations for executing the packet calculation have been completed (ST504). That is, the dispatcher also monitors the dependency relationship of operations, and when there is a certain request, confirms whether all operations necessary to start the request are completed and the data is ready (ST504).
  • FIG. 7 is a configuration diagram of a packet used for communication between subsystems.
  • the packet 401 specifies the content of the arithmetic processing to be performed.
  • the packet 401 has a request number 402 indicating which signature request is present, a current operation number 403 indicating what number calculation is being performed in the signature processing, and one that must be completed before this calculation is started. Or, it has fields such as a previous operation number 404 indicating a plurality of operations, an operation argument 405 indicating a numerical value necessary for the operation, and a designation 406 of where to transfer the obtained operation result.
  • Non-Patent Document 1 The basic algorithm for group signature is also disclosed in Non-Patent Document 1.
  • the group signature scheme involves four entities: user, issue manager, revocation manager, and open manager.
  • the user is a member of the group and performs signature generation and signature authentication.
  • the issue manager has the authority to add users to groups.
  • the revocation manager has the authority to remove the user from the group.
  • the opening manager has the authority to specify the signer.
  • K (K [n], K [l], K [e], K [e '], K [q], K [c], K [S] ).
  • K [n], K [l], K [e], K [e '] indicate the number of bits for each parameter n, l, e, e', that is, K [n], K [l], K [e], and K [e ′] have predetermined bit lengths K [n], K [l], K [e], and K [e ′], respectively.
  • K [q] represents the bit length of a prime number q that is the order of the finite group GG defined based on the elliptic curve.
  • K [c] indicates the bit length of the value c returned by the hash function Hash applied to the arbitrary-length bit string.
  • K [S] is a bit length that makes a + r and a statistically indistinguishable when a random number r of
  • xs indicates scalar multiplication for points on the elliptic curve
  • + e indicates point addition on the elliptic curve
  • “-e” indicates point subtraction on the elliptic curve.
  • ipk is the public key of the issue manager
  • isk is the secret key of the issue manager.
  • step ST100 the random number generation subsystem 101 generates a random number. That is, ⁇ [E], ⁇ [m], ⁇ [r], ⁇ [x], ⁇ [s], ⁇ [e '], ⁇ [t], ⁇ [E] are randomly assigned as follows: select.
  • step ST110 a plurality of elliptic curve calculations are executed by the elliptic curve calculation unit 110 of the elliptic curve calculation subsystem 107, and E [0], E [1], E [ 2], E, V [ComCipher] is obtained as follows.
  • E [2] h [i] + e ⁇ [E] xsH [2]
  • E (E [0], E [1], E [2])
  • V [ComCipher] ( ⁇ [E] xsG, ⁇ [x] xsG + e ⁇ [E] xsH [1], ⁇ [x] xsG + e ⁇ [E] xsH [2])
  • the dispatcher 108 functions to monitor the status of the six elliptic curve calculation units 110, and send data to the vacant elliptic curve calculation units 110 one after another for efficient calculation.
  • step ST120 a plurality of residue operations are executed by the residue operation unit 114 of the residue operation subsystem 112, and A [COM], B [COM are used using the public key of the issue manager, the public key of the revocation manager, and the random number. ], V [ComMPK], V [ComREV] are obtained as follows.
  • a [COM] A [i] a [2] ⁇ [m] (mod n)
  • B [COM] B [i] w ⁇ [r] (mod l)
  • V [ComMPK] a [1] ⁇ [x] a [2] ⁇ [s]
  • V [ComREV] w ⁇ [t] B [COM] - ⁇ [e '] (mod l)
  • the status of the nine remainder arithmetic units 114 is monitored by the action of the dispatcher 113, and data is successively sent to the vacant remainder arithmetic units 114 to advance the computation efficiently.
  • the remainder calculation is executed in parallel with the elliptic curve calculation.
  • the elliptic curve calculation and the remainder calculation are designed to have substantially the same latency, and the elliptic curve calculation result and the remainder calculation result for one request are output to the packet relay buffer memory 117 almost simultaneously. It is like that. This point will be described later.
  • step ST130 the hash calculation unit 120 calculates the hash c by using the calculation result of the elliptic curve calculation, the calculation result of the remainder calculation, and the message m as follows.
  • step ST140 the integer arithmetic unit 121 executes integer arithmetic, and uses the arithmetic operation result of the hash arithmetic and the random number, and ⁇ [x], ⁇ [s], ⁇ [t], ⁇ [e '], ⁇ [E ] Is calculated as follows.
  • step ST150 signatures (E, A [COM], B [COM], c, ⁇ [x], ⁇ [s], ⁇ [t], ⁇ [e '], ⁇ [E]) are output. In this way, signature generation is performed.
  • the number of basic arithmetic units in each subsystem may not be the same as the number of requests to be processed simultaneously.
  • the simultaneous processing of six requests does not mean that each subsystem has only six basic arithmetic units.
  • Different types of basic operations will have different execution speeds. Therefore, it is sufficient to increase the number of basic operations that are slow in processing and reduce the number of basic operations that are fast in processing.
  • the latencies of the subsystems are approximately equal, the highest performance can be realized with the smallest amount of apparatus.
  • the remainder operation is the one that determines the speed of the entire signature processing most, and is 10 times or more slower than other operations.
  • the remainder operation is used several times, and the operation speed thereof is about 10 times larger because the bit width of the data is different.
  • the number of the residue calculation units 114 in the residue calculation subsystem 112 is larger than the number of basic operation units of other subsystems.
  • the pseudorandom number generation unit 103 of the random number generation subsystem 101 is 1
  • the elliptic curve calculation subsystem is 6
  • the remainder calculation unit 114 is 9,
  • FIG. 9 is a graph showing the results of concrete measurement of the effects of the invention.
  • six elliptic curve calculation units, one pseudorandom number generation unit, one hash calculation unit, and one integer calculation unit are fixed, and the remainder calculation unit that controls the speed is the most The number was changed from 1 to 9. Then, the relationship between the number of requests that require simultaneous processing and the time taken to finish processing all requests was measured and shown in the graph.
  • the processing speed is almost the same as the signature circuit for processing a single request shown in FIG. In this case, if the number of requests becomes nine times, the processing time also takes nine times. In order to reduce the processing time with this configuration, the same number of signature circuits as the number of requests must be arranged.
  • each basic operation of signature generation may be executed using one or more CPUs (Central Processing Units) that execute software.
  • CPUs Central Processing Units
  • the signature generation apparatus includes a plurality of elliptic curve calculation processor cores that execute elliptic curve calculation, a plurality of residue calculation processor cores that execute remainder calculation, a plurality of integer calculation processor cores that execute integer calculation, and a random number It includes at least a random number generation processor core that executes generation, a hash operation processor core that executes hash calculation, a shared memory that relays packets, and a plurality of processor cores that execute dispatch processing. Then, the number of processor cores that execute each basic operation is appropriately designed, such as nine remainder arithmetic processor cores and six elliptic curve arithmetic processor cores.
  • the processor core that performs dispatch monitors the status of the shared memory and the processor core that performs basic operations, and when a packet for requesting operations is stored in the shared memory, causes a free processor in charge of basic operations to start operations.
  • the processing can be executed in the same manner as when the signature circuit is configured using a dedicated circuit.
  • some basic operation execution units may be configured with CPUs, without configuring all basic operation execution units with CPUs.
  • the signature processing program that causes the CPU to function as each computing unit may be provided by being recorded on a computer-readable recording medium.
  • FIG. 10 is a diagram showing a configuration of the signature authentication apparatus 200 according to the present invention. Since the signature authentication apparatus 200 can employ the same configuration as the signature generation apparatus 100 except for random number generation, the same elements as those in the first embodiment are denoted by the same reference numerals, and description thereof is omitted.
  • FIG. 11 is a flowchart showing a signature authentication algorithm. The signature authentication algorithm has almost the same data flow as signature generation except for random number generation.
  • the signature is authenticated as follows by using the public key ipk of the issuing manager, the public key rpk of the revocation manager, the public key opk of the opening manager, the message m, and the signature ⁇ as inputs.
  • step ST200 it is checked whether
  • V ′ [ComCipher] ( ⁇ [E] xsG-e [c] xsE [0], ⁇ [x] xsG + e ⁇ [E] xsH [1] -e [c] xsE [1], ⁇ [x] xsG + e ⁇ [E] xsH [2] ⁇ e [c] xsE [2]) is calculated.
  • step ST230 the hash c ′ is calculated by the hash calculation as follows.
  • the signature authentication device can also be configured using one or more CPUs (Central Processing Unit) that execute software.
  • CPUs Central Processing Unit
  • the present invention is not limited to the above-described embodiment, and can be appropriately changed without departing from the gist of the present invention.
  • the number of circuit units or processor cores that execute basic operations is not limited to the above example.
  • the number of pseudo-random number generation units in the random number generation subsystem may be two or more instead of one.
  • the elliptic curve unit of the elliptic curve calculation subsystem is not limited to six, and may be more or less.
  • the number of remainder calculation units of the remainder calculation subsystem is not limited to nine, and may be more or less.
  • the number of hash operation units and integer operation units of the hash / integer operation unit is not limited to one, and may be two or more.
  • FIG. 12 conceptually illustrates a signature processing apparatus for realizing the gist of the present invention without specifying the type of calculation.
  • the subsystem includes a remainder calculation subsystem, an elliptic curve calculation subsystem, and an integer calculation / hash calculation subsystem.
  • the residue calculation subsystem includes a plurality of residue calculation units that execute a residue calculation and a dispatcher that controls them.
  • the elliptic curve calculation subsystem includes a plurality of elliptic curve calculation units for executing elliptic curve calculation and a dispatcher for controlling them.
  • the integer operation / hash operation subsystem includes one or more hash operation units that perform hash operations, one or more integer operation units that perform integer operations, and a dispatcher that controls them.
  • the subsystem further includes a random number generation calculation subsystem,
  • the said random number generation calculation subsystem is comprised including the one or some random number generation part which performs random number generation calculation, and the dispatcher which controls those.
  • the signature processing apparatus characterized by the above-mentioned.
  • the number of the elliptic curve calculation units of the elliptic curve calculation subsystem is equal to or less than the number of the remainder calculation units of the elliptic curve calculation subsystem.
  • Appendix 9 In the signature processing device according to any one of appendix 1 to appendix 9, A signature processing apparatus, wherein a part or all of the basic arithmetic execution unit and a part or all of the dispatcher are configured using a processor core.
  • the signature processing apparatus is a group signature generation apparatus that generates a group signature, or a group signature authentication apparatus that authenticates a group signature.
  • Appendix 12 A computer having a plurality of processors; For each type of basic operation included in the signature processing procedure, one or a plurality of basic operation execution units and a dispatcher for monitoring the operation state and instructing the execution of the operation are interconnected to function as a subsystem.
  • a signature processing program characterized by receiving a plurality of signature generation requests or signature authentication requests with a single input and processing a plurality of requests simultaneously in parallel.
  • Appendix 13 A computer-readable recording medium on which the signature processing program according to appendix 12 is recorded.
  • DESCRIPTION OF SYMBOLS 100 ... Signature generator, 101 ... Random number generation subsystem, 102 ... Dispatcher, 103 ... Pseudo random number generation unit, 104 ... Local bus, 105 ... Packet relay buffer memory, 106 ... Packet relay buffer memory, 107 ... Elliptic curve calculation subsystem , 108 ... Dispatcher, 109 ... Temporary data buffer memory, 110 ... Elliptic curve computing unit, 111 ... Local bus, 112 ... Residue computing subsystem, 113 ... Dispatcher, 114 ... Residue computing unit, 115 ... Temporary data buffer memory, 116 ... Local bus, 117 ... packet relay buffer memory, 118 ...
  • hash / integer operation subsystem 119 ... dispatcher, 120 ... hash operation unit, 121 ... integer operation unit, 122 ... temporary data buffer memory, 123 ... local bus, 130 ... input , 131 ... output port, 301 ... elliptic curve calculation unit, 302 ... residue calculation unit , 303 ... pseudo random number generation unit, 305 ... integer operation unit, 306 ... hash operation unit, 401 ... packet, 402 ... request number, 403 ... current operation number, 404 ... previous operation number, 405 ... operation argument, 406 ... transfer destination Specified.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Abstract

 平均応答速度を低下させることなく、複数のグループ署名処理を少ない処理装置数、少ない電力消費で並列に実行する。署名処理装置は、署名処理手続きに含まれる基本演算の種類ごとにサブシステムを有する。各サブシステムは、1つまたは複数の基本演算実行部とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続した構成を有する。複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理する。このとき、各サブシステムは単一のリクエストに占有されることなく、異なるリクエスト中の演算であっても空いている基本演算部に割り付けて同時実行させる。

Description

署名処理装置
 本発明は、署名処理装置に関し、詳しくは、複数のグループ署名を同時に処理するグループ署名処理装置に関する。
 近年、暗号および署名の分野では、グループ署名の技術が提案されている。グループ署名技術とは、グループに署名者が所属しているかどうかを認証する技術である。署名者は、自分自身がグループ内のどのメンバであるかは匿名にすることができる。ただし、特権者は必要に応じてメンバの匿名性を剥奪することが可能であり、匿名性の悪用を防止することができる。
 グループ署名技術は、例えば下記の文献(特許文献1、非特許文献1から3)に開示されている。非特許文献1には、グループ署名の生成および認証を行うための基本的なアルゴリズムが開示されている。さらに、非特許文献1には、小規模でありながらグループ署名の処理を高速に行うことができる回路が開示されている。
 また、特許文献1には署名処理装置が開示されている。特許文献1では、図13に示すように、署名処理装置300は、楕円曲線演算ユニット301、剰余演算ユニット302、擬似乱数生成ユニット303、整数演算ユニット305およびハッシュ演算ユニット306を備え、それぞれのユニットが低帯域バスで接続されている。
 ところで、これらの文献で開示されているグループ署名装置は、単独の利用者が使用する可搬端末機器などを対象としており、同時に複数の利用者が取り扱うような装置を想定していない。しかしながら、図13に示すように、署名の処理は個人利用の端末だけでなく多数の利用者が同時にアクセスしてくる広域データセンタのサーバなどでも行う必要がある。この場合、署名処理も複数を同時に行う必要が生じてくる。
 同時に複数の処理リクエストが発生する場合には、発生したリクエストを順次キューに投入しておき、逐次プロセッサ等で処理するのが一般的である。共通鍵暗号演算や公開鍵暗号演算では、このような処理方式がよく用いられている。
 ところが、グループ署名では一回の処理に0.1~数秒という時間がかかる。そのため、複数の利用者を対象とするグループ署名の処理においてリクエストの処理を逐次行うとすると、平均応答時間が著しく悪化し、サービス提供の体感速度が遅くなってしまうという問題が生じる。
 ここで、複数の利用者を対象とするグループ署名の平均応答時間を単独の署名と同程度に保ったままにするには、図14に示すように、署名処理装置をリクエストの数だけ用意し並列に処理させるのが一般的解決手法とも考えられる。
特開2010-014912号公報 特開2006-243690号公報 特開2007-234001号公報 特表2009-500710号公報
森岡澄夫,荒木俊則,一色寿幸,尾花賢,佐古和恵,「二段階動作合成によるグループ署名ASICの実装と評価」,電子情報通信学会 VLSI研究会,VLD2009-128, pp.175-180, 2010年 J. Camenish and J. Groth, "Group signatures: Better efficiency and new theoretical aspects," SCN2004, LNCS Vol.3352, pp.120-133, 2004. T. Isshiki, K. Mori, K. Sako, I. Teranishi, and S. Yonezawa, "Using Group Signature for Identity Management and its Implementation," DIM2006, 2006.
 しかし、N個のリクエストを扱うために署名処理装置を多重化するとなると、コストはN倍になる。署名処理をLSI回路やプログラム処理で実行する場合でも、処理を単純に多重化するとLSI回路のチップ面積がN倍になり、プログラム処理のためのプロセッサ数がN倍になる。また、これらに伴って消費電力もN倍になる。
 ここで、例えば、広域データセンタに設置されるサーバ装置の場合、装置の数は設備費用や運用費に直接的に影響してくる。また、消費電力の増加は、装置の温度管理などを困難にする。
 このため、複数の利用者を対象とするグループ署名の処理において、署名処理の平均応答時間を悪化させることなく、なるべく少ない装置数で多数のリクエストを同時処理できることが望ましい。これは、署名処理をLSI回路やプログラムで行う場合についても同様である。
 本発明の目的は、署名処理の平均応答速度を低下させることなく、電力消費の増加率や回路規模の増大率を抑えつつも、多くの署名処理を行える署名生成装置および署名認証装置を提供することにある。
 本発明の署名処理装置は、署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行部とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムを構成し、
 演算リクエストを中継するバッファメモリを介して複数の前記サブシステムを接続したことを特徴とする。
 本発明の署名処理方法は、
 署名処理手続きに含まれる基本演算を1つまたは複数の基本演算実行部で同時に複数実行し、
 演算状態を監視して受け付け可能な基本演算実行部に順次演算実行を指示し、
 単一のリクエストに占有されることなく異なるリクエスト中の演算をそれぞれの基本演算部に割り付けて同時実行するようにさせる
 ことを特徴とする。
 本発明の署名処理プログラムは、
 複数のプロセッサを有するコンピュータを、
 署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行部とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムとして機能させ、
 複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理させることを特徴とする。
第1実施形態としての署名生成装置の全体構成を示す図。 第1実施形態において、乱数生成サブシステムの構成を示す図。 第1実施形態において、楕円曲線演算サブシステムの構成を示す図。 第1実施形態において、剰余演算サブシステムの構成を示す図。 第1実施形態において、ハッシュ・整数演算サブシステムの構成を示す図。 第1実施形態において、ディスパッチャの動作を示すフローチャート。 第1実施形態において、サブシステム間での通信に使われるパケットの構成図。 第1実施形態において、グループ署名生成のスキームを示すフローチャート。 本発明の効果を具体的に測定した結果を示すグラフ。 第3実施形態としての署名認証装置の構成を示す図。 第3実施形態において、グループ署名認証のアルゴリズムを示すフローチャート。 演算種類を特定せずに、本発明の趣旨を実現するための署名処理装置を概念的に示した図。 背景技術としての署名処理装置の構成を示す図。 署名処理装置をリクエストの数だけ並列配置した状態を示す図。
 次に、本発明の実施の形態を図示するとともに図中の各要素に付した符号を参照して説明する。
 (第1実施形態)
 本発明に係る第1実施形態について説明する。
 図1は、本発明にかかる署名生成装置(署名処理装置)の構成を示す図である。
 署名生成装置100は、
 乱数生成サブシステム101と、
 楕円曲線演算サブシステム107と、
 剰余演算サブシステム112と、
 ハッシュ・整数演算サブシステム118と、
 パケット中継バッファメモリ105、106、117と、を備える。
 ここで、乱数生成サブシステム101と楕円曲線演算サブシステム107とは、パケット中継バッファメモリ105を介して接続されている。
 乱数生成サブシステム101と剰余演算サブシステム112とは、パケット中継バッファメモリ106を介して接続されている。
 楕円曲線演算サブシステム107および剰余演算サブシステム112の演算結果は、パケット中継バッファメモリ117を介してハッシュ・整数演算サブシステム118に入力される。
 署名生成装置100は、一つの投入口130と、一つの出力口131と、を有している。そして、前記投入口130から複数のリクエストパケットを順次受け付け、最終結果(署名または認証)を前記出力口131から順次出力する。リクエストパケットとは、例えば、開封管理者の公開鍵、ユーザの秘密鍵、発行管理者の公開鍵、失効管理者の公開鍵、メッセージなどである。
 署名生成装置100は、一つのリクエストの処理が総て終わっていなくても、次のリクエストを受け付ける。受け付けられたリクエストは、パケット中継バッファメモリ105、106、117を介して前段から後段のサブシステム101、107、112、118へ順次送られていき、演算処理は進行する。
 図2から図5に各サブシステムの構成を示す。
 図2は、乱数生成サブシステム101の構成を示す図である。
 図3は、楕円曲線演算サブシステム107の構成を示す図である。
 図4は、剰余演算サブシステム112の構成を示す図である。
 図5は、ハッシュ・整数演算サブシステム118の構成を示す図である。
 本実施形態においては、各サブシステム101、107、112、118は、内部にディスパッチャ102、108、113、119と、ローカルバス104、111、116、123と、1つまたは複数の基本演算ユニット103、110、114、120、121を有する。また、サブシステム101、107、112、118には、内部にローカルなバッファメモリ109、115、122を持つものもある。
 具体的には、乱数生成サブシステム101は、図2に示されるように、ディスパッチャ102と、擬似乱数生成ユニット103と、ローカルバス104と、を備える。
 ここでは、擬似乱数生成ユニット103は一つだけ設けられている。
 乱数生成サブシステム101は、署名生成処理において乱数生成を実行する。
 楕円曲線演算サブシステム107は、図3に示されるように、ディスパッチャ108と、基本演算器としての楕円曲線演算ユニット110と、一時データバッファメモリ109と、ローカルバス111と、を備える。
 ここで、楕円曲線演算ユニット110は複数設けられており、本実施形態では6つの楕円曲線演算ユニット110が設けられている。楕円曲線演算サブシステム107は、署名生成処理において楕円曲線演算を実行する。
 剰余演算サブシステム112は、図4に示されるように、ディスパッチャ113と、基本演算器としての剰余演算ユニット114と、一時データバッファメモリ115と、ローカルバス116と、を備える。
 ここで、剰余演算ユニット114は複数設けられており、本実施形態では9つの剰余演算ユニット114が設けられている。
 剰余演算サブシステム112は、署名生成処理において剰余演算を実行する。
 ハッシュ・整数演算サブシステム118は、ディスパッチャ119と、ハッシュ演算ユニット120と、整数演算ユニット121と、一時データバッファメモリ122と、ローカルバス123と、を備える。
 ここでは、ハッシュ演算ユニット120と、整数演算ユニット121と、は一つずつ設けられている。
 ハッシュ・整数演算サブシステム118は、署名生成および署名認証において、ハッシュ演算および整数演算を実行する。
 一つのリクエストに対するグループ署名処理は、複数の乱数生成演算、複数の楕円曲線演算、複数の剰余演算、複数のハッシュ演算、複数の整数演算が組み合わされて構成されている。さらに、それぞれの演算処理において、仮に演算処理自体の種類が同じであっても扱うデータのビット幅は異なってくる。
 このような複数の演算が組み合わされるので、サブシステムごとにかかる演算時間も異なってくるし、内部の各基本演算にかかる時間も一定ではない。したがって、各サブシステムについて着目すると、グループ署名の演算中であっても内部の基本演算ユニットには動いているものと停止しているものが混在する。各演算の実行開始タイミングは、入力パケットが到来する間隔や数によって動的に変化するものであり、静的には決定できない。
 このため、入力パケットや演算実行状況を常時監視し、空いている演算器に演算を指示する制御機構が必要となる。
 この働きをするものが、ディスパッチャ102、108、113、119である。
 図6は、ディスパッチャの動作を示すフローチャートである。
 ディスパッチャは、入力バッファおよび出力バッファ中のパケット数と、基本演算器の利用状況と、を常時モニタする。
 入力バッファに入力パケットが存在する場合(ST502)、ディスパッチャはそれを取り出し(ST503)、そのパケット演算を実行するための引数の演算が総て終了しているかを判定する(ST504)。すなわち、ディスパッチャは、演算の依存関係についても監視し、あるリクエストがあるとき、それを開始するのに必要な演算が全て終了し、データが揃っているかを確認する(ST504)。そして、パケット演算を実行するための引数の演算が総て終了している場合(ST504:YES)、空いている演算ユニットがあるか否かを判断し(ST505)、演算を実行できる演算ユニットがあれば(ST505:YES)、その演算器に演算処理を割り当てて演算を開始させる(ST506)。
 演算が終了したら(ST501:YES)、出力バッファないし一時データバッファへ結果を格納する(ST509)。
 図7は、サブシステム間での通信に使われるパケットの構成図である。
 パケット401は、行うべき演算処理の内容を指定するものである。
 パケット401は、どの署名リクエストであるかを示すリクエスト番号402、署名処理のうち何番目の演算を行っているかを示す現演算番号403、この演算を開始するまでに終了していないといけない1つまたは複数の演算を示す前演算番号404、演算に必要な数値を表す演算引数405、得られた演算結果をどこへ転送するかの指定406、などのフィールドを有する。
 次に、図8を参照して、グループ署名生成のスキームについて説明する。
 なお、グループ署名の基本的アルゴリズムについては、非特許文献1にも開示されている。
 グループ署名のスキームには、ユーザ、発行管理者、失効管理者、開封管理者の4つのエンティティが参加する。
 ユーザは、グループのメンバであり、署名生成と署名認証とを行う。
 発行管理者は、ユーザをグループに追加する権限を有する。
 失効管理者は、ユーザをグループから除去する権限を有している。
 開封管理者は、署名者を特定する権限を有する。
 ここで、以下の説明のために、セキュリティパラメータK=(K[n], K[l], K[e], K[e'], K[q], K[c], K[S])を導入する。
 K[n]、K[l]、K[e]、K[e']は、各パラメータn, l, e, e'それぞれについてのビッ ト数を示しており、つまり、K[n]、K[l]、K[e]、K[e']はそれぞれ所定のビット長K[n]、K[l]、K[e]、K[e']を有する。
 K[q]は、楕円曲線に基づいて定義される有限群GGの次数である素数qのビット長を示す。
 K[c]は、任意長のビット列に適用されるハッシュ関数Hashが返す値cのビット長を示す。
 K[S]は、いかなる整数aに対しても|a|+K[S]ビット長の乱数rを選択したときに、a+rとaとが統計的に区別できなくなるようなビット長を示す。
 グループ署名のアルゴリズムは、このようなセキュリティパラメータKと、整数λ=K[n]+K[q]+K[S]と、0以上2λ未満の整数を要素とする集合Λと、楕円曲線上でのスカラー倍演算と、楕円曲線上での点加算と、楕円曲線上での点減算と、に対する演算からなる。
 なお、以下では、「xs」は楕円曲線上の点に対するスカラー倍演算を示し、「+e」は楕円曲線上での点加算を示し、「-e」は楕円曲線上での点減算を示す。
 次に、グループ署名のユーザ、発行管理者、失効管理者および開封管理者がそれぞれ有する鍵対(公開鍵および秘密鍵)について以下に説明する。
 グループ署名の発行管理者が持つ鍵対(ipk, isk)は、次の式に示すように、ビット長がK[n]/2である暗号数理的に安全な素数p[1],p[2]と、これら素数の積n=p[1]p[2]と、この積nに対する巡回部分群QR(n)の要素a[0],a[1],a[2]と、に基づいて定められる。
 なお、ipkは発行管理者の公開鍵であり、iskは発行管理者の秘密鍵である。
 発行管理者の公開鍵ipk=(n, a[0], a[1], a[2]);
 発行管理者の秘密鍵isk=(p[1], p[2])
 グループ署名の開封管理者が持つ鍵対(opk, osk)は、次の式に示すように、上記素数qを法とする有限体Zqの要素y[1],y[2]と、上記有限群GGの要素Gと、H[1]=y[1]xsGと、H[2]=y[2]xsGと、に基づいて定められる。
 なお、opkは開封管理者の公開鍵であり、oskは開封管理者の秘密鍵である。
 開封管理者の公開鍵opk=(q, G, H[1], H[2]);
 開封管理者の秘密鍵osk=(y[1], y[2])
 グループ署名の失効管理者が持つ鍵対(rpk, rsk)は、次の式に示すように、ビット長がK[l]/2である安全な素数l[1],l[2]と、これら素数の積l=l[1]l[2]と、この積lに対する巡回部分群QR(l)の要素b,wと、に基づいて定められる。
 なお、rpkは失効管理者の公開鍵であり、rskは失効管理者の秘密鍵である。
 失効管理者の公開鍵rpk=(l, b, w);
 失効管理者の秘密鍵rsk=(l[1], l[2])
 グループ署名のi番目のユーザがもつ鍵対(mpk, msk)は、次の式に示すように、集合Λの要素x[i]と、h[i]=x[i]xsGと、B[i]=b1/e'[i](mod l)、e[i]=2K[e]+e'[i]、a[0]a[1]x[i]≡A[i]e[i](mod n)を満たすA[i],B[i],e[i], e'[i]と、に基づいて定められる。
 なお、mpk[i]はi番目のユーザの公開鍵であり、msk[i]はi番目のユーザの秘密鍵である。
 i番目のユーザの公開鍵mpk[i]=(h[i],A[i],e'[i],B[i]);
 i番目のユーザの秘密鍵msk[i]=x[i] 
 図8を参照して、i番目のユーザがメッセージmに対する署名を生成する場合について説明する。
 この場合、メッセージm、開封管理者の公開鍵opk、ユーザの秘密鍵msk[i]、発行管理者の公開鍵ipkおよび失効管理者の公開鍵rpkを入力とし、次のようにして署名を生成する。
 ステップST100において、乱数生成サブシステム101により乱数を生成する。
 すなわち、ρ[E]、ρ[m]、ρ[r]、μ[x]、μ[s]、μ[e']、μ[t]、μ[E]を、次のようにランダムに選択する。
 ρ[E]:上記有限体Zqの要素
 ρ[m]:ビット長K[n]/2のビット列
 ρ[r]:ビット長K[l]/2のビット列
 μ[x]:ビット長λ+K[c]+K[S]のビット列
 μ[s]:ビット長K[e]+K[n]/2+K[c]+K[S]のビット列
 μ[e']:ビット長K[e']+K[c]+K[S]のビット列
 μ[t]:ビット長K[e']+K[l]/2+K[c]+K[S]のビット列
 μ[E]:上記有限体Zqの要素
 ステップST110において、楕円曲線演算サブシステム107の楕円曲線演算ユニット110により複数の楕円曲線演算を実行し、開封管理者の公開鍵と乱数とを用いてE[0]、E[1]、E[2]、E、V[ComCipher]を次のように求める。
 E[0]=ρ[E]xsG
 E[1]=h[i]+eρ[E]xsH[1]
 E[2]=h[i]+eρ[E]xsH[2]
 E=(E[0],E[1],E[2])
 V[ComCipher]=(μ[E]xsG,μ[x]xsG+eμ[E]xsH[1],μ[x]xsG+eμ[E]xsH[2])
 このとき、ディスパッチャ108の働きにより、6つの楕円曲線演算ユニット110の状況を監視し、空いている楕円曲線演算ユニット110に次々にデータを送り込んで、効率よく演算を進めていく。
 なお、演算「Z=(W, X, Y)」は、演算W、演算X、演算Yを別々に行った後に取りまとめることを示す(タップルの計算)。
 ステップST120において、剰余演算サブシステム112の剰余演算ユニット114により複数の剰余演算を実行し、発行管理者の公開鍵と失効管理者の公開鍵と乱数とを用いてA[COM]、B[COM]、V[ComMPK]、V[ComREV]を次のように求める。
 A[COM]=A[i]a[2]ρ[m](mod n)
 B[COM]=B[i]wρ[r](mod l)
 V[ComMPK]=a[1]μ[x]a[2]μ[s]A[COM]-μ[e'](mod n)
 V[ComREV]=wμ[t]B[COM]-μ[e'](mod l)
 このとき、ディスパッチャ113の働きにより、9つの剰余演算ユニット114の状況を監視し、空いている剰余演算ユニット114に次々にデータを送り込んで、効率よく演算を進めていく。
 また、剰余演算は前記の楕円曲線演算と並行して実行されるものである。
 このとき、楕円曲線演算と剰余演算とのレイテンシがほぼ同程度になるように設計してあり、一つのリクエストに対する楕円曲線演算結果と剰余演算結果とがほぼ同時にパケット中継バッファメモリ117に出力されるようになっている。この点については後述する。
 ステップST130において、ハッシュ演算ユニット120により、楕円曲線演算の演算結果と剰余演算の演算結果とメッセージmとを用いて、ハッシュcを次のように演算して求める。
 c=Hash(K, ipk, opk, rpk, E, A[COM], B[COM], V[ComCipher], V[ComMPK], V[ComRev], m)
 ステップST140において、整数演算ユニット121により整数演算を実行し、ハッシュ演算の演算結果と乱数とを用いてτ[x]、τ[s]、τ[t]、τ[e']、τ[E]を次のように演算して求める。
 τ[x]=cx[i]+μ[x](mod q)
 τ[s]=ce[i]ρ[m]+μ[s](mod q)
 τ[t]=ce'[i]ρ[r]+μ[t](mod q)
 τ[e']=ce'[i]+μ[e'](mod q)
 τ[E]=cρ[E]+μ[E](mod q)
 ステップST150において、署名(E, A[COM], B[COM], c, τ[x], τ[s], τ[t], τ[e'], τ[E])を出力する。このようにして署名生成が行われる。
 本実施形態では、上記のような構成にしたので、空いている演算ユニットはすぐに他のリクエスト処理に割り当てられることとなり、演算ユニットの空き時間が非常に短く抑えられる。これが処理時間の増加を抑えられる理由である。
 例えば背景技術で説明した図14のように署名処理装置全体をリクエスト数ぶんだけ並べた場合、一の署名処理装置は一つのリクエストの演算しかできないので、仮に隣の署名処理装置の演算ユニット(例えば楕円曲線演算ユニットや剰余演算ユニット)が空いていたとしても、空いている演算ユニットを前記リクエストの処理に使うことはできない。したがって、図14の構成では、全体の回路規模が大きい割に稼働率が低く、演算処理速度が遅いということになる。
 この点、本実施形態の構成によれば、全体の回路規模を小さくでき、複数のリクエストを高速に演算処理することができる。
 ここで、各サブシステムを構成する基本演算ユニットの数をどのように設定するかについて説明する。
 各サブシステムの内部にある基本演算ユニットの個数は、同時処理するリクエスト数と同一でなくてもよい。
 例えば、6つのリクエストを同時処理するからといって、各サブシステムが6つずつ基本演算ユニットを持っていればよいというものではない。
 基本演算の種類が異なれば演算の実行速度も違ってくる。そこで、処理が遅い基本演算については個数を多くし、処理が速い基本演算については個数を減らすように設計すればよい。そして、各サブシステムのレイテンシがほぼ同程度に揃ったときに、最も少ない装置量で最も高い性能を実現することができる。
 より具体的には、剰余演算は署名処理全体の速度を最も律速するものであり、他の演算よりも10倍以上遅い。
 また、署名処理においては数回の剰余演算が使われており、それらの演算速度も、データのビット幅が異なるために10倍ほどの開きがある。
 このため、剰余演算サブシステム112における剰余演算ユニット114は、他のサブシステムの基本演算器よりも多い数が必要である。
 例えば、本実施形態では、サブシステム同士のレイテンシを揃えるように、乱数生成サブシステム101の擬似乱数生成ユニット103は一つ、楕円曲線演算サブシステムは6つ、剰余演算ユニット114は9つ、ハッシュ演算ユニット120および整数演算ユニット121は1つとしている。
 なお、一のリクエストを処理する場合には遅い剰余演算と速い剰余演算とが必要になるが、一の剰余演算ユニット114で遅い剰余演算を実行している間に、より速い剰余演算を他の剰余演算ユニット114で複数回実行することが可能である。したがって、剰余演算ユニットの数は、署名処理で行われる剰余演算回数よりも少ない演算器数でよい。
 また、あるリクエストの剰余演算に時間がかかっている場合であっても、他に空いている剰余演算ユニットがあれば、他のリクエストの剰余演算を開始することができる。
 このようにして演算器の利用効率を100%近くに保つことにより、少数の演算器でも多くのリクエストを処理できる。
 また、剰余演算以外の演算は相対的に速度が速いので、少ない演算器数であっても、剰余演算が終わるまでに必要な演算を全て完了できる。このため、楕円曲線演算ユニットを6個、他の基本演算ユニットを1個にまで減らしても、署名処理全体の性能はとくに落ちない。結果として、本実施形態によれば、単純に署名回路を複数並べる場合と比べ、半分の回路規模で同一の処理性能を達成することができる。
 また、消費電力は回路規模におおむね比例するので、単純に署名回路を複数並べる場合と比べ、本実施形態の消費電力は半分程度に抑えることができる。
 図9は、発明の効果を具体的に測定した結果を示すグラフである。
 第1実施形態の構成において、楕円曲線演算ユニットを6個、擬似乱数生成ユニットを1個、ハッシュ演算ユニットを1個、整数演算ユニットを1個に固定し、もっとも速度を律速する剰余演算ユニットの個数を1個から9個まで変化させた。そして、同時処理が要求されるリクエストの数と全リクエストを処理し終えるまでにかかる時間との関係を測定してグラフに示した。
 剰余演算ユニットの数が1つの場合、図13に示した単一のリクエストを処理する署名回路と処理速度はほぼ同一となる。この場合、リクエスト数が9倍になれば、処理時間も9倍かかる。この構成で処理時間を減らすには、署名回路全体をリクエスト数と同一の数だけ並べなければならない。
 これに対し、剰余演算ユニットの数を増やしていくと、リクエスト数が9倍になっても処理時間は9倍ではなく約4倍で済み、図14の処理時間と同程度に抑えられる。その結果、図14の半分以下の回路規模で、同じ処理速度を達成することができる。
 (第2実施形態)
 上記第1実施形態では、専用の演算回路を用いて署名生成処理を実行する構成を例示した。すなわち、各基本演算を実行処理する専用回路を用いていた。
 これに対し、ソフトウェアを実行する1または複数のCPU(Central Processing Unit)を用いて署名生成の各基本演算を実行させてもよいことはもちろんである。この場合、署名生成装置は、楕円曲線演算を実行する複数の楕円曲線演算プロセッサコアと、剰余演算を実行する複数の剰余演算プロセッサコアと、整数演算を実行する複数の整数演算プロセッサコアと、乱数生成を実行する乱数生成プロセッサコアと、ハッシュ演算を実行するハッシュ演算プロセッサコアと、パケットを中継する共有メモリと、ディスパッチ処理を実行する複数のプロセッサコアと、を少なくとも備えている。そして、剰余演算プロセッサコアを9つ設けるのに対し、楕円曲線演算プロセッサコアを6つ設けるなど、各基本演算を実行するプロセッサコアの数を適宜設計する。
 ディスパッチを行うプロセッサコアは、共有メモリや基本演算を行うプロセッサコアの状況を監視し、演算をリクエストするパケットが共有メモリに格納されたとき、空いている基本演算担当のプロセッサに演算を開始させる。
 これにより、専用回路を用いて署名回路を構成した場合と同様に処理を実行させることができる。
 なお、複数のCPUを用いてマルチコアを構成する場合、総ての基本演算実行ユニットをCPUで構成せずに、一部の基本演算実行ユニットをCPUで構成するようにしてもよい。
 また、CPUを各演算器として機能させる署名処理プログラムは、コンピュータ読み取り可能な記録媒体に記録されて提供されてもよい。
 (第3実施形態)
 上記第1実施形態および第2実施形態では署名生成装置の例を説明したが、本発明は署名認証装置にも同様に適用できる。
 図10は、本発明にかかる署名認証装置200の構成を示す図である。
 署名認証装置200は、乱数生成を除き、署名生成装置100と同様の構成を採用できるので、第1実施形態と同じ要素には同じ符号を付しその説明を省略する。
 図11は、署名認証アルゴリズムを示すフローチャートである。
 署名認証アルゴリズムは、乱数生成を除き、署名生成とほぼ同じデータフローである。
 署名認証アルゴリズムでは、発行管理者の公開鍵ipk、失効管理者の公開鍵rpk、開封管理者の公開鍵opk、メッセージm、署名δを入力として、次のようにして署名を認証する。
 ステップST200において、|τ[x]|≦λ+K[e]+K[S]と、|τ[s]|≦K[e']+K[e]+K[S]と、が成立するか調べ,両方成立でなければ認証失敗を返す。
 ステップST210において、楕円曲線演算により、V'[ComCipher]=(τ[E]xsG-e[c]xsE[0],τ[x]xsG+eτ[E]xsH[1]-e[c]xsE[1],τ[x]xsG+eτ[E]xsH[2]-e[c]xsE[2])を計算する。
 ステップST220において、剰余演算により、V'[ComMPK]=a[0]ca[1]τ[x]a[2]τ[s]A[COM]-(e2K[e]+τ[e'])(mod n)と、V'[ComREV]=beωτ[t]B[COM]-τ[e'](mod l)と、を計算する。
 ステップST230において、ハッシュ演算により、ハッシュc'を、次のように演算して求める。
 c'=Hash(K, ipk, opk, rpk, E, A[COM], B[COM], V'[ComCipher], V'[ComMPK], V'[ComRev], m)
 ステップST240において、ハッシュc'=署名δなら認証成功、そうでなければ認証失敗を返す。
 このようにして署名認証が行われる。
 このような証明認証装置においても上記第1実施形態と同じ作用効果を奏する。
 また、署名認証装置についても、ソフトウェアを実行する1または複数のCPU(Central Processing Unit)を用いて構成できることはもちろんである。
 なお、本発明は上記実施の形態に限られるものではなく、本発明の趣旨を逸脱しない範囲で適宜変更することができる。
 基本演算を実行する回路ユニットまたはプロセッサコアの数などは上記例示に限定されないことはもちろんである。
 例えば、乱数生成サブシステムの擬似乱数生成ユニットは一つではなく2以上であってもよい。
 楕円曲線演算サブシステムの楕円曲線ユニットは、6つに限定されず、それ以上でもそれ以下でもよい。
 剰余演算サブシステムの剰余演算ユニットは、9つに限定されず、それ以上でもそれ以下でもよい。
 ハッシュ・整数演算ユニットのハッシュ演算ユニット、整数演算ユニットの数は、一つに限定されず、二つ以上でもよい。
 さらに、本発明は、グループ署名を生成または認証するための署名処理装置に限定されず、セキュリティ関連の複合演算を実行する他の装置に対しても適用することができる。図12は、演算種類を特定せずに、本発明の趣旨を実現するための署名処理装置を概念的に図示したものである。
 この出願は、2010年10月29日に出願された日本出願特願2010-243321を基礎とする優先権を主張し、その開示のすべてをここに取り込む。
  上記実施形態の一部または全部は以下のようにも記載されうるが、以下には限定されない。
 (付記1)
 署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行部とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムを構成し、
 演算リクエストを中継するバッファメモリを介して複数の前記サブシステムを接続した署名処理装置。
 (付記2)
 付記1に記載の署名処理装置において、
 複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理し、
 前記サブシステムはそれぞれ単一のリクエストに占有されることなく異なるリクエスト中の演算をそれぞれの基本演算部に割り付けて同時実行する、
 ことを特徴とする署名処理装置。
 (付記3)
 付記1または付記2に記載の署名処理装置において、
 前記サブシステムとして、剰余演算サブシステムと、楕円曲線演算サブシステムと、整数演算・ハッシュ演算サブシステム、とを有し、
 前記剰余演算サブシステムは、剰余演算を実行する複数の剰余演算部とそれらの制御を行うディスパッチャとを含み、
 楕円曲線演算サブシステムは、楕円曲線演算を実行する複数の楕円曲線演算部とそれらの制御を行うディスパッチャとを含み、
 整数演算・ハッシュ演算サブシステムは、ハッシュ演算を実行する一または複数のハッシュ演算部と、整数演算を実行する一または複数の整数演算部と、それらの制御を行うディスパッチャとを含んで構成されている
 ことを特徴とする署名処理装置。
 (付記4)
 付記3に記載の署名処理装置において、
 前記サブシステムとして、さらに、乱数生成演算サブシステムを含み、
 前記乱数生成演算サブシステムは、乱数生成演算を実行する一または複数の乱数生成部とそれらの制御を行うディスパッチャとを含んで構成されている
 ことを特徴とする署名処理装置。
 (付記5)
 付記4に記載の署名処理装置において、
 前記乱数生成演算サブシステムの前記乱数生成部は一つである
 ことを特徴とする署名処理装置。
 (付記6)
 付記3から付記5のいずれかに記載の署名処理装置において、
 楕円曲線演算サブシステムの前記楕円曲線演算部の個数は、前記楕円曲線演算サブシステムの前記剰余演算部の個数と同じかそれよりも少ない個数である
 ことを特徴とする署名処理装置。
 (付記7)
 付記3から付記6のいずれかに記載の署名処理装置において、
 前記整数演算・ハッシュ演算サブシステムの前記整数演算部が一つである
 ことを特徴とする署名処理装置。
 (付記8)
 付記3から付記7のいずれかに記載の署名処理装置において、
 前記整数演算・ハッシュ演算サブシステムの前記ハッシュ演算部が一つである
 ことを特徴とする署名処理装置。
 (付記9)
 付記1から付記9のいずれかに記載の署名処理装置において、
 前記基本演算実行部の一部または全部と前記ディスパッチャの一部または全部がプロセッサコアを用いて構成されている
 ことを特徴とする署名処理装置。
 (付記10)
 付記1から付記9のいずれかに記載の署名処理装置において、
 前記署名処理装置は、グループ署名の生成を行うグループ署名生成装置、または、グループ署名の認証を行うグループ署名認証装置である
 ことを特徴とする署名処理装置。
 (付記11)
 署名処理手続きに含まれる基本演算を1つまたは複数の基本演算実行部で同時に複数実行し、
 演算状態を監視して受け付け可能な基本演算実行部に順次演算実行を指示し、
 単一のリクエストに占有されることなく異なるリクエスト中の演算をそれぞれの基本演算部に割り付けて同時実行するようにさせる
 ことを特徴とする署名処理方法。
 (付記12)
 複数のプロセッサを有するコンピュータを、
 署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行部とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムとして機能させ、
 複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理させることを特徴とする署名処理プログラム。
 (付記13)
 付記12の署名処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
 100…署名生成装置、101…乱数生成サブシステム、102…ディスパッチャ、103…擬似乱数生成ユニット、104…ローカルバス、105…パケット中継バッファメモリ、106…パケット中継バッファメモリ、107…楕円曲線演算サブシステム、108…ディスパッチャ、109…一時データバッファメモリ、110…楕円曲線演算ユニット、111…ローカルバス、112…剰余演算サブシステム、113…ディスパッチャ、114…剰余演算ユニット、115…一時データバッファメモリ、116…ローカルバス、117…パケット中継バッファメモリ、118…ハッシュ・整数演算サブシステム、119…ディスパッチャ、120…ハッシュ演算ユニット、121…整数演算ユニット、122…一時データバッファメモリ、123…ローカルバス、130…投入口、131…出力口、301…楕円曲線演算ユニット、302…剰余演算ユニット、303…擬似乱数生成ユニット、305…整数演算ユニット、306…ハッシュ演算ユニット、401…パケット、402…リクエスト番号、403…現演算番号、404…前演算番号、405…演算引数、406…転送先指定。

Claims (10)

  1.  署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行手段とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムを構成し、
     演算リクエストを中継するバッファメモリを介して複数の前記サブシステムを接続した署名処理装置。
  2.  請求項1に記載の署名処理装置において、
     複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理し、
     前記サブシステムはそれぞれ単一のリクエストに占有されることなく異なるリクエスト中の演算をそれぞれの基本演算手段に割り付けて同時実行する
     ことを特徴とする署名処理装置。
  3.  請求項1または請求項2に記載の署名処理装置において、
     前記サブシステムとして、剰余演算サブシステムと、楕円曲線演算サブシステムと、整数演算・ハッシュ演算サブシステム、とを有し、
     前記剰余演算サブシステムは、剰余演算を実行する複数の剰余演算手段とそれらの制御を行うディスパッチャとを含み、
     楕円曲線演算サブシステムは、楕円曲線演算を実行する複数の楕円曲線演算手段とそれらの制御を行うディスパッチャとを含み、
     整数演算・ハッシュ演算サブシステムは、ハッシュ演算を実行する一または複数のハッシュ演算手段と、整数演算を実行する一または複数の整数演算手段と、それらの制御を行うディスパッチャとを含んで構成されている
     ことを特徴とする署名処理装置。
  4.  請求項3に記載の署名処理装置において、
     前記サブシステムとして、さらに、乱数生成演算サブシステムを含み、
     前記乱数生成演算サブシステムは、乱数生成演算を実行する一または複数の乱数生成手段とそれらの制御を行うディスパッチャとを含んで構成されている
     ことを特徴とする署名処理装置。
  5.  請求項4に記載の署名処理装置において、
     前記乱数生成演算サブシステムの前記乱数生成手段は一つである
     ことを特徴とする署名処理装置。
  6.  請求項3から請求項5のいずれかに記載の署名処理装置において、
     楕円曲線演算サブシステムの前記楕円曲線演算手段の個数は、前記楕円曲線演算サブシステムの前記剰余演算手段の個数と同じかそれよりも少ない個数である
     ことを特徴とする署名処理装置。
  7.  請求項3から請求項6のいずれかに記載の署名処理装置において、
     前記整数演算・ハッシュ演算サブシステムの前記整数演算手段が一つである
     ことを特徴とする署名処理装置。
  8.  請求項3から請求項7のいずれかに記載の署名処理装置において、
     前記整数演算・ハッシュ演算サブシステムの前記ハッシュ演算手段が一つである
     ことを特徴とする署名処理装置。
  9.  署名処理手続きに含まれる基本演算を1つまたは複数の基本演算実行手段で同時に複数実行し、
     演算状態を監視して受け付け可能な基本演算実行手段に順次演算実行を指示し、
     単一のリクエストに占有されることなく異なるリクエスト中の演算をそれぞれの基本演算手段に割り付けて同時実行するようにさせる
     ことを特徴とする署名処理方法。
  10.  複数のプロセッサを有するコンピュータを、
     署名処理手続きに含まれる基本演算の種類ごとに1つまたは複数の基本演算実行手段とそれらの演算状態を監視して演算実行を指示するディスパッチャとが相互接続したサブシステムとして機能させ、
     複数の署名生成リクエストもしくは署名認証リクエストを単一の入力で受け付け、複数のリクエストを同時並行で処理させることを特徴とする署名処理プログラムを格納した記録媒体。
PCT/JP2011/003006 2010-10-29 2011-05-30 署名処理装置 WO2012056608A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US13/881,537 US20140032917A1 (en) 2010-10-29 2011-05-30 Group signature processing device for processing a plurality of group signatures simultaneously
JP2012540645A JP5849962B2 (ja) 2010-10-29 2011-05-30 署名処理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010243321 2010-10-29
JP2010-243321 2010-10-29

Publications (1)

Publication Number Publication Date
WO2012056608A1 true WO2012056608A1 (ja) 2012-05-03

Family

ID=45993357

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/003006 WO2012056608A1 (ja) 2010-10-29 2011-05-30 署名処理装置

Country Status (3)

Country Link
US (1) US20140032917A1 (ja)
JP (1) JP5849962B2 (ja)
WO (1) WO2012056608A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11265172B2 (en) * 2018-12-21 2022-03-01 Intel Corporation Methods and apparatus for offloading signature revocation checking on acceleration circuitry
JP7372527B2 (ja) * 2019-09-26 2023-11-01 富士通株式会社 通信中継プログラム、中継装置、及び通信中継方法
US11546161B2 (en) * 2020-02-21 2023-01-03 Hong Kong Applied Science and Technology Research Institute Company Limited Zero knowledge proof hardware accelerator and the method thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001506793A (ja) * 1996-12-27 2001-05-22 ジェムプリュス エス.セー.アー. チップカードのためのデータの動的解釈方法
JP2006340347A (ja) * 2005-06-03 2006-12-14 Tata Consultancy Services Ltd データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
JP2010014912A (ja) * 2008-07-02 2010-01-21 Nec Corp 署名生成装置、ならびに、署名検証装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466668B1 (en) * 1998-01-28 2002-10-15 Hitachi, Ltd. IC card equipped with elliptical curve encryption processing facility
US6839751B1 (en) * 1999-06-30 2005-01-04 Hi/Fn, Inc. Re-using information from data transactions for maintaining statistics in network monitoring
US20030014627A1 (en) * 1999-07-08 2003-01-16 Broadcom Corporation Distributed processing in a cryptography acceleration chip
DE10061997A1 (de) * 2000-12-13 2002-07-18 Infineon Technologies Ag Kryptographieprozessor
JP2002207427A (ja) * 2001-01-10 2002-07-26 Sony Corp 公開鍵証明書発行システム、公開鍵証明書発行方法、および情報処理装置、情報記録媒体、並びにプログラム記憶媒体
US20030065701A1 (en) * 2001-10-02 2003-04-03 Virtual Media, Inc. Multi-process web server architecture and method, apparatus and system capable of simultaneously handling both an unlimited number of connections and more than one request at a time
US7127579B2 (en) * 2002-03-26 2006-10-24 Intel Corporation Hardened extended firmware interface framework
US7486456B2 (en) * 2004-12-17 2009-02-03 Stmicroelectronics, Inc. Finite field based short error propagation modulation codes
JP2007114404A (ja) * 2005-10-19 2007-05-10 Matsushita Electric Ind Co Ltd データ処理装置、およびデータ処理方法
JP4791828B2 (ja) * 2006-01-16 2011-10-12 株式会社東芝 グループ署名システム、装置、プログラム及び方法
WO2008142750A1 (ja) * 2007-05-17 2008-11-27 Fujitsu Limited 演算ユニット、プロセッサ及びプロセッサアーキテクチャ
US20080300845A1 (en) * 2007-06-04 2008-12-04 Mark Kostick Monitoring software simulations of hardware systems
CN101547161B (zh) * 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 文件夹传输系统、文件夹传输装置及文件夹传输方法
JP4861369B2 (ja) * 2008-06-20 2012-01-25 日本電信電話株式会社 リカバリ署名システム、署名生成装置、署名検証装置、それらの方法、及びプログラム
US8826039B2 (en) * 2010-02-02 2014-09-02 Broadcom Corporation Apparatus and method for providing hardware security

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001506793A (ja) * 1996-12-27 2001-05-22 ジェムプリュス エス.セー.アー. チップカードのためのデータの動的解釈方法
JP2006340347A (ja) * 2005-06-03 2006-12-14 Tata Consultancy Services Ltd データに署名するための楕円曲線デジタル署名暗号プロセスを実行する認証システム
WO2009008069A1 (ja) * 2007-07-11 2009-01-15 Kabushiki Kaisha Toshiba グループ署名システム、装置及びプログラム
JP2010014912A (ja) * 2008-07-02 2010-01-21 Nec Corp 署名生成装置、ならびに、署名検証装置

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
KAZUE SAKO ET AL.: "Implementation of LSI for Group Signature Scheme", IMPLEMENTATION OF LSI FOR GROUP SIGNATURE SCHEME, 21 June 2010 (2010-06-21), Retrieved from the Internet <URL:http://www.trust2010.org/slides/Sako.pdf> *
SUMIO MORIOKA ET AL.: "Taju Heiretsu Group Shomei no Kogata Kairo Architecture", 2011 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATI ON SECURITY YOKOSHU, 25 January 2011 (2011-01-25), pages 3D2-4 *
SUMIO MORIOKA: "C Base Sekkei no Jidai ga Yattekita! -Keitai Denwa ya Kao Ninshiki LSI nado no Sekkei Jirei ga Zokuzoku", DESIGN WAVE MAGAZINE, vol. 14, no. 3, 1 April 2009 (2009-04-01), pages 26 - 36 *
SUMIO MORIOKA: "ESL Sekkeiho o Katsuyo shita Group Shomei Algorithm no ASIC-ka", 2010 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY SCIS2010, 19 January 2010 (2010-01-19), pages 3C4-5 *
TOSHINORI ARAKI ET AL.: "Group Shomei no FPGA Jisso", 2008 NEN SYMPOSIUM ON CRYPTOGRAPHY AND INFORMATION SECURITY YOKOSHU, 22 January 2008 (2008-01-22), pages 3C3 *

Also Published As

Publication number Publication date
JPWO2012056608A1 (ja) 2014-03-20
JP5849962B2 (ja) 2016-02-03
US20140032917A1 (en) 2014-01-30

Similar Documents

Publication Publication Date Title
CN105099672B (zh) 混合加密方法及实现该方法的装置
CN112926051B (zh) 多方安全计算方法和装置
WO2011148558A1 (ja) 署名生成装置、署名方法、及び署名生成プログラムが格納された非一時的なコンピュータ可読媒体
US9342712B2 (en) Method and system for accelerating cryptographic processing
Seeber et al. Towards a trust computing architecture for RPL in cyber physical systems
CN109428867A (zh) 一种报文加解密方法、网路设备及系统
JP4443088B2 (ja) 短い演算に対するdesハードウェア・スループットの向上
JP6023858B1 (ja) 計算システム、計算装置、その方法、およびプログラム
JP5849962B2 (ja) 署名処理装置
JP6780771B2 (ja) 検証情報付与装置、検証装置、情報管理システム、方法およびプログラム
Nalinipriya et al. Extensive medical data storage with prominent symmetric algorithms on cloud-a protected framework
Salim et al. A secure and timestamp-based communication scheme for cloud environment
JP6294882B2 (ja) 鍵保管装置、鍵保管方法、及びそのプログラム
Saxena et al. An enhanced parallel version of RSA public key crypto based algorithm using openMP
Chen et al. Implementation and optimization of a data protecting model on the Sunway TaihuLight supercomputer with heterogeneous many‐core processors
CN113935018B (zh) 密码运算方法、片上系统及计算机设备
US11983264B2 (en) Adaptive acceleration of transport layer security
KR101088260B1 (ko) 멀티코어 프로세서를 이용한 aes-ccm 병렬처리 장치 및 그 방법
Huang et al. Hucdo: A hybrid user-centric data outsourcing scheme
Sasongko et al. Architecture for the secret-key BC3 cryptography algorithm
JP2004078053A (ja) 暗号化装置
Schilling et al. High speed ASIC implementations of leakage-resilient cryptography
WO2020144758A1 (ja) 秘密計算装置及びクライアント装置
KR101380895B1 (ko) 보안 서비스 제공 장치 및 이를 이용한 보안 서비스 방법
Patel et al. Fully Dynamic Password Protected Secret Sharing: Simplifying PPSS Operation and Maintenance

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11835756

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2012540645

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13881537

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 11835756

Country of ref document: EP

Kind code of ref document: A1