None
Source string added |
|
None
Source string added |
A better approach would be to authenticate Alice without storing her password in clear on Bob's computer. For this, Alice computes a `hash chain` as proposed by Lamport in [Lamport1981]_. A hash chain is a sequence of applications of a hash function (`H`) on an input string. If Alice's password is `P`, then her 10 steps hash chain is : :math:`H(H(H(H(H(H(H(H(H(H(P))))))))))`. The result of this hash chain will be stored on Bob's computer together with the value `10`. This number is the maximum number of remaining authentications for Alice on Bob's computer. To authenticate Alice, Bob sends the remaining number of authentications, i.e. `10` in this example. Since Alice knows her password, `P`, she can compute :math:`H^9(P)=H(H(H(H(H(H(H(H(H(P)))))))))` and send this information to Bob. Bob computes the hash of the value received from Alice (:math:`H(H^9(P))`) and verifies that this value is equal to the value stored in his database. It then decrements the number of authorized authentications and stores :math:`H^9(P)` in his database. Bob is now ready for the next authentication of Alice. When the number of authorized authentications reaches zero, the hash chain needs to be reinitialized. If Eve captures :math:`(H^n(P))`, she cannot use it to authenticate herself as Alice on Bob's computer because Bob will have decremented its number of authorized authentications. Furthermore, given that hash functions are not invertible, Eve cannot compute :math:`H^{n-1}(P)` from :math:`H^{n}(P)`.
|
| Shortcut | Action |
|---|---|
| ? | Open available keyboard shortcuts. |
| Alt + Home | Navigate to the first translation in the current search. |
| Alt + End | Navigate to the last translation in the current search. |
|
Alt + PageUp or
Ctrl + ↑ or Alt + ↑ or Cmd + ↑ or |
Navigate to the previous translation in the current search. |
|
Alt + PageDown or
Ctrl + ↓ or Alt + ↓ or Cmd + ↓ or |
Navigate to the next translation in the current search. |
|
Ctrl + Enter or
Cmd + Enter |
Submit current form; this works the same as pressing Save and continue while editing translation. |
|
Ctrl + Shift + Enter or
Cmd + Shift +Enter |
Unmark translation as Needing edit and submit it. |
|
Alt + Enter or
Option + Enter |
Submit the string as a suggestion; this works the same as pressing Suggest while editing translation. |
|
Ctrl + E or
Cmd + E |
Focus on translation editor. |
|
Ctrl + U or
Cmd + U |
Focus on comment editor. |
|
Ctrl + M or
Cmd + M |
Shows Automatic suggestions tab. |
|
Ctrl + 1 to
Ctrl + 9 or
Cmd + 1 to Cmd + 9 |
Copies placeable of a given number from source string. |
|
Ctrl + M followed by
1 to 9 or
Cmd + M followed by 1 to 9 |
Copy the machine translation of a given number to current translation. |
|
Ctrl + I followed by
1 to
9 or
Cmd + I followed by 1 to 9 |
Ignore one item in the list of failing checks. |
|
Ctrl + J or
Cmd + J |
Shows the Nearby strings tab. |
|
Ctrl + S or
Cmd + S |
Focus on search field. |
|
Ctrl + O or
Cmd + O |
Copy the source string. |
|
Ctrl + Y or
Cmd + Y |
Toggle the Needs editing checkbox. |
| → | Browse the next translation string. |
| ← | Browse the previous translation string. |
None