«Идентичность» здесь немного расплывчата. Например, если вы хотите быть уверены, что это Алиса, которая живет по адресу Главная улица, 123, в вашей системе слишком мало информации. Но закрытые ключи, пароли и т. Д. 1010 * тоже этого не делают. Идентификация может означать много вещей.
То, что вы, вероятно, имеете в виду здесь, это просто аутентификация; что человек - это то, кем, как они говорят, он является для довольно свободного определения «кто» (тот, который, возможно, является анонимным, и может даже не быть уникальным). Если вы хотите знать, что тот, кто обращается к ключу, - это тот, кто написал ключ, то ваша система делает это автоматически, если они не передают ключ кому-либо еще. Ключ - это секрет, и человек с секретом аутентифицируется, просто зная его.
Возможно, у вас есть дополнительные требования и цели, которые вы здесь не выразили, но если это единственное, что вы хотите сделать аутентифицирует пользователя, его владение общим секретом - именно то, как вы это делаете, и ваши ключи кажутся общими секретами.
Я немного обеспокоен вашим комментарием "очевидно, ключи publi c должен быть читаемым кем-либо ". Это совсем не очевидно. Только потому, что ключи publi c обычно не являются секретами, это не требуется. Вполне возможно, что секретный и закрытый ключи c могут быть секретными. Например, я могу дать свой ключ c только для определенных лиц. Если я затем получаю сообщение, которое я могу расшифровать с помощью своего закрытого ключа, это подтверждает, что отправитель является владельцем этого открытого ключа c.
Можете ли вы объяснить немного больше, какие варианты использования вы пытается включить с помощью этой аутентификации?