text:
Patent US20020128978 - Detecting compromised ballots - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA facility for discerning corruption of an electronic ballot is described. The facility sends from a first computer system to a second computer system an encrypted ballot that reflects a ballot choice selected by a voter. The facility then sends a confirmation from the second computer system to the first...http://www.google.com/patents/US20020128978?utm_source=gb-gplus-sharePatent US20020128978 - Detecting compromised ballotsAdvanced Patent SearchPublication numberUS20020128978 A1Publication typeApplicationApplication numberUS 10/038,752Publication dateSep 12, 2002Filing dateDec 31, 2001Priority dateMar 24, 2000Also published asUS7099471, US20070189519, US20080172333Publication number038752, 10038752, US 2002/0128978 A1, US 2002/128978 A1, US 20020128978 A1, US 20020128978A1, US 2002128978 A1, US 2002128978A1, US-A1-20020128978, US-A1-2002128978, US2002/0128978A1, US2002/128978A1, US20020128978 A1, US20020128978A1, US2002128978 A1, US2002128978A1InventorsC. NeffOriginal AssigneeNeff C. AndrewExport CitationBiBTeX, EndNote, RefManPatent Citations (26), Referenced by (17), Classifications (17), Legal Events (8) External Links: USPTO, USPTO Assignment, EspacenetDetecting compromised ballots
US 20020128978 A1Abstract
A facility for discerning corruption of an electronic ballot is described. The facility sends from a first computer system to a second computer system an encrypted ballot that reflects a ballot choice selected by a voter. The facility then sends a confirmation from the second computer system to the first computer system, which serves to convey the decrypted contents of the encrypted ballot as received at the second computer system, and which is generated without decrypting the encrypted ballot. In the first computer system, the facility uses the confirmation to determine whether the decrypted contents of the encrypted ballot as received at the second computer system match the ballot choice selected by the voter. Images(4) Claims(50)
I/We claim: 1. A method in a data processing system for discerning corruption of an electronic ballot, comprising: in a voter computer system: receiving a ballot choice selected by a voter from among a set of valid ballot choices; encoding the received ballot choice in a ballot; encrypting the ballot; constructing a validity proof proving that the encrypted ballot corresponds to a valid ballot choice; sending the encrypted ballot and the validity proof to a vote collection center computer system; in the vote collection center computer system: receiving the encrypted ballot and validity proof; verifying the validity proof; only if the validity proof is successfully verified: without decrypting the encrypted ballot, generating an encrypted vote confirmation of the encrypted ballot; sending the encrypted vote confirmation to the voter computer system; in the voter computer system: receiving the encrypted vote confirmation; decrypting the encrypted vote confirmation to obtain a vote confirmation; displaying the obtained vote confirmation; and if a confirmation dictionary in the user's possession does not translate the displayed vote confirmation to the ballot choice selected by the voter, determining that the ballot has been corrupted. 2. The method of claim 1 wherein the encoding comprises selecting a value having a predetermined correspondence to the selected ballot choice. 3. The method of claim 1 wherein the encrypting is performed using an election public key. 4. The method of claim 1 wherein encrypting the ballot comprises generating an ElGamal pair representing the ballot. 5. The method of claim 1, further comprising signing the encrypted ballot with a private key of the voter before sending the encrypted ballot to the vote collection center computer system. 6. The method of claim 1 wherein the vote collection center computer system sends the encrypted vote confirmation to the voter computer system via a first communication channel, further comprising, in the vote collection center computer system, sending the confirmation dictionary to the voter via a second communications channel distinct from the first communications channel. 7. The method of claim 6 wherein the confirmation dictionary is sent in response to a request from the voter. 8. The method of claim 7 wherein the request includes one or more identifiers associated with the voter. 9. The method of claim 6 wherein the confirmation dictionary is sent without being requested by the voter. 10. The method of claim 6 wherein individual confirmation dictionaries are sent to each of a plurality of voters including the voter. 11. The method of claim 1, further comprising applying a hash function to the decrypted vote confirmation before it is displayed, and wherein it is determined that the ballot has been corrupted if the confirmation dictionary in the user's possession does not translate the displayed hashed decrypted vote confirmation to the ballot choice selected by the voter. 12. A computer-readable medium whose content cause a data processing system to discern corruption of an electronic ballot by: in a voter computer system: receiving a ballot choice selected by a voter from among a set of valid ballot choices; encoding the received ballot choice in a ballot; encrypting the ballot; constructing a validity proof proving that the encrypted ballot corresponds to a valid ballot choice; sending the encrypted ballot and the validity proof to a vote collection center computer system; in the vote collection center computer system: receiving the encrypted ballot and validity proof; verifying the validity proof; only if the validity proof is successfully verified: without decrypting the encrypted ballot, generating an encrypted vote confirmation of the encrypted ballot; sending the encrypted vote confirmation to the voter computer system; in the voter computer system: receiving the encrypted vote confirmation; decrypting the encrypted vote confirmation; displaying the decrypted vote confirmation; and if a confirmation dictionary in the user's possession does not translate the displayed decrypted vote confirmation to the ballot choice selected by the voter, determining that the ballot has been corrupted. 13. A method in a data processing system for discerning corruption of an electronic ballot, comprising, in a voting node: using a secret maintained in the voting node to encrypt a ballot value selected by a voter; sending the encrypted ballot value to a vote collection point; receiving, in response to sending the encrypted ballot, an encrypted vote confirmation; using the secret maintained in the voting node to decrypt the encrypted vote confirmation; and displaying the decrypted vote confirmation, such that the displayed vote confirmation may be compared to an expected vote confirmation for the ballot value selected by the voter to determine whether the electronic ballot has been corrupted. 14. The method of claim 13, further comprising: before displaying the decrypted vote confirmation, using a hash function to transform the decrypted vote confirmation into a smaller hash output value. 15. The method of claim 13 wherein encrypting the ballot value comprises generating an ElGamal pair representing the ballot value. 16. The method of claim 15 wherein the ElGamal pair is generated by evaluating the expressions gα and hαm, where p is prime; gεZp, which has prime multiplicative order q, with the property that q is a multiplicity 1 divisor of p−1; hε(g); αεZq is chosen randomly at the voting node; and m is the ballot value. 17. The method of claim 15 wherein the ElGamal pair is generated by evaluating the expressions αg and αh+m, where g and h are both elements of an elliptic curve group, ε, of prime order q and αεZq is chosen randomly at the voting node, and m is the ballot value. 18. The method of claim 13 wherein applying the secret maintained in the voting node to determine whether the encrypted vote confirmation reflects receipt of the ballot value selected by the voter at the vote collection point comprises: determining the ballot value corresponding to the encrypted ballot value received at the vote collection point by evaluating the expression Wi/Ui α i , where αi is the secret maintained in the voting node, and Wi and Ui together comprise the encrypted vote confirmation; and comparing the determined ballot value to the ballot value selected by the voter. 19. The method of claim 13, further comprising sending to the vote collection point a validity proof proving that the encrypted ballot value corresponds to a valid ballot value. 20. The method of claim 19 wherein the validity proof is a non-interactive proof of validity. 21. A computer-readable medium whose contents cause a voting node to discern corruption of an electronic ballot by: using a secret maintained in the voting node to encrypt a ballot value selected by a voter; sending the encrypted ballot value to a vote collection point; receiving, in response to sending the encrypted ballot, an encrypted vote confirmation; and applying the secret maintained in the voting node to the encrypted vote confirmation to determine whether the secret value confirmation reflects receipt of the ballot value selected by the voter at the vote collection point. 22. The computer-readable medium of claim 21 wherein the applying comprises: using the secret maintained in the voting node to decrypt the encrypted vote confirmation; and displaying the decrypted vote confirmation, such that the displayed vote confirmation may be compared to an expected vote confirmation for the ballot value selected by the voter to determine whether the electronic ballot has been corrupted. 23. The computer-readable medium of claim 21 wherein the contents of the computer-readable medium further cause the voting node to send to the vote collection point a validity proof proving that the encrypted ballot value corresponds to a valid ballot value. 24. One or more computer memories collectively containing a voter security data structure, the data structure containing one or more secrets usable both (a) to encrypt an encoded ballot for transmission to a ballot collection point, and (b) to decrypt an encrypted ballot confirmation received from the ballot collection point, which indicates the contents of the ballot as received at the ballot collection point. 25. One or more computer memories collectively containing a ballot data structure, the ballot data structure comprising: an encrypted ballot choice formed by encrypting one of a plurality of valid ballot choices selected by a voter in a voter computer system; a proof of validity that demonstrates that the encrypted ballot choice constitutes an encryption of one of the plurality of valid ballot choices without indicating which of the plurality of valid ballot choices the encrypted ballot choice constitutes an encryption of; and an encrypted ballot confirmation generated in response to the receipt in a ballot collection center computer system of the encrypted ballot choice and proof of validity. 26. The computer memories of claim 25 wherein the encrypted ballot choice is an ElGamal pair. 27. The computer memories of claim 25 wherein the memories are directly accessible by the voter computer system. 28. The computer memories of claim 25 wherein the memories are directly accessible by the ballot collection center computer system 29. A method in a data processing system for discerning corruption of an electronic ballot, comprising, in a ballot receiving node: receiving an encrypted ballot value from a ballot sending node, the encrypted ballot value being encrypted from a ballot value based on a voter selection using a secret not available in the ballot receiving node; generating from the encrypted ballot value an encrypted secret value confirmation that indicates to those in possession of the secret used to encrypt the encrypted ballot value the ballot value to which the received encrypted ballot value corresponds; and sending the encrypted secret value confirmation to the ballot sending node, such that the encrypted secret value confirmation may be used in the ballot sending node to determine if the encrypted ballot value received at the ballot receiving node corresponds to the ballot selection made by the voter. 30. The method of claim 29 wherein the secret value confirmation is generated without decrypting the encrypted ballot value. 31. The method of claim 29 wherein the secret value confirmation is sent to the ballot sending node via a first communication channel, further comprising sending to the ballot sending node a confirmation dictionary via a second communication channel distinct from the first communication channel, the confirmation dictionary translating from various possible secret value confirmations to the ballot values to which they correspond. 32. The method of claim 29 wherein the encrypted secret value confirmation is encrypted in such a manner that, in the ballot sending node, given the encrypted secret value confirmation corresponding to a selection other than the voter selection, it is intractable to generate a decrypted secret value confirmation corresponding to the voter selection. 33. A ballot receiving node for discerning corruption of an electronic ballot, comprising: a receiver that receives an encrypted ballot value from a ballot sending node, the encrypted ballot value being encrypted from a ballot value derived from a selection made by a voter using a secret not available in the ballot receiving node; a confirmation generation subsystem that generates from the encrypted ballot value an encrypted secret value confirmation that indicates to those in possession of the secret used to encrypt the encrypted ballot value the ballot value to which the received encrypted ballot value corresponds; and a transmitter that sends the encrypted secret value confirmation to the ballot sending node. 34. One or more generated data signals collectively conveying a ballot response data structure containing an encrypted ballot confirmation generated in response to the receipt at a ballot collection point of a ballot cast by a voter, the encrypted ballot confirmation, when decrypted on behalf of the voter, indicating a voting selection made by the voter in the cast ballot as received at the ballot collection point. 35. The data signals of claim 34 wherein the ballot received at the ballot collection point is encrypted, and wherein the encrypted ballot confirmation is generated without decrypting the encrypted ballot. 36. The data signals of claim 34 wherein the encrypted ballot confirmation, when decrypted, yields a value that, if the ballot received at the ballot collection point is uncorrupted, matches a value listed in a confirmation dictionary for the voting selection made by the voter. 37. A method in a data processing system for discerning corruption of an electronic ballot, comprising: sending an encrypted ballot from a first computer system to a second computer system, the encrypted ballot reflecting a ballot choice selected by a voter; sending a confirmation from the second computer system to the first computer system, the confirmation serving to convey the decrypted contents of the encrypted ballot as received at the second computer system, the confirmation being generated without decrypting the encrypted ballot; and in the first computer system, displaying the confirmation, so that the voter can determine whether the decrypted contents of the encrypted ballot as received at the second computer system match the ballot choice selected by the voter. 38. The method of claim 37 wherein the confirmation sent from the second computer system to the first computer system is encrypted in such a manner that its decryption by the second computer system is infeasible. 39. The method of claim 37 wherein the confirmation sent from the second computer system to the first computer system is encrypted in such a manner that its decryption by the second computer system is impossible. 40. The method of claim 37, further comprising sending from the first computer system to the second computer system a validity proof proving that the encrypted ballot sent from the first computer system to the second computer system reflects a valid ballot choice without identifying the reflected ballot choice. 41. The method of claim 40 wherein the confirmation is sent from the second computer system to the first computer system only if the validity proof sent from the first computer system to the second computer is verified to prove that the encrypted ballot sent from the first computer system to the second computer system reflects a valid ballot choice. 42. A computer-readable medium whose contents cause a data processing system to discern corruption of an electronic ballot by: sending an encrypted ballot from a first computer system to a second computer system, the encrypted ballot reflecting a ballot choice selected by a voter; sending a confirmation from the second computer system to the first computer system, the confirmation serving to convey the decrypted contents of the encrypted ballot as received at the second computer system, the confirmation being generated without decrypting the encrypted ballot; and in the first computer system, displaying the confirmation, so that the voter can determine whether the decrypted contents of the encrypted ballot as received at the second computer system match the ballot choice selected by the voter. 43. The computer-readable medium of claim 42 wherein the contents of the computer-readable medium further cause the data processing system to send from the first computer system to the second computer system a validity proof proving that the encrypted ballot sent from the first computer system to the second computer system reflects a valid ballot choice without identifying the reflected ballot choice. 44. The computer-readable medium of claim 43 wherein the confirmation is sent from the second computer system to the first computer system only if the validity proof sent from the first computer system to the second computer is verified to prove that the encrypted ballot sent from the first computer system to the second computer system reflects a valid ballot choice. 45. A method in a voting computing system for detecting the compromise of an electronic ballot sent to a ballot collection point, comprising: receiving from the ballot collection point an encrypted confirmation of the contents of an encrypted ballot received at the ballot collection point; and using a secret maintained on the voting computer system to decrypt and display the confirmation to the voter, such that the voter may compare the displayed confirmation to a confirmation expected by the voter based on a ballot choice selected by the voter to determine whether the electronic ballot was compromised. 46. A computer-readable medium whose contents cause a voting computing system to detect the compromise of an electronic ballot sent to a ballot collection point by: receiving from the ballot collection point an encrypted confirmation of the contents of an encrypted ballot received at the ballot collection point; and using a secret maintained on the voting computer system to decrypt and display the confirmation to the voter, such that the voter may compare the displayed confirmation to a confirmation expected by the voter based on a ballot choice selected by the voter to determine whether the electronic ballot was compromised. 47. A method in a ballot collection computer system for detecting the compromise of an electronic ballot, comprising: receiving the electronic ballot, the electronic ballot containing an encrypted ballot choice; determining that the received encrypted ballot choice is not accompanied by a valid validity proof that proves that the encrypted ballot choice constitutes the encryption of one of a plurality of permissible ballot choices; and in response to so determining, determining that the generated first ballot has been compromised. 48. The method of claim 47 wherein no validity proof is received for the encrypted ballot choice. 49. The method of claim 47 wherein a validity proof is received along with the encrypted ballot choice, and the combination of validity proof and encrypted ballot fail a verification operation performed by the vote collection computer system, where the verification operation is constructed explicitly to determine whether the encrypted ballot is an encryption of at least one of the valid ballot responses. 50. A ballot collection computer system for detecting the compromise of an electronic ballot, comprising: means for receiving the electronic ballot, the electronic ballot containing an encrypted ballot choice; means for determining that the received encrypted ballot choice is not accompanied by a valid validity proof that proves that the encrypted ballot choice constitutes the encryption of one of a plurality of permissible ballot choices; and means for, in response to so determining, determining that the generated first ballot has been compromised. Description
RELATED APPLICATIONS [0001] This application claims the benefit of U.S. Provisional Application No. 60/270,182 filed Feb. 20, 2001, and is a continuation-in-part of each of U.S. patent application Ser. No. 09/534,836, filed Mar. 24, 2000; U.S. patent application Ser. No. 09/535,927, filed Mar. 24, 2000; and U.S. patent application Ser. No. 09/816,869 filed Mar. 24, 2001. Each of these four applications is incorporated by reference in its entirety.
TECHNICAL FIELD [0002] The present invention is directed to the fields of election automation and cryptographic techniques therefor. BACKGROUND [0003] The problems of inaccuracy and inefficiency have long attended conventional, manually-conducted elections. While it has been widely suggested that computers could be used to make elections more accurate and efficient, computers bring with them their own pitfalls. Since electronic data is so easily altered, many electronic voting systems are prone to several types of failures that are far less likely to occur with conventional voting systems. [0004] One class of such failures relates to the uncertain integrity of the voter's computer, or other computing device. In today's networked computing environment, it is extremely difficult to keep any machine safe from malicious software. Such software is often able to remain hidden on a computer for long periods of time before actually performing a malicious action. In the meantime, it may replicate itself to other computers on the network, or computers that have some minimal interaction with the network. It may even be transferred to computers that are not networked by way of permanent media carried by users. [0005] In the context of electronic secret ballot elections, this kind of malicious software is especially dangerous, since even when its malicious action is triggered, it may go undetected, and hence left to disrupt more elections in the future. Controlled logic and accuracy tests (“L&A tests”) monitor the processing of test ballots to determine whether a voting system is operating properly, and may be used in an attempt to detect malicious software present in a voter's computer. L&A tests are extremely difficult to conduct effectively, however, since it is possible that the malicious software may be able to differentiate between “real” and “test” ballots, and leave all “test” ballots unaffected. Since the requirement for ballot secrecy makes it impossible to inspect “real” ballots for compromise, even exhaustive L&A testing may prove futile. The problem of combating this threat is known as the “Client Trust Problem.”
[0006] Most existing methods for solving the Client Trust Problem have focused on methods to secure the voting platform, and thus provide certainty that the voter's computer is “clean,” or “uninfected.” Unfortunately, the expertise and ongoing diligent labor that is required to achieve an acceptable level of such certainty typically forces electronic voting systems into the controlled environment of the poll site, where the client computer systems can be maintained and monitored by computer and network experts. These poll site systems can still offer some advantages by way of ease of configuration, ease of use, efficiency of tabulation, and cost. However, this approach fails to deliver on the great potential for distributed communication that has been exploited in the world of e-commerce. [0007] Accordingly, a solution to the Client Trust Problem that does not require the voting platform to be secured against malicious software, which enables practically any computer system anywhere to be used as the voting platform, would have significant utility. BRIEF DESCRIPTION OF DRAWINGS [0008] [0008]FIG. 1 is a high-level block diagram showing a typical environment in which the facility operates. [0009] [0009]FIG. 2 is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes. [0010] [0010]FIG. 3 is a flow diagram showing steps typically performed by the facility in order to detect a compromised ballot.
DETAILED DESCRIPTION [0011] A software facility for detecting ballots compromised by malicious programs (“the facility”) is provided. The approach employed by the facility is unique in that it does not make any attempt to eliminate, or prevent the existence of malicious software on the voting computer. Instead, it offers a cryptographically secure method for the voter to verify the contents of the voter's ballot as it is received at the vote collection center, without revealing information about the contents (ballot choices) to the collection center itself. That is, the vote collection center can confirm to the voter exactly what choices were received, without knowing what those choices are. Thus, the voter can detect any differences between the voter's intended choices, and the actual choices received at the vote collection center (as represented in the transmitted voted ballot digital data). Further, each election can choose from a flexible set of policy decisions allowing a voter to re-cast the voter's ballot in the case that the received choices differ from the intended choices. [0012] A. The Simplest Secret Value Confirmation Setting [0013] In order to understand the key cryptographic protocol that makes secret value confirmation possible, we first describe a simplified embodiment of the facility. In accordance with this embodiment, the ballot consists of a single yes or no question. The challenge then is to have the voter secretly communicate the voter's choice—yes or no—to the vote collection center, and then further confirm that what was actually received at the vote collection center was exactly what the voter intended. In other words, if a “yes” vote was somehow changed to a “no” vote, or a “no” vote was somehow changed to a “yes” vote, the facility informs the voter of this fact. [0014] An electronic vote representation is used to represent the contents of the voter's ballot. Suitable electronic vote representations include those described in the patent applications identified in the related application section. [0015] 1. Ballot Construction: A set of cryptographic “election parameters” are agreed upon by election officials in advance of the election start, and made publicly known by wide publication or other such means. These parameters include encryption group, generator, ElGamal public key, and decision encoding scheme. Most commonly these consist of: [0016] (a) The encryption group: A large prime, p. [0017] (b) The generator: An integer (or, technically, an integer residue class) gεZp, which has prime multiplicative order q, with the property that q is a multiplicity 1 divisor of p−1. [0018] (c) The ElGamal public key: Another integer residue class, hε(g). That is, h=gs for some integer value of s. [0019] (d) The decision encoding scheme: A partition of (g) into “yes”, “no” and “invalid” group elements. That is, (g)=Sy∪Sn∪Si, where the Sy,Sn,Si are pairwise disjoint subsets of (g)—the “yes” messages, “no” messages, and “invalid” messages respectively. [0020] However, other groups and elements can be used. In particular, the facility may be implemented using Elliptic Curves rather than Zp groups. [0021] 2. Vote Submission: Each voter encrypts the voter's decision, “yes” or “no”, as an ElGamal pair, (Xi,Yi)=(gα,hα m), where αεZq is chosen randomly by the voter, mεSy if the voter wishes to choose “yes” and mεSn if the voter wishes to choose “no”. Any other message (i.e., mεSi) is considered invalid. This encrypted value is what is digitally signed by the voter, and then transmitted to the vote collection center. For now, we will consider a simple decision encoding scheme in which Sy={Gy}, Sn={Gn}, and Si=(g)−{Gy,Gn}. However, with obvious small modifications, the discussion that follows applies equally well to more general settings. [0022] If the voter was computing these values himself—say with pencil and paper—this protocol would essentially suffice to implement a secret-ballot, universally verifiable election system. (Depending on the tabulation method to be used, some additional information, such as a voter proof of validity may be necessary.) However, since the voter only makes choices through a user interface, it is in many cases unrealistic to expect him/her to check the actual value of the bits sent and compare them to the voter's intent. In short, malicious software can ignore voter intent and submit a “no” vote when the voter specified “yes”, or submit a “yes” vote when the voter specified “no”. [0023] B. Creating a Secret Value Confirmation [0024] We differentiate two types of vote corruption, directed and undirected. Directed vote corruption is the act of changing a “yes” vote to a “no” vote, or a “no” vote to a “yes” vote. Undirected vote corruption is the act of changing from a “valid” vote (“yes” or “no”) to an “invalid” vote. The following steps will detect directed vote corruption in the simple ballot setting of the previous section. They rely on the intractability of the Diffie-Hellman Problem described in A. M. Odlyzko, Discrete logarithms in finite fields and their cryptographic significance, Advances in Cryptology—EURO-CRYPT '84, Lecture Notes in Computer Science, Springer-Verlag, 1984. [0025] 1. The computer operated by voter Vi submits the encrypted decision as before, optionally signing the encrypted decision using a private key of this voter. [0026] 2. The vote collection center generates two values KiεZp and βiεZq randomly and independently. These values are generated on a per voter basis, and kept secret from all but the collection center. They may be generated in advance of the election. [0027] 3. The vote collection center computes the values W i =K i Y i =K i h α i β i m β i (1) U i =h β i (2) [0028] and returns them to the voter's computer. Wi and Ui are together known as the “encrypted vote confirmation.”
[0029] 4. The voter's computer, knowing the secret αi can compute Wi/Ui α i =Kimβ i . It then displays this value to the voter. In some embodiments, the facility displays a hash of this value to the voter, rather than the value itself. When displaying the hash, the length of the data is generally shorter, thus enabling the voter to read and compare fewer characters. [0030] The vote collection center does not know what value is, or should be, displayed, since the vote data it received was strongly encrypted. However, it does know: [0031] (a) If the voter voted “yes”, the value Kimy β i should be displayed, [0032] (b) If the voter voted “no”, the value Kimn β i should be displayed, [0033] (c) If the voter voted any invalid value, a value other than these two should be displayed. [0034] 5. The voter can now check the validity of the vote received by contacting the vote collection center though some secure communication channel, such as telephone, fax, or surface mail. By sending a request containing [0035] (a) The voter's voter id. [0036] (b) Optionally, a short PIN (4-5 digits typically suffice) to prevent the malicious software from masquerading remotely as the voter. [0037] the voter can obtain from the vote collection center a “confirmation dictionary” indicating the two possible values the voter should have seen displayed depending on how the voter voted, such as “If you voted ‘yes’, your confirmation string should be ‘xyz . . . ’ and if you voted ‘no’, your confirmation string should be ‘abc . . . .’” In some embodiments, the confirmation dictionary is supplied to the voter in advance of the election. For example, the unique confirmation dictionary for each voter could be sent through the postal mail as part of a “voter information packet.” (Note that absentee ballots are delivered to voters through the postal mail.) [0038] 6. The voter verifies that the confirmation string the voter saw displayed by the voter's computer is consistent with both the voter's intended choice and this confirmation dictionary. [0039] 7. Any inconsistency indicates that some sort of unexpected behavior has occurred on the voter's computer, or in transmission, and corrective action should be taken. In many electronic voting schemes, an individual voter's ballot can be removed from the ballot box and resubmitted. The exact procedure for voter corrective action is a matter of policy, and may involve some form of voter protest, followed by a resubmission of the ballot in a controlled, secure environment. Alternatively, the voter may be allowed a few attempts from a remote computer before being forced to go to a controlled environment to resubmit. [0040] The essential cryptographic foundation of this protocol is that the voter's computer, or malicious software running on it, cannot (for well chosen—i.e., randomly chosen—my and mn) compute the complementary confirmation string, i.e., compute Kimn β i from Kimy β i (or visa versa). This is because doing so requires computing (mn/my)β i (or visa versa), and the only information available to aid in this task is hβ i . In short, the malicious software would have to solve an instance of the Diffie-Hellman Problem. [0041] C. An Attack on the Previous Protocol [0042] As noted, malicious software cannot conduct directed vote corruption without the corruption being detected and later corrected. However, the basic version of the protocol outlined above in some cases may allow undirected vote corruption to go undetected as in the following scenario. [0043] 1. Instead of submitting (Xi,Yi) as the voter intends, the voter's computer can submit (Xi,Yihγ) for any chosen γεZq. This will have the effect of transforming a valid vote into an invalid one. When the computer receives the encrypted vote confirmation, it can follow the protocol to compute Kihγβ i mβ i . [0044] 2. Were it to display this value, the voter would notice a problem, since it would not match the confirmation dictionary. However, since the malicious software generated, and knows γi and also knows hβ i from the encrypted confirmation it received, it can compute (hβ i )γ=hγβ i . By division, it can then compute right value Kimβ i —i.e., the one to match the voter's confirmation dictionary—and display it, thereby fooling the voter. Of course, invalid votes will be detected at tabulation time, but this will usually be too late for corrective action to be taken. Embodiments of the facility guard against such an undirected attack by employing a voter validity proof as discussed in the next section. [0045] D. Counter Attack—Voter Validity Proof [0046] The validity proof constructed by the voter proves to the vote collection center that, (Xi,Yi)i the encrypted decision (ballot) received from voter Vi, is either an encryption of my or an encryption of mn without revealing any information about which of these values it is. Methods for constructing validity proofs of this type can be found in U.S. patent application Ser. No. 09/535,927, as well as R. Cramer, I. Damgard, B. Schoenmakers, Proofs of partial knowledge and simplified design of witness hiding protocols, Advances in Cryptology, CRYPTO '94, Lecture Notes in Computer Science, pp. 174-187, Springer-Verlag, Berlin, 1994, which is hereby incorporated by reference in its entirety. Thus, the validity proof proves that the received encrypted ballot is valid, which is exactly what is needed to prevent the undetected, undirected vote corruption of the previous section. The malicious software may try an undirected vote corruption as before, but it will not be able to supply the required validity proof, and thus will be detected even before the encrypted vote confirmation is returned to the voter. As already noted, the secret value confirmation protocol itself detects directed vote corruption. [0047] The validity proofs can be extended to more general sets of response options than simple “yes/no”. As a result, the facility is able to prevent the attack of section C in the more general case as well. The resulting protocol for the general case is as follows. [0048] 1. Ballot Construction: The encryption group, generator, and ElGamal public key are all created as usual. However, the decision encoding scheme needs to be chosen carefully. For simplicity, let us assume that there is only one question on the ballot. (If there are multiple questions, the facility performs the steps that follow independently for each of the individual questions.) Let a1, . . . , an be the set of allowable answers. For example, these could be a1=‘George Bush’, a2=‘Al Gore’, a3=‘Ralph Nader’, and a4=‘I abstain’. Note that in this example, n=4. [0049] The jurisdiction, or other entity responsible for creating the ballot, must select n elements from Zq,μ1, . . . , μn, independently and at random. These are assigned, in sequence, as the corresponding response values to each allowable answer, resulting the specific decision encoding scheme. In the example, this means that the digital blank ballot publicly specifies that [0050] a vote for ‘George Bush’ should be submitted as (gα,hα μ1), i.e., an encryption of μ1, [0051] a vote for ‘Al Gore’ should be submitted as (gα,hα μ2), i.e., an encryption of μ2, [0052] a vote for ‘Ralph Nader’ should be submitted as (gα,hα μ3), i.e., an encryption of μ3, [0053] an abstention should be submitted as (gα,hα μ4), i.e., an encryption of μ4. [0054] 2. Vote Submission: [0055] (a) The computer operated by voter Vi submits an encrypted ballot on behalf of voter Vi as before, denoted as (Xi,Yi)=(gα i ,hα i μ) for some value με(g) and αiεZq. [0056] (b) The computer operated by voter Vi also constructs a validity proof, Pi, as indicated above, in order to prove that με{μ1, . . . , μn} without revealing any more information about its specific value. [0057] (c) The computer operated by voter V then submits both Pi and the encrypted vote, (Xi,Yi) to the vote collection center. [0058] (d) Before accepting the encrypted ballot, the vote collection center first checks the proof, Pi. If verification of Pi fails, corruption has already been detected, and the vote collection center can either issue no confirmation string, or issue a random one. [0059] (e) Assuming then that verification of Pi succeeds, the vote collection center computes the values, Wi and Ui as in section B, steps 2 and 3, and returns these to the computer operated by voter Vi. [0060] (f) As in section B, the computer operated by voter Vi can compute C=Wi/Ui α i , and display this string (or a hash of it) to the voter. [0061] (g) As in section B, step 5, the voter can now compare the displayed string against the voter's confirmation dictionary (obtained by one of the various modes described there). In general, the confirmation dictionary for voter Vi would consist of the following table laid out in any reasonable format: a1 h(Ci1) a2 h(Ci2) . . . . . . an h(Cin) [0062] where h is the election's public (i.e., published) hash function, and Cij=Kiμj β i , [0063] (h) Since the μi were chosen randomly and independently, any software (in particular, malicious software) can only display the confirmation string corresponding to the μ that was submitted or, obviously, an invalid confirmation string—it can not compute any other valid confirmation string without solving the Diffie-Hellman problem. Thus, if a μ different from the one intended by the voter is submitted, the confirmation string displayed will not match the correct confirmation string in the dictionary, and the voter will be able to detect corruption. In the case of detected corruption, corrective action can be taken as described above. [0064] In order to more completely describe the facility, an example illustrating the operation of some of its embodiments is described hereafter. [0065] The following is a detailed example of a Secret Value Confirmation exchange. In order to maximize the clarity of the example, several of the basic parameters used—for example, the number of questions on the ballot, and the size of the cryptographic parameters—are much smaller than those that would be typically used in practice. Also, while aspects of the example exchange are discussed below in a particular order, those skilled in the art will recognize that they may be performed in a variety of other orders. [0066] Some electronic election protocols include additional features, such as: [0067] voter and authority certificate (public key) information for authentication and audit [0068] ballot page style parameters [0069] data encoding standards [0070] tabulation protocol and parameters [0071] As these features are independent of the Secret Value Confirmation implementation, a detailed description of them is not included in this example. [0072] This example assumes an election protocol that encodes voter responses (answers) as a single ElGamal pair. However, from the description found here, it is a trivial matter to also construct a Secret Value Confirmation exchange for other election protocols using ElGamal encryption for the voted ballot. For example, some embodiments of the facility incorporate the homomorphic election protocol described in U.S. patent application Ser. No. 09/535,927. In that protocol, a voter response is represented by multiple ElGamal pairs. The confirmation dictionary used in this example is easily modified to either display a concatenation of the respective confirmation strings, or to display a hash of the sequence of them. [0073] The jurisdiction must first agree on the election initialization data. This at least includes: the basic cryptographic numerical parameters, a ballot (i.e. a set of questions and allowable answers, etc.), and a decision encoding scheme. (It may also include additional data relevant to the particular election protocol being used.) [0074] Cryptographic Parameters [0075] Group Arithmetic: Integer multiplicative modular arithmetic [0076] Prime Modulus: p=47 [0077] Subgroup Modulus: q=23 [0078] Generator: g=2. [0079] Public Key: h=gs where s is secret. For sake of this example, let us say that h=g12=7. [0080] Ballot [0081] One Question [0082] Question 1 Text: Which colors should we make our flag? (Select at most 1.) [0083] Number of answers/choices: 4 [0084] Answer 1 Text: Blue [0085] Answer 2 Text: Green [0086] Answer 3 Text: Red [0087] Answer 4 Text: I abstain [0088] Decision Encoding Scheme Choice Response Value Blue 9 (μ1) Green 21 (μ2) Red 36 (μ3) I abstain 17 (μ4) [0089] At some point, before issuing a confirmation and before distributing the voter confirmation dictionaries, the ballot collection center (or agency) generates random, independent βi and Ki for each voter, Vi. If the confirmation dictionary is to be sent after vote reception, these parameters can be generated, on a voter by voter basis, immediately after each voted ballot is accepted. Alternatively, they can be generated in advance of the election. In this example, the ballot collection agency has access to these parameters both immediately after accepting the voted ballot, and immediately before sending the respective voter's confirmation dictionary. [0090] Sometime during the official polling time, each voter, Vi obtains, and authenticates, the election initialization data, described above. It can be obtained by submitting a “ballot request” to some ballot server. Alternatively, the jurisdiction may have some convenient means to “publish” the election initialization data—that is, make it conveniently available to all voters. [0091] From the election initialization data, V is able to determine that the expected response is the standard encoding of a particular sequence of two distinct data elements. These are (in their precise order): [0092] Choice Encryption A pair of integers (X, Y) with 0≧X, Y<47 indicating (in encrypted form) the voter's choice, or answer. For the answer to be valid, it must be of the form, (X, Y)=(2α, 7αμ), where 0≦α<23 and με{9, 21, 36,17}. [0093] Proof of Validity A proof of validity showing that (X, Y) is of the form described in the choice encryption step above. (In this example, we shall see that this proof consists of 15 modular integers arranged in specific sequence.) [0094] For the sake of this example, let us assume that V wishes to cast a vote for “Green”. [0095] 1. V generates αεZ23 randomly. In this example, α=5. Since the encoding of “Green” is 21, V's choice encryption is computed as (X, Y)=(2α, 7α�21)=(32, 24) (3) [0096] This pair is what should be sent to the vote collection center. The potential threat is that V's computer may try to alter these values. [0097] Voter V (or more precisely, V's computer) must prove that one of the following conditions hold [0098] 1. (X, Y)=(2α, 7α�9) i.e. choice (vote cast) is “Blue”
[0099] 2. (X, Y)=(2α, 7α�21) i.e. choice (vote cast) is “Green”
[0100] 3. (X, Y)=(2α, 7α�36) i.e. choice (vote cast) is “Red”
[0101] 4. (X, Y)=(2α, 7α�17) i.e. choice (vote cast) is “I abstain”
[0102] for some unspecified value of α without revealing which of them actually does hold. [0103] There are a variety of standard methods that can be used to accomplish this. See, for example, R. Cramer, I. Damgard, B. Schoenmakers, Proofs of partial knowledge and simplified design of witness hiding protocols, Advances in Cryptology—CRYPTO '94, Lecture Notes in Computer Science, pp. 174-187, Springer-Verlag, Berlin, 1994. The Secret Value Confirmation technique used by the facility works equally well with any method that satisfies the abstract criteria of the previous paragraph. While details of one such validity proof method are provided below, embodiments of the facility may use validity proofs of types other than this one. [0104] Validity Proof Construction: [0105] (In what follows, each action or computation which V is required to perform is actually carried out by V's computer.) [0106] 1. V sets α2=α=5. [0107] 2. V generates ω2 εR Z23, r1, r3, r4 εR Z23, s1, s3, s4 εR Z23 all randomly and independently. For this example we take ω2=4 r1=16, r3=17, r4=21 s1=12, s3=4, s4=15 (4) [0108] 3. V computes corresponding values a1=gr 1 X−s 1 =216�3211=4 a2=gr 2 =24=16 a1=gr 3 X−s 3 =217�329=6 a4=gr 4 X−s 4 =221�328=9 (5) b1=hr 1 (Y/9)−s 1 =716�(24/9)11=18 b2=hω 2 =74=4 b3=hr 3 (Y/36)−s 3 =717�(24/36)19=1 b4hr 4 (Y/17)−s 5 =721�(24/17)8=7 (6) [0109] 4. V uses a publicly specified hash function H to compute cεZ23 as c=H({X, Y, a i , b i})1≦i≦4 (7) [0110] Since many choices of the hash function are possible, for this example we can just pick a random value, say c=19. (8) [0111] (In practice, SHA1, or MD5, or other such standard secure hash function may be used to compute H.) [0112] 5. V computes the interpolating polynomial P(x) of degree 4−1=3. The defining properties of P are P(0)=c=19 P(1)=s 1=12 P(3)=s 3=4 P(4)=s 5=15 (9) [0113] P(x)=Σj=0 3zjxj is computed using standard polynomial interpolation theory, to yield: P(x)=x 3+20x 2+18x+19 (10) [0114] or z0=19 z1=18 z0=20 z3=1 (11) [0115] 6. V computes the values s 2 =P(2)=5 r 2=ω2+α2 s 2=4+5�5=6 (12) [0116] 7. V's validity proof consists of the 12 numbers {ak, bk, rk}k=1 6 (13) [0117] and the three numbers {zk}k=1 3 (14) [0118] in precise sequence. (z0 need not be submitted since it is computable from the other data elements submitted using the public hash function H.) [0119] Having computed the required choice encryption, (X, Y), and the corresponding proof of validity, V encodes these elements, in sequence, as defined by the standard encoding format. The resulting sequences form V's voted ballot. (In order to make the ballot unalterable, and indisputable, V may also digitally sign this voted ballot with his private signing key. The resulting combination of V's voted ballot, and his digital signature (more precisely, the standard encoding of these two elements) forms his signed voted ballot.) Finally, each voter transmits his (optionally signed) voted ballot back to the data center collecting the votes. [0120] As described above, the voter specific random parameters for V (β and K) are available at the vote collection center. In this example, these are β=18 K=37 (15) [0121] When the voter's (optionally signed) voted ballot is received at the vote collection center, the following steps are executed [0122] 1. The digital signature is checked to determine the authenticity of the ballot, as well as the eligibility of the voter. [0123] 2. If the signature in step 1 verifies correctly, the vote collection center then verifies the proof of validity. For the particular type of validity proof we have chosen to use in this example, this consists of [0124] (a) The public hash function H is used to compute the value of P(0)=z0 z 0 =P(0)=H({X, Y, a i , b i}i=1 4)=19 (16) [0125] (Recall that the remaining coefficients of P, z1, z2, z3, are part of V's (optionally signed) voted ballot submission.) [0126] (b) For each 1≦j≦4 both sides of the equations a
−P(j) b j =h r i (y j/μj)−P(j) (17) [0127] are evaluated. (Here, as described above, the μj are taken from the Decision Encoding Scheme.) If equality fails in any of these, verification fails. This ballot is not accepted, and some arbitrary rejection string (indication) is sent back to V. [0128] 3. Assuming that the previous steps have passed successfully, the reply string (W, U) is computed as W=KY β=37�2418=9 U=h β=718=42 (18) [0129] This sequenced pair is encoded as specified by the public encoding format, and returned to V. [0130] 4. V's computer calculates C=W/U α=9/(42)5=18 (19) [0131] and displays this string to V. (Alternatively, the protocol may specify that a public hash function is computed on C and the resulting hash value displayed. In this example, C, itself is displayed.) If V's computer attempted to submit a choice other than “Green”, the value of C computed above would be different. Moreover, the correct value of C can not be computed from an incorrect one without solving the Diffie-Hellman problem. (For the small values of p and q we have used here, this is possible, however, for “real” cryptographic parameters, V's computer would unable to do this.) Thus, if V's computer has submitted an encrypted ballot which does not correspond to V's choice, there are only two things it can do at the point it is expected to display a confirmation. It can display something, or it can display nothing. In the case that nothing is displayed, V may take this as indication that the ballot was corrupted. In the case that something is displayed, what is displayed will almost certainly be wrong, and again, V may take this as indication that the ballot was corrupted. [0132] 5. V now compares the value of C displayed to the value found in V's confirmation dictionary corresponding to the choice, “Green” (V's intended choice). At this point, V may have already received his confirmation dictionary in advance, or may obtain a copy through any independent channel. An example of such a channel would be to use a fax machine. If the displayed value does not match the corresponding confirmation string in the confirmation dictionary, corruption is detected, and the ballot can be “recast” in accordance with election specific policy. [0133] Each voter confirmation dictionary is computed by the vote collection center, since, as described above, it is the entity which has knowledge of the voter specific values of α and K. For the case of the voter, V, we have been considering, the dictionary is computed as Choice Confirmation String “Blue” C1 = Kμβ 1 = 37 � 918 = 16 “Green” C2 = Kμβ 2 = 37 � 2118 = 18 “Red” C3 = Kμβ 3 = 37 � 3618 = 36 “I abstain” C4 = Kμβ 4 = 37 � 1718 = 8 [0134] FIGS. 1-3 illustrate certain aspects of the facility. FIG. 1 is a high-level block diagram showing a typical environment in which the facility operates. The block diagram shows several voter computer systems 110, each of which may be used by a voter to submit a ballot and verify its uncorrupted receipt. Each of the voter computer systems are connected via the Internet 120 to a vote collection center computer system 150. Those skilled in the art will recognize that voter computer systems could be connected to the vote collection center computer system by networks other than the Internet, however. The facility transmits ballots from the voter computer systems to the vote collection center computer system, which returns an encrypted vote confirmation. In each voter computer system, the facility uses this encrypted vote confirmation to determine whether the submitted ballot has been corrupted. While preferred embodiments are described in terms in the environment described above, those skilled in the art will appreciate that the facility may be implemented in a variety of other environments including a single, monolithic computer system, as well as various other combinations of computer systems or similar devices connected in various ways. [0135] [0135]FIG. 2 is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes, such as computer systems 110 and 130. These computer systems and devices 200 may include one or more central processing units (“CPUs”) 201 for executing computer programs; a computer memory 202 for storing programs and data while they are being used; a persistent storage device 203, such as a hard drive for persistently storing programs and data; a computer-readable media drive 204, such as a CD-ROM drive, for reading programs and data stored on a computer-readable medium; and a network connection 205 for connecting the computer system to other computer systems, such as via the Internet. While computer systems configured as described above are preferably used to support the operation of the facility, those skilled in the art will appreciate that the facility may be implemented using devices of various types and configurations, and having various components. [0136] [0136]FIG. 3 is a flow diagram showing steps typically performed by the facility in order to detect a compromised ballot. Those skilled in the art will appreciate that the facility may perform a set of steps that diverges from those shown, including proper supersets and subsets of these steps, reorderings of these steps, and steps of sets in which performance of certain steps by other computing devices. [0137] In step 301, on the voter computer system, the facility encodes a ballot choice selected by the voter in order to form a ballot. In step 302, the facility encrypts this ballot. In some embodiments, the encrypted ballot is an ElGamal pair, generated using an election public key and a secret maintained on the voter computer system. In step 303, the facility optionally signs the ballot with a private key belonging to the voter. In step 304, the facility constructs a validity proof that demonstrates that the encrypted ballot is the encryption of a ballot in which a valid ballot choice is selected. In step 305, the facility transmits the encrypted, signed ballot and the validity proof to a vote collection center computer system. [0138] In step 321, the facility receives this transmission in the vote collection center computer system. In step 322, the facility verifies the received validity proof. In step 323, if the validity proof is successfully verified, then the facility continues with 324, else the facility does not continue in step 324. In step 324, the facility generates an encrypted confirmation of the encrypted ballot. The facility does so without decrypting the ballot, which is typically not possible in the vote collection center computer system, where the secret used to encrypt the ballot is not available. In step 325, the facility transmits the encrypted confirmation 331 to the voter computer system. [0139] In step 341, the facility receives the encrypted vote confirmation in the voter computer system. In step 342, the facility uses the secret maintained on the voter computer system to decrypt the encrypted vote confirmation. In step 343, the facility displays the decrypted vote confirmation for viewing by the user. In step 344, if the displayed vote confirmation is translated to the ballot choice selected by the voter by a confirmation dictionary in the voter's possession, then the facility continues in step 345, else the facility continues in step 346. In step 345, the facility determines that the voter's ballot is not corrupted, whereas, in step 346, the facility determines that the voter's ballot is corrupted. In this event, embodiments of the facility assist the user in revoking and resubmitting the voter's ballot. [0140] It will be appreciated by those skilled in the art that the above-described facility may be straightforwardly adapted or extended in various ways. While the foregoing description makes reference to preferred embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein. Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4774665 *Apr 24, 1986Sep 27, 1988Data Information Management Systems, Inc.Electronic computerized vote-counting apparatusUS5278753 *Aug 16, 1991Jan 11, 1994Graft Iii Charles VElectronic voting systemUS5400248 *Sep 15, 1993Mar 21, 1995John D. ChisholmComputer network based conditional voting systemUS5495532 *Aug 19, 1994Feb 27, 1996Nec Research Institute, Inc.Secure electronic voting using partially compatible homomorphismsUS5521980 *Feb 28, 1994May 28, 1996Brands; Stefanus A.Privacy-protected transfer of electronic informationUS5610383 *Apr 26, 1996Mar 11, 1997Chumbley; Gregory R.Device for collecting voting dataUS5682430 *Jan 23, 1995Oct 28, 1997Nec Research Institute, Inc.Secure anonymous message transfer and voting schemeUS5708714 *Jul 26, 1995Jan 13, 1998Canon Kabushiki KaishaMethod for sharing secret information and performing certification in a communication system that has a plurality of information processing apparatusesUS5717759 *Jan 31, 1997Feb 10, 1998Micali; SilvioMethod for certifying public keys in a digital signature schemeUS5864667 *Aug 22, 1997Jan 26, 1999Diversinet Corp.Method for safe communicationsUS5875432 *Feb 15, 1997Feb 23, 1999Sehr; Richard PeterComputerized voting information system having predefined content and voting templatesUS5878399 *Aug 12, 1996Mar 2, 1999Peralto; Ryan G.Computerized voting systemUS5970385 *Apr 12, 1996Oct 19, 1999Nokia Telcommunications OyTelevoting in an intelligent networkUS6021200 *Aug 23, 1996Feb 1, 2000Thomson Multimedia S.A.System for the anonymous counting of information items for statistical purposes, especially in respect of operations in electronic voting or in periodic surveys of consumptionUS6081793 *Dec 30, 1997Jun 27, 2000International Business Machines CorporationMethod and system for secure computer moderated votingUS6092051 *May 19, 1995Jul 18, 2000Nec Research Institute, Inc.Secure receipt-free electronic votingUS6250548 *Oct 16, 1997Jun 26, 2001Mcclure NeilElectronic voting systemUS6317833 *Nov 23, 1998Nov 13, 2001Lucent Technologies, Inc.Practical mix-based election schemeUS6523115 *Feb 17, 1999Feb 18, 2003Matsushita Electric Industrial Co., Ltd.Encryption device, decryption device, encryption method, decryption method, cryptography system, computer-readable recording medium storing encryption program, and computer-readable recording medium storing decryption program which perform error diagnosisUS6550675 *Mar 2, 2001Apr 22, 2003Diversified Dynamics, Inc.Direct vote recording systemUS6769613 *Dec 7, 2000Aug 3, 2004Anthony I. ProvitolaAuto-verifying voting system and voting methodUS6845447 *Nov 5, 1999Jan 18, 2005Nippon Telegraph And Telephone CorporationElectronic voting method and system and recording medium having recorded thereon a program for implementing the methodUS20020074399 *Dec 12, 2001Jun 20, 2002James HallVoting method and systemUS20020077885 *Dec 6, 2000Jun 20, 2002Jared KarroElectronic voting systemUS20020077887 *Dec 15, 2000Jun 20, 2002Ibm CorporationArchitecture for anonymous electronic voting using public key technologiesUS20020133396 *Mar 13, 2001Sep 19, 2002Barnhart Robert M.Method and system for securing network-based electronic voting* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS7044375 *Jul 22, 2003May 16, 2006Anthony ScottWeb based voting tracking and reporting systemUS7054829 *Dec 31, 2002May 30, 2006Pitney Bowes Inc.Method and system for validating votesUS8554607 *Mar 13, 2001Oct 8, 2013Science Applications International CorporationMethod and system for securing network-based electronic votingUS8843389Jun 22, 2012Sep 23, 2014Everyone Counts, Inc.Mobilized polling stationUS8899480Mar 28, 2012Dec 2, 2014Everyone Counts Inc.Systems and methods for remaking ballotsUS20020133396 *Mar 13, 2001Sep 19, 2002Barnhart Robert M.Method and system for securing network-based electronic votingUS20040093504 *Jul 8, 2003May 13, 2004Toshikazu IshizakiInformation processing apparatus, method, system, and computer program productUS20040117244 *Jul 22, 2003Jun 17, 2004Anthony ScottWeb based voting tracking and reporting systemUS20040128190 *Dec 31, 2002Jul 1, 2004Pitney BowesMethod and system for validating votesUS20090144135 *Jul 27, 2004Jun 4, 2009Andreu Riera JorbaMethods for the management and protection of electoral processes, which are associated with an electronic voting terminal, and operative module usedUS20100032483 *Sep 4, 2007Feb 11, 2010Accenture Global Services GmbhDigital Polling System and MethodUS20100114674 *Apr 26, 2005May 6, 2010Scytl Secure Electronic Voting, S.A.Auditable method and system for generating a verifiable vote record that is suitable for electronic votingWO2004061599A2 *Dec 18, 2003Jul 22, 2004Pitney Bowes Inc.Method and system for validating votesWO2004061599A3 *Dec 18, 2003Sep 30, 2004Pitney Bowes IncMethod and system for validating votesWO2006021594A1 *Jul 27, 2004Mar 2, 2006Scytl Secure Electronic Voting, S.A.Methods for the management and protection of electoral processes, which are associated with an electronic voting terminal, and operative module usedWO2012135359A2 *Mar 28, 2012Oct 4, 2012Everyone Counts, Inc.Systems and methods for remaking ballotsWO2012135359A3 *Mar 28, 2012Mar 14, 2013Everyone Counts, Inc.Systems and methods for remaking ballots* Cited by examinerClassifications U.S. Classification705/64, 705/12, 705/50International ClassificationH04L9/30, H04L9/32Cooperative ClassificationG07C13/00, H04L9/3013, H04L9/3218, H04L2209/60, H04L9/0844, H04L2209/463, G06Q20/382European ClassificationG07C13/00, G06Q20/382, H04L9/30B2, H04L9/32G, H04L9/08F4B2Legal EventsDateCodeEventDescriptionFeb 14, 2002ASAssignmentOwner name: VOTEHERE, INC., WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NEFF, C. ANDREW;REEL/FRAME:012646/0654Effective date: 20020128Nov 18, 2002ASAssignmentOwner name: GREEN, RICHARD, NEW HAMPSHIREFree format text: SECURITY INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:013257/0273Effective date: 20021111Owner name: NORTHWEST VENTURE PARTNERS II, LP, WASHINGTONFree format text: SECURITY INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:013257/0273Effective date: 20021111Owner name: ADLER, JAMES, WASHINGTONFree format text: SECURITY INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:013257/0273Effective date: 20021111Owner name: NORTHWEST VENTURE PARTNERS III, LP, WASHINGTONFree format text: SECURITY INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:013257/0273Effective date: 20021111Owner name: STELLWAY, DAVID, OREGONFree format text: SECURITY INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:013257/0273Effective date: 20021111Feb 3, 2003ASAssignmentOwner name: VOTEHERE, INC., WASHINGTONFree format text: SECURITY INTEREST;ASSIGNORS:STELLWAY, DAVID;NORTHWEST VENTURE PARTNERS II, LP;NORTHWEST VENTURE PARTNERS III, LP;AND OTHERS;REEL/FRAME:013710/0377Effective date: 20030110Jun 3, 2005ASAssignmentOwner name: DATEGRITY CORPORATION, WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VOTEHERE, INC.;REEL/FRAME:016634/0327Effective date: 20050510Aug 2, 2007ASAssignmentOwner name: DEMOXI, INC., WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DATEGRITY CORPORATION;REEL/FRAME:019628/0559Effective date: 20070712Apr 5, 2010REMIMaintenance fee reminder mailedAug 29, 2010LAPSLapse for failure to pay maintenance feesOct 19, 2010FPExpired due to failure to pay maintenance feeEffective date: 20100829RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services


text:
Downtown Providence Living Tour Tickets, Sat, Jun 10, 2017 at 11:00 AM | Eventbrite
by Providence Downtown Improvement District $7
AS220 115 Empire St Providence, RI 02903 View Map
Get the inside view on downtown living! Buy advance tickets to tour 11 buildings, all in one afternoon. CHECK IN: All attendees must visit the registration site, AS220, 115 Empire Street, before continuing on to the other tour stops! In order to gain access to other buildings, you must check in and pick up your wristband!
Sampalis Building
Westminster Lofts: Peerless
Westminster Lofts: Wilkinson
The tour programs will feature maps, guiding you to walk or bike the route at your own place, checking out the one-of-a-kind shops and restaurants along the way. Free shuttle service and Sol Chariots pedicab rides will also be provided.
PARKING: We encourage you to walk, bike, or park at one of the participating lots, which will offer discounted rates that day. Keep in mind, payment at on-street parking meters is enforced on Saturdays.
TICKETS: Buy tickets in advance here for $7. (Children under the age of 12 do not need tickets). Advance sales will end at 5 PM on Friday, June 9th. After that, they'll be available for $10 at AS220 on the day of the tour. Cash and credit cards will be accepted. A portion of the proceeds will benefit the Downtown Providence Parks Conservancy's restoration of the Soldiers and Sailors monument in Kennedy Plaza. MORE INFO: Visit downtownprovidence.com for details, or email Joelle Kanter at The Providence Foundation. Like us on Facebook or follow us on Twitter to learn about what's happening downtown!
AS220 115 Empire St, Providence, RI 02903

type: global

value: This website is an American event management and ticketing website. The service allows users to browse, create, and promote local events.


text: Sorry, no products matched "" Check your spelling Use different keywords and try again Contact your local store Compute- app-4983792-5-50863120, DC- prod-dal1, ENV- prod-a, Ver- 44.0.2, SHA- 42702b0755507672d99b43707ee6c95abb804137, Log- 3df34f97-cc-15637a30fce000 Site Information Be the first to save! Email Address Sign up Privacy Policy Stay connected Mobile apps Help Feedback MoneyCenter Privacy & Security CA Privacy Rights Terms of Use Financial services Walmart MoneyCenter Walmart Credit Card Apply Now Manage Card Account Product Care Plans Walmart Pay Get to know us About Walmart.com Corporate Suppliers Marketplace Careers @WalmartLabs Walmart.com Terms of Use About Our Ads Affiliate Program CA Privacy Rights Privacy & Security Customer service Returns Policy Product Recalls Int’l Customers Tax Exempt Program Contact Us Feedback Store Pickup In the spotlight Expand Baby Cribs Strollers Diapers Baby Feeding Car Seats Expand Electronics Cut the Cable Computers TVs iPads & Tablets Expand Fitness Exercise Machines Vitamins Ellipticals Treadmills Fitbit Expand Keep Cool Air Conditioners Fans Swimming Pools Pool Toys Expand International Sites Argentina Brazil Canada Chile China Japan Mexico United Kingdom © Walmart Stores, Inc. To ensure we’re able to help you as best we can, please include your reference number: Ref:

value: This website is an American multinational retail corporation that operates a chain of hypermarkets , discount department stores, and grocery stores from the United States, headquartered in Bentonville, Arkansas.


text:
Sterling Jewelers Jobs, Employment in Lake Grove, NY
Sterling Jewelers jobs in Lake Grove, NY
Sales Associates - Lake Grove Commons (8666044)
Sales Associates - Smith Haven Mall (8666677)
Kay Jewelers - Westfield South Shore
View all Sterling Jewelers jobs in Bay Shore, NY - Bay Shore jobsSalary Search: Kay Jeweler salaries in Bay Shore, NYLearn more about working at Sterling JewelersRelated forums: Bay Shore, New York
Jared Vault - Tanger II Outlet Center
Sterling Jewelers Inc. - 11 days ago - save job - email - more...
View all Sterling Jewelers jobs in Riverhead, NY - Riverhead jobsSalary Search: Jared Vault salaries in Riverhead, NYLearn more about working at Sterling JewelersRelated forums: Riverhead, New York
Field Repair - Lake Grove Commons
View all Sterling Jewelers jobs in Lake Grove, NY - Lake Grove jobsSalary Search: Field Repair salaries in Lake Grove, NYLearn more about working at Sterling JewelersRelated forums: Lake Grove, New York
Jared the Galleria of Jewelry- Lake Grove Commons
View all Sterling Jewelers jobs in Lake Grove, NY - Lake Grove jobsSalary Search: Jared Galleria Jewelry salaries in Lake Grove, NYLearn more about working at Sterling JewelersRelated forums: Lake Grove, New York
Kay Jewelers Outlet - Tanger Outlet Center
View all Sterling Jewelers jobs in Deer Park, NY - Deer Park jobsSalary Search: Kay Jeweler Outlet salaries in Deer Park, NYLearn more about working at Sterling JewelersRelated forums: Deer Park, New York
Get email updates for the latest Sterling Jewelers jobs in Lake Grove, NY

value: This website is an American worldwide employment website for job listings launched in November 2004. It is a subsidiary of Japan's Recruit Co.


text:
Pharmacy Technician Hospital Jobs, Employment in Atlantis, FL
Pharmacy Technician Hospital jobs in Atlantis, FL
Certified Pharmacist Technician with at least 2 years of pharmacy experience - Working knowledge of... firm connecting hospitals, large group practices and... Sponsored by Healthcare IT Leaders - 5 days ago
Technician Job in Florida Florida National Pharmacy... pharmacy technician to fill a full-time position for the upcoming 13+ weeks. This pharmacy technician job... Sponsored by RPhOnTheGo - 11 days ago
Pharmacy Technician - Full-time - Varied
Assists with quality improvement initiatives, inventory and ordering of pharmaceuticals. Orients and mentors staff. 1 yr hospital pharmacy tech exp....
Customer service abilities including effective listening skills. Assists with quality improvement initiatives, inventory and ordering of pharmaceuticals....
High school diploma or equivalency certificate. AND. Licensure/Regulation/Certification:....
Floor Technician (Per Diem)
Qualified individuals with disabilities who require an accommodation to participate in the application process or candidates with other questions should contact...
Salary Search: Floor Technician salaries in West Palm Beach, FL
Pay Grade 22 Per Diem Rate $50.00 Position located at Lakeside Medical Center in Belle Glade, FL. Lakeside Medical Center is a Joint Commission-accredited,...
Salary Search: Pharmacist salaries in West Palm Beach, FL
Monitor Technician II (Full Time Nights)
Pay Grade 6 Range: $11.97 - $15.27 Position located at Lakeside Medical Center in Belle Glade, FL. Lakeside Medical Center is a Joint Commission-accredited,...
Salary Search: Monitor Technician salaries in West Palm Beach, FL
PHARMACY TECH II - PER DIEM / DAYS
Salary Search: Pharmacy Tech salaries in Delray Beach, FL
Veterinary Technicians are responsible for hospital maintenance, assisting the doctors, laboratory procedures, radiology, client communication, medical...
View all Summit Boulevard Animal Hospital jobs in West Palm Beach, FL - West Palm Beach jobs
Learn more about working at Summit Boulevard Animal Hospital
- Summit Boulevard Animal Hospital
Pharmacy Technician Part-Time Days - Saint Mary's Med Ctr
Medication labels are accurately filled. Prepacking is done following departmental procedures and aseptic technique....
Salary Search: Pharmacy Technician Part Time Days salaries in West Palm Beach, FL
of pharmacy within the hospital pharmacy setting... of Pharmacy support personnel. Assists the Pharmacy Manager and Pharmacy Technician Supervisor in... Sponsored by Job.com - 16 days ago
interventions. • Completes pharmacy operational... hospital staff's pharmacological knowledge by participating in clinical programs; training pharmacy staff... Easily apply
Pharmacy Technicians, Pharmacy Students, Pharmacy Interns Key Interactions - Pharmacists, Pharmacy technicians, Nurses, Physicians, Pharmacy Students, Pharmacy... Sponsored by HCA East Florida - 2 days ago
Get email updates for the latest Pharmacy Technician Hospital jobs in Atlantis, FL


text:
A question, a 'GH story'.: Micro Four Thirds Talk Forum: Digital Photography Review
A question, a 'GH story'.
jrg • Senior Member • Posts: 2,269
I was visiting a local camera shop and, since I hadn’t been in one for a long while, I started playing with certain bodies. I’ve had a running competition in my head re the ergonomics of the GH5 vs the G9. So much so that I sometime back posted a query thread about the GH4 (which was selling low price at B&H).
Any case, when I got to the GH5 I picked it up and though it felt good, it felt different. I looked down, it looked a little different too, especially with GH3 written right under the hot shoe rim.
So, long story short, it’s a demo from old stock and I can get it for a steal. And I know, no IBIS and no 4K. I don’t need the camera but it’s too sweet a deal.
Does the GH3 suffer from anything other than being the grandfather of the GH5? I read the 2012 review---was quite the rage back then for its video.
Panasonic GH5 Panasonic Lumix DC-G9 Panasonic Lumix DMC-GH3 Panasonic Lumix DMC-GH4
Re: A question, a 'GH story'.
13 Handheld Focus Bracketing: EM1 MK2 vs G9

value: This website is a website about digital cameras and digital photography, established in November 1998. The website provides comprehensive reviews of digital cameras, lenses and accessories, buying guides, user reviews, and forums for individual cameras, as well as general photography forums.


text:
Patent US5440570 - Real-time binary BCH decoder - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inPatentsA decoder is utilized for the correction of bit errors occurred in BCH (Bose-Chaudhuri-Hocquenghem) codes. The decoder first calculates the syndromes of a received word. The syndrome values form a first group of syndrome matrices whose determinant values are used for determining the weight of the error...http://www.google.com/patents/US5440570?utm_source=gb-gplus-sharePatent US5440570 - Real-time binary BCH decoderAdvanced Patent SearchTry the new Google Patents, with machine-classified Google Scholar results, and Japanese and South Korean patents.Publication numberUS5440570 APublication typeGrantApplication numberUS 07/823,981Publication dateAug 8, 1995Filing dateJan 22, 1992Priority dateMar 27, 1990Fee statusPaidPublication number07823981, 823981, US 5440570 A, US 5440570A, US-A-5440570, US5440570 A, US5440570AInventorsShyue-Win Wei, Che-Ho WeiOriginal AssigneeNational Science CouncilExport CitationBiBTeX, EndNote, RefManPatent Citations (13), Referenced by (39), Classifications (8), Legal Events (4) External Links: USPTO, USPTO Assignment, EspacenetReal-time binary BCH decoder
US 5440570 AAbstract
1. A Bose-Chaudhuri-Hocquenghem (BCH) decoder for correcting bit errors which occur during transmission of digital information that has been encoded into BCH binary codewords, wherein each binary codeword comprising binary bits and is represented by the polynomial R(x) and has an error pattern E(x), the BCH decoder comprising:a decoding delay buffer shifting the bits of the word R(x) to form a group of shifted words R.sup.(j) (x), j=1,2, . . . n-1, and complementing a predetermined bit in each of the shifted words R.sup.(j) (x), j=1,2, . . . n-1 to form a group of error-trial words R.sup.(j) (x), j=1,2, . . . n-1; a syndrome generating module receiving the word R(x) and generating syndrome values Si.sup.(0), i=1,3, . . . 2t-1 of the received word R(x) which form syndrome matrices Lp.sup.(0), p=1,2 . . . t, and generating syndrome values Si.sup.(j), i=1,3, . . . 2t-1 of the error-trial words R.sup.(j) (x), j=1,2, . . .n-1 which form syndrome matrices Lp.sup.(j) p=1,2, . . . t,; a comparison module coupled to the syndrome generating module for determining determinants of the syndrome matrices Lp.sup.(0), p=1,2, . . . t, and for determining determinants of the syndrome matrices Lp.sup.(j), p=1,2, . . . t, j=1,2, . . . n-1 and for determining the zeroness of the determinants det(Lp.sup.(0)) for p=1,2, . . . t and det(Lp.sup.(j)) for p=1,2, . . . t and j=1,2, . . . n-1, and for determining a weight of the error pattern of the received word R(x) in accordance with the zeroness of the determinants det(Lp.sup.(0)), p=1,2, . . . t and weights of the error patterns of the error-trial words R.sup.(j) (x), j=1,2, . . . n-1 in accordance with the zeroness of the det(Lp.sup.(j)), p=1,2, . . . t and j=1,2, . . . n-1; a decision circuit receiving and comparing the weight of the error pattern of the received word R(x) with the weights of the error patterns of the error-trial words R.sup.(j) (x), j=1,2, . . . n-1 from the comparison module and for outputting a correcting bit; and a logic circuit responsive to said correcting bit from the decision circuit for correcting the bit errors of the received word R(x). 2. A decoder according to claim 1, wherein the zeronesses of the determinants det(Lp.sup.(0)) are defined by a vector: H.sup.(0) =[h1.sup.(0), h2.sup.(0), . . . , ht.sup.(0) ], where hp.sup.(0) =1 if det(Lp.sup.(0))=0, and hp.sup.(0) =0 if det(Lp.sup.(0))≠0; and the zeronesses of the determinants det(Lp.sup.(j)) are defined by a vector: H.sup.(j) =[h1.sup.(j), h2.sup.(j), . . . , ht.sup.(j) ] where hp.sup.(j) =1 if det(Lp.sup.(j))=0, and hp.sup.(j) =0 if det(Lp.sup.(j))≠0, j=1,2, . . . ,n-1. 3. A decoder according to claim 1, wherein the weight of the error pattern of the received word R(x) is determined in accordance with the following rules: if H.sup.(0) ε{[1t ]}, there is no bit error; if H.sup.(0) ε{[0, 1t-1 ]}, there is one bit error; if H.sup.(0) ε{[0, 0, 1t-2 ]}, there are two bit errors; if H.sup.(0) ε{[xp-2, 0, 0, 1t-p ]}, there are p bit errors, 3≦p<t; and if H.sup.(0) ε{[xt-2, 0, 0]}, there are t bit errors;where the symbol "x" represent a don't care bit. 4. A decoder according to claim 1, wherein said syndrome generating module comprises:a systolic syndrome generator for generating the syndrome Si.sup.(0), i=1, 3, . . . ,2t-1 of R (x); and a systolic shifted-word syndrome generator, receiving the syndrome Si.sup.(0), i=1, 3, . . . ,2t-1 as the input, for generating accordingly the syndromes syndrome Si.sup.(j), i=1, 3, . . . ,2t-1 of R.sup.(j) (x). 5. A decoder according to claim 1, wherein said syndrome generating module comprises:a pair of LFSR syndrome generators connected in parallel for generating the syndromes Si.sup.(0) i=1,3, . . . ,2t-1 of the received word R(x); a demultiplexer coupled between the input of the received word R(x) and said pair of LFSR syndrome generators such that each received word R(x) is sent alternatively to a selected one of said pair of LFSR syndrome generators; and a multiplexer coupled to said pair of LFSR syndrome generators for alternatively selecting the output of said pair of LFSR syndrome generators according to the alternatively selected one of said pair of LFSR syndrome generators. 6. A decoder according to claim 1, wherein said syndrome generating module comprises:a LFSR module for generating values {b1.sup.(0) (α), b3.sup.(0) (α), . . . , b2t-1.sup.(0) (α)}; and an LFSR syndrome generator, coupled to the output of said LFSR module, for generating the syndromes {S1.sup.(0), S2.sup.(0), . . . , S2t.sup.(0) } and syndromes {S1.sup.(j), S2.sup.(j), . . . , S2t.sup.(j) }, j=1,2, . . . ,n-1. 7. A decoder according to claim 6, wherein a complementor is utilized for complementing each of the lowest order bits in the the syndrome values Si.sup.(j), i=1,3, . . . ,2t-1, j=1,2, . . . ,n-1.
I(x)=I0 +I1 ·x+I2 ·x2 + . . . +Ik-1 ·xk-1 where Ip, p=0,1,2, . . . k-1 are the bits constituting the binary word and I0 is the lowest order bit and Ik-1 is the highest order bit. Each of the binary words I(x) is then processed by the BCH encoder 1 in such a way that a number of check bits are appended to the lowest order bits I0 to form a codeword with a bit length of n and which is represented by a polynomial C(x), where
C(x)=c0 +c1 ·x+c2 ·x2 + . . . +cn-1 ·xn-1 wherein C0 to Cn-k-1 are the check bits and Cn-k to Cn-1 are the information bits.
E(x)=e0 +e1 ·x+e2 ·x2 + . . . +en-1 ·xn-1 Accordingly, the received word R(x) can be expressed as: ##EQU1## The BCH decoder 5 is employed for detecting if there is any bit error occurred in each of the received words and performing necessary correcting actions to the erroneous bits.
G(x)≡LCM {M1 (x), M2 (x), . . . , M2t (x)}(3)
G(x)≡LCM {M1 (x), M3 (x), . . . , M2t-1 (x)}(5)
det(L1.sup.(0))≠0, and
det(L2.sup.(0))≠0;
det(L1.sup.(0))≠0,
det(L2.sup.(0))≠0, and
det(L3.sup.(0))≠0.
hp.sup.(0) =0 if det(Lp.sup.(0))≠0
H.sup.(0) ε φ0 ={[1t ]};
H.sup.(0) ε φ1 ={[0, 1t-1 ]};
H.sup.(0) ε φ2 ={[0, 0, 1t-2 ]};
H.sup.(0) ε φp ={[xp-2, 0, 0, 1t-p ]};
H.sup.(0) ε φt ={[xt-2, 0, 0]};
Si.sup.(j) =Si.sup.(j) +1 for i=1, 2, . . . ,2t and 1≦j≦n-1                                     (12)
hp.sup.(j) =0 if det(Lp.sup.(j))≠0,        (14)
hp.sup.(j) =0 if det(Lp.sup.(j))≠0,
(1t, 0n-t)n d denotes a periodical bit sequence having a period of n bits and having d delay bits preceding the first bit of the bit sequence. Each of the delay bits is with a don't-care value. The timing of a bit sequence (1,0n-1)n 0 and a bit sequence (1,0n-1)n d relative to a global clock CLK can be seen from FIG. 4.
Si.sup.(j) =Si.sup.(0) ·(αi)j i=1,3, . . . ,2t, j=0,1,2, . . . ,n-1
CS2 =(1n, 0n)2n 0 is employed for the selection of the demultiplexer 223. When a bit 0 in CS2 is present, the demultiplexer 223 allows an input signal to be transmitted via the output port Y0 ; otherwise when a bit 1 in CS2 is present, the input signal is to be transmitted via the output port Y1. Consequently, as a series of binary words R1 (x), R2 (x), R3 (x), R4 (x) . . . are received, the control sequence CS2 presents periodically n consecutive bits of 1 and then n consecutive bits of 0 and whereby the demultiplexer 223 transmits the first received n bits which constitutes R1 (x), to the first LFSR syndrome generator 221, and then the next received n bits, which constitutes R2 (x), to the second LFSR syndrome generator 222, and so forth. Accordingly, the received words R1 (x), R3 (x), R5 (x), . . . are processed by the first LFSR syndrome generator 221; and the received words R2 (x), R4 (x), R6 (x), . . . are processed by the second LFSR syndrome generator 222.
φ0 ={(1,1)},
φ1 ={(0,1)}, and
φ2 ={(0,0)}
φ0 ={(1,1,1)},
φ1 ={(0,1,1)},
φ2 ={(0,0,1)}, and
φ3 ={(x,0,0)}
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS4191970 *May 15, 1978Mar 4, 1980Bell Telephone Laboratories, IncorporatedInterframe coder for video signalsUS4397022 *Jan 30, 1981Aug 2, 1983Weng Ming IWeighted erasure codec for the (24, 12) extended Golay codeUS4679082 *Apr 24, 1985Jul 7, 1987Mitsubishi Denki Kabushiki KaishaCode transmission system character broadcasting receiverUS4723243 *Dec 2, 1985Feb 2, 1988Advanced Micro Devices, Inc.CRC calculation machine with variable bit boundaryUS4763330 *May 1, 1987Aug 9, 1988Mita Industrial Co., Ltd.Syndrome calculating apparatusUS4833678 *Jul 22, 1987May 23, 1989Cyclotomics, Inc.Hard-wired serial Galois field decoderUS4845713 *Jun 8, 1987Jul 4, 1989Exabyte CorporationMethod and apparatus for determining the coefficients of a locator polynomialUS4873688 *Oct 5, 1987Oct 10, 1989Idaho Research FoundationHigh-speed real-time Reed-Solomon decoderUS4914660 *Apr 8, 1988Apr 3, 1990Sanyo Electric Co., Ltd.Method and apparatus for decoding error correcting codeUS4945537 *Jun 3, 1988Jul 31, 1990Clarion Co., Ltd.Maximum length linearly occurring code sequence generatorUS4958348 *Nov 21, 1988Sep 18, 1990Eastman Kodak CompanyHypersystolic Reed-Solomon decoderUS5020060 *Jun 28, 1988May 28, 1991Matsushita Electric Industrial Co., Ltd.Error code correction device having a galois arithmetic unitUS5040179 *Aug 18, 1989Aug 13, 1991Loral Aerospace Corp.High data rate BCH encoder* Cited by examinerReferenced byCiting PatentFiling datePublication dateApplicantTitleUS5592404 *Sep 16, 1994Jan 7, 1997Cirrus Logic, Inc.Versatile error correction systemUS5898708 *Jun 16, 1995Apr 27, 1999Kabushiki Kaisha ToshibaError correction apparatus and methodUS5943348 *Oct 14, 1997Aug 24, 1999Lsi Logic CorporationMethod to check for burst limiting in error correcting systemsUS5974582 *Oct 14, 1997Oct 26, 1999Lsi Logic CorporationHigh-speed chien search logicUS6041430 *Nov 3, 1997Mar 21, 2000Sun Microsystems, Inc.Error detection and correction code for data and check code fieldsUS6252958 *Oct 24, 1997Jun 26, 2001Qualcomm IncorporatedMethod and apparatus for generating encryption stream ciphersUS6490357Aug 28, 1998Dec 3, 2002Qualcomm IncorporatedMethod and apparatus for generating encryption stream ciphersUS6510228 *Sep 22, 1997Jan 21, 2003Qualcomm, IncorporatedMethod and apparatus for generating encryption stream ciphersUS6560338Feb 8, 1999May 6, 2003Qualcomm IncorporatedLimiting delays associated with the generation of encryption stream ciphersUS6694476 *Jun 2, 2000Feb 17, 2004Vitesse Semiconductor CorporationReed-solomon encoder and decoderUS6888941May 13, 2002May 3, 2005Qualcomm, Inc.Method and apparatus for generating encryption stream ciphersUS7266749 *Jun 27, 2002Sep 4, 2007Legend Silicon CorporationTrellis construction based on parity check matrix for BCH codeUS7694207 *Sep 25, 2006Apr 6, 2010The United States Of America As Represented By The Director, National Security AgencyMethod of decoding signals having binary BCH codesUS7734991 *Jan 4, 2007Jun 8, 2010The United States Of America As Represented By The Director, National Security AgencyMethod of encoding signals with binary codesUS7836385 *Feb 5, 2009Nov 16, 2010Broadcom CorporationMeta-Viterbi algorithm for use in communication systemsUS8201060 *May 9, 2011Jun 12, 2012Ternarylocig LLCMethods and systems for rapid error correction of Reed-Solomon codesUS8464141 *Aug 13, 2008Jun 11, 2013Infineon Technologies AgProgrammable error correction capability for BCH codesUS8621329 *Mar 10, 2011Dec 31, 2013Lsi CorporationReconfigurable BCH decoderUS8645803May 9, 2011Feb 4, 2014Ternarylogic LlcMethods and systems for rapid error correction by forward and reverse determination of coding statesUS8812940Jun 10, 2013Aug 19, 2014Infineon Technologies AgProgrammable error correction capability for BCH codesUS8832523 *Mar 10, 2009Sep 9, 2014Ternarylogic LlcMulti-state symbol error correction in matrix based codesUS9203436 *Jul 11, 2007Dec 1, 2015Ternarylogic LlcError correction in multi-valued (p,k) codesUS9203438Apr 24, 2007Dec 1, 2015Ternarylogic LlcError correction by symbol reconstruction in binary and multi-valued cyclic codesUS20010010089 *Jan 10, 2001Jul 26, 2001Mitsubishi Denki Kabushiki KaishaDigital transmission method of the error-correcting coding typeUS20020104059 *Dec 15, 2000Aug 1, 2002Clara BaroncelliIn-band FEC syndrome computation for SONETUS20020116679 *Dec 15, 2000Aug 22, 2002Mike LeiIn-band FEC decoder for sonetUS20020186840 *May 13, 2002Dec 12, 2002Rose Gregory G.Method and apparatus for generating encryption stream ciphersUS20060005109 *Jun 29, 2005Jan 5, 2006Stmicroelectronics S.R.L.Method and system for correcting errors in electronic memory devicesUS20070033507 *Aug 3, 2005Feb 8, 2007Xueping JiangEfficient error code correctionUS20080016431 *Apr 24, 2007Jan 17, 2008Peter LablansError correction by symbol reconstruction in binary and multi-valued cyclic codesUS20080016432 *Jul 11, 2007Jan 17, 2008Peter LablansError Correction in Multi-Valued (p,k) CodesUS20090172501 *Mar 10, 2009Jul 2, 2009Ternarylogic LlcMulti-State Symbol Error Correction in Matrix Based CodesUS20090228769 *Feb 5, 2009Sep 10, 2009Vityaev Andrei EMeta-viterbi algorithm for use in communication systemsUS20100042907 *Aug 13, 2008Feb 18, 2010Michael PilslProgrammable Error Correction Capability for BCH CodesUS20110214038 *May 9, 2011Sep 1, 2011Ternarylogic LlcMethods and Systems for Rapid Error Correction of Reed-Solomon CodesUS20120054586 *Mar 10, 2011Mar 1, 2012Panteleev Pavel AReconfigurable bch decoderUS20130145237 *Feb 1, 2013Jun 6, 2013Ternarylogic LlcMethods and Systems for Rapid Error Location in Reed-Solomon CodesCN103716058A *Jan 20, 2014Apr 9, 2014谢东福Cyclic code decoding method based on complementary codeEP1612949A1 *Jun 30, 2004Jan 4, 2006SGS-THOMSON MICROELECTRONICS S.r.l.Method and system for correcting errors in electronic memory devices* Cited by examinerClassifications U.S. Classification714/782, 714/785, 714/756International ClassificationH03M13/15Cooperative ClassificationH03M13/1575, H03M13/152European ClassificationH03M13/15P13, H03M13/15P2Legal EventsDateCodeEventDescriptionMar 5, 1992ASAssignmentOwner name: NATIONAL SCIENCE COUNCIL, TAIWANFree format text: ASSIGNMENT OF ASSIGNORS INTEREST.;ASSIGNORS:WEI, SHYUE-WIN;WEI, CHE-HO;REEL/FRAME:006032/0383Effective date: 19920110Feb 1, 1999FPAYFee paymentYear of fee payment: 4Jan 16, 2003FPAYFee paymentYear of fee payment: 8Jan 12, 2007FPAYFee paymentYear of fee payment: 12RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services

value: This website is a search engine provided by Google. Handling over 3.5 billion searches per day, it has a 92% share of the global search engine market.


text:
White Cargo: A Memoir by Felicity Kendal (Hardback, 1998) | eBay
White Cargo: A Memoir by Felicity Kendal (Hardback, 1998)
Book in fine condition, signed by the author on the title page, slight tanning to page edges. Dust jacket fine condition not price clipped. Illustrated.
Number string includes all number 1-10. illustrated with 24 pages b/w photographs.
item 1 White Cargo by Kendal, Felicity Hardback Book The Cheap Fast Free Post -White Cargo by Kendal, Felicity Hardback Book The Cheap Fast Free Post
item 2 (Very Good)-White Cargo (Hardcover)-Felicity Kendal-0718143116 -(Very Good)-White Cargo (Hardcover)-Felicity Kendal-0718143116
item 3 White cargo by Felicity Kendal (Hardback) -White cargo by Felicity Kendal (Hardback)
item 4 White Cargo,Felicity Kendal -White Cargo,Felicity Kendal
item 5 White Cargo By Felicity Kendal -White Cargo By Felicity Kendal
item 6 White Cargo, Felicity Kendal | Hardcover Book | Good | 9780718143114 -White Cargo, Felicity Kendal | Hardcover Book | Good | 9780718143114
item 7 White Cargo, Felicity Kendal | Hardcover Book | Acceptable | 9780718143114 -White Cargo, Felicity Kendal | Hardcover Book | Acceptable | 9780718143114
86912518
Memoirs Hardback Biographies & True Stories in Japanese

value: This website is an American multinational e-commerce corporation based in San Jose, California, that facilitates consumer-to-consumer and business-to-consumer sales through its website.