When to Hyphenate Phrases Such as “Public Key”
University of California, Davis
CRYPTO ’98 Rump-Session Rant
international equalization compensation information officer.We defy the reader to figure out what that was supposed to mean without having some idea of what was the job! (The job was to figure out how much it costs to live like a stereotypical middle-class US-citizen in various cities of the world.)
(a) When a term like public key is used prenominally (that is, before a noun), use a hyphen:
a public-key encryption scheme
This use of the hyphen shows that the words public and key belong together and jointly modify the N-N encryption scheme. The use of the hyphen avoids the (admittedly far-fetched) reading of public as modifier for a key-encryption scheme.
(b) If public key is used by itself as a noun, it is not hyphenated:
Extract the public key from the certificate.
(c) In the somewhat unusual cases in which a term like public key is used to modify a noun, but is not positioned before a noun, it is not hyphenated.
Our encryption scheme, public key in nature, does not require the sender and receiver to share a secret.
Here are a few more examples where a hyphen is appropriate:
chosen-ciphertext attack block-cipher design key-distribution protocol secret-sharing scheme related-key attack zero-knowledge proof
and where one isn't:
a very long secret key L is in zero knowledge techniques for secret sharing
We comment that a few set phrases would seem to deserve a hyphen by the rule above, but invariable do not get one. These include data origin authentication and message authentication code. The failure to hyphenate such terms can be due to historical accident, widespread usage, or aesthetic sensibilities. We do not suggest to hyphenate such terms; the hyphenation rules above are most appropriately applied for terms which have been haphazardly treated in the literature, or terms which are new or obscure.
The problem of noun modifier “dis-ambiguation” has some natural remedies. One is that, over time, the words tend to get “spelled solid.” For example, we all write plaintext and ciphertext, not plain-text and cipher-text. And by now pseudorandom seems to be preferred by many people over pseudo-random.
Another way we deal with this problem is through acronyms. Within an established contest, acronyms like CCA (chosen-ciphertext attack), KDC (Key Distribution Center), NIZK (non-interactive zero knowledge), and VSS (Verifiable Secret Sharing) seem to enhance readability and neatly eliminate those unsightly hyphens.