I can attempt to define the term 'pepper' as:
In cryptography, a pepper is a something that is added to another value (for example a password) prior to a the value being hashed using a cryptographic hash function. A pepper can be added to a password in addition to a salt value. A pepper performs a similar role to a salt, however whereas a salt is commonly stored alongside the value being hashed, for something to be defined as a pepper, it should meet one of the following criteria that define it a more carefully hidden 'secret' than the salt value:
- The pepper is held separately from the value to be hashed
- The pepper is randomly generated for each value to be hashed (within a limited set of values), and is never stored. When data is tested against a hashed value for a match, this is done by iterating through the set of values valid for the pepper, and each one in turn is added to the data to be tested (usually by suffixing it to the data), before the cryptographic hash function is run on the combined value.
Is there a resource that can verify this as an authorative meaning of the term or otherwise? The articles I'm seeing on Goole aren't very authorative on the meaning of the term and are mutually contradictory in cases, so I'm deriving the definition above based on what's seemingly common in the software development community's understanding of the term 'pepper'.