text:
|Publication number
|Publication type
|Application number
|Publication date
|Mar 7, 2006
|Filing date
|Jun 9, 2004
|Priority date
|Apr 17, 1996
|Fee status
|Also published as
|Publication number
|David P. Jablon
|Original Assignee
|Phoenix Technologies Ltd.
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (1), Referenced by (24), Classifications (7), Legal Events (10)
|External Links: USPTO, USPTO Assignment, Espacenet
The present application is a continuation application of U.S. patent application Ser. No. 10/087,048, entitled "Cryptographic Methods for Remote Authentication", filed Mar. 1, 2002, now U.S. Pat. No. 6,792,533, which is a continuation application of U.S. patent application Ser. No. 09/661,365, entitled "Cryptographic Methods for Remote Authentication", filed Sep. 14, 2000, now abandoned, which is a divisional of U.S. patent application Ser. No. 08/223,961, entitled "Cryptographic Methods for Remote Authentication", filed Mar. 25, 1997 (which was issues as U.S. Pat. No. 6,226,383 on May 1, 2001), which claims benefit of U.S. Provisional Application Ser. Nos. 60/015,683, entitled "Remote Authentication Using Small Passwords" filed Apr. 17, 1996 and 60/017,654, entitled "Remote Authentication Using Small Passwords" filed May 14, 1996.
This invention has been created without the sponsorship or funding of any federally sponsored research or development program.
1.1. Field of the Invention
This invention relates to cryptographic communication in general, and more specifically, to methods and apparatus for securely proving knowledge of a shared small secret password between two parties using messages exchanged across an open is communication channel.
1.2. Description of the Related Art
Passwords are an essential component of secure systems. Although they play a crucial role in authenticating the identity of people to systems, traditional password-based network authentication systems have weaknesses due to improper use of passwords. Such systems often use the password as if it were a cryptographic key, and require the password to be chosen as carefully as one would choose a cryptographic key. One requirement is that the choice be from an effectively large "password-space". The size of this space is sometimes expressed in terms of a number of bits of "entropy". For simplicity, we often refer to any low-entropy secret from a space that is vulnerable to dictionary attacks as a "small password". In practice, due to human limitations, many passwords are small. This is a problem for many systems which can be attacked using a repeated computation using all possible (or likely) guesses for the password. This is known as a brute-force, or dictionary attack.
Dictionary attacks can occur on-line, in an interaction between an attacker and a legitimate user or system. They can also occur off-line, using information gathered by monitoring messages sent between two legitimate parties during an authentication protocol exchange. On-line attacks can often be easily detected and thwarted, by counting bad attempts and denying access. Banking ATM machines thwart attack by retaining the user's card after three bad access attempts. But remote authentication opens the possibility of an off-line attack on the messages transmitted across a network.
As widely available computing power increases, successful off-line dictionary attacks on a small password become easier. Today, ever-increasing computer power has clearly outpaced the (unchanging) ability of people to remember longer passwords. Today, 56-bit symmetric key seem to offer only marginal security. U.S. export regulations have allowed export of 40-bit key systems, presumably because they are breakable. Thus, in many systems, a "safely large password" requires more than 40 bits of entropy, and the number is steadily growing. On the other hand, it seems that many people cannot easily remember and use a password from a space of 32 bits. This is equivalent to a random 10 digit number, about 6 random letters and digits, or a pair of words from an average English dictionary. Several studies over many years have found that a significant percentage of user-chosen passwords can be found with a modest computational effort, having an effective size of less than 30 bits (roughly a billion choices). At one extreme, bank-card PIN numbers have less than 14 bits. Forcing everyone to double or triple the size of their passwords, and expecting them to not write them down, or expecting most people to be comfortable using "pass-phrases", is denying the inevitable truth. People can't or won't properly handle anything larger than a small password, so systems must protect them from attack. In light of this, most traditional network authentication systems that use passwords are obsolete. Better systems must be designed and deployed that are resistant to off-line dictionary attack, to safely tolerate the use of potentially small passwords.
1.3. Detailed Objective
Our goal is to authenticate one party to the other with a series of messages exchanged across an open network, where interception or modification of the messages by an untrusted third party may be possible. Furthermore, we do not require that either party have access to any additional long-lived keys for either a symmetric or a public-key encryption system—we seek a method based solely on the password. In light of the crucial role of the password, we must protect it as much as possible.
These methods can be used for direct person-to-person authentication, where an appropriate computer or device performs the required protocol computation on behalf of the person. More typically, one of the parties is a host computer. We will refer to the user's computer as "Alice" and the host computer as "Bob".
We assume that Alice and Bob use a small password as the basis for establishing a secure communication channel between the them, and we assume that an attacker has the computational power to enumerate all possible password values to attempt a dictionary attack. We first desire a method where Alice and Bob prove to each other that they know the same secret. We also desire an extended method where Bob, who only has knowledge of a "hidden-password", verifies that Alice knows the password. The hidden-password in our extended method will be a specially constructed one-way transformation of the password.
Historically, much attention has focused on the problem of getting Alice to use a large "well-chosen" password. Newer research, such as ours, focuses attention on how to legitimately use a small password for remote authentication across an open insecure network. This must be done without making the password vulnerable to off-line dictionary attack.
1.4. Traditional Methods
Most older methods of remote authentication based on a shared secret do not survive dictionary attacks when the secret is small. In a common example, Alice sends a random number R to Bob, Bob computes a one-way collision-free hash function h of both R and the password S, and sends the result h(R,S) to Alice. Alice also computes h(R,S) and compares it to Bob's result. If they are equal, Bob has proven knowledge of the password to Alice, and because of the hash, the secret password is not directly revealed to a third party who monitors the exchange. The randomness of R prevents replay attacks. However, when the password is small, Eve, an eavesdropper who obtains R and h(R,S), can repeatedly hash each possible password S′ in the dictionary with R, and compare each result h(R,S′) to Bob's response. (The dictionary entries may be either pre-built, or computed as needed.) When a match is found, the attacker knows that S′ is the password.
When tolerance for small passwords is added to all the classic requirements for a secure exchange, most traditional password authentication methods are shown to be obsolete.
Some methods can confirm knowledge of a small shared secret based on the parties' access to other long-lived data. This data may be a large shared secret, or a large public key. There are many general methods for public-key-based authentication. Such schemes pose additional problems such as certifying public-keys, requiring a secure key distribution system, or requiring secure storage for large secret keys. Here we seek methods that are based solely on an easily-memorized secret.
1.5. Minimal Disclosure Methods
A few methods exist that address our goal of preventing off-line dictionary attacks, without requiring access to additional long-lived keys. Examples are the various Encrypted Key Exchange (EKE) methods described by Bellovin & Merritt [BM92] and the "secret public-key" methods described by Gong and others in [GLSN93, Gon95]. An example of an enhancement where Bob stores a one-way function of the password, and verifies that Alice knows the original password, are the A-EKE methods described in [BM94]. These documents are herein incorporated by reference. These methods represent the best of the prior art, and reveal little or no information for an attacker to mount a dictionary attack. We will call these "minimal disclosure" methods, since they minimize disclosure of information about the password to potential attackers.
Another method that is somewhat resistant to passive dictionary attack is called Fortified Key Negotiation (FKN), and is described in [AL94]. We refer to this as a "reduced disclosure" method, since it may leak a considerable amount of information.
These minimal disclosure methods are relatively new, and have not yet been widely deployed in applications.
1.6. Diffie-Hellman Exponential Key Exchange
A common function used in modern cryptographic methods is the Diffie-Hellman exponential key exchange ("DH") described in [DH79]. This is an example of a public-key distribution system, the purpose of which is to distribute keys to one or more parties using some kind of public-key technique. This is different than a public-key cryptosystem the purpose of which is to typically perform signing and/or sealing operations.
The major limitation of original DH is that it is an unauthenticated public-key exchange—It doesn't prove the identity of either party to the other. It is thus vulnerable to a "man-in-the-middle" attack where a third party, Mallory, performs two distinct DH exchanges with Alice and Bob to create separate encrypted channels. By decrypting and re-encrypting all messages passed between Alice and Bob, Mallory can act as an undetected eavesdropper. Despite this limitation, DH has important uses and the basic computation in DH forms a basis for many well-known security schemes, such as the ElGamal and related public-key crypto-systems, the DSS digital signature standard [NIST94]. Two methods that have incorporated DH to provide an authenticated key exchange are the station-to-station protocol and DH-EKE, one of the Encrypted Key Exchange methods. Our methods will also utilize a DH exchange.
The general construction of DH uses exponentiation within a mathematical group. Although a variety of groups can be used in DH, a common example uses arithmetic in Zp*, the multiplicative group of the Galois field of integers modulo p, where p is a large prime. Zp* is also sometimes written as GF(p)*. The elements (members) of this group are the integers from 1 to p−1, and the group operator (represented by *) is multiplication modulo p. We review the classic DH operation here:
The result of the exchange is that both Alice and Bob alone share knowledge of a large key K. They both compute the same value of K because (gR
DH can also use other groups, including large prime-order subgroups of Zp*, and groups of points on elliptic curves over finite fields. The principal advantage of alternate groups such as elliptic curves lies in their increased resistance to a discrete-log computation for a given computational cost, assuming the current knowledge of discrete log techniques. With elliptic curve groups, the size of the field can be much smaller than the size required with Zp*, and thus fewer bits are needed to represent the group elements.
We will use the term "exponentiation" to broadly refer to repeated applications of the group operator on an element with itself. In some cases, the group operator does not use exponential arithmetic in the integers. For example, the literature on elliptic curve groups traditionally describes the group operator for two points as "addition" of points, and group exponentiation to an integer power is described as "multiplication of a point by an integer". Further description of elliptic curve groups can be found in [P1363].
Though our discussion will focus on Zp* and it's subgroups, the techniques we will discuss apply to use of DH in any other suitable group with comparable structure. We now briefly review some algebraic results that are relevant to use of the DH in both our method as well as in DH-EKE.
1.7. Selection of DH Parameters g and p, and the Structure of Zp*
The first DH computation (using Zp*) is gR mod p, where g and p are specially chosen, and R is a large random number. Proper selection of g and p is crucial to the DH exponential key exchange, in general, and even more so in password-authenticated DH methods. We will generally limit our discussion to groups where the factorization of p−1 is known, and where p−1 has a large prime factor q. A large prime factor prevents easy solutions to the discrete logarithm problem, and methods to generate such values of p with several hundreds and even thousands of bits are well known to those skilled in the art. It has been recommended that the sizes of R and q be at least twice the number of bits needed in the resulting key. The size of p must generally be much larger resist long-term attack on discrete logs in Zp*.
Throughout the discussion we use the abbreviated notation "x" to mean exponentiation within some DH group. With respect to Zp*, "xz" is equivalent to (x raised to the power z) mod p". We will also refer to subgroups of Zp* as Gx, where x is the order of the group.
The literature [PH78, McC90] discusses the proper selection of g and p, in particular to address the concern that easier solutions to the discrete logarithm problem make it easier to attack DH. Classical values for p and g in DH are where p=2q+1, q is also a large prime, and g is a primitive root of p. It has also been recommended to use values for g in DH that are generators of a smaller but still large subgroup of Zp* [P1363]. However, the available literature does not discuss how the structure of the group is particularly relevant to authentication systems that use DH. We explore this further in the detailed description of our invention.
In both [BM92] and [STW95] we find some analysis of the security of DH-EKE. [BM92] warns against allowing 0 to be used as an exponent. Attacks using other special numbers were, at that time, unknown. A variation of DH-EKE named M-EKE and general techniques for refining and strengthening the protocol against certain attacks are discussed in [STW95]. In the course of our invention, we uncovered a flaw in DH-EKE as described in the available literature. An analysis of this flaw and a means for correcting it are included in our method.
The inventions described establish a large mutually-authenticated shared secret key between parties over an open insecure channel, where the authentication is based solely on mutual possession of a potentially small shared secret, such as a password.
The methods are different from the prior art, and constitute an improvement by eliminating steps and constraints which are required in prior methods to keep them free from attack. These new methods may permit more efficient implementations than the prior art.
The first method is a simplified password-authenticated exponential key exchange (SPEKE) where a function of the password determines the parameters of a public-key distribution system, such as a Diffie-Hellman ("DH") key exchange. SPEKE is comparable to the DH-Encrypted Key Exchange method, but is different in that no symmetric encryption steps are used. The parties' success in establishing a common DH key is used to prove knowledge of the shared secret by one party to another.
An extended hidden-password verification ("HVER") method is also described whereby one of the parties uses a stored one-way function of the password, called the "hidden password" to authenticate knowledge of the original password by another. This method is used in conjunction with another authenticated key exchange, such as SPEKE or DH-EKE, and represents an alternative to prior extended methods such as A-EKE.
In HVER, the user creates a long-lived DH integer exponent C based on the password. A DH base g, and a DH exponential gC is computed. The pair of values {g, gC} represents the user's hidden password, which is maintained as a shared secret and stored securely with the host. In HVER authentication, a SPEKE (or equivalent) exchange is first performed using gC as the shared secret basis, resulting in a shared key K1. Then a second DH exchange is completed where the host chooses a random exponent X, and sends the value of gX to the user. Both compute a second shared key K2=g(X C). The user then proves knowledge of the combined values of K1 and K2 to the host, thereby proving knowledge of the password C. The usual problems associated with a low-entropy DH exponent C are resolved by protecting the host's storage of gC, and by the simultaneous proof of K2 with the previously authenticated K1.
2.1. Objectives
It is an object of this invention to allow one party to verify that another party has knowledge of a small password by exchanging messages.
It is an object of this invention to allow the exchange to be performed over an insecure communication channel.
It is an object of this invention to not require the user to store any large long-lived secret data, such as cryptographic secret keys, public keys, or certificates.
3. Description of SPEKE
We now describe a simple password-authenticated exponential key exchange (SPEKE). This method can generally serve as a replacement for any other minimal-disclosure method. We first describe SPEKE in terms of a commutative family of keyed mapping functions. We will show at least two public-key distribution systems that work with SPEKE, and provide details for an embodiment where the family of mapping functions uses exponentiation in a subgroup of Zp*. We also further describe the required constraints that make the method safe.
3.1. General Form of SPEKE
In this method, two parties, Alice and Bob alone share knowledge of a secret password S. Bob proves his identity to Alice by proving his knowledge of the result of a key exchange protocol, which is determined by parameters set according to a function of S. Alice and Bob protect access to S from untrusted parties. We will explore the factors in the choice of these parameter-determination functions in the following sections.
Each instance of the key exchange protocol for a given S will use a large set of N elements, GN, and a particular member of that set gεGN. Each party also uses a commutative family of keyed mapping functions, Hk, which maps individual elements from the set GN into itself, where k is a key (or index) with a value from 1 to N that defines each specific function. For a specific key k, we use the notation y=Hk(x), where x and y are individual elements of the set.
The value of N must at least be larger than the size of any feasibly searchable dictionary, but it must be also be a reasonable finite number, since we need to communicate the value of arbitrary members of this set in protocol messages. We initially make no assumptions about the representation of these elements, presuming that there is some convenient numeric form that is useful for our computations and protocol.
The general requirements for the family of mapping functions Hk are shown here:
It is a keyed, mostly one-way
Given Hk(x), it is generally infeasible to
compute x without knowledge of k.
Given only Hk(x) and x, it is generally
infeasible to compute k.
It is commutative.
For any j, k, and x, Hj(Hk(x)) = Hk(Hj(x)).
It distributes widely.
For any x, as k varies, Hk(x) is evenly
distributed across a large range of possible
elements of GN.
Prior to the protocol exchange, Alice and Bob agree to use the shared secret S to determine the parameters for the protocol. Essentially, they each choose three things based on a function of the password:
a definition of a set of elements GN,
a family of mapping functions Hk of GN onto GN, and
the value of a single member gεGN.
In theory, the set GN, the family Hk, and the element g may all vary according to S. However, in most preferred embodiments we assume GN to be a fixed set, and Hk a fixed family of mapping functions for all values of S. Only g need vary according to S in the preferred embodiments, hence we will later pay particular attention to the function for choosing g, using the notation g=f(S).
The protocol between Alice and Bob proceeds as follows. Referring to
103 choose a random integer RA, from 1 to N. 104 compute QA = HR 106 send QA to Bob.
Independently, Bob performs the following steps in sequence:
123 choose a random integer RB, from 1 to N. 124 compute QB = HR 125 send QB to Alice.
After Alice receives QB from Bob 125, Alice computes K=HR
After Bob receives QA from Alice 106, Bob computes K=HR
Since HR
They are guaranteed to arrive at the same value for K if they choose the same S, due to the commutative property of Hk. K should also be the same only when g is the same, and this should further imply that they've used the same value for S, and thus know the same password. This can be insured by the proper selection of Hk and f(S), which will make it (at least statistically) infeasible that in a normal exchange two different values of S will map to the same result. They can then use this shared value K to construct an authenticated session key. Since K is a randomly generated element of the large set GN, it will not be subject to the same dictionary attacks as the original shared-key S.
3.2. Verification of K
Alice and Bob may want to explicitly verify that the other knows the same value for K before proceeding.
If the subsequent protocol implicitly verifies K, it may be desirable to omit explicit verification. Implicit verification can be accomplished if specific verifiable plain-text is included in an initial message, prior to encryption with a key derived from K. The plain-text may either include specific data values, or it may conform to a strictly verifiable format. This successful encryption of such a message constitutes an implicit proof of knowledge of K. After decryption, the receiver can verify that the text or the format is correct, which proves that the correct value of K was used.
Proofs of knowledge of K can generally use any traditional method because K is randomly chosen from a large set GN, and is not vulnerable to dictionary attack. A proof can be either interactive, requiring messages in both directions, or non-interactive, requiring a single message from Alice to Bob.
If mutual authentication is desired, Bob can respond with Vb=h(K), which Alice can verify. Since in this case VA can be derived from VB without knowledge of K, it becomes important for the protocol to enforce that VA is sent before VB. In general, with mutual authentication, Alice and Bob must use different proof functions to prevent a possible mirror replay attack.
The mechanism of proof for K can also use an interactive handshake as described in [BM92]. Such a challenge/response method may require additional messages to be sent, although protocol optimization may be able to combine this data with the messages in steps 125, 106, and 108 to reduce the total number of messages.
Additional steps may be required to test the input values Qa, Qb, and the output value K for validity before proceeding, as will be discussed below.
3.2. SPEKE Using Diffie-Hellman
To make this method safe, we must understand in detail the necessary characteristics to insure that S is not revealed to any attacker, and to find specific suitable parameters to determine the set GN and family of functions Hk, and the value of g.
Preferred embodiments of this invention can use a Diffie-Hellman exchange in large finite cyclic groups. These DH groups provide suitable sets and mapping functions Hk. We let Hk(g) represent exponentiation in the group, where g is a generator of the group, and k is an exponent in terms of group operations. That is, H1(g)=g, H2(g)=g*g, H3(g)=g*g*g . . . etc., where * is the group operator. In this case, although k may be an arbitrary positive integer, the number of distinct mapping functions Hk is the number of elements in the group.
Throughout the discussion and the related drawings, the following notation and symbols are used:
Unless otherwise specified, all exponentiation is performed with respect to an appropriate group. For example, because in Zp* the * operator is multiplication modulo p, x^y is the same as x^y mod p. In these groups, we use both the "xy" and "x^y" notations for group exponentiation interchangeably, and we may omit the "mod p" notation.
In our first example, we use a specific class of group Zp*, where p is a large prime, p=2q+1, and q is prime. We also need a function f such that g=f(S) creates an element of order q. Referring to
Referring to
401 choose a random number RA in the range of 2 to p-1. 402 compute QA = (S2)R 408 send QA to Bob.
Independently, Bob 420 performs the following steps in sequence:
411 choose a random number RB in the range of 2 to p-1. 412 compute QB = (S2)R 418 send QB to Alice.
After receiving QB from Bob 418, Alice computes K=QB R
After receiving QA from Alice 408, Bob computes K=QA R
We note that they will arrive at the same value for K only if they choose the same g, since two different values for g will create different results. The further requirement that the same resulting K implies the same S is insured by the proper selection of f(S).
There is also a threat of an attacker limiting the possible values of K in a "small subgroup confinement" attack, as is later discussed. We guard against this in this example of the protocol by checking the resulting values for K. In this group, the only small subgroup elements to avoid are 1 and p−1. In step 405, Alice tests K to see if K is confined to this small subgroup, or if K is not an element of the group (as in 0), and if so, aborts the protocol 406. Bob performs the same test 415, and aborts if K is invalid 416.
3.3. Identification
Note that
3.4. Other uses of K
Once a valid value of K is confirmed, K can be used to establish a secure communication channel between Alice and Bob. K, or a value derived from K, can later serve as an ordinary symmetric encryption key to encrypt all subsequent messages between Alice and Bob, as has been discussed in the prior art. There are also many other uses for K, as will be apparent to those skilled in the art. One such use is described here, where K serves as an authentication key, rather than directly for the purpose of encryption.
Using K from a DH-authenticated exchange, we can generate a proof of knowledge of some other presumed shared secret M. In this technique, the goal is to use K to create a verifier that Alice can send to Bob proving that Alice knows M. In other words, K is used to authenticate the validity of some previously communicated secret M.
Given the shared authenticated K, and a presumed shared message M, Alice proves to Bob that she knows a message M without sending M to Bob as follows:
Alice uses a hash function h to compute VA = h("Alice knows",
Alice sends VA to Bob.
Bob computes the same: VB = h("Alice knows", K, M)
Bob compares VA to VB.
If they are the same, Bob knows that "Alice knows M".
The identifier "Alice knows" insures Bob that this message proves that Alice knows something. Without this identifier, a message of the form h(K, M) might ambiguously prove either that "Bob knows M", or that "Alice knows M", since K is shared by both. An attacker might be able to record and play back such a message fooling either Alice or Bob, if the protocol allowed it.
This method of authenticating M can be used to authenticate a previously-established unauthenticated Diffie-Hellman session. If Alice and Bob have performed an ordinary DH exchange, an attacker Mallory might have established two different DH sessions with Alice and Bob, using two different keys KA and KB respectively. While Mallory cannot force KA and KB to be the same, she can sit in the middle and re-encrypt all messages in both directions to effectively tap the communication channel, and insert her own messages. Alice and Bob can establish that KA=KB, by using a separate authenticated DH exchange to derive K2, and prove to each other that they know the same value. Thus, the security of a separately established unauthenticated DH exchange, which was presumed open to a man-in-the middle attack, can be shown even after-the-fact to preclude such attacks.
3.5. Reordered Operations
Also note that
The methods in
Step 123
Bob makes a random number in advance
Step 106
Alice sends QA
Step 126
Bob computes K
Step 121
Bob looks up S in his password database
Step 122
Bob computes g
Step 124
Bob computes QB
. . . etc.
Bob can compute QB either before, after, or concurrently with computing K. The only requirements are that K is computed 126 after both choosing RB 123 and receiving QA 106, and QB is computed 124 after both making g 122 and choosing RB 123. (A further refinement is when the computations of g 122 and QB 124 are combined, as in QB=S(2 R
Furthermore, because we are using commutative functions, the order of multiple operations that must be performed in sequence can be reversed without changing the effective computation. For example, in exponentiation mod p, (xy)z=(xz)z. Whether x is raised to the y power or the z power first is irrelevant. For the purposes of this invention, such rearrangements are equivalent. Similarly, two or more operations may be easily combined. For example, in exponentiation mod p, (xy)z=x(y�z)mod(p−1). Although the sequence of steps to perform these operations are different, they are mathematically equivalent. Other such mathematically equivalent rearrangements are possible.
3.6. Other Variations
Both Alice and Bob may prefer to use a one-way hash of K for their session key, rather than K itself. This and other variations discussed in [BM92], [BM94], and [STW95] are applicable to our SPEKE method as well as to the DH-EKE method.
An interesting proposal in [Ell96] is to use a series of proofs of knowledge of low-entropy information to allow direct person-to-person authentication, based on a series of questions and answers. The idea is to prove to each other that they know common facts, without revealing those facts. A series of SPEKE exchanges can be used here, even for answers to simple multiple-choice questions. Verifying many small amounts of shared knowledge can build confidence in the authentication.
Another variation is to make the DH generator f(S) a one-way function of the password S, so that either Alice or Bob can store the password in a hidden form. In this approach, an attacker that obtains f(S) will not have immediate easy access to S, though a dictionary attack may be possible. This is discussed further in our description of the HVER extension method below.
3.7. Handling Failures
In order to make the system robust against on-line trial-and-error dictionary attack, while at the same time reducing the risk of "denial-of-service" attacks, the system should handle errors carefully. Methods for this might include the following:
logging failed attempts
allowing a small number of retries in case of accidental errors
counting the number of failed attempts over the lifetime of the password
disabling the password if a specific limit is exceeded
temporarily disabling the account during a suspected attack
count total failed attempts to detect attacks against anonymous accounts.
Such methods are similar to those used in local authentication and are well-known to those skilled in the art.
3.8. Choosing the DH Group
In general, the characteristics that make a group suitable for a DH exchange are the same as those for SPEKE. To avoid small subgroup confinement, as discussed below, it is often preferable for the group to be of prime order. The order of the group must also be large enough to prevent a practical discrete-log computation within the group.
It is possible in SPEKE for the selection of the group to be a function of the password. The simplest case, where f(S) is a primitive root of p in Zp*, where p=2q+1, demonstrates this-half of the values of the password will select Zp*, and the remainder select Gq. It is also possible that the value of p could be determined (in part) by a function of S, though this introduces severe problems with insuring that the exponentials do not leak information. The selection of other classes of groups for use with SPEKE may be controlled by different parameters.
Although SPEKE can use the full group Zp*, it may be preferable to use only prime order groups with SPEKE to eliminate all leakage of information, as will be discussed. Choosing an arbitrary p=nq+1 with a random large prime q gives plenty of possibilities.
One advantage of SPEKE over DH-EKE is that in SPEKE there is no need to symmetrically encrypt the exponentials.
On the one hand, the requirements for the symmetric encryption method in DH-EKE seem not very stringent, since a method as simple as XORing the password with the plain-text can be used. On the other hand, the requirement imposes a tight constraint on the format of the data to be encrypted. If trial-decryptions of QB could be shown to be invalid, this information could be used to perform a partition attack on the password [BM92]. To prevent this problem, the literature recommends that DH-EKE use a group with order very near a power of two, and use a DH generator which is a primitive root. These constraints make the numeric representation of the QB evenly distributed across (almost) the range of numbers from 1 to some power of 2, making it appear as an arbitrary bit-string, and thus removing any verifiable plain-text for the step of symmetric encryption. SPEKE does not require these constraints.
Another important class of groups where the elements are not easily converted into the form of an arbitrary bit-string are groups of points on elliptic curves. A point is often represented by a pair of integers (x, y), where x is in a range from 0 to m−1 for some m. For most values of x, there are exactly two corresponding values of y, thus y can be represented by a single bit. But many values of x in the range do not correspond to a point on the curve. This verifiable characteristic makes it dangerous to encrypt a representation of a point using a low-entropy key, as in DH-EKE.
By removing the symmetric encryption step, SPEKE removes the need for the DH exponential to be indistinguishable from a random bit-string. This in turn permits groups of points on elliptic curves over finite fields, which can offer significantly increased computational efficiency.
3.9. Choosing the DH Generator
We present a few methods to convert a password S into a suitable DH generator g for SPEKE. The choice of which of these or some other method is more appropriate depends on the nature of the group that is used.
In the case of Zp*, where p=2q+1, the choice of f(S) depends on whether we use the full multiplicative group, where g is a primitive root, or if we use g to generate a large prime-order subgroup. First we look at:
f(S)=S mod p (1)
This simple method does not insure that f(S) is a generator of any particular large subgroup, but it may be good enough. Since p=2q+1 for a prime q, and if (S mod p) is distributed randomly and evenly across Zp*, it is extremely unlikely that S will be a generator of a small subgroup. If we are concerned about the value of S being invalid, as in 0, 1, or p−1, we can preclude this possibility with:
f(S)=2+(S mod(p−3)) (2)
For both choices (1) and (2), with p=2q+1, we note that half of the values for S will be generators of Zp*, and half will generate Gq. This may be a concern since it leaks some information about S to an eavesdropper. However, if p is a constant for all protocol exchanges using the password, the total leakage is limited to one bit, which may be deemed insignificant. This attack is discussed further below.
We can also make f(S) insure the use of a particular subgroup. In Zp*, where p=2q+1, each generator of Gq is paired with a primitive root of p in a simple one-to-one relationship. If we assume that x is a generator of Gq, then (p−x) is a generator of Zp*. This is shown by expanding the polynomial (p−x)q mod p to show that it equals p−1. Since (p−x)q is not equal to 1, (p−x) is not a generator of Gq, nor is it a generator of G2, so by elimination it must be a primitive root. Using this technique, the password-to-primitive-root function f(S) is:
Let x=2+(S mod p−3)
If xq=1
f(S)=x (3)
For arbitrary groups, a search method is possible, where one can use a mapping function M that converts a number from a large range into a potential generator of the group. The password is first converted into a number N in the range, perhaps with a simple hash function, and then the potential generator g=M(N) is calculated. A sequential search is performed until a generator is found.
Let N=h(S)
Repeat for i=0, 1, 2, 3, . . . etc.
Let g=M(N+i)
If g is a generator of the group, output g and stop. (4)
This clearly works with the group Zp*, p=tq+1, and M(n)=n. In general, this method is practical when the density of generators produced by M is high, and the test for a generator is inexpensive.
Note that choices (1) and (2) are quick enough to be performed each time S is used. But choices (3) and (4) require a test or search to be performed, which may be undesirable. Other variations are also possible, as there are many obvious ways equivalent to choice (2) to convert S into a number within a suitable range.
For p=nq+1, one alternative for constructing a generator of Gq is:
f(S)=S((p−1)/q) mod p. (5)
Choice (5) has the effect of converting any S into either a generator of Gq or 1, or 0. If n is small relative to q, and S is nicely distributed, hitting 1 or 0 is unlikely, and this may be good enough. To be really sure, we use (6), with p=2q+1 and prime q, which always guarantees a generator of Gq:
f(S)=(2+(S mod(p−3)))2 mod p. (6)
It may be tempting to use f(S)=gS, where g generates the desired subgroup. But this represents a special case that opens the method to a "password-in-exponent" attack discussed below.
In groups of points on elliptic curves, we can use a search method to choose a "random" point g of large prime order based on S. A point P is typically represented as P=(x, y), where x and y are in the range 0 to m−1 for some modulus m. Based on a hashed form of S, we obtain a series of values for x in the range, and a series of single bit values b. We compute y with the elliptic curve equation using x, and bit b. For almost all points with a given value of x, there are exactly two solutions for y; b selects which to use. The computation of P fails roughly half of the time when there is no point on the curve for the given x. When it fails, the next value for x in the series is chosen. When a point on the curve is found, it is converted to prime order q by using g=Pt, where (q t) is the order of the group of points. (In traditional elliptic curve notation, "g=t P".) This procedure is summarized here:
Let n=h(S). (7)
Let x=(n/2) mod m. (7-1)
If there is no point at x,
Let b=the low bit of n.
Compute y using the elliptic curve equation, given x and b.
Let P=(x, y).
Let g=Pt.
If g is the "point at infinity" (equivalent to "1" in Zp*),
Output g and stop.
In some cases, it may be desirable to make f(S) a one-way function of the password. This will be explored below in our HVER extension method, where one party who only knows a hidden form of the password, created using a one-way transformation, verifies that the other knows the original unhidden password. When the extension is used with SPEKE, the function f(S) operates on the hidden form of the password.
3.10. SPEKE with a Selectable Modulus
There are also variations of SPEKE where the choice of the DH group (the set GN in
We describe one time-efficient approach, suitable only for limited-size passwords, where the group Zp* varies according to S. It uses a fixed table of pre-computed moduli, all of the form p=2q+1, such that all p are close to the same power of two. (Another table-based method is shown in section 4.4.) The password can then be converted into a table lookup function, to select the modulus p and a relatively-primitive base g. For a suitably-limited selection of p, the base g can be a fixed value. One concern in this type of system is the size of the table. In the case of a system limited to 4-digit PIN codes, and a 1000-bit modulus, and taking into account the density of suitable primes of this size, a compressed table of this form would consume tens of thousands of bytes.
3.11. Use of other Public-Key Distribution Systems
SPEKE can also use other unauthenticated public-key distribution systems, such as the Modified Diffie-Hellman ("M-DH") public-key exchange. In this method, Bob generates a key to send to Alice. The following description shows how it is incorporated into a SPEKE exchange, using Zp*:
chooses a random number RA
computes QA=f(S)R
Sends QA to Bob.
Bob performs the following steps in sequence:
chooses a random number RB,
computes QB=QA R
Sends QB to Alice.
After Alice receives QB from Bob, she computes:
K=Q B^(R A −1 mod(p−1)) (which is equal to f(S)− R B)
After Bob receives QA from Alice, he computes:
K=f(S)^R B
The exact requirements for f(S) depend on the group used, as in standard DH. Both parties can proceed to use K to prove to each other that they know S, and to derive a session key.
4. Security Analysis of SPEKE
The security of SPEKE is based on the difficulty of the discrete log problem, or at least the DH problem. These two problems (discrete log and DH) have been shown to be closely related. The security of SPEKE may also depend in some cases on the appropriate use of one-way hash functions.
The following sections discuss more about the design considerations behind SPEKE, in light of several remaining possible attacks, and may be helpful to those who wish to create alternate embodiments.
4.1. Variable Modulus Attack Against SPEKE
This section discusses attacks against SPEKE which can occur when using a reduced size modulus. Reducing the modulus size increases the speed of the SPEKE exchange, but a smaller modulus increases the chances that an attacker can compute the discrete logarithm. [BM92] and others suggest that changing the modulus periodically or on a per-user basis mitigates this threat. While a fixed modulus can be embedded within the mechanism on both sides, a variable modulus requires communication between the parties for them to agree on which modulus to use for each exchange.
When the protocol allows one party to chooses the modulus for the other, a chosen modulus attack may be possible, where an active attacker, Barry, chooses a modulus with special properties that allow him to obtain information about Alice's password or key. Such information might be "leaked" through detectable properties of one or more of Alice's protocol messages. Some examples are:
To minimize the threat of the chosen-modulus attacks we currently recommend against sending an uncertified modulus chosen by one party to the other.
4.2. Partition Attack
Let's presume that the modulus is a large prime p=2q+1 for some prime q, and the generator is f(S)=S. If the modulus p varies with different runs, an observer Eve may be able to perform a partition attack by watching many runs. When S is a primitive root there is a 1/2 chance that QA is of order q, but an S of order q forces QA to be of order q. Assuming that p is different on each run, Eve tests each QA and obtains an average of � bit of information about S per run. In other words, when QA is primitive, then S must be primitive. Eve uses this knowledge to successively reduce her dictionary of possible S values.
The attack is prevented by insuring that the generator is of large prime order. This can be done by choosing f(S)=S((p−1)/q) mod p. (Note that S may be either a password or a one-way function of a password.) This guarantees that QA and QB are of order q, preventing the leak.
The attack may also be largely eliminated if the value of p is constant over the lifetime of the password. When p=2q+1, the upper limit of information that is leaked is 1 bit, so that Eve can disqualify no more than about half of the dictionary. However, when p=nq+1 for large n, the problem may be fatal.
4.3. Password-In-Exponent Attack
When considering functions that are suitable for converting a password into a DH generator, it may be tempting to choose f(S)=gc h(S) for some fixed prime-order gc and some well-known hash function h. Unfortunately, while this is a convenient way to convert an arbitrary number into a generator of a prime-order group, it creates an opening for attack.
To show the attack, let's assume that gc=2, and h(S)=S, so that f(S)=2S. Alice's protocol can be rewritten as:
Bob should perform his part, sending QB to Alice. The problem is that an attacker Barry can perform a dictionary attack off-line after performing a single failed exchange. His initial steps are:
Choose a random X.
Compute QB=2X.
Receive QA from Alice
Send QB to Alice.
Receive verification data for K from Alice.
Barry then goes off-line to perform the attack as follows:
For each candidate password S″:
Thus, when S′=S, K′=K. More generally, the attack works because the dictionary of passwords {S1, S2, . . . , Sn} is equivalent to a dictionary of exponents E={e1, e2, . . . , en}, such that for a given fixed generator gc, the value of f(Si) can be computed as gc e
In general, we must insure that no such dictionary E is available to an attacker. We should note that while it is true that for any function f there will always be some fixed gc and hypothetical dictionary E that corresponds to f(S), for most functions f, computing the value of each ei requires a discrete log computation. This makes the dictionary E generally unknowable to anyone. As a specific example, for the function f(S)=S, the attack is infeasible. The same argument holds for the other functions f(S) shown earlier.
The password-in-exponent attack is possible only when f(S) is equivalent to exponentiation (within the group) of some fixed gc to a power which is a known function of S. Note that this restriction on f does not completely preclude using f(S) as an exponential function of a fixed base gc, even within the group. For example, the next section describes a version of the method tuned to handle passwords from a specific dictionary of size k.
We also point out that while the HVER extension described later uses a function of the form f(S)=gS, this particular exponentiation can be done in a group that is significantly different than the SPEKE group.
4.4. Using a Table of Generators
If in certain groups, there is no safe, fast equation that converts an arbitrary number S into a suitable generator (recalling that gS is bad), a table-based approach can be used. Similar to the method described in section 3.10, this puts a limit on the effective size of S. It works as follows:
At setup time, a fixed generator gc is chosen, along with a randomly selected secret table of k exponents E={e1, e2, . . . , ek}. A corresponding table T={gc e
4.5 Small Subgroup Confinement Attack
In authenticated DH exchanges, such as SPEKE and DH-EKE, the problem of subgroup confinement can occur when the exponentials are sent in unencrypted form. To show the attack, we introduce Abigail and Barry as attackers who wish to masquerade respectively as Alice and Bob.
We assume that Abigail and Barry have no knowledge of the password S. In analyzing the security of these protocols, we asked: Can Abigail predictably influence the value for Bob's result K? If so, Abigail may be able to guess the value of K, and fool Bob into thinking that the authentication is successful. The answer is yes in the example of SPEKE, shown in
Alice computes QA=HR
Bob computes QB=HR
Alice computes KA=HR
Bob computes KB=HR
This problem is due to the fact that QA is used as a base in Bob's computation of KB, and the attack occurs when instead of a randomly computed QA, Abigail sends a specially chosen QA to Bob. When Abigail chooses QA to be a generator of a small subgroup, the value of KB is confined to a small set of elements, so that Abigail has a significant chance at guessing K. An extreme case is QA=1, which always forces KB to be equal to 1. This is a small-subgroup confinement attack. Barry can also perform this attack against Alice.
One approach to solving the problem is to try to climinate the small subgroups. In Zp*, to a certain extent, proper selection of p can bc effective. Choosing p=2q+1 is as close as we can get.
In testing to prevent subgroup confinement, the values of QA and QB can alternately be tested, instead of resting the resulting values of K. Note that if QA and QB are created using truly random exponents RA and RB, the chance of accidental confinement in a normal exchange with appropriate groups is negligibly small.
The threat of an attacker sending a small Subgroup generator exists in SPEKE, and also exists in any versions of the DH-EKE protocol where one of the exponentials is sent in unencrypted form. This attack has been overlooked in the prior art. Referring to
The example in
5. Hidden-Password Validation (HVER)
We now describe a hidden-password verification (HVER) extension method that reduces the vulnerability of the password if a host computer's password database is exposed. This is useful for authenticating Alice to Bob, where Bob is the host computer, and Alice is the user's computer. Bob only has access to a hidden copy of the password, Hidden(C), while Alice has access to the unhidden password, C. Alice also knows how to compute Hidden(C). Alice's knowledge of the Hidden function may be either embedded in the mechanism, or in part determined by a "salt" value obtained from Bob prior to the HVER protocol exchange.
The HVER enhancement method presupposes that Alice and Bob share access to a mutually authenticated secret key K1. This value will have been obtained from our SPEKE method, the DH-EKE method, or any minimal-disclosure authenticated exchange based on shared knowledge of the one-way-hidden password S=Hidden(C). Shared knowledge of K1 constitutes the proof that each party knows Hidden(C). Performing S=Hidden(C) before calculating the f(S) function in SPEKE gives mutual authentication based on the hidden password.
The HVER enhancement gives Bob additional assurance that Alice knows C, even though Bob only knows Hidden(C).
In general, the HVER method solves the same problem as the Bellovin A-EKE method. It overcomes Some difficulties described in [BM94]: In one version of A-EKE, finding a "commutative hash function" which was Suitable to their protocol was an unsolved problem as of that time. In another version of A-EKE, dynamically calculating the needed public/private key pairs was either tricky or expensive.
5.1. Goals of HVER
The goals of this type of enhancement were stated in [BM94], but for convenience are restated here. In this discussion, we introduce Harry, an attacker who has obtained the value of Hidden(C) and is trying to masquerade as Alice to Bob. Our goals are as follows:
It should be noted that the apparent limitations of this and any method are:
5.2. Basic HVER Method
We describe the HVER method in terms of a commutative family of keyed mapping functions Hi, where i selects a particular member of the family. The constraints for this family are the same as those described for the commutative keyed mapping functions in SPEKE. HVER will use these mapping functions to arrive at a shared value K2, which is used in a proof to Bob that Alice knows C.
In the HVER exchange, Bob chooses a random integer X 511 to select a second mapping function HX to create a challenge U=HX(g) 512 to send to Alice 518. Before Alice can begin her part of the HVER exchange, Alice and Bob must have completed a prior SPEKE (or equivalent) exchange to obtain a shared authenticated value for K1. This prior exchange may be based on using on using S=Hidden(C) as the shared Secret. Since Alice knows C 501, She uses the same first mapping function HC to convert the challenge U 518 into a value K2=HCHX(g) 504. This value K2 is used along with K1 to prove to Bob that Alice knows C.
Here is a full sequence incorporating a SPEKE exchange. At time of password setup:
Alice computes S=HC(g) and sends it to Bob.
Bob stores g 510, and S 533, and associates S with the name of Alice.
At the time of authentication, prior to the SPEKE exchange,
Alice computes S=HC(g).
Both Alice and Bob use S as the shared-secret basis for a SPEKE exchange to agree on a shared, authenticated-key K1, which is now available to Alice 531 and Bob 532. Bob performs the following steps in sequence:
511 chooses a random integer X, 512 computes U = HX(g), and 518 sends U to Alice.
After receiving U from Bob 518, Alice, who has access to C 501 and K1 531, performs the following in sequence:
computes K2 = HC(U),
constructs W as proof of knowledge of K2 and K1, and
sends W to Bob.
Independently, after choosing X 511, Bob computes K2=HX(HC(g)) 513. Then, after receiving W from Alice 509, Bob verifies that W proves that she knows both K1 and K2 515.
If the verification succeeds, Bob has proven that Alice knows C, and the protocol succeeds 517. If the verification fails, Bob aborts the protocol 516.
5.3. Pre-Computation of Challenge
If desired, Bob can choose X 511, and compute U 512 much earlier, in anticipation of an actual exchange. He may even choose to pre-compute values for K2 513, though in this case values for K2 and X would have to be stored separately for each user.
5.4. Choice of a Proof Function
The proof step in HVER can use any of several well-known methods for proving knowledge of a high-entropy secret, to prove to Bob that Alice knows both K2 and K1. If they don't use an explicit verification in HVER, Alice and Bob might use implicit verification by using a session key based on a function of both K1 and K2. Either an interactive or a non-interactive proof may be performed, as was discussed in the case of SPEKE, though we will show Some dangerous variations to avoid.
It is important to notice that the value of K2 cannot be sent to Bob, either in the clear, or alone in a one-way hashed form. If K2 were sent in clear or hashed form, the HVER protocol would be vulnerable to a dictionary attack by an eavesdropper.
It is also important that the value of K2 cannot be sent to Bob in a symmetrically encrypted form with K1 as a key. If K2 were encrypted with K1, Shown as
then Harry would be able to pose as Alice if he had previously performed a "man-in-the-middle" attack on the exchange that determined K1. (This presumes that Harry had access to S.) The choice for the proof function must insure that knowledge of K1 does not reveal the value of K2, to thwart this attack by Harry-in-the-middle.
Furthermore, if K1 were sent in a form encrypted with K2, W=EK
Thus, the proof must be constructed for both K1 and K2. More specifically, the choice of a proof function must have at least the following information-hiding properties:
5.5. Selecting the Commutative Mapping Family H
In our preferred embodiment of HVER, we (again) use exponentiation in ZpH*.
(Note that we use pH here to distinctly identify the modulus used in HVER, which may be different than p, the modulus used in SPEKE.) We again choose a safe prime, pH=2q+1, and discuss the method in terms of a commutative mapping function, Such that Hk(x)=xk mod pH. In this case, the random number x is chosen between 2 and pH−2, and g is a generator of the large subgroup of prime order q.
However, in light of the "password-in-exponent" attack for SPEKE described above, we must be careful to avoid an unwanted interaction between the Hidden(C) function in HVER and the f(S) function in SPEKE. For example, if both HVER and SPEKE use exponentiation in the same group, with pH=p, then the following functions would enable the "password-in-exponent" attack:
S=Hidden(C)=g C mod p,
f(S)=S 2
f(S)=g 2C (unsafe!)
There are several ways to avoid this problem. One is to make the HVER group different than the group used in SPEKE, perhaps by simply using an alternate value for the modulus, as in f(S)=(gC mod pH)2 mod p. Another approach is to insert a hash function to break the association between these two functions, as in f(S)=SHA(S)2.
5.6. Incorporating "Salt"
It may be desirable to mix in a salt factor into the S=Hidden(C) function to insure that two different users' Stored hidden passwords appear different even when the passwords are the same. Since our method is to be based only on a memorized password with no other persistent stored Secrets for Alice, we naturally ask how Alice obtains the value for g. There are at least three possibilities:
In choices 2 and 3, the value g can be chosen differently for each user to act as a "Salt" factor. If so, Bob must record the salt g with his copy of Hc(g) for each user. This is one way to add a "Salt" factor into the Hidden(C) function, where each user has a different unique salt value.
When HVER is used in a combined method with a SPEKE exchange, g must be available to Alice prior to her computation of the one-way function of the password Hidden(C) which is needed to compute f(S) in
A natural choice is to make g the salt factor, as in the following example:
S=Hidden(C)=H C(g)=g C mod P H
f(S)=S mod p
In this case, f(S)=(gC mod pH) mod p, where g is a generator of GF(pH)*.
But some care must be taken when the salt is combined with a mapping function in order to strengthen the security of a stored one-way hidden password. The salt is intended to make it harder for an attacker with S to find C using a pre-built table. Let's examine:
Hidden(C)=k(C�T) mod pH, with a constant k and a salt factor T
This is unacceptable because this would allow an attacker who knows T and Hidden(C) to easily remove the salt by computing U=T−1 mod (pH−1), and computing:
k (S) =k (S�T�U)
This attack is easily avoided by keeping the salt out of the exponent modulo pH.
5.7. Other Analysis
Note that even if Barry obtains Hidden(C), and poses as Bob, he cannot obtain S from this protocol any easier than by a dictionary attack on Hidden(C). He might try to reversing the one-way mapping function, but in our preferred embodiment in Zp*, trying to obtain C given HC(g) and g is equivalent to solving the discrete logarithm problem, which can be made arbitrarily hard.
Also note that if Barry steals Hidden(C), he can pretend to be Bob in a SPEKE+HVER protocol initiated by Alice. This highlights the need to keep Hidden(C) truly secret. However, Barry may be limited somewhat in this masquerade, since unless he can also obtain C, he still has no way of actually monitoring a valid conversation between Bob and Alice, and thus may have difficulty proceeding much further.
It is also worth the trouble to prevent small subgroup confinement of Hidden(C). For Zp*, where p=2q+1, C must not be equal to a multiple of pH−1, or (pH−1)/2. This can be avoided at time of password selection, or by carefully choosing the representation of C, as discussed earlier.
6. Combined SPEKE+HVER Protocols
Here we present an embodiments of combined SPEKE and HVER protocol exchanges, that incorporates the previously discussed constraints to prevent attack. The first embodiment uses five messages to explicitly prove to Bob that Alice knows C, and to prove to Alice that Bob knows Hidden(C). The second embodiment uses only two messages, with some resulting limitations. Many further variations of these methods using 3, 4, or more messages are also possible, which will be obvious to those skilled in the art.
Summary of notation:
A Alice's user name or user-identifier. C password for Alice to talk to Bob.
HVER notation:
PH a large prime associated with C, where (pH − 1)/2 is also prime. g an element of GF(pH)* of order (pH − 1)/2, based on A. S one-way hidden password, equal to (gC mod pH). X a random number chosen by Bob. K2 the HVER key, equal to g(X C) mod pH.
SPEKE notation:
a large prime, where (p − 1)/2 is also prime.
a prime equal to (p − 1)/2.
a random number chosen by Alice.
a random number chosen by Bob.
the SPEKE key, equal to S(2 R
6.1. Five-Message Protocol
In this five-message protocol, the HVER combined proof of K1 and K2 eliminates the need for the SPEKE proof of K1 from Alice to Bob.
We presume that Bob has recorded {A, S, g} in his password database.
A → B: [A] B: Using A, lookup hidden password S, and "salt" g Choose a random integer RB Compute QB = h(S)(2 R B → A: [QB, g] A: Choose a random integer RA Compute S = gC mod pH Compute QA = h(S)(2 R Compute K1 = QB R If K1 is confined, abort A → B: [QA] B: Compute K1 = QA R If K1 is confined, abort Compute VB = h(h(K1)) Choose a random X Compute U = gX mod pH B → A: [VBU] A: If VB ≠ h(h(K1), abort, else Bob is verified Compute K2 = UC mod pH Compute W = MAC(K1, K2) A → B: [W] B: Compute K2 = SX mod pH If W ≠ MAC(K1, K2), abort, else Alice is verified K = h(K1, K2) A: K = h(K1, K2)
K can then be used as an authenticated key.
6.2. Two-Message Protocol
A Simple rearrangement of the steps in SPEKE+HVER can reduce the protocol from five messages to two. This example uses two other techniques that may limit the effectiveness of this method in particular situations:
Using implicit verification of Alice to Bob will introduce a risk if Bob is unable to distinguish between valid and invalid access attempts by monitoring the subsequent session. This version does perform an explicit verification of Bob to Alice.
Choose a random RA.
Compute g = (2 + A) mod pH − 3.
Compute S = gC mod pH.
Compute QA = h(S)(2 R
Using A, lookup S, and g.
Choose a random RB.
Compute QB = h(S)(2 R
Compute K1 = QA R
If K1 is confined, abort.
Compute VB = h(h(K1))
Choose a random X
Compute U = gX mod pH.
Compute K1 = QB R
If K1 is confined, abort.
If VB ≠ h(h(K1), abort, else Bob is verified.
Compute K2 = UC mod pH.
K = h(K1, K2)
Compute K2 = SX mod pH.
K = h(K1, K2)
Alice is not yet verified.
In this minimized protocol, the subsequent session will fail if Alice did not use the correct value for S. Bob must confirm whether or not the session failed in order to detect and account for direct on-line password guessing.
7. Uses of the Invention
These methods provide strong authentication based on small passwords, without requiring the deployment of large secret keys. Because small secrets can be easily memorized, these methods are valuable wherever distribution or safe storage of large keys is a problem. Since passwords are ubiquitous, this invention has broad applications. It is useful for enhanced security in situations where passwords or PINS are traditionally used, such as remote personal-computer banking, authenticating access for portable telephones, and in general, remote secure financial and other transactions. It is also suitable for general computer network login procedures, where the security of the underlying network may not be entirely trusted.
In systems where only a numeric keypad is available, such as telephones and TV remote control units, the ability to enter a small numeric password to securely authenticate the user is especially valuable. Assuming that about 64 bits are needed for a nominally secure cryptographic key, traditional challenge/response authentication methods vulnerable to off-line dictionary attack are inadequate for numeric keypad password applications. To securely use a traditional method, the user must enter a memorized sequence of about 20 or more randomly selected digits. Since this is impractical, and users will either write down the password or choose a shorter one, traditional methods do not provide adequate security.
With minimal disclosure key exchange methods, which make off-line attacks infeasible, and where the system detects and deters active attacks, much smaller secret passwords can be safely used.
7.1. Summary of Differences from Prior Art
Our methods differ from much of the prior art in that they address the goal of preventing dictionary attacks against small passwords. With respect to minimal-disclosure methods such as EKE, A-EKE, the "secret public-key" methods, and FKN, our invention presents different methods, addressing similar goals. Some advantages of our methods vs. the EKE methods are significant in specialized applications. In general, our methods can serve as a replacement for the EKE methods.
Our methods rely solely on a password, and are simpler than methods that incorporate public-key digital signature. There is no need for persistent stored secret keys, public keys, or certificates on at least one side of the exchange.
With regard to DH-EKE, our methods are simpler in that we don't rely on a symmetric encryption function, which more easily facilitates formal analysis. It may also permit a wider selection of suitable DH groups, such as elliptic curves, which can be used for more efficient implementations.
A note about simplicity: Despite the constraints required to prevent attack, embodiments of our methods are simpler than other methods in the prior art. Simplicity is important to facilitate a proof of correctness, or make it easier to implement and to verify the correctness of the resultant software or hardware embodiment.
7.2. Hybrid Systems
Although these methods not require or use credentials such as long-lived large symmetric or public-keys, we do not intend to discourage hybrid systems incorporating these methods in conjunction with public-key or other technology. On the contrary, an important use of our methods is in properly designed hybrid systems, to create a secondary independent basis for authentication. Many systems use passwords to protect long-term keys, or vice-versa, essentially resulting in a single point of failure. In such systems, a single act of guessing the password or stealing the key, breaks the system. Stronger systems use two independent methods for verifying "Something you have" and "something you know", such as a key and a password. With these new methods, a small password stands on its own as an equally strong pillar of the security foundation.
8. References
U.S. Patent Documents
4,200,770 4/1980 Hellman et al. 178/22
Describes the Diffie-Hellman method, which forms a basis for many public-key methods including ours.
5,421,599 8/1993 Bellovin et al. 380/21
Describes the Encrypted Key Exchange family of methods, one of which is the DH-EKE method, a different alternative to our SPEKE method, largely addressing the same goals. DH-EKE uses symmetric encryption, and SPEKE does not.
5,440,635 8/1995 Bellovin et al. 380/25
Describes two Augmented Encrypted Key Exchange methods, one of which is incomplete, and another which is a different alternative to our HVER method, addressing similar goals. A-EKE uses only one message, while HVER uses two.
5,491,749 Rogaway
Describes an extension to DH-EKE with the addition of an extra "authentication tag" that utilizes the "long-lived shared secret key" (password). This differs from SPEKE and SPEKE+HVER in the same way that DH-EKE differs.
It is obvious that minor changes may be made in the form and construction of the invention without departing from the material spirit thereof. It is not, however, desired to confine the invention to the exact form herein shown and described, but it is desired to include all such as properly come within the scope claimed.
|Cited Patent
|Filing date
|Publication date
|Mar 1, 2002
|Sep 14, 2004
|Phoenix Technologies Ltd.
|Cryptographic methods for remote authentication
|Citing Patent
|Filing date
|Publication date
|Jun 24, 2003
|Oct 16, 2007
|Telefonktiebolaget Lm Ericsson (Publ)
|Secure communications
|Aug 22, 2007
|Mar 10, 2009
|Telefonaktiebolaget L M Ericsson (Publ)
|Secure communications
|Jun 22, 2005
|Sep 8, 2009
|Apple Inc.
|Chaos generator for accumulation of stream entropy
|Jan 16, 2009
|Jan 19, 2010
|Apple Inc.
|Small memory footprint fast elliptic encryption
|Oct 24, 2006
|Aug 23, 2011
|Authernative, Inc.
|Two-channel challenge-response authentication method in random partial shared secret recognition system
|Jun 9, 2008
|May 28, 2013
|Nec Corporation
|Key exchange device
|Jun 10, 2011
|Sep 24, 2013
|Adobe Systems Incorporated
|Imparting cryptographic information in network communications
|Dec 28, 2010
|Dec 31, 2013
|Authernative, Inc.
|System and method for cryptographic key exchange using matrices
|Aug 10, 2006
|Dec 31, 2013
|Samsung Electronics Co., Ltd.
|Method for performing multiple pre-shared key based authentication at once and system for executing the method
|Sep 14, 2012
|Jan 7, 2014
|Adobe Systems Incorporated
|Real-time priority-based media communication
|Dec 28, 2010
|Feb 18, 2014
|Authernative, Inc.
|System and method for mutually authenticated cryptographic key exchange using matrices
|Oct 23, 2012
|Oct 21, 2014
|Authernative, Inc.
|Authentication method of field contents based challenge and enumerated pattern of field positions based response in random partial digitized path recognition system
|Aug 13, 2012
|Dec 23, 2014
|Adobe Systems Corporation
|Imparting real-time priority-based network communications in an encrypted communication session
|Oct 23, 2012
|Feb 10, 2015
|Authernative, Inc.
|Authentication method of enumerated pattern of field positions based challenge and enumerated pattern of field positions based response through interaction between two credentials in random partial digitized path recognition system
|Sep 16, 2013
|Jun 9, 2015
|Adobe Systems Incorporated
|Imparting cryptographic information in network communications
|Nov 19, 2013
|Jul 14, 2015
|Adobe Systems Incorporated
|Real-time priority-based media communication
|Oct 23, 2012
|Dec 15, 2015
|Authernative, Inc.
|Back-end matching method supporting front-end knowledge-based probabilistic authentication systems for enhanced credential security
|Jun 24, 2003
|Apr 29, 2004
|Christian Gehrmann
|Secure communications
|Jun 22, 2005
|Dec 28, 2006
|Crandall Richard E
|Chaos generator for accumulation of stream entropy
|Aug 10, 2006
|Feb 22, 2007
|Choi Jin-Hyeock
|Method for performing multiple pre-shared key based authentication at once and system for executing the method
|Aug 22, 2007
|Dec 13, 2007
|Christian Gehrmann
|Secure communications
|Oct 24, 2006
|Apr 24, 2008
|Authernative, Inc.
|Two-channel challenge-response authentication method in random partial shared secret recognition system
|Jan 16, 2009
|May 28, 2009
|Crandall Richard E
|Small Memory Footprint Fast Elliptic Encryption
|Jun 9, 2008
|Aug 5, 2010
|Jun Furukawa
|Key exchange device
|U.S. Classification
|713/171, 380/30
|International Classification
|Cooperative Classification
|European Classification
|Sep 8, 2009
|Fee payment
Year of fee payment: 4
|Nov 24, 2010
Owner name: HIGHBRIDGE PRINCIPAL STRATEGIES, LLC, AS COLLATERA
Free format text: GRANT OF SECURITY INTEREST - PATENTS;ASSIGNOR:PHOENIX TECHNOLOGIES LTD.;REEL/FRAME:025406/0604
Effective date: 20101123
|Aug 16, 2012
Owner name: PHOENIX TECHNOLOGIES LTD., CALIFORNIA
Free format text: MERGER;ASSIGNOR:INTEGRITY SCIENCES, INC.;REEL/FRAME:028801/0937
Effective date: 20010216
Owner name: INTEGRITY SCIENCES, INC., MASSACHUSETTS
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:JABLON, DAVID P;REEL/FRAME:028800/0940
Effective date: 19970322
|Aug 23, 2012
Owner name: PHOENIX TECHNOLOGIES LTD., CALIFORNIA
Free format text: MERGER;ASSIGNOR:INTEGRITY SCIENCES, INCORPORATED;REEL/FRAME:028837/0790
Effective date: 20020927
|Sep 25, 2012
|Certificate of correction
|Nov 13, 2012
Owner name: MEP PLP, LLC, CALIFORNIA
Free format text: SECURITY AGREEMENT;ASSIGNOR:HIGHBRIDGE PRINCIPAL STRATEGIES, LLC;REEL/FRAME:029291/0354
Effective date: 20121109
|Nov 15, 2012
Owner name: PHOENIX TECHNOLOGIES LTD., CALIFORNIA
Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:MEP PLP, LLC;REEL/FRAME:029307/0590
Effective date: 20121112
|Nov 21, 2012
Owner name: KINGLITE HOLDINGS INC., SINGAPORE
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:PHOENIX TECHNOLOGIES LTD.;REEL/FRAME:029339/0716
Effective date: 20121115
|Sep 9, 2013
|Fee payment
Year of fee payment: 8
|Jan 13, 2017
Owner name: AMERICAN MEGATRENDS, INC., GEORGIA
Free format text: LIEN AND SECURITY INTEREST;ASSIGNOR:KINGLITE HOLDINGS INC.;REEL/FRAME:041366/0255
Effective date: 20161121


text:
- Authors:
- Abstract:
- This paper presents a framework for modelling group struc- tures and dynamics in both artificial societies and human-populated vir- tual environments such as computer games. The group modelling (GM) framework proposed focuses on the detection of existing, pre-defined group structures and is composed of a reinforcement learning method that infers collaboration values from the society's local interactions and a clustering algorithm that detects group identities based on the learned collaboration values. An empirical evaluation of the framework in the social ultimatum bargain game shows that the GM method proposed is robust independently of the size of the society and the locality of the interactions.
- 9783642330926
- Type:
- Book chapter
- Language:
- English
- Published in:
- Lecture Notes in Computer Science: 12th International Conference on Simulation of Adaptive Behavior, Sab 2012, Odense, Denmark, August 27-30, 2012. Proceedings, 2012, p. 421-430
- Keywords:
- Group Identity Detection, Reinforcement Learning, Hierarchical Clustering, Artificial Societies, Complex Adaptive Systems, Complexity.
- Main Research Area:
- Science/technology
- Publication Status:
- Published
- Series:
- Lecture Notes in Computer Science
- Review type:
- Peer Review
- Publisher:
- Springer
- Submission year:
- 2012
- Scientific Level:
- Scientific
- 2185939445

subset: commoncrawl


text:
Hey there, time traveller!
This article was published 19/6/2013 (1521 days ago), so information in it may no longer be current.
CancerCare Manitoba has launched a new program to ensure First Nations, Metis and Inuit people receive prompt care.
The new program is the latest phase of the Manitoba government's Cancer Patient Journey Initiative, established in 2011. It aims to reduce the time from suspicion of cancer to first treatment to 60 days or less.
"The Manitoba government is committed to ensuring all Manitobans dealing with cancer get the help they need when they need it most," said Oswald. "The First Nations, Metis and Inuit Cancer Control Program increases access to diagnosis, treatment and support for all Manitobans facing barriers to cancer services, resulting in less stress and worry for patients and their families."
Patient access co-ordinators will work with patients, families and health-care providers to connect people to the care and support services they need.
The program will also reach out to new Canadians and other populations who face challenges in accessing cancer services due to factors such as language, geography or lack of knowledge about cancer screening, prevention and care options, said Oswald.


text:
We already utilize Spiceworks for our helpdesk. I am looking for a change management solution and would like to use Spiceworks for this. Can this be done without using 2 installs of Spiceworks? I would also want this to be separate from the helpdesk.
3 Replies
Jan 28, 2011 at 10:59 UTC
Here's pretty much what we do - http:/
Jan 29, 2011 at 11:55 UTC
Petes PC Repairs is an IT service provider.
you could use the netwrix free products and get them to send to your helpdesk email account and thus raise tickets for chnages
Feb 28, 2011 at 2:30 UTC
Have you looked at the TimeLine feature in the SW Inventory?
This discussion has been inactive for over a year.
You may get a better answer to your question by starting a new discussion.


text:
|1,300 sq. ft.
|Property type
|Minimum Stay
|4 - 7 nights
If you don't like getting on a crowded elevator in your swim suit, Lighthouse II is your vacation home. Walk directly to the beach through a lockable door from your balcony. A barbecue grill is also directly below your balcony. There are only six units at Lighthouse II. This spacious three bedroom condo is on the first floor, just one flight up from the parking lot. The balcony offers an unobstructed view from large chairs that are just the right height.
Inside, comfortably furnished surroundings are ready for rest after days of activity. The living room has plenty of seating and a flat screen TV. All three bedrooms have queen size beds. There are TV sets with cable in all three bedrooms. The sofa coverts to a queen size bed. Ceiling fans keep cool air moving in every room. The fully equipped kitchen includes a full size refrigerator, stove with oven, microwave, toaster, small appliances, cookware. Dishes, glassware and tableware are on hand.
Linens are provided, beds will be made, kitchen and bath towels, some soap, paper towels and trash bags will be on hand. You will not have to begin your vacation by making beds or running to the store to get toilet paper, and if you get in late, you can still have a cup of coffee in the morning.
Surfside Beach is perfect for a family vacation, away from the traffic and crowds, but still a short drive to the wide variety of attractions, shopping, dining and entertainment the Grand Strand has to offer. There are over 100 golf courses nearby. The Surfside Beach pier, restaurants and shops are a few blocks north from Llghthouse II. Luxury shopping and dining are a few minutes north in the Market Commons area. Just a short drive north are all the attractions and shopping of Myrtle Beach, Broadway at the Beach, Coastal Grand shopping center, the Myrtle Beach boardwalk, and one of the world's largest Ferris wheels. About 15 minutes south is the Murrell's Inlet restaurant row, said to be "the seafood capital of South Carolina". For a unique cultural experience, Brookgreen Gardens displays one of the world's largest collections of sculpture by American artists in a lush outdoor setting, along with a zoo and butterfly garden, it's just a few minutes south on Business 17.
It's easy to see that memorable and relaxing vacation days will begin and end here, is it not?
The person renting this property must be at least 25 years old, have a valid credit card, and be present for the entire rental.
Parking is limited at all oceanfront properties. We can only provide the number of parking tags allowed by the Home Owners Association and property manager. None of these properties provide more than TWO parking tags. No additional parking tags are available
Stayed July 4th week with our 2 daughters, spouses and grandchild (11 months). Super convenient to walk right on the beach without dragging tent, baby stuff, etc. Also can run in quickly to get food and drink. The beach is very wide here and not crowded. Fireworks were all around and we just walked out on the beach to observe.
Very nice and clean condo as well as equipped with all the essentials you will need to enjoy your stay there. Fantastic beach location along with the surrounding scenery. The views of the ocean from condo's balcony are simply beautiful. Also, the condo location is convenient to grocery stores, restaurants, and other Grand Strand locations. We highly recommend Lighthouse II, Unit 1!
We stay in Surfside every summer. This condo is perfect for families with young children. It never fails you get everyone in their swimsuit with lotion and hit the beach for only 45 minutes when someone needs to go back to the condo for a snack or a bathroom break. The access to the condo from the beach is very convenient. The view is perfect and the accommodations are very comfortable. We will definitely stay at the Lighthouse again next year.
This is the second year we stayed here. It was perfect. The condo has everything that we need and we were able to start our vacation as soon as we got there. We are looking forward to coming back next year.
Location and view was amazing! We had everything we needed and we plan to stay again.
The only problem is one bedroom has a bed that is hard as a rock. The rest are great! The staff was friendly and helpful.
My family had a great time at your condo. Everything was super clean and comfortable. Basic necessities were available to get us started through our time there. The views were fantastic and we loved the straight access to the beach. It was extremely quiet and a great place for our young family. The pictures and description of the location was right on and the help you all gave us prior to our trip with things to do was very helpful! If I could say one thing I wish was different, I would say the pillows on our bed were a tad uncomfortable. However, we could always bring our own pillows next time! Thanks for the great place for our spring break vacation!
Myrtle Beach is a unique vacation destination that has a little bit of everything, and no matter which one of our Myrtle Beach home rentals you choose, you'll be nearby beautiful beaches, shopping centers, golf courses, fishing, restaurants, theaters and nightlife. Perfect for either families or couples, our Myrtle Beach home rentals offer luxurious and convenient amenities; beautiful décor; access to pristine beaches; and magical views of the sparkling Atlantic Ocean!
The Grand Strand is a large stretch of beautiful beaches where many of our Myrtle Beach home rentals are located. Once a hiding place popular among notorious pirates, today among America's most popular vacation destinations, Myrtle Beach's Grand Strand offers a wide variety of recreation and entertainment activities. Start with miles and miles of golden soft sand on a shore that slopes gently into the Atlantic. The Grand Strand was voted #1 in the USA (#6 in the world) in a recent poll of frequent travelers.
The communities just south of our Grand Strand Myrtle Beach home rentals, Surfside Beach and Garden City, are our most "family friendly" areas and offer scores of reasonably priced ocean front Myrtle Beach condo rentals for family enjoyment of the warm sunshine, sand, and the vast Atlantic. Many of these condos are large enough to accommodate several families, a perfect reunion setting.
Golf is the "national" pastime of The Grand Strand. Some say you can play a different course every day of the year. That's probably an exaggeration, but certainly you can play 36 holes a day for a week, (or a month) without seeing the same course twice. There are well over 100 golf courses to choose from near many of our Myrtle Beach home rentals. Fishing is the lesser-known area sport. Inland waterways and shallow coastline areas offer anglers lots of action, with guides available to show the way.
A perfect family vacation area, there are dozens of attractions and amusement parks close to many of our Myrtle Beach home rentals for kids of all ages. The new SkyWheel, a 200 foot high Ferris wheel, is an amazing attraction and is said to be among the largest in the world. Also not far from many of our Myrtle Beach home rentals are zoos, an aquarium (with a dozen species of sharks!), science and curiosity exhibits and museums for family entertainment. Surfside Beach and Garden City both offer amusement parks the kids and parents alike will love.
For a combination of art, culture and nature many of our Myrtle Beach home rentals are right near Brookgreen Gardens. This 9,000 acre park exhibits one of the largest collections of sculpture by American artists in the world. The manicured lawns with walkways and pools beautifully enhance these spectacular works of art.
Restaurants are everywhere, with options for every taste and budget. Just about every cuisine in the world seems to be represented all only a short ways from many of our Myrtle Beach home rentals. Seafood is, of course, the staple, there are a large selection of places to get all you want. Murrell's Inlet says it's the Seafood Capital of South Carolina, and boasts a long row of highly regarded seafood restaurants to prove it.
Nightlife? If you're not worn out yet, choose from live popular music, professionally produced stage shows, and "tribute" acts that pay homage to the legends of popular music, playing "oldies" that are sure to bring back memories.
Search for one of our incredible Myrtle Beach home rentals and begin planning your memorable beach vacation today!


text:
Hotel Transylvania 2012 - The Zing (You're my Zing) [HD - Lyrics] MP3
Hotel Transylvania 2012 - The Zing (You're my Zing) with Lyrics.
My Zing - Hotel Transylvania (Full) (Lyrics) MP3
My Zing - Hotel Transalvania (Full) (Lyrics) Full song with lyrics Buy it on DVD and Bluray!: http://amzn.to/1FLnfG0.
The Zing Song Extended MP3
Buy it! Gorgeous cartoon!! You will love it!!! http://sh.st/O5HEh © 2013 Sony Pictures Animation Inc. All rights reserved. © 2013 Layout and Design Sony Pictures ...
Hotel Transylvania The Zing lyrics (Cause You're My Zing) (read description) MP3
Speed Paint Of Mavis: http://www.youtube.com/watch?v=TSdeD42EAMs Becky G Monster Remix Lyrics Video: https://www.youtube.com/watch?v=eAxBYvvkQkE ...
Hotel Transylvania Monster Party - Where Did The Time Go Girl + Lyrics MP3
This is a great scene from the movie Hotel Transylvania where Dracula throws a party for his daughter Mavis' 118th birthday. Mavis has fallen for Jonathan, ...
Hotel Transylvania (Zing) Remix Song - Lyrics MP3
It's a remix song of Hotel Transylvania and BIGBANG song koewokikasete. No copy right intended.
Hotel Transylvania - Ending Song [Zing Song] [lyrics on description] MP3
This Is The Ending Clip From The Movie Hotel Transylvania. Thanks For Watching I Do Not Own The Movie Clips. I'm Not Selling, Just To Hear It. Do Not ...
Hotel Transylvania - The Zing (You're My Zing) MP3
Shoutz to Tynee Isaiah H Julien Dodin and marvin.
the zing song - chipmunk and chipettes (request) MP3
the zing song from hotel transylvania in chipmunk/chipette version! requested by chipmunks A :) jeanette: mavis simon: jonathan brittany: the mummy alvin: ...
The Zing OST Hotel Transylvania Full MP3
Hope U like this :)
the zing - hotel transylvania (greek audio) HD MP3
Hotel Transylvania MUSIC VIDEO - Monster Remix (2012) Adam Sandler Animated Movie HD MP3
Subscribe to TRAILERS: http://bit.ly/sxaw6h Subscribe to COMING SOON: http://bit.ly/H2vZUn Hotel Transylvania MUSIC VIDEO - Monster Remix (2012) Adam ...
Fifth Harmony - I'm In Love with a Monster LYRICS (hotel transylvania 2) MP3
I do not own anything. •Credits to Fifth Harmony and all the people behind this great song. •OST for the Hotel Transylvania 2 Movie. Song is available on iTunes.
Selena Gomez - The Zing Song ft. Hotel Transylvania Cast MP3
Music video by Selena Gomez ft. Hotel Transylvania Cast performing The Zing Song. (C) 2013 Hollywood Records, Inc.
Hotel Transylvania - You're My Zing Speed Paint (Colors! 3D Nintendo 3DS) MP3
If you haven't watched the film 'Hotel Transylvania' then I suggest that be the next thing that you do today. It is one of the best films I have EVER seen xD Music ...
Zing - Hotel Transylvania -Ganzes Lied- [German/Deutsch HD] MP3
Einfach ein Klasse Film und besonders diese Stelle. Ich fand das Lied so toll, dass ich es Uploaden musste! •Entschuldigt' wegen den Flackernden 60-58.
You're My Zing - Wilbur and Violet MP3
I just absolutely loved this song and I wanted to put it with one of my OTPs. I tried to match the lips to the words and I'm overall happy with the outcome.
[Vietsub + Kara] The zing song HD (Khách sạn Transylvania OST) MP3
My first sub :D.
Hotel Transylvania - Zing Ita + Testo MP3
le parole non sono perfette siccome non c'è una traduzione precisa del testo.


text:
"Quick & Efficient"
About: Medway Maritime Hospital Medway Maritime Hospital Gillingham ME7 5NY
Posted by KH
Anything else?
Visited a teledermatology nurse with appointment due at 17:10 and I arrived at 17:00. As soon as I walked through the door I was greeted by the nurse, taken through, everything was explained to me, photo's taken of the relevant area and I was on my way home before the appointment was even due! Very friendly lady, clean environment and efficient service.
Response from Medway Maritime Hospital 3 years ago
Thank you for your feedback. It is great to hear of your positive experience, we are glad you were seen promptly. We will ensure your comments reach the relevant team. All the best Medway Maritime Hospital team
- {{helpful}} of {{total()}} people think this response is helpful
- Was this response helpful? Yes | No
Thank you for your feedback.
See more responses from Medway Maritime Hospital


text:
Vincent Price was a true renaissance man. In addition to acting, he was a connoisseur of art and also of food. I believe we've discussed before the series of albums he released going over various world cuisines and providing recipes. Here, however, is a completely different sort of recipe: for a nice dish called "The Hand of Glory."
For tonight's feature, we go to 1927 and Tod Browning's The Unknown. Here you have Lon Chaney as an armless knife thrower in a circus...one who has a secret. Again we get to see Chaney, the consummate chameleon and actor, in a role that is wonderfully odd and completely human. Enjoy.


text:
MOWW selects Webb as top law enforcer
The Lt. Gen. Troy H. Middleton Chapter of the Military Order of the World Wars presented its 2014 Outstanding Law Enforcement Officer Award to East Baton Rouge Sheriff's Sgt. Jordan Webb on Jan. 6 at the Baton Rouge City Club.
EBRSO Maj. Bryan White, chief of detectives, highlighted the importance of responsive law enforcement and the role of the sheriff's office in protecting the community. White, who nominated Webb for the award, said Webb is a standout investigator in the Armed Robbery and Burglary Division. Sheriff Sid Gautreaux credited Webb with clearing three bank robberies and said Webb consistently goes the extra mile to assist victims, other investigators and agencies.
Webb's wife, Jessica, accompanied him. He received the award from the chapter commander, retired Lt. Col. Patrick L. Widner.
Yura selected to play harp at Carnegie Hall
Rachel Yura, a sophomore at Runnels High School, has been chosen to participate in the 2015 High School Honors Performance Series at Carnegie Hall. She will play the harp in the famous concert hall in New York City on Feb. 22 as a member of the Honors Orchestra and Concert Band.
About 10,000 students are nominated for the program each year, but only 500 are chosen to participate. Rachel is the third Runnels student selected for the Honors Performance Series at Carnegie Hall.
Rachel's interest in playing the harp started when she was a fifth-grader. The Runnels harp program had just been started by harp instructor Rebecca Todaro and Gladys Runnels. She has taken harp as part of her daily schedule at Runnels every year since then, for five years with Todaro and now with Runnels harp instructor Gabriela Werries. Rachel is a harpist with the 2014-15 Louisiana Youth Orchestra and has performed with the Louisiana Junior Youth Orchestra. She has also played her harp at several charity and business events and a wedding.
The High School Honors Performance Series at Carnegie Hall, which is open to students in grades 9-12 in the United States, Canada and some international schools, brings together accomplished young musicians for several days of rehearsal under renowned guest conductors in preparation for a performance in Carnegie Hall.
Rachel is the daughter of Thomas and Brooke Yura.
Compiled by Advocate staff writer George Morris. The "Community" column runs every Tuesday and Friday in The Advocate. Items should be submitted to "Community," Advocate eatplaylive section, P.O. Box 588, Baton Rouge, LA 70821, or emailed to firstname.lastname@example.com. Events should be submitted in a timely fashion. By submitting photos to The Advocate, you agree that they can be published in any of The Advocate's print or digital publications.


text:
What is JotForm?
JotForm is a free online form builder which helps you create online forms without writing a single line of code. No sign-up required.
At JotForm, we want to make sure that you're getting the online form builder help that you need. Our friendly customer support team is available 24/7.
We believe that if one user has a question, there could be more users who may have the same question. This is why many of our support forum threads are public and available to be searched and viewed. If you'd like help immediately, feel free to search for a similar question, or submit your question or concern.
How to have Unique Question on the FormAsked by optianimation on June 05, 2015 at 12:10 PM
Hi i send my form to my Customer, but hes doesnt send the soumission(response) because they received a popup with mention " multiple response are not activate)
how i fix that
JotForm Support Manager
Are you talking about this form? http://www.jotform.ca/form/50285665570258
I just submitted a test without any problem with the 3 forms you have in your account.Is the form embedded in a website? If so, please share with us the URL of the page.
yes is this form and i tried with 2 customer and is doesnt work
JotForm Support
Form Limits using Unique Question is activated on your jotform http://www.jotform.ca/form/50285665570258
Check the user guide: -How-to-set-Form-Limits-Based-on-a-Unique-Question
Disable/Remove the Unique Question set, will fix the issue of the pop-up message.
Hope this help. Let us know if issue persist.


text:
Push Button Cap, Illuminated, 30mm, Amber
SIEMENS| Zoro #: G2076645| Mfr #: 52RA5P9
Zoro #: G2076645Mfr. Part #: 52RA5P9
$6.70 /ea
Orders over $50.00 ship free. DetailsStandard ground shipping
Technical Specifications
|Zoro #: G2076645 Mfr #: 52RA5P9
|Size: 30mm
|Head Material: Plastic
|NEMA Rating: 1, 3R, 4, 4X, 12
|Item: Push Button Cap
|Color: Amber
|Basic Material: Plastic
|Illuminated / Non-Illuminated: Illuminated
|Connection Type: Screw On
|IP Rating: 66
|Country of Origin (subject to change): Mexico
Product Description
Push Button Cap, Color Amber, For Use With Siemens Push to Test or Illuminated Push Buttons, Size 30mm, Basic Material Plastic, Illuminated, Head Material Plastic, Connection Type Screw On, NEMA Rating 1, 3R, 4, 4X, 12, IP Rating 66


text:
Listen to free music by Surf Cinema
Blip.fm is internet radio made social. It's easy to search for, play, and discover free music recommended by real people. Join today to create your own free station.
Artists Like Surf Cinema
Blip.fm DJs who play Surf Cinema
Friends: MerchantCircle | Charity Blossom | Website Load Testing