SYSTEM AND METHOD FOR QUANTITATIVE COMPETITION AND RECORDING MEDIUM HAVING RECORDED THEREON PROGRAM FOR IMPLEMENTING THE METHOD
A bid-opening device 20 receives from each bidding device 10m a bidding price index γm=g(hk(IVm)) (where IVm is an initial value, hk indicates k-times processing with a one-way function h and g is a one-way function) and its identifier IDm. The received information is stored on a common bulletin board 25. Dm=hk(IVm) (where Dm=g(Dm) is generated with k set as the upper limit value K of the bidding price. The bulletin board 25 is checked for γm which matches this Dm. If no match is found, m is incremented by one, and the check for γm-Dm matching is made for each of m bidding devices. Upon completion of the matching for all the bidding devices, k is decremented by one, and a check is made for for γm which matches Dm=g(hk(IVm)), and the index k for which they match is determined as the highest price bid. The bid-opening device 20 outputs that k and the identifier IDm of γm.
Latest Nippon Telegraph and Telephone Corporation Patents:
- TRANSMISSION SYSTEM, ELECTRIC POWER CONTROL APPARATUS, ELECTRIC POWER CONTROL METHOD AND PROGRAM
- SOUND SIGNAL DOWNMIXING METHOD, SOUND SIGNAL CODING METHOD, SOUND SIGNAL DOWNMIXING APPARATUS, SOUND SIGNAL CODING APPARATUS, PROGRAM AND RECORDING MEDIUM
- OPTICAL TRANSMISSION SYSTEM, TRANSMITTER, AND CONTROL METHOD
- WIRELESS COMMUNICATION SYSTEM AND WIRELESS COMMUNICATION METHOD
- DATA COLLECTION SYSTEM, MOBILE BASE STATION EQUIPMENT AND DATA COLLECTION METHOD
This application is a Divisional of co-pending application Ser. No. 12/488,980, filed on Jun. 22, 2009 (now allowed), which is a Divisional of application Ser. No. 09/619,699, filed on Jul. 19, 2000 (now U.S. Pat. No. 7,567,933), and for which priority is claimed under 35 U.S.C. §120; and this application claims priority of Application No. 205004/99 filed in Japan on Jul. 19, 1999 under 35 U.S.C. §119; Application No. 247060 filed in Japan on Sep. 1, 1999 under 35 U.S.C. §119 Application No. 2000-16020 filed in Japan on Jan. 25, 2000 under 35 U.S.C. §119; and Application No. 2000-47323 filed in Japan on Feb. 24, 2000 under 35 U.S.C. §119; the entire contents of all are hereby incorporated by reference
BACKGROUND OF THE INVENTIONThe present invention relates to a quantitative competition system and method which compare aimed or intended values of participants and publish the highest or lowest value but hide the other values, and a recording medium on which there is recorded a program for implementing the method. More particularly, the invention pertains to a system and method for quantitative comparison of secret values, for example, in electronic lottery, electronic voting, or electronic sealed-bid auction under circumstances where many participants are allowed to access the server online across the Internet.
The sealed-bid auction scheme to which the present invention is applied satisfies the requirements mentioned below.
*Only bidding prices are used to determine the winning bid; that is, the successful bidding device is not determined using other information.
The bid-opening device and a provisional identifier registration device neither cheat nor malfunction.
SUMMARY OF THE INVENTIONIt is therefore an object of the present invention to provide a quantitative competition system and method which ensure the fairness of a sealed-bid auction, the validity of a successful bid value, the undeniability of bidders, the anonymity of the bidders and the freedom from double bidding.
The fairness of an auction means that it is possible to prevent bidders from obtaining information on other bidding devices prior to bidding in an attempt to make bids with unfair advantage.
The validity of a successful bid value means that it is possible to prevent an unfair determination of the winning bid.
The undeniability of bidders means that it is possible to prevent them from denying their bid values at the bid-opening time.
The anonymity of bidders means that it is possible to prevent leakage of identification information of every bidding device.
According to the present invention, each bidding device transforms its bidding price to bidding price information through utilization of a one-way function, and the bid-opening device uses the bidding price information to determine the successful bid without revealing the prices bid by unsuccessful bidders.
The electronic competitive sealed-bid auction system according to this embodiment comprises, as is the case with
Step S1: Input a notice of auction to each of the bidding devices 101 to 10M. The notice of auction describes bidding conditions such as the name of an object for auction, the highest and/or lowest price bid, the term for bidding and qualifications for bidding, and a method of access to the bid-opening device. The bidding conditions differ with objects for auction.
Step S2: In response to the notice of auction which describes the details of the auction, each bidding device 10m (where m=1, 2, . . . , M) generates a bidding price, and sends to the bid-opening device 20 the bidding price PRm and an identifier IDm by which the bidding device 10m can be identified.
Step S3: Having received from the respective bidding device 101 to 10M their bidding prices PR1 to PRM and identifiers ID1 to IDM, the bid-opening device 20 computes the highest (or lowest) one of the bidding prices and determines it to be the winning bid.
Step S4: The bid-opening device 20 outputs the winning bid and the identifier of the bidding device having submitted it.
The above procedure is the same as in the prior art. Since the communication channel between each bidding device 10m and the bid-opening device 20 is not an anonymous channel, in particular, such a procedure as shown in
Referring to
In this embodiment, the bidding price transformer 14 is supplied with the initial value IVm read out of the information storage part 12 by the control part 13 and the bidding price PRm, and processes the initial value IVm by a one-way function by the number of times corresponding to the bidding price PRm as described below. A one-way function is such a function that, given a variable x, y(=h(x)) can easily be computed from x, but when given y, very high computational complexity is needed to compute x such that y=h(x). An output value, obtained by processing the initial value IVm with the one-way function h by k times like h( . . . h(h(h(IVm))) . . . ), will hereinafter be represented by hk(IVm).
A concrete example of the bidding price transformer 14 is depicted in
The one-function h processor is supplied with the initial value IVm and the price index km corresponding to the bidding price PRm read out of the conversion table memory 15, and repeatedly processes the initial value IVm with the one-way function h by the number of times corresponding to the price index km. As a result, hkm(IVm) is obtained. The one-way function g processor 17 further processes the output value hkm(IVm) with a one-way function g to compute γm=g(hkm(IVm)), and output it as bidding price information.
Step S1: Input the bidding price PRm and the initial value IVm.
Step S2: Read out of the conversion table memory 15 the price index km corresponding to the bidding price PRm.
Step S3: In the one-way function h processor 16, set the initial value of a variable t at 0 and the initial value IVm as γm, and repeat steps S4 and S5.
Step S4: Determine if t is smaller than km.
Step S5: If t<km, update γm with the value of h(γm) at that time, then increment t by one, and return to step S4.
Step S6: When t becomes no longer smaller than km, γm=hkm(IVm), which is processed by the one-way function g processor 17 such that γm←g(γm).
Step S7: Output, as the bidding price information, γm obtained in step S6.
BID-Opening Device (Successful Bid: Highest Bidding Price Bid)
In
Step S0: The bidding device 10m inputs its bidding price information γm and identifier IDm (where m=1, 2, . . . , M) to the bid-opening device 20.
Step S1: The control unit 21 records the bidding price information γm and the identifier IDm in the bulletin board 25 accessible from arbitrary external devices (the bidding devices 101 to 10M and other devices which are not bidders).
Step S2: To precalculate Dm(1), Dm(2), . . . , Dm(K) such that Dm(k)=h(Dm(k−1)) in the subsequent steps S3 to S6, the control unit 21 sets the bidding price index k←1, then reads out IDm from the information storage part 35, and substitutes it for Dm(0).
Step S3: The control unit 21 determines whether k>K.
Step S4: If not k>K, process Dm(k−1) by the one-way function h processor 22 to obtain Dm(k).
Step S5: Store Dm(k) in the update data storage part 36.
Step S6: Increment k by the adder/subtractor 24 such that k←k+1.
Step S7: If k>K in step S3, it means that Dm(1)=h(Dm(0))=h(IVm), Dm(2)=h(Dm(1))=h2(IVm) . . . , Dm(K)=hK(IVm) have all been obtained, then set k←K.
Step S8: Read out Dm(K)=hK(IVm) from the update data storage part 36 and process it by the one-way function g processor 23 to obtain Dm(k)←g(Dm(k)).
Step S9: For m=1, 2, . . . , M, the control unit 21 makes a check to see if there exists on the bulletin board 25 the bidding price information γm of the same value as Dm(k).
Step S10: If there does not exist on the bulletin board 25 the information γm of the same value as Dm(k), the control unit 21 inputs k to the adder/subtractor 24 to decrement k by one (i.e., k←k−1), then returns to step S8, and in steps S8 and S9 it makes a check to see if there exists on the bulletin board 25 the bidding price information γm of the same value as Dm(k)=g(hk(IVm)) for m=1, 2, . . . , M.
Step S11: If the information γm of the same value as Dm(k) is found on the bulletin board 25 in step S9, then the control unit 21 regards it as the successful price bid and outputs the index k at this time and the bidding device identifier IDm corresponding to the information γm, with which the procedure ends.
As described above, a check is made first for a bidding device 10m having input the bidding price information γm equal to Dm(k)(=g(hk(IVm))) when the price index k is at the upper limit value K; if no such a bidding device is found, then a check is made for a bidding device 10m having input the bidding price information γm equal to Dm(k) when the index k is decremented by one, i.e. k←k−1; and if no such a bidding device is found, then a check is made for a bidding device 10m having input the bidding price information γm equal to Dm(k) when the index is further decremented by one, i.e. k←k−1. By making a check, for each decremented value of k, for the bidding device 10m having input the bidding price information γm equal to Dm(k)(=g(hk(IVm))), it is possible to find out the price information γm corresponding to the largest index k, that is, the highest bidding price PRm.
Furthermore, each bidding device 10m sends hkm+1(IVm) to the bid-opening device 20 in advance, and the bid-opening device 20 publishes it on the bulletin board 25 and, after determining the successful bidding price, publishes on the bulletin board 25 the highest bidding price index k and the identifier IDm of the successful bidding device and the verification information hk(IVm); in this instance, since k ought to equal km, it is possible for an arbitrary device, except the bid-opening device 20, to verify the validity or fairness of the bid-opening process by processing he published verification information hk(IVm) with the one-way function h to obtain hk+1(IVm) and making sure that it matches hkm+1(IVm) published prior to the determination of the winning bid. Alternatively, the verification of the bid-opening procedure can be made by publishing the verification information hk(IVm) of each bidding device on the bulletin board 25 in advance and making a check to see if the value, obtained by processing hkm(IVm) published on the bulletin board 25 with the one-way function h by (K−km) times, matches hk(IVm).
In the case where the lowest price bid is the winning bid, the bidding prices corresponding to the price indexes k on the conversion table are arranged so that they monotonously increase from the lowest value, as referred to previously.
In the embodiment described above, all the bidding device 101 to 10M send hkm+1(IVm) to the bid-opening device 20 in advance for verification of the results of bid-opening, and the bid-opening device 20 writes it on the bulletin board. It is easy to compute hk+1(z) from hk(z) in the computation hk+1(z)=h(hk(z)) using the one-way function, but the computation of hk(z) from hk+1(z) involves too enormous computational complexity to deal with practically. Accordingly, even if the bidding device publishes in advance hkv(IVm) computed using an index kv larger than the bidding price index km, there is no possibility of other devices learning the index km unless the bid-opening is performed in terms of the index km.
The value kv of the verification information hkv(IVm) may be a value kv=km+A which is obtained by adding the bidding price index km with a predetermined integer A equal to or greater than 1, or a value kv=K+A which is obtained by adding the maximum index K with the integer A. In the former case, hkm(IVm) is processed A times with the one-way function h and the resulting value is checked for matching the published information hkv(IVm). In the latter case, hkm(IVm) is processed K+A−km times with the one-way function h and the resulting value is checked for matching the published information hkv(IVm).
In the embodiment described above, the bidding devices 101 to 10M each convert the bidding price PR to the index k by the conversion table and the initial value IVm is processed with the one-way function by the number of times corresponding to the index k, but the use of the conversion table is not essential to the present invention. For example, the index k itself may be the bidding price, in which case neither of the bidding devices the bid-opening device requires the conversion table and any one of a series of value k which monotonously increase one by one within a predetermined range defined by the upper and lower limits given as one of the conditions for auction is chosen as the bidding price PR.
Second EmbodimentIn the first embodiment the bid-opening device 20 must be informed of the initial value IVm of each bidding device 10m. In this embodiment, however, the bid-opening device 20 requires the bidding device 10m to send Dm=hk(IVm) corresponding to the price index k, and hence it does not need the initial value IVm. Since the price index k varies one by one such that k=1, 2, . . . , K, this embodiment utilizes the fact that hk+1(IVm)=h(hk(IVm)) holds; the bid-opening device 20 verifies the response hk(IVm) from the bidding device in reply to an inquiry k, then computes g(hk(IVm)), and checks it for matching the bidding price information γm (where m=1, 2, . . . , M).
A description will be given of the case where the highest bid is the successful bid.
The bidding device 10m has a configuration in which the data storage part 14S indicated by the broken line in
The bid-opening device 20 operates as depicted in
The bidding devices 10m each send hK+1(IVm) as the verification information Cm in advance to the bid-opening device 20 together with the bidding price information γm and the identifier IDm. The bid-opening device 20 publishes these pieces of data on the bulletin board 25. Let it be assumed here that M bids are submitted, and hence m=1, 2, . . . , M.
Step S1: Write and hence publish on the bulletin board 25 the plural pieces of data sent to the bid-opening device 20, that is, the bidding price information γm(=g(hkm(IVm))), the verification information Cm and the identifier IDm.
Step S2: Set the initial value of the index k at the upper limit value K by control unit 21.
Step S3: Request each bidding device 10m to present Dm=hk(IVm). The bidding device 10m reads out of the data storage part 14S the data hk(IVm), and sends it to the bid-opening device 20 as Dm.
Step S4: Record and hence publish on the bulletin board 25 the data Dm sent from every bidding device 10m.
Step S5: Generates h(Dm) for each Dm by the one-way function h processor 22.
Step S6: Make a check to see if all the pieces of data h(Dm) match all the pieces of verification information Cm on the bulletin board 25; if no mismatch is found, then determine that they are all correct or valid, and continue the subsequent steps. If a mismatch is found, then sends an error message to every bidding device 10m and finish the bid-opening operation.
Step S7: When no mismatch is found in step S6, generate data g(Dm) by the one-way function g processor 23.
Step S8: Make a check to see if each data g(Dm) matches the bidding price information γm; if no match is found, update Cm on the bulletin board 25 with Dm (Cm←Dm).
Step S10: Set k←k−1 by the subtractor 24 and return to step S3.
Step S11: If even one of the pieces of information γm is found to match with g(Dm) in step S8, decide k at that time as the price index corresponding to the winning bid, and output the index k and the identifier IDm of the bidding device 10m having offered the successful bid.
In this instance, the values of losing bids other than the winning one are kept secret from even the bid-opening device 20.
In this embodiment, too, the lowest price bid can be chosen as the winning bid simply by arranging the bidding prices in such a manner as to monotonously decrease relative to a monotonously increasing index k on the conversion table, or by arranging the bidding prices in such a manner as to monotonously increase relative to a monotonously decreasing index k.
Third EmbodimentIn the second embodiment described above, as depicted in
The bidding device 10m is identical in construction as in the second embodiment, and in the constructions of
Step S0: The bidding devices 101 to 10m each send in advance the verification information Cm (=hk+1(IVm)) to the bid-opening device 20 together with the bidding price information γm (=g(hkm(IVm)) and the identifiers IDm.
Step S1: The bid-opening device 20 first publishes the plural pieces of bidding price information γm and verification information Cm and the identifiers IDm on the bulletin board 25.
Step S2: Set the count value k of a counter 24 at the upper limit value K.
Step S3: Inquire of all the bidding devices 10m (where m=1, 2, . . . , M) about whether they have bid the price k.
Step S4: Decide whether there is bidding device having bid with the price index k.
Step S5: If no bidding device have bid the price, decrement k by the subtractor 24 to k←k−1 and return to step S3.
Step S6: When it is found that any one of the bidding devices 10m has bid with the price index k, request all the bidding devices 10m to present hk(IVm). Each bidding device 10m reads out of the data storage part 14S the data Dm=hk(IVm) precalculated corresponding to k as depicted in
Step S7: Publishes all the responses Dm from the bidding devices 10m on the bulletin board 25.
Step S8: For all the responses Dm, generate hK−k+1(Dm) by the one-way function h processor 22.
Step S9: Check whether each data hK−k+1(Dm) matches the corresponding verification information Cm on the bulletin board 25. If no mismatch is found, decide that the responses Dm are all correct, and proceed to the subsequent steps. If a mismatch is found, send an error message to each bidding device 10m and finish this bid-opening session for the price index k.
Step S10: When no mismatch is found in step S9, generate g(Dj) by the one-way function g processor 23 for the response Dj (where 1≦j≦M) from the bidding device 10j which has identified itself as having bid with the price k.
Step S11: Check whether g(Dj) matches the bidding price information γj of the bidding device 10j on the bulletin board 25. If they match, decide that the bidding device 10j has bid the price k. If they do not match, send an error message to all the bidding devices and discontinue the session.
As described above, in this embodiment, when no bidding device identifies itself as having bid the price k in reply to the inquiry in step S3, the bidding devices 10m are not required to send Dm(=hk(IVm)) to the bid-opening device 20, and hence the communication cost is small as compared with that in the second embodiment accordingly.
As described below, a check is made, if necessary, to see if another bidding device 10m (different from the device 10j) has bid a value higher than k.
Step S12: For t such that k≦t≦K and all m's except j (1≦m≦M, m≠j), it is checked whether g(ht−k(hk(IVm))) matches the bidding price information γm on the bulletin board 25 for t=k, k+1, . . . K, and if a match is found, then send an error message to each bidding device concerned and discontinue the bid-opening session.
Step S13: If no match is found, then output the winning bidding price k and the identifier IDj of the bidding device having offered the winning bid.
With this check or verification, if a bidding device makes a false response to the inquiry about whether it has bid, for example, with k, this dishonest bidding device is detected; that is, this embodiment satisfies the “undeniability” requirement. When this checking does not takes place, the bid-opening device 20 outputs k and IDj when deciding in step S11 that the bidding device 10j has bid with k.
In this way, this embodiment keeps losing bids, except the winning one, secret from even the bid-opening device 20 and reduces the communication cost.
While in the above the highest price bid is the winning bid, the lowest price bid can be chosen as the successful bid simply by arranging monotonously decreasing (or increasing) values of the bidding price PR on the conversion table in a one-to-one correspondence with monotonously increasing (or decreasing) values of the price index k.
Fourth EmbodimentThis embodiment is intended to permit simplification of the processing in the bid-opening device 20 and reduction of the communication cost.
As depicted in
Step S1: Receive γm, Cm(=hK+1(IVm)), h(PRm(+)Rm) and IDm from each bidding device 20 and write and hence publish them on the bulletin board 25.
Step S2: Request all the bidding devices 10m to present their bidding prices PRm and random numbers Rm.
Step S3: Upon receiving PRm and Rm from each bidding device 10m, compute (PRm(+)Rm) in the operation part 26, then compute h(PRm(+)Rm) by the one-way function h processor 22″, and make a check to determine whether the value matches h(PRm(+)Rm) published on the bulletin board 25.
Step S4: At this point the bid-opening device 20 learns all the bidding prices. The bid-opening device 20 obtains from the conversion table 25A a price index kmx corresponding to the highest value among the bidding prices PRm. The bidding device (the successful bidding device) which has bid kmx will hereinafter be identified by 10j. At this point each bidding device cannot learn the bidding prices of the other bidding devices.
Step S5: Send kmx to all the bidding devices 10m and request them to present Dm=hkmx(IVm).
Step S6: Each bidding device 10m reads out Dm=hkmx(IVm) corresponding to kmx from the data storage part 14S described previously with respect to
Step S7: For each Dm, calculates K+1−kmx by a subtractor 37 and generate hK+1−kmx(Dm) by the one-way function h processor 22 from K+1−kmx and Dm.
Step S8: Verify whether hK+1−kmx(Dm) matches the corresponding verification information Cm on the bulletin board 25. If no mismatch is found, decides that all the responses Dm are correct, and proceed to the subsequent steps. If a mismatch is found, sends an error message to each bidding device and discontinue further operation.
Step S9: If no mismatch is found in step S8, generate g(Dj) by the one-way function g processor 23 for Dj presented by the successful bidding device 10j.
Step S10: Verify whether g(Dj) matches the bidding price information γj in the bidding data of the bidding device 20j on the bulletin board 25. If they match, decide that the bidding device 10j has bid with the price index kmx. If they do not match, send an error message to each bidding device and discontinue the current bid-opening session.
As described below, a check is made, if necessary, to see if another bidding device 10m (different from the device 10j) has bid a value higher than kmx.
Step S11: For t=kmx+1, kmx+2, . . . , K, compute ht−kmx(Dm) by the one-way function processor 22′ and process the computed result by the one-way function g processor 23 to obtain g(ht−kmx(Dm)), and verify whether this g(ht−kmx(Dm)) matches the bidding price information γm on the bulletin board 25 for all m's except j (1≦m≦M, m≠j).
Step S12: If a match is found, then send an error message to each bidding device concerned and discontinue the current bid-opening session. If no match found, then output the winning bidding price index kmx and the identifier IDj of the bidding device 10j having offered the winning bid.
For example, in the case where the bidding device 10m bids with the random number information h(PRm(+)Rm) and the bidding price information γm=g(hkm(IVm) (where PRm′>PRm) and presents a price PRm′ higher than the bidding price PRm and the random number Rm in reply to the request for the presentation of PRm and Rm in step S2 and the price PRm′ becomes the highest bid value, if the bidding device presents Dm=hkmx(IVm) in reply to the request for the presentation of hkmx(IVm) in step S5, it will pass the verifications in steps S7 and S8, incurring the possibility that the price PRm lower than PRm′ becomes the winning bid. However, this can be prevented because a mismatch is found between g(Dm)=g(hkmx(IVm)) and γm=g(hkm(IVm) in steps S10 and S11.
With the bid-opening device 20, it is possible to specify the winning bid and the corresponding successful bidding device from PRm, Rm and IDm with ease, reduce the communication cost and verify that the winning bidding price and the winning device determined from PRm, Rm and IDm are true.
Fifth EmbodimentIn this embodiment each bidding device sends to the bid-opening device bidding price information containing select information which indicates whether to bid for each of K kinds of biddable prices. As depicted in
Let PRm represent that one of the K kinds of price indexes 1, 2, . . . , K which the bidding device 10m is to actually to bid. The select information denoted by bm(k) is defined as follows: bm(k)=0 when the bidding device 10m does not bid for the price index k such that 1≦k≦K, and bm(k)=1 when the bidding device 10m bids for the price index k. Accordingly, only one piece of information bm(k) exists for k such that 1≦k≦K. As mentioned above, the two values of the information bm(k) may be any values as long as they differ from each other. The information bm(k) is known only to the bidding device 10m, which uses it as a random number for each value of the price index k. The bidding device 10m outputs {IDm, h(1(+)bm(1)(+)Rm(1)), h(2(+)bm(2)(+)Rm(2)), . . . , h(K(+)bm(K)(+)Rm(K)} as bidding price information.
A description will be given, with reference to
Step S1: The bidding price PRm is determined and input.
Step S2: Set the initial value of the price index k to 1.
Step S3: Make a check to see if k≦K.
Step S4: If k≦K, generate the random number Rm(k) by the random generator 42.
Step S5: Generate the rice select information bm(k) by the select information generator 45 in accordance with the bidding price PRm.
Step S6: The (+) operation part 46 inputs thereinto these pieces of information Rm(k) and bm(k), and compute k(+)bm(k)(+)Rm(k). (+) indicates a predetermined appropriate operation, which may be a concatenation, addition, subtraction, multiplication, or the like.
Step S7: Process the result of this operation by the one-way function h processor 43 to generate h(k(+)bm(k)(+)Rm(k)).
Step S8: Increment k by one by the adder 47, followed by a return to step S3.
Step S9: When k exceeds K and the processing for all values of k ends, the bidding device 10m sends the identifier IDm and the bidding price information {h(1(+)bm(1)(+)Rm(1)), . . . , h(K(+)bm(K)(+)Rm(K))} to the bid-opening device 20.
By generating the bidding price information for each price through utilization of the one-way function and sending all the pieces of bidding price information to the bid-opening device 20 as described above, the aimed bidding price can be kept secret.
Step S0: Receive the bidding price information {IDm, h(1(+)bm(1)(+)Rm(1)), h(2(+)bm(2)(+)Rm(2)), . . . , h(K(+)bm(K)(+)Rm(K))} from the bidding device 10m (where m=1, 2, . . . , M).
Step S1: Write and hence publish the bidding price information on the bulletin board 25.
Step S2: Set the price index k to its highest value K.
Step S3: Request each bidding device 10m to present the random number Rm(k).
Step S4: The bidding devices 10m each send the random number Rm(k) to the bid-opening device 20, which writes all the random numbers Rm(k) on the bulletin board 25.
Step S5: Set bm(k)=1, then input bm(k) and Rm(k) to the (+) operation part 51 to perform an operation k(+)1(+)Rm(k), and process the result of operation by the one-way function h processor 22 to obtain h(k(+)1(+)Rm(k)).
Step S6: For each m, make a check to see if a match is found between the calculated h(k(+)1(+)Rm(k)) and h(k(+)1(+)Rm(k)) on the bulletin board 25.
Step S7: If no match is found, decrement k such that k←k−1, and return to step S3.
Step S8: If a match is found, determine the k as the successful price index k, then output the price index k and the identifier IDm of the bidding device 10m concerned, and discontinue the current bid-opening session.
As described above, according to this embodiment, the bidding price information corresponding to each price index is generated using the one-way function and all the pieces of bidding price information are sequentially opened in decreasing order from the highest value. This enables non-winning bids to be kept secret.
In the case of choosing the lowest price bid as the successful bid in this embodiment, the bidding device 10m similarly sends the bidding price information {IDm, h(1(+)bm(1)(+)Rm(1)), h(2(+)bm(2)(+)Rm(2)), . . . , h(K(+)bm(K)(+)Rm(K))} to the bid-opening device 20. The bid-opening device 20 carries out about the same processing as depicted in
In the case of choosing the highest price bid as the winning bid in this embodiment, since random numbers Rm(t) received from all the bidding devices for t (where k≦t≦K) are recorded on the bulletin board 25 in step S4, it is possible to detect that bm(k)=0 for the index larger than the winning price index k, by calculating h(t(+)bm(t)(+)Rm(t)) and comparing it with h(k(+)bm(k)(+)Rm(k)) published on the bulletin board 25. Accordingly, any one can determine if the winning price index k is correct.
In this embodiment it is also possible for each bidding device 10m to send the set of random numbers {Rm(k)}(k=1, . . . , K) to the bid-opening device 20 in advance together with IDm and h(k(+)bm(k)(+)Rm(k)). In this case, however, the random number Rm(k) is not written on the bulletin board 25 but is stored in the broken-lined information storage part 35. In
Step S0: Receive the bidding price information {IDm, h(1(+)bm(1)(+)Rm(1)), h(2(+)bm(2)(+)Rm(2)), . . . , h(K(+)bm(K)(+)Rm(K))} and random number information {Rm(1), Rm(2), . . . , Rm(R)} from the bidding devices 10m (where m=1, 2, . . . , M).
Step S1: Write and hence publish only the bidding price information on the bulletin board 25 and store the random number information in the storage part 35 indicated by the broken line.
Step S2: Set the highest possible value K for the price index k.
Step S3: For all m's, generate h(k(+)1(+)Rm(k)) read out of the storage part 35 with bb(k)=1.
Step S4: Verify whether a match is found between h(k(+)1(+)Rm(k)) and the pieces of bidding rice information written on the bulletin board 25.
Step S5: If no match is found, decrement the price index k by one to k←k−1
and return to step S3.
Step S6: For the index k for which the mach was found, write and publish all the random numbers Rm(t) (k≦t≦K) on the bulletin board 25.
Step S7: Determine k at this time as the winning price index, then output this index k and the identifier IDm of the bidding device 10m having submitted the winning bid, and discontinue the current bid-opening session.
When the lowest bidding price bid is chosen as the successful bid in this case, the index k is set to the smallest possible value, 1 in this example, in step S2 in
While in the above the select information bm(k) has been described to be “0” or “1,” they may be any values as long as they are two predetermined different integers.
Sixth EmbodimentIn the second embodiment described previously, at the time of bidding each bidding device 10m sends the bidding price information γm=g(hkm(IVm)) and the verification information Cm=hk+1(IVm) to the bid-opening device 20, and at the time of bid-opening the bid-opening device 20 requests the bidding device 10m to send the information Dm=hk(IVm), and verifies whether h(Dm) and Cm match for the information Dm received from the bidding device 10m; if they match, then the bid-opening device 20 further verifies whether g(Dm) matches the bidding price information γm. These verifications need to be made for all of m=1, 2, . . . , M. Accordingly, the amount of data to be processed increases with an increase in the number M of bidding devices used. In addition, the larger the highest value K of the index k, the more the amount of multiple processing by the one-way function h; hence it is necessary to process an enormous amount of data.
To avoid this, the sixth embodiment utilizes one-way functions to transform the bidding price index km to gm=Hm(K)=hK−km)gxm(IVm)), which is sent to the bid-opening device 20. xm is an arbitrary integer equal to or greater than 1 which is determined by the bidding device 10m. When inquired about whether it has bid with the index k, the bidding device 10m presents Hm(k−1)=hk−km−1(gxm(IVm)) if k is not its aimed bidding price index km, and if it is the aimed value, the bidding device 10m presents Hm(k−1)=gxm−1(IVm). The bid-opening device 20 verifies the former with h(Hm(k−1))=Hm(K) and the latter with g(Hm(k−1))=Hm(K).
The M bidding devices 10m indirectly bit the bidding price index values km to the bid-opening device 20, which detects the largest one of the index values km bit by the bidding devices 10m. Each bidding device 10m and the bid-opening device 20 have a conversion table in which K bidding prices PR1, PR2, . . . , PRK are held in a one-to-one correspondence with K kinds of index values 1, 2, . . . , K in increasing order. In this embodiment, as the index value k (where k=1, 2, . . . , K) increases, the value PRk becomes larger; for example, PR1=10, PR2=15, PR3=30, . . . , PRK=3000.
Step S1: The bidding device 10m receives via the input part 11 a value PRm selected from values PR1, PR2, . . . , PRK, an initial value (a positive integer) IVm and an arbitrary integer xm equal to or greater than 1.
Step S2: The control part 13 stores IVm and xm in the storage part 12.
Step S3: The control part 13 refers to the conversion table 15 with PRm to convert it to an index value km and stores it in the storage part 12.
Step S4: The initial value IVm and the bidding price xm are read out from the storage part 12, then input to the one-way function g processor 17, wherein the initial value is processed xm times with the one-say function g to obtain gxm(IVm).
Step S5: If necessary, gxm(IVm) is stored in the storage part 12.
Step S6: gxm(IVm), K and km are input to the one-way function h processor 16, wherein gxm(IVm) is processed K−km times with the one-way function h to obtain
Hm(K)=hK−km(gxm(IVm)).
Step S7: Hm(K) is sent as the bidding price information to the bid-opening device 20 via the transceiver 18.
In this way, the bidding device 10m sends the aimed bidding price index value km to the bid-opening device 20.
Step S8: Upon beginning the bid-opening procedure by the bid-opening device 20 after the bidding, each bidding device 10m receives an inquiry with the price index k from the bit-opening device 20 by the transceiver 18 as depicted in
Step S9: A check is made to see if the inquiry index value k is equal to the bidding price index km stored in the storage part 12.
Step S10: If not equal, gxm(IVm) is read out of the information storage part 12 and is input to the one-way function h processor 16 together with km and k, wherein gxm(IVm) is processed k−km−1 times with the one-way function h to obtain response information Hm(k−1) by the following equation:
Hm(k−1)=hk−km−1(gxm(IVm))
Step S11: The bidding device 10m sends the response information Hm(k−1) to the bid-opening device 20 via the transceiver 18 and waits for the next inquiry about k.
Step S12: If the inquiry about k corresponds to its aimed value, that is, if the index k is equal to km in he storage part 12, the bidding device 10m inputs the initial value IVm and xm−1 to the one-way function g processor 17, wherein the initial value IVm is processed xm−1 times to obtain response information Hm(k−1)=gxm−1(IVm).
Step S13: The bidding device 10m sends the response information Hm(k−1) to the bid-opening device 20.
The functional configuration of the bid-opening device 20 is depicted in
Step S1: Upon receiving the bidding information γm=Hm(K) from each bidding device 10m by the transceiver 28, the control part 21 writes the bidding information Hm(K) on the bulletin board 25 to publish it.
Step S2: Set K as the initial value of k in the counter 24.
Step S3: Send the index value k on the counter 24 to each bidding device 10m, and send thereto an inquiry about bidding via the transceiver 28.
Step S4: Receive the response information Hm(k−1) by the transceiver 28 from all the bidding devices 10m.
Step S5: Input Hm(k−1) to the one-way function h processor 22 to process it with the one-way function h to obtain h(Hm(k−1)).
Step S6: Check whether the result of operation h(Hm(k−1)) is equal to the bidding information Am for m in the storage part 35.
Step S7: If h(Hm(k−1))=Hm(K), store the received information Hm(k−1) as updated bidding information Hm(K) in the storage part 35 to update Hm(K).
Step S8: Decrement the count value k of the counter 24 by one, then return to step S3, and inquire of each bidding device 10m about whether it has made a registration for the value k.
Step S9: When it is found in step S6 that the response information Hm(k−1) from the bidding device 10m is gxm−1(IVm) which is equal to the aimed index value, h(Hm(k−1)) does not become equal to Hm(K)=hek+1−km−1(gxm(IVm))=gxm(IVm) in step S9. Then, input Hm(k−1) to the one-way function g processor 23 to process Hm(k−1) with the one-way function g to obtain g(Hm(k−1)).
Step S10: Make a check to see if g(Hm(k−1)) is equal to Hm(K) corresponding to m stored in the storage part 35.
Step S11: When the bidding device 10m has performed correct processing, hkm+1−km−1(gxm(IVm))=gxm(IVm)=Hm(K) by the process of step S7 at the time of previous inquiry for k=km+1; hence, g(Hm(k−1))=Hm(K) holds. In the inquiry processing for the index k which is decremented one by one, the index k for which g(Hm(k−1))=Hm(K) holds for the first time is the maximum value among the bidding price indexes of all the bidding devices, and this index k is converted to the value PRk by referring to the conversion table 25A.
Step S12: Output the value PRk as the highest one of the bid values, and if necessary, output the number m of the winning bidding device 10m as well.
In the bidding procedure of
In the case where the bidding prices PRk are arranged on each of the conversion tables 15 and 25A in such a decreasing order as 3000, 2950, 2900, . . . , 100 in correspondence with the K index values 1, 2, . . . , K, the price PRk corresponding to the index value k for which g(Hm(k−1))=Hm(K) holds for the first time in the inquiry about bidding k represents the lowest one of the aimed bidding prices of all the bidding devices 10m. The maximum value of the index may also be obtained without using the conversion table 15. In this instance, the bidding device 10m sends the index value km, and after step S10 in
In the bid-opening procedure depicted in
Step S0: Receive bidding price information Hm(K)=hK−km(gxm(IVm)) and the identifier IDm from each bidding device.
Step S1: Publish the received Hm(K) and IDm on the bulletin board 25.
Step S2: Set the initial value of the index k at K.
Step S3: Inquire of all the bidding devices 10m about whether they bid for the index k.
Step S4: Check the responses for YES (which means that the bidding device concerned has bid for the index k).
Step S5: If no YES is found, decrement k by one and returns to step S3 to repeat the same processing.
Step S6: If YES is found, request all the bidding devices 10m to send their bidding price information Hm(k−1). The response of the bidding device to this request is the same as described previously in connection with
Step S7: Publish the received information Hm(k−1) on the bulletin board 25.
Step S8: For the response Hm(k−1) of an m (representing the bidding device 10m) having bid for the index k, compute
Hm=hK−k(g(Hm(k−1))
and for the responses Hm(k−1) from the other m's (the other bidding devices), compute
Hm=hK+1−k(Hm(k−1)).
Step S9: Check whether Hm=Hm(k) holds for all the m's, and if a mismatch is detected for even one of them, send an error message to all the bidding devices and discontinue the current bid-opening session.
Step S10: If a match is detected for every one of them, determine that the bidding device 10m of the number m having responded YES is the winning bidder, and output the index k at that time and its identifier IDm for publication
The bidding device 10m and the bid-opening device 20 can each be implemented by a computer.
Seventh EmbodimentIn the fifth embodiment described previously, each bidding device 10m generates the select information bm(k) indicating whether to bid for every price index k=1, 2, . . . , K, and these pieces of select information are contained in K pieces of information h(k(+)bb(k)(+)Rm(k)), where k=1, 2, . . . , K. In this embodiment, however, the plural pieces of select information are contained in a single piece of bidding price information through multiple processing with the one-way function h.
In this embodiment, letting km be the index that the bidding device 10m bids, a select information generating part 54 generates K−km+1 pieces of select information bm(km), bm(km+1), . . . , bb(K) corresponding to the indexes larger than the bidding price index km (step S1). Then, Hm(km−1), Hm(km), Hm(km+1), . . . , Hm(K) are successively generated by the following equations
and they are stored in the data storage part 14S (step S2). Further, a signature σm=Sigm(Hm(K)) of the bidding device 10m corresponding to the bidding price information Hm(K) is generated by the signature generator 14S (step S3). The bidding device 10m sends Hm(K), σm and IDm as bidding information to the bid-opening device 20 (step S4). After this, the bid-opening procedure is started, and upon receiving an inquiry for each value of the index k, the bidding device reads out {Hm(k−1), bm(k)} from the data storage part 14S, and sends it to the bid-opening device (step S5).
The bid-opening device 2—comprises, as depicted in
The bid-opening device 20 verifies respective signatures σm (where m=1, 2, . . . , M) and writes and publish the received pieces of information Hm(K), σm and IDm on the bulletin board 25.
The bid-opening device 20 sends k to the bidding device in the order [k=K, K−1, K−2, . . . ] and asks for information {Hm(k−1), bm(k)} corresponding to each index k. The information {Hm(k−1), bm(k)} received from each bidding device 10m is published on the bulletin board 25, then it is checked whether Hm(k)=h(H(k−1),bm(k)) holds for the information Hm(k) received previously, and if it holds, it is checked whether the select information bm(k) is 1. When bm(k) is 0 for all of m=1, 2, . . . , M, the bid-opening device 20 decrements k to k←k−1, then sends again k to the bidding device and asks for the information {Hm(k−1), bm(k)}, thereafter performing the same operation as described above. If the select information bm(k) is 1 for any one of m=1, 2, . . . , M, then the bidding device 10m corresponding to that m is determined as the winning bidder. The bid-opening device 20 publishes the successful bidding price index km and the identifier IDm of the wining bidding device 10m on the bulletin board 25.
According to this embodiment, since each bidding device does not perform the multiple processing with the one-way function for indexes smaller than the bidding price index km, the computational complexity is low accordingly.
The bid-opening device performs the bid-opening procedure as described below.
Step S0: Receive the pieces of bidding information Hm(K), σm and IDm from each bidding device, then verifies respective signature σm (where m=1, 2, . . . , M), and writes and publishes the pieces of information Hm(K), σm and IDm on the bulletin board 25.
Step S1: Set the initial value of the index k to K.
Step S2: Send k to each bidding device 10m and ask for {Hm(k−1), bm(k)}.
Step S3: Write and publish on the bulletin board 25 the information {Hm(k−1), bm(k)} received from each bidding device 10m.
Step S4: Process the received information {Hm(k−1), bm(k)} by the one-way function h processor 22, thereby generating H=h(Hm(k−1)∥bm(k)).
Step S5: Verify by the comparator 58 whether H generated in step S4 matches the previously received Hm(k). If a mismatch is detected, then send an error message to the bidding device and discontinue the current bid-opening session.
Step S6: If no mismatch is found in step S5, then decides that the response from every bidding device is valid, and make a check by the comparator 59 to see if the received select information bm(k) is 1.
Step S7: When the select information bm(k)
from all bidding devices 10m is 0, update k with k−1 and return to step S2.
Step S8: When any one of M pieces of select information bm(k) is 1 in step S6, determine that the bidding device 10m corresponding to m, which provides that information bm(k), is the winning bidder, and write and publish its identifier IDm and the index kk of the winning bid on the bulletin board 25, and end the bid-opening procedure.
In this embodiment the prices bid by the unsuccessful bidders are each kept secret from the other participants. The lowest price bid can be made a successful bid by using a conversion table wherein the price PR monotonously increases in the direction opposite to that in which the index k monotonously increases.
Incidentally, it is also possible to set Hm(0)=IVm, Hm(1)=h(Hm(0)∥bm(1)), . . . , Hm(K)=h(Hm(K−1)∥bm(K), where bm(1)=bm(2)= . . . =bm(km−1)=0.
The communication cost and computational complexity involved in the bid-opening procedure of
Step S0: Receive the bidding price information Hm(K)=h( . . . h(h(Hm(km−1)∥bm(km))∥bm(km+1)) . . . ∥bm(K)) and the identifier IDm from each bidding device.
Step S1: Publish the received Hm(K) and IDm.
Step S2: Set the initial value of the index k at K.
Step S3: Inquire of all the bidding devices 10m about whether they bid for the index k.
Step S4: Check the responses for YES (which means that the bidding device concerned has bid for the index k).
Step S5: If no YES is found, decrement k by one and returns to step S3 to repeat the same processing.
Step S6: If YES is found, request all the bidding devices 10m to send their bidding price information Hm(k−1)=h( . . . h(h(Hm(km−1)∥bm(km))∥bm(km+1)) . . . ∥bm(K)). The response of the bidding device to this request is the same as described previously in connection with
Step S7: Publish the received information Hm(k−1) on the bulletin board 25.
Step S8: For the response Hm(k−1) of an m (representing the bidding device 10m) having bid for the index k, compute
Hm=h( . . . h(h(Hm(k−1)∥1)∥0)∥ . . . 0)
and for the responses Hm(k−1) from the other m's (the other bidding devices), compute
Hm=h( . . . h(h(Hm(k−1))∥0)∥0) . . . ∥0).
Step S9: Check whether Hm=Hm(k) holds for all the m's, and if a mismatch is detected for even one of them, send an error message to all the bidding devices and discontinue the current bid-opening session.
Step S10: If a match is detected for every one of them, determine that the bidding device 10m of the number m having responded YES is the winning bidder, and output the index k at that time and its identifier IDm for publication.
Eighth EmbodimentIn each of the embodiments described above, the bidding prices for the bidding price indexes k=1, 2, . . . , K in the conversion table are discrete values such as 1000, 2000, 3000, . . . , 10000, and each bidding device bids any one of the K prices but cannot bid a value intermediate between such discrete prices unless K prices are set in “1” increments. This embodiment is intended to permit bidding an arbitrary price intermediate between the discrete values. In this embodiment, an arbitrary bidding price PR within the range defined by the highest and lowest bidding prices is expressed by the following equation.
PR=F(k)+Q
where: 0≦Q<F(k+1)−F(k)
F(k) represents the price corresponding to the index k specified on the conversion table, and Q will hereinafter be referred to as a fraction.
This embodiment is one that the bidding price PR defined above is applied to the first embodiment described previously. Bidding price information g(hk(IVm)) and Qm are sent to the bid-opening device 20. Further, hK+1(IVm) is sent as verification information to the bid-opening device 20 together with the bidding price information. These pieces of information are published on the bulletin board as is the case with the first embodiment.
The bid-opening device 20 has, as depicted in
In step S8 the bid-opening device 20 makes a check to determine whether the matching in steps S6 to S11 has been completed for all fractions Qm for the current value of k. If not completed, the procedure goes to step S9. In step S9, the bid-opening device 20 selects the largest one of the remaining fractions Qm to determine the corresponding m. In step S10, the device 20 reads out of the data storage part 36 updated data Dm(k)=hk(IVm) corresponding to that m, and processes the read-out data by the one-way function g processor 23, thereby updating it such that Dm(k)←g(Dm(k)). In step S11, the control device 21 makes a check to see if the updated data Dm(k) corresponding to m matches the bidding price information γm corresponding to m on the bulletin board 25, and if not, then the procedure returns to step S8.
When it is decided in step S8 that the matching for all the fractions Qm for the current k has been completed, the bid-opening device 20 decrements k by one in step S12, and returns to step S8, repeating the same procedure as mentioned above. When it is decided in step S11 that the updated data Dm(k) and the bidding price information γm match, the bid-opening device 20 determines in step S13 that the index k at that time is the successful index, and outputs the identifier IDm corresponding to that information γm and the successful bidding price F(k)+Qm (or merely the index k).
Since Dm(k) and gm are matched for the current value of the index k in the descending order of the fractions Qm as described above, the highest bidding price can be determined at the first detection of matching between Dm(k) and γm. The value m selected in step S9 is determined by the sequencer 61 which sequences in descending order the fractions Q1, Q2, . . . , QM read out of the bulletin board 25, and sequences m correspondingly, as explained before.
In the case where the lowest bidding price bid is a successful bid, the bidding prices are arranged in monotonous increasing order in the direction opposite to that in which the values of the index k are arranged in monotonous decreasing order, and the sequencer 61 sequences the fractions Q1, Q2, . . . , QM in ascending order, and sequences m correspondingly. In step S9 the smallest one of the unprocessed fractions Qm is chosen, and the corresponding m is determined. The sequencer 61 determines the order of m.
The technique that uses may fractions Qm as described above can be applied not only to the first embodiment but also to the other embodiments explained heretofore.
Electronic Competitive Auction System With Provisional Identifier Device
In the embodiments described above, since the bidding device identifier IDm is contained in the bidding information and sent to the bid-opening device 20, it can be said that these embodiments employ what is called a sealed-bit auction system.
Each bidding device 10m is adapted to communicate with a provisional identifier registration device 70. Referring to
Step S0: Notice of auction is input to each bidding device 10m.
Step S1: Upon receiving the notice of auction, the bidding device 10i outputs the identifier IDm to the provisional identifier registration device 70.
Step S2: For the identifier IDm provided thereto, the provisional identifier registration device 70 issues a provisional identifier AIDm then stores IDm and AIDm in pair form on a recording medium 71, and sends the provisional identifier AIDm to the bidding device 10i.
Step S3: The bidding device 10m: generates the bidding price PRm;
Step S4: Transforms the bidding price PRm to the bidding price information γm; and
Step S5: Sends the bidding price information γm and the provisional identifier AIDm to the bid-opening device 20.
Step S6: The bid-opening device 20: calculates a successful bid from the bidding price indexes received from all the bidding deices; and
Step S7: Outputs the successful bid and the provisional identifier of the bidding device having offered the successful bid.
Thus, it is possible to keep the auction participants secret. Incidentally, when inquiring the provisional identifier registration device 70, the bid-opening device 20 can learn the identifier IDm corresponding to the successful bid from the provisional identifier AIDm. This method can be applied to all of the embodiments explained hereinbefore.
The bidding device 10m and the bid-opening device 20 can be implemented by interpreting and executing programs with a computer.
EFFECT OF THE INVENTIONAs described above, according to the present invention, since the bidding price is transformed to a bidding price information through utilization of a one-way function and is then sent to the bid-opening device, it is possible to keep the bidding price of each bidding device secret from the other bidding devices prior to bidding, ensuring fairness of auction.
By publishing hK+1(IVm) and hkmx(IVm) corresponding to a winning bidding price on the bulletin board, it is possible for all bidding devices to verify whether the winning bidding price was correctly bid without being altered.
Furthermore, the present invention permits determination of the winning bid while hiding the other bidding prices.
According to the second embodiment, the bids of losing bidders, except the winning bid, are kept secret even from the bid-opening device.
According to the third embodiment, the bids of losing bidders, except the winning bid, are kept secret even from the bid-opening device, and in addition, the amount of data for communication with the bidding device can be reduced.
According to the fourth embodiment, there is no fear of the bidding price of each bidding device being revealed to the other devices, and at the bid-opening time the successful bid can easily be specified directly from the bidding price; furthermore, the validity of the winning bid can be verified.
According to the fifth embodiment, bidding price information including each bidding price index is generated using a one-way function, and the bidding price information for all bidding price indexes is sent to the bid-opening device; hence, the aimed bidding price can be kept secret.
According to the sixth embodiment, either h(Hm(k−1))=Hm(K) or g(Hm(k−1))=Hm(K) needs only to be verified for each index value and for each bidding device.
According to the seventh embodiment, each bidding device generates the bidding price information including select information for only indexes larger than the bidding price index km in the fifth embodiment, the computational complexity can be reduced.
According to the eighth embodiment, since a desired bidding price is expressed by the sum of fractions Q of a price F(k) corresponding to the index k, an arbitrary price can be bid with a small number of indexes.
Claims
1-17. (canceled)
18. A server device for a system in which M participant devices send their aimed values to said server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, said device comprising:
- a conversion table memory which has stored therein a conversion table which defines the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, for converting said aimed value PRm to the corresponding index km;
- a bulletin board on which said server device writes said aimed value information an identifier received from each of said participant devices;
- updated initial value generating means which generates an updated initial value by processing said initial value with a one-way function repeatedly in correspondence with values of an index k which is a predetermined consecutive positive integers;
- a counter which updates said index k one by one; and
- control means which, upon each updating of said index k, compares said updated initial value with said aimed value information on said bulletin board to check whether they match, and determines m and k at the time of first detection of a match.
19. The server device of claim 18, wherein: there are published on said bulletin board γm=g(hkm(IVm)) as said aimed value information;
- said updated initial value generating means includes a one-way function g processor by which a response Dm=hk(IVm) received from said participant device in correspondence with said index k is processed with a one-way function g to generate g(Dm) as said updated initial value; and
- said control means makes a check to see if there exists on said bulleting board said aimed value information γm which matches said updated initial value g(Dm).
20. The server device of claim 19, wherein there is published on said bulletin board Cm=hK+1(IVm) received from said participant device in advance, said server device further comprising a one-way function h processor which processes said response Dm with a one-way function h to generate h(Dm), and
- wherein said control means checks whether Cm=h(Dm) holds, and if not, rewrites said Cm with said Dm and updates said index k on said counter.
21. The server device of claim 18, wherein:
- there are published on said bulletin board Cm=hK+1(IVm), said aimed value information γm=hk(IVm) and h(PRm(+)Rm) received from said each participant device, said PRm and said Rm being an aimed value and a random number of said each participant device m;
- said control means decides the maximum or minimum aimed value from said aimed values PRm and said random numbers Rm received from said participant devices, and determines the index kmx corresponding to said maximum or minimum aimed value and requests said each participant device to send Dm=hkmx(IVm) corresponding to said index kmx;
- said updated initial value generating means comprises a one-way function h processor for processing Dm with a one-way function h to generate hK+1−kmx(Dm), and a one-way function g processor for processing Dj with a one-way function g to generate g(Dj); and
- said control means makes a check to see if said hK+1−kmx(Dm) matches Cm on said bulletin board and if said g(Dj) matches said γm on said bulleting board.
22. The server device of claim 18, wherein:
- there are published on said bulletin board h(k(+)bm(k)(+)Rm(k)) together with said aimed value information γm received from said each participant device, said bm(k) being select information whether said index k corresponds to its aimed value and said R1 (k) being a random number generated for said index k;
- said server device further comprises an operator for operating k(+)b(+)Rm(k), and a one-way function h processor for processing the result of said operation with a one-way function h to generate h(k(+)b(+)Rm(k)), where b is a predetermined value which indicates that said select information bm(k) has selected the aimed value corresponding to said index k; and
- said control means makes a check for matching between said h(k(+)b(+)Rm(k)) and said h(k(+)bm(k)(+)Rm(k)) on said bulletin board.
23. The server device of claim 18, wherein:
- there is published on said bulletin board, as said aimed value information, Hm(K) generated by said each participant device which, upon each processing of said initial value with a one-way function h, added the processed value with select information bm(k) indicating whether said value was an aimed value for each value of said index k and repeated this processing from at least the index km corresponding to said aimed value to the upper limit value K of said index k;
- said updated initial value generating means includes a one-way function h processor by which {Hm(k−1), bm} received from said each participant device in answer to an inquiry for said index k is processed with a one-y function h to generate Hm(k)=h(Hm(k−1)∥bm(k)); and
- said server device includes an updated initial value comparator for making a check to see if said Hm(k) matches previously received Hm(k).
24. The server device of claim 18, wherein: letting an arbitrary aimed value PR be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said index k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0, there is published on said bulletin board said fraction Q received from said each participant device, together with said aimed value information;
- said server device includes a sequencer for deciding the sequence of said fractions Qm on said bulletin board;
- said updated initial value generating means includes a one-way function h processor for processing said initial value with a one-way function h by k times to generate hk(IVm) and a one-way function g processor for processing said hk(IVm) with a one-way function g to generate Dm=g(hk(IVm)); and
- control means makes a check to see if said Dm matches said aimed value information on said bulletin board in the sequence of said fractions Qm.
25. The server device of claim 18, wherein there is published on said bulletin board HmK)=hK-km(gxm(IVm)) as said aimed value information received from said each participant device, which further comprises a one-way function h processor by which Hm(k−1) received from said each participant device as an answer to an inquiry for said k is processed with a one-way function h to generate h(Hm(k−1)), and a one-way function g processor for processing said answer Hm(k−1) with a one-way function g to generate g(Hm(k−1)); and
- wherein said control means: makes a check to see if said h(Hm(k−1)) matches said aimed value information Hm(K) published on said bulletin board; if a match is detected, updates said aimed value information Hm(K) with said Hm(k−1) and decrements said index k on said counter by one; and if a mismatch is detected, makes a check to see if said g(Hm(k−1)) matches said aimed value information Hm(K); and if a match is detected, determines, based on k and m at that time, the maximum or minimum aimed value PRm and the participant device m having offered said value PRm.
26. The server device of claim 18, wherein: letting an arbitrary aimed value PR be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said index k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0, there is published on said bulletin board said fraction Q received from said each participant device, together with said aimed value information;
- said server device includes:
- a sequencer for deciding the sequence of said fractions Qm on said bulletin board; and
- select information comparator for checking whether said select information bm(k) is equal to a value b indicating the selection of the aimed value corresponding to said index k in said decided sequence of fractions Qm.
27. The device of claim 18, wherein said sequence of index values k and said sequence of values selectable as said aimed values on said conversion table are monotone increasing values in the same direction, and said server device determines the maximum aimed value.
28. The device of claim 18, wherein said sequence of index values k and said sequence of values selectable as said aimed values on said conversion table are monotone increasing values in opposite directions, and said server device determines the minimum aimed value.
29. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of: where g is a one-way function, IVm is said initial value, km is an index corresponding to the aimed value of said participant device m and hkm(IVm) indicates processing of said initial value IVm with a one-way function h by km times; and
- (a) processing an initial value inherent to said participant device m with a predetermined one-way function by the number of times corresponding to said aimed value to generate aimed value information γm=g(hkm(IVm))
- (b) sending said aimed value information γm=g(hkm(IVm)) to said server device.
30. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of: where g is a one-way function, IVm is said initial value, km is an index corresponding to the aimed value of said participant device m and hkm(IVm) indicates processing of said initial value IVm with a one-way function h by km times;
- (a-1) processing an initial value inherent to said participant device m with a predetermined one-way function by the number of times corresponding to said aimed value to generate aimed value information γm=g(hkm(IVm))
- (a-2) generating verification information Cm=hK+1(IVm) and sending said verification information to said server device together with said aimed value information γm;
- (b) generating said initial value updated by the number of times requested by said server device and sending said updated initial value to said server device; and
- (c) sending said aimed value information γm=g(hkm(IVm)) to said server device.
31. The recording medium of claim 30, wherein said step (b) includes a step of generating Dm=hk(IVm) as said updated initial value corresponding to said index k and sending said updated initial value to said server device in response to its request.
32. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of: where g is a one-way function, IVm is said initial value, km is an index corresponding to the aimed value PRm of said participant device m and hkm(IVm) indicates processing of said initial value IVm with a one-way function h by km times;
- (a-1) computing aimed value information by γm=g(hkm(IVm))
- (a-2) generating verification information Cm=hK+1(IVm);
- (a-3) generating h(PRm(+)Rm) from a random number Rm and said aimed value PRm and sending said h(PRm(+)Rm) to said server device together with said aimed value information γm and said verification information Cm, said (+) indicating a predetermined arbitrary operation;
- (b-1) sending said aimed value PRm and said random number Rm to said server device in response to its request; and
- (b-2) generating Dm=hk(IVm) as said updated initial value corresponding to said index k and sending said updated initial value to said server device in response to its request to present said hk(IVm).
33. The recording medium of claim 32, wherein said step (a-3) is a step of generating h(PRm(+)Rm) from a random number Rm, said aimed value PRm and additional information Im about the sending of said aimed value information indicated by said participant device m and sending said h(PRm(+)Rm) to said server device, said additional information Im being sent to said server device in said step (b-2).
34. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps wherein:
- (a) upon each processing of said initial value with said one-way function h, said each participant device generates an updated initial value by adding said processed initial value with select information bm(k) indicating whether said processed initial value is an aimed value for one value of said index k, and generates Hm(K) by repeatedly performing this processing from at least that index km of a sequence of indexes which corresponds to said aimed value to the upper limit value K, and sends said Hm(K) as said aimed value information to said server device;
- (b-1) said server device requests said each participant device to send an updated initial value {Hm(k−1), bm(k)} corresponding to each value of said index k in descending order from K; and
- (b-2) said each participant device generates and sends {Hm(k−1), bm(k)} as said updated initial value to said server device.
35. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of:
- (a) generating Hm(K)=hK-km(gxm(IVm)) as said aimed value information using a predetermined positive integer xm, an initial value IVm and one-way functions h and g, and sends said aimed value information to said server device;
- (b-1) decides whether its received index k from said server device is the index km corresponding to said aimed value;
- (b-2) if the result of decision in step (b-1) is k=km, generating and sending Hm(k−1)=gxm−1(IVm) as said updated initial value to said server device; and
- (b-3) if the result of decision in said step (b-1) is not k=km, generating and sending Hm(k−1)=hk-km−1(gxm(IVm)) as said updated initial value to said server device.
36. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, letting the initial value of said each participant device be represented by IVm, said procedure comprising the steps of:
- (a) generating Hm(K)=hK-km(gxm(IVm)) as said aimed value information using a predetermined positive integer xm, an initial value IVm and one-way functions h and g, and sends said aimed value information to said server device;
- (b-1) decides whether its received index k from said server device is the index km corresponding to said aimed value;
- (b-2) if the result of decision in step (b-1) is k=km, generating Hm(k−1)=gxm−1(IVm) as said updated initial value and sending said updated initial value to said server device together with a flag indicating that said k and km are equal; and
- (b-3) if the result of decision in said step (b-1) is not k=km, generating and sending Hm(k−1)=hk-km−1(gxm(IVm)) as said updated initial value to said server device.
37. A recording medium on which there is recorded as a program the procedure which is followed by an m-th one of M participant devices, where m=1, 2,..., M, in a quantitative competition method for a system in which said M participant devices send their aimed values to a server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the step of:
- (a) processing, with a predetermined one-way function h and through the use of said conversion table, information k(+)bm(k)(+)Rm(k), which contains each index k equal to or larger than an index km corresponding to said aimed value, select information bm(k) indicating whether said index k corresponds to said aimed value, and a random number Rm(k), to generate at least K-km+1 pieces of aimed value information h(k(+)bm(k)(+)Rm(k)), and sends these pieces of aimed value information to said server device, A(+)B representing a predetermined arbitrary operation.
38. The recording medium of claim 37, wherein said procedure further comprises a step of sending to said server device a random number Rm(k) corresponding to the index k received from said server device.
39. The recording medium of claim 37, wherein said step (a) includes a step of sending a random number Rm(k) to said server device together with said h(k(+)bm(k)(+)Rm(k)).
40. The recording medium of claim 30, wherein let an arbitrary aimed value be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said index k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0;
- said procedure further comprises a step wherein, letting said aimed value PRm of said each participant device m be represented by PRm=F(km)+Qm, said each participant device m sends said fraction Qm to said server device together with said aimed value information γm.
41. The recording medium of claim 30, wherein said sequences of indexes k and values selectable as said aimed values are both monotonous increasing values in the same direction.
42. The recording medium of claim 30, wherein said sequences of indexes k and values selectable as said aimed values are both monotonous increasing values in opposite directions.
43. The recording medium of claim 30, wherein said procedure further comprises the steps of:
- (0-1) sending the identifier IDm of said each participant device to a provisional identifier registration device;
- (0-2) receiving a provisional identifier AIDm from said provisional identifier registration device; and
- (0-3) sending said provisional identifier AIDm as an identifier to said server device together with said aimed value information.
44. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of:
- (a) receiving, from each of participant devices, h(Hm(K)) generated as aimed value information of said each participant device by repeating, for each of a sequence of index values k from at least km corresponding to an aimed value of said each participant device to an upper limit index value K, processing of:
- combining an initial value of said each participant device with select information to provide combined information and
- operating a one-way function h on said combined information to generate an updated value, said select information indicating whether said each index value k is an aimed value or not, and
- publishing said aimed value information h(Hm(K)) on a bulletin board accessible from all of said participant devices and any other devices as well;
- (b) requesting said each participant device to send an updated initial value {Hm(k−1), bm(k)} corresponding to each value of said index k in descending order from K;
- (c) publishing said updated initial value {Hm(k−1), bm(k)} on said bulletin board;
- (d) processing said updated initial value {Hm(k−1), bm(k)} with said one-way function h to generate Hm(k)=h(Hm(k−1)∥bm(k));
- (e) checking whether said updated initial value Hm(k) matches Hm(k) in {Hm(k), bm(k+1)} previously; and
- (f) if a match is detected in said step (e), deciding whether said select information bm(k) represents that the corresponding index k is the index km of said aimed value; and
- (g) if the result of decision in said step (f) is true, outputting said index k concerned and the corresponding participant device number m, and if the result of decision is false, said server device returns to said step (b) and repeats processing for the next index value k.
45. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps wherein said server device: through the use of said updated initial value Hm(k−1), and for every one of the other participant devices m, generates through the use of said updated initial values Hm(k−1);
- (a) receives Hm(K) as said aimed value information from said each participant device which, upon each processing of said initial value with said one-way function h, generates an updated initial value by adding said processed initial value with select information bm(k) indicating whether said processed initial value is an aimed value for one value of said index k, and generates Hm(K) by repeatedly performing this processing from at least that index km of a sequence of indexes which corresponds to said aimed value to the upper limit value K, and publishes said aimed value information Hm(K) on a bulletin board accessible from all of said participant device;
- (b) for each value of said index k in order descending from K, inquires said each participant device about whether it has bid for said index k, said each participant device responding YES or NO to said inquiry;
- (c) upon first detection of the response YES, requests said each participant device to send its updated initial value Hm(k−1); and
- (d) receives Hm(k−1)=h(Hm(k−2)∥bm(k−1)) as said updated initial value from said each participant device and publishes said received updated initial value on said bulletin board;
- (e) letting a and a represent predetermined values of said select information bm(k) indicating bidding and not bidding, respectively, generates, for said participant device m having bid for the current index k, Hm=h(... h(h(Hm(k−1)∥a)∥a)... ∥a)
- Hm=h(... h(h(Hm(k−1)∥a)∥a)... ∥a)
- (f) checks whether said Hm for said each participant device matches said Hm(k) published on said bulletin board; and
- (g) if a match is detected in said step (f), determines that said participant device having responded YES is the winning bidding device, and publishes the current value of said index k as the index km of the aimed value of said winning bidding device.
46. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of:
- (a) letting the initial value of said each participant device be represented by IVm, receiving from said each participant device Hm(K)=hK-km(gxm(IVm)) generated as said aimed value information using a predetermined positive integer xm, said initial value IVm and one-way functions h and g;
- (b) publishing said aimed value information Am on a bulletin board accessible from all of said participant devices; and
- (c) sending said index k to said each participant device to ask for its updated initial value;
- (d) processing said updated initial value Hm(k−1) with said one-way function h to generate h(Hm(k−1));
- (e) deciding whether said h(Hm(k−1)) is equal to said aimed value information Hm(K);
- (f) if it is decided in said step (e) that they are equal, updating said aimed value information Hm(K) with said updated initial value Hm(k−1), then decrementing said index k by one and returning to said step (c);
- (g) if it is decided in said step (e) that they are not equal, processing said updated initial value Hm(k−1) with said one-way function g to generate g(Hm(k−1)); and
- (h) deciding whether said g(Hm(k−1)) matches said aimed value information Hm(K); and
- (i) deciding that the aimed value of said participant device corresponding to m and k having provided said match is the maximum or minimum, if a match is detected in said step (h).
47. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps wherein said server device:
- (a), letting the initial value of said each participant device be represented by IVm, where m=1, 2,..., M, M being an integer equal to or greater than 2, receives from each participant device, as said aimed value information, Hm(K)=hK-km(gxm(IVm)) using a predetermined positive integer xm, said initial value IVm and one-way functions h and g, and publishes said received aimed value information on a bulletin board accessible from all of said participant devices;
- (b) for each value of said index k in order descending from K, inquires said each participant device about whether it has bid for said index k, said each participant device responding YES or NO to said inquiry;
- (c) upon first detection of the response YES, requests said each participant device to send its updated initial value Hm(k−1);
- (d) receives from said each participant device Hm(k−1)=gxm−1(IVm) if k=km and Hm(k−1)=hk-km−1(gxm(IVm)) if k≠km;
- (e) for said updated initial value Hm(k−1) received from said participant device having responded YES, generates Hm=hK-kmg(Hm(k−1))
- and for said updated initial value received from said each participant device having responded NO, generates Hm=hK+1−kg(Hm(k−1))
- (f) checks whether said Hm for said each participant device matches said Hm(K) published on said bulletin board; and
- (g) if a match is detected in said step (f), determines that said participant device having responded YES is the winning bidding device, and publishes the current value of said index k as the index Km of the aimed value of said winning bidding device.
48. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, said procedure comprising the steps of:
- (a) letting the initial value of said each participant device be represented by IVm, receiving from said each participant device Hm(K)=hK-km(gxm(IVm)) generated as said aimed value information using a predetermined positive integer xm, said initial value IVm and one-way functions h and g;
- (b) publishing said aimed value information Hm(K) on a bulletin board accessible from all of said participant devices; and
- (c) sending said index k to said each participant device to ask for its updated initial value;
- (d) checking whether its received updated initial value Hk,m is added with said flag;
- (e) if it is decided in said step (d) that said flag is added, processing said updated initial value Hm(k−1) with said one-way function g to generate g(Hm(k−1));
- (f) deciding whether said g(Hm(k−1)) matches said aimed value information Hm(K);
- (g) if it is decided in said step (d) that no flag is added, processing said updated initial value Hm(k−1) with said one-way function h to generate h(Hm(k−1));
- (h) deciding whether said h(Hm(k−1)) matches said aimed value information Hm(K);
- (i) if it is decided in said step that they are equal, updating said aimed value information Hm(K) with said initial value Hm(k−1), then decrementing said index k by one and returning to said step (c); and
- (j) if it is decided in said step (h), processing said initial value Hm(k−1) with said one-way function g to generate g(Hm(k−1)) and returning to said step (f); and
- (k) if a match is detected in said step (f), deciding that the aimed value of said participant device corresponding to m and k having provided said match is the maximum or minimum.
49. A recording medium on which there is recorded as a program the procedure which is followed by a server device in a quantitative competition method for a system in which a plurality of participant devices send their aimed values to said server device and said server device determines which of said participant devices has offered the maximum or minimum one of said aimed values received, and there is provided a conversion table showing the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, and m=1, 2,..., M, M being an integer equal to or greater than 2; said procedure comprising the steps of:
- (a) receiving from each of said participant devices at least K-km+1 pieces of aimed value information h(k(+)bm(k)(+)Rm(k)) generated by processing, with a predetermined one-way function h and through the use of said conversion table, information k(+)bm(k)(+)Rm(k), which contains each index k equal to or larger than an index km corresponding to said aimed value, select information bm(k) indicating whether said index k corresponds to said aimed value, and a random number Rm(k), A(+)B representing a predetermined arbitrary operation between A and B;
- (b) receiving and publishing said aimed value information on a bulletin board accessible from all of said participant devices;
- (c) obtaining said random number Rm corresponding to each of said sequence of indexes k;
- (d) calculating h(k(+)a(+)Rm(k)), where a is a predetermined value with which said select information bm(k) indicates said aimed value;
- (e) checking said aimed values on said bulletin board for matching with said calculated h(k(+)a(+)Rm(k)); and
- (f) if a match is detected in said step (e), deciding that the aimed value of the aimed value information of a participant device having sent said random number Rm(k) at that time is the maximum or minimum value.
50. The recording medium of claim 49, wherein said procedure further comprises a step of repeating said steps (c), (d) and (e) if a match is detected in said step (d).
51. The recording medium of claim 50, wherein said step (c) includes
- the steps of: requesting said each participant device to send said random number Rm(k) corresponding to said index k; and receiving said random number Rm(k) from said each participant device.
52. The recording medium of claim 50, wherein:
- said step (a) includes a step of receiving said random number Rm(k) sent from said each participant device together with said aimed value information h(k(+)bm(k)(+)Rm(k));
- said step (b) includes a step of storing said random number Rm(k) in a nonpublic memory; and
- said step (c) includes the steps of: requesting said each participant device to send said random number Rm(k) corresponding to said index k; and receiving said random number Rm(k) from said each participant device.
53. The recording medium of claim 44, wherein said sequences of indexes k and values selectable as said aimed values are both monotonous increasing values in the same direction, and in said step (c) said server device determines the maximum aimed value.
54. The recording medium of claim 44, wherein said sequences of indexes k and values selectable as said aimed values are both monotonous increasing values in opposite directions, and in said step (c) said server device determines the minimum aimed value.
55. The recording medium of claim 44, wherein let an arbitrary aimed value be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said index k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0;
- said step (a) includes a step wherein, letting said aimed value PRm of said each participant device m be represented by PRm=F(km)+Qm, said server device receives from each participant device m said aimed value information generated by processing said initial value with said one-way function h by the number of times corresponding to km, together with said fraction Qm, where m=1, 2,..., M, said M being an integer equal to or greater than 2, and said server device publishes said aimed value information and said fraction Qm on a bulletin board accessible from all of said participant devices;
- said step (c) includes a step where said server device makes a check for matching between said updated initial value and said aimed value information for each index value in an ascending or descending order of said fraction Qm where m=1, 2,..., M; and
- said step (d) includes a step wherein, upon first detection of a match in said step (c), said server device finishes said check and determines, from km and m at the time of detecting the match, that PRm=F(km)+Qm is said maximum or minimum aimed value.
56. The recording medium of claim 49, wherein let an arbitrary aimed value be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said index k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0;
- said step (a) includes a step wherein, letting said aimed value PRm of said each participant device m be represented by PRm=F(km)+Qm, said server device receives said fraction Qm together with said aimed value information;
- said step (b) includes a step of publishing said fraction Qm on said bulletin board together with said aimed value information, where m=1, 2,..., M, said M being an integer equal to or greater than 2;
- said step (e) includes a step of making said check for matching for each index value in an ascending or descending order of said fraction Qm where m=1, 2,..., M; and
- said step (f) includes a step wherein, upon first detection of a match in said step (c), said server device finishes said check and determines, from km and m at the time of detecting the match, that PRm=F(km)+Qm is said maximum or minimum aimed value.
57. A quantitative competition system which comprises a server device and M participant devices each connected via a communication channel to said server device and in which said M participant devices send their aimed values to said server device and said server device determines which of said M participant devices has offered the maximum or minimum one of said aimed values received,
- each of said participant devices comprising:
- aimed value generating means for generating an aimed value PRm;
- aimed value transforming means provided with a conversion table memory having stored therein a conversion table which defines the relationships between a sequence of values selectable as said aimed values and a sequence of indexes corresponding thereto, for converting said aimed value PRm to the corresponding index km and which processes said aimed value with a predetermined one-way function by the number of times corresponding to said aimed value to obtain aimed value information; and
- sending means for sending to said server device said aimed value information and an identifier identifying said participant device; and
- said server device comprising:
- a conversion table memory which has stored therein a conversion table which is the same as said conversion table;
- a bulletin board on which said server device writes said aimed value information an identifier received from said each participant device;
- updated initial value acquiring means which acquires an updated initial value obtained by processing said initial value with a one-way function repeatedly in correspondence with values of an index k which is a predetermined consecutive positive integers;
- a counter which updates said index k one by one; and
- control means which, upon each updating of said index k, compares said updated initial value with said aimed value information on said bulletin board to check whether they match, and determines m and k at the time of first detection of a match.
58. The system of claim 57, wherein said each participant device has initial value updating means for processing said initial value with a one0way function h to generate an updated initial value and for sending said updated initial value to said server device, and said updated initial value acquiring means of said server device receives said updated initial value from said each participant device.
59. The system of claim 57, wherein said updated initial value acquiring means of said server device processes said initial value with a one-way function h to generate said updated initial value.
60. The system of claim 58, wherein said aimed value transformer of said each participant device comprises:
- a one-way function h processor which processes an initial value IVm inherent to said participant device with a one-way function h by the number of times corresponding to said index km to obtain an output hkm(IVm); and
- a one-way function g processor which processes said output from said one-way function h processor with a one-way function g to obtain said aimed value information.
61. The system of claim 60, wherein said aimed value transformer of said each participant device includes verification information generating means for processing said initial value IVm with said one-way function h by K+1 times to generate Cm=hK+1(IVm) as verification information and for sending said verification information to said server device;
- wherein there is published on said bulletin board Cm=hK+1(IVm) received from said each participant device in advance, said server device further comprising a one-way function h processor which processes said response Dm with a one-way function h to generate h(Dm), and
- wherein said control means checks whether Cm=h(Dm) holds, and if not, rewrites said Cm with said Dm and updates said index k on said counter.
62. The system of claim 57, wherein said each participant device comprises:
- a random generator for generating a random number Rm;
- an operating device for operating said random number Rm and said aimed value PRm to obtain PRm(+)Rm, where (+) represents a predetermined arbitrary operation;
- one-way function h processing means for processing said PRm(+)Rm with a one-way function h to obtain h(PRm(+)Rm); and
- verification information generating means for processing said initial value IVm with said one-way function h K+1 times to generate Cm=hK+1(IVm); and wherein:
- said h(PRm(+)Rm) and said verification information are sent to said server device together with said aimed value information;
- in said server device:
- there are published on said bulletin board Cm=hK+1(IVm), said aimed value information γm=hk(IVm) and h(PRm(+)Rm) received from said each participant device, said PRm and said Rm being an aimed value and a random number of said each participant device m;
- said control means decides the maximum or minimum aimed value from said aimed values PRm and said random numbers Rm received from said participant devices, and determines the index kmx corresponding to said maximum or minimum aimed value and requests said each participant device to send (Dm)=hkmx(IVm) corresponding to said index kmx;
- said updated initial value acquiring means comprises a one-way function h processor for processing Dm with a one-way function h to generate hK+1−kmx(Dm), and a one-way function g processor for processing Dj with a one-way function g to generate g(Dj); and
- said control means makes a check to see if said hK+1−kmx(Dm) matches Cm on said bulletin board and if said g(Dj) matches said γm on said bulleting board.
63. The system of claim 57, wherein said aimed value transformer of said each participant device comprises:
- a conversion table memory which has stored therein a conversion table which defines indexes k=1, 2,..., K corresponding to K kinds of values selectable as aimed values;
- a select information generator which generates select information bm(k) indicating whether to select an aimed value corresponding to each of said indexes k=1, 2,..., K;
- a random generator which generates a random number Rm(k) inherent to said participant device m and said index k;
- an operating device which receives said index k, said random number Rm(k) and said select information bm(k) and performs an operation k(+)bm(k)(+)Rm(k);
- a one-way function h processor which processes said k(+)bm(k)(+)Rm(k) with a one-way function h to obtain h(k(+)bm(k)(+)Rm(k)); and
- a control device which computes said h(k(+)bm(k)(+)Rm(k)) for each of said indexes k and provides the k pieces information as said aimed value information;
- in said server device:
- there are published on said bulletin board h(k(+)bm(k)(+)Rm(k)) together with said aimed value information γm received from said each participant device;
- said server device further comprises an operator for operating k(+)b(+)Rm(k), and
- a one-way function h processor for processing the result of said operation with a one-way function h to generate h(k(+)b(+)Rm(k)), where b is a predetermined value which indicates that said select information bm(k) has selected the aimed value corresponding to said index k; and
- said control means makes a check for matching between said h(k(+)b(+)Rm(k)) and said h(k(+)bm(k)(+)Rm(k)) on said bulletin board.
64. The system of claim 57, wherein said aimed value transformer of said each participant device comprises:
- a conversion table memory which has stored therein a conversion table which defines indexes k=1, 2,..., K corresponding to K kinds of values selectable as aimed values, for converting said aimed value PRm to the corresponding index km;
- initial value updating means which, for each index k, processes an initial value with a one-way function h and adds the processed initial value with select information bm(k) for said index k to obtain an updated initial value and repeats this processing until k=K is reached, thereby generating Hm(K);
- a one-way function h processor for outputting said updated initial value Hm(k) from said initial value updating means as said aimed value information;
- select information generator which generates said select information bm(k) whether said aimed value corresponds to each index k from at least km to K;
- a concatenator which concatenates said Hm(k−1) from said one-way function h processor and said select information bm(k) to generate Hmk=h(Hm(k−1)∥bm(k));
- a buffer which temporarily holds the output from said concatenator and outputs said output for the next value of said index k;
- a storage part which, for each value of said index k, stores Hm(k) corresponding thereto; and
- a second one-way function h processor by which Hm(k), obtained by repeating processing until k=K, is processed with a one-way function h to generate h(Hm(k), said h(Hm(k) being output as said aimed value information; wherein said sending means is a means which responds to a request of said server device for said index k to read out Hm(k) from said storage part and send said Hm(k) to said server device;
- in said server device:
- there are published on said bulletin board, as said aimed value information, h(Hm(k)) obtained by processing, with a one-way function h, Hm(k) generated by said each participant device which, upon each processing of said initial value with a one-way function h, added the processed value with select information bm(k) indicating whether said value was an aimed value for each value of said index k and repeated this processing from at least the index km corresponding to said aimed value to the upper limit value K of said index k;
- said initial value updating means includes a one-way function h processor by which {Hm(k−1), bm} received from said each participant device in answer to an inquiry for said index k is processed with a one-y function h to generate Hm(k)=h(Hm(k−1)∥bm(k)); and
- said server device includes an updated initial value comparator for making a check to see if said Hm(k) matches Hm(k) in {Hm(k), bm(k+1)} previously received.
65. The system of claim 57, wherein said aimed value transformer of said each participant device comprises:
- a conversion table memory which has stored therein a conversion table which defines indexes k=1, 2,..., K corresponding to K kinds of values selectable as aimed values, for converting said aimed value PRm to the corresponding index km;
- a one-way function g processor which processes said initial value IVm with a one-way function g by a predetermined number of times xm to generate gxm(IVm);
- a one-way function h processor which processes said gxm(IVm) with a one-way function h K-km times to generate Hm(K)=hK-km(gxm(IVm)) as said aimed value information; and
- response generating means which responds to a request from said server device for k to decide whether k=km, and if true, generates Hm(k−1)=hk-km−1(gxm(IVm)) and if false, generates Hm(k−1)=gxm−1(IVm); and
- wherein said sending means sends said Hm(k−1) in response to said request from said server device for said k; and
- in said server device:
- there is published on said bulletin board Hm(K)=hK-km(gxm(IVm)) as said aimed value information received from said each participant device, which further comprises a one-way function h processor by which Hm(k−1) received from said each participant device as an answer to an inquiry for said k is processed with a one-way function h to generate h(Hm(k−1)), and a one-way function g processor for processing said answer Hm(k−1) with a one-way function g to generate g(Hm(k−1)); and
- said control means: makes a check to see if said h(Hm(k−1)) matches said aimed value information Hm(K) published on said bulletin board; if a match is detected, updates said aimed value information Hm(K) with said Hm(k−1) and decrements said index k on said counter by one; and if a mismatch is detected, makes a check to see if said g(Hm(k−1)) matches said aimed value information Hm(K); and if a match is detected, determines, based on k and m at that time, the maximum or minimum aimed value PRm and the participant device m having offered said value PRm.
66. The system of claim 57, wherein said aimed value transformer of said each participant device comprises;
- a conversion table memory which has stored therein a conversion table which defines the relationships between a sequence of values selectable as said aimed values and a sequence of indexes k of integral values respectively corresponding thereto, for converting said aimed value PRm to the corresponding index km;
- a fraction calculating part which, letting an arbitrary aimed value PR be represented by PR=F(k)+Q, where F(k) is a value in said conversion table corresponding to said k and Q is a fraction which is a positive integer which satisfies F(k+1)−F(k)>Q≧0, calculates said fraction Qm=PRm−F(km) based on F(km) obtained from said conversion table and said aimed value PRm; and
- a one-way function h processor which processes said initial value IVm with said one-way function h by the number of times corresponding to said km to generate said aimed value information; and
- wherein said sending means sends said fraction Qm to said server device together with said aimed value information; and
- in said server device:
- there is published on said bulletin board said fraction Qm received from said each participant device together with said aimed value information; and said server device comprises:
- a sequencer for deciding the sequence of said fractions Qm on said bulletin board; and
- select information comparator for checking whether said select information bm(k) is equal to a value b indicating the selection of the aimed value corresponding to said index k in said decided sequence of fractions Qm.
67. The system of claim 57, wherein said sequence of index values k and said sequence of values selectable as said aimed values on said conversion table are monotone increasing values in the same direction, and said server device determines the maximum aimed value.
68. The system of claim 57, wherein said sequence of index values k and said sequence of values selectable as said aimed values on said conversion table are monotone increasing values in opposite directions, and said server device determines the minimum aimed value.
Type: Application
Filed: Mar 29, 2011
Publication Date: Jul 21, 2011
Applicant: Nippon Telegraph and Telephone Corporation (Tokyo)
Inventors: Kunio Kobayashi (Yokohama), Hikaru Morita (Yokohama), Koutarou Suzuki (Yokosuka)
Application Number: 13/074,552