вот, допустим, я хочу передать клиенту (которому я не доверяю) некоторый кусочек данных, с которым он ко мне потом вернется. И допустим, пока клиент там чем-то занят, я не хочу хранить эти данные у себя. Но когда он вернется, я хочу быть уверенным, что это именно те данные, которые я ему вручил.
Понятно, что я могу сгенерировать себе приватный/публичный ключ, и использовать стандартную схему цифровой подписи. Это надежно, проверенно, но очень вычислительно затратно.
В качестве альтернативы, я могу сгенерировать себе большое случайное число, держать его в секрете, и использовать для подписи HMAC (или CMAC) с этим числом в качестве ключа. Ну и обеспечить, естественно, периодическую ротацию этого ключа и всякое такое. Выглядит это ничуть не менее секурно, но вычислительные затраты снижаются очень существенно.
Наверняка такую схему не я первый придумал. Внимание, вопрос, каково ее стандартное название (лучше на английском)?