<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=HMAC-based_One-time_Password_Algorithm</id>
	<title>HMAC-based One-time Password Algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=HMAC-based_One-time_Password_Algorithm"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=HMAC-based_One-time_Password_Algorithm&amp;action=history"/>
	<updated>2026-05-15T09:00:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=HMAC-based_One-time_Password_Algorithm&amp;diff=2405&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;'''HOTP''' is an HMAC-based one-time password (OTP) algorithm. It is a cornerstone of Initiative For Open Authentication (OA...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=HMAC-based_One-time_Password_Algorithm&amp;diff=2405&amp;oldid=prev"/>
		<updated>2019-03-21T04:05:41Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;HOTP&amp;#039;&amp;#039;&amp;#039; is an &lt;a href=&quot;/index.php?title=Hash-based_message_authentication_code&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Hash-based message authentication code (page does not exist)&quot;&gt;HMAC-based&lt;/a&gt; &lt;a href=&quot;/index.php?title=One-time_password&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;One-time password (page does not exist)&quot;&gt;one-time password&lt;/a&gt; (OTP) algorithm. It is a cornerstone of &lt;a href=&quot;/index.php?title=Initiative_For_Open_Authentication&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Initiative For Open Authentication (page does not exist)&quot;&gt;Initiative For Open Authentication&lt;/a&gt; (OA...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''HOTP''' is an [[Hash-based message authentication code|HMAC-based]] [[one-time password]] (OTP) algorithm. It is a cornerstone of [[Initiative For Open Authentication]] (OATH).&lt;br /&gt;
&lt;br /&gt;
HOTP was published as an informational [[IETF]] RFC 4226 in December 2005, documenting the algorithm along with a Java implementation. Since then, the algorithm has been adopted by many companies worldwide (see below). The HOTP algorithm is a freely available [[open standard]].&lt;br /&gt;
&lt;br /&gt;
==Definition==&lt;br /&gt;
Let:&lt;br /&gt;
*''K'' be a secret key&lt;br /&gt;
*''C'' be a counter&lt;br /&gt;
*''HMAC''(''K'',''C'') = [[SHA-1|SHA1]](''K'' ⊕ 0x5c5c… ∥ [[SHA-1|SHA1]](''K'' ⊕ 0x3636… ∥ ''C'')) with ⊕&amp;amp;nbsp;as XOR, ∥&amp;amp;nbsp;as concatenation, for more details see [[HMAC]] (C is the message)&lt;br /&gt;
*''Truncate'' be a function that selects 4 bytes from the result of the HMAC in a defined manner&lt;br /&gt;
&lt;br /&gt;
Then '''HOTP'''(''K'',''C'') is mathematically defined by&lt;br /&gt;
:'''HOTP'''(''K'',''C'') = ''Truncate''(''HMAC''(''K'',''C'')) &amp;amp; 0x7FFFFFFF&lt;br /&gt;
&lt;br /&gt;
The [[mask (computing)|mask]] 0x7FFFFFFF sets the result's [[most significant bit]] to zero. This avoids problems if the result is interpreted as a signed number as some processors do.&lt;br /&gt;
&lt;br /&gt;
For HOTP to be useful for an individual to input to a system, the result must be converted into a HOTP value, a 6–8 digits number that is implementation dependent.&lt;br /&gt;
&lt;br /&gt;
:'''HOTP-Value''' = '''HOTP'''(''K'',''C'') mod 10&amp;amp;lt;sup&amp;amp;gt;''d''&amp;amp;lt;/sup&amp;amp;gt;, where ''d'' is the desired number of digits&lt;br /&gt;
—&lt;br /&gt;
&lt;br /&gt;
==Applications==&lt;br /&gt;
HOTP can be used to authenticate a user in a system via an authentication server. Also, if some more steps are carried out (the server calculates subsequent OTP value and sends/displays it to the user who checks it against subsequent OTP value calculated by his [[Security token|token]]), the user can also authenticate the validation server.&lt;br /&gt;
&lt;br /&gt;
==Tokens==&lt;br /&gt;
Both hardware and software tokens are available from various vendors, for some of them see references below. Hardware tokens implementing OATH HOTP tend to be significantly cheaper than their competitors based on proprietary algorithms. As of 2010, OATH HOTP hardware tokens can be purchased for a marginal price. Some products can be used for strong passwords as well as OATH HOTP.&lt;br /&gt;
&lt;br /&gt;
Software tokens are available for (nearly) all major mobile/[[smartphone]] platforms ([[J2ME]], [[Android (operating system)|Android]], [[iPhone]], [[BlackBerry]], [[Maemo]], [[Mac OS X]], [[Windows Mobile]] after IETF adopted HOTP as RFC 4226 in December 2005, various vendors started to produce HOTP compatible tokens and/or whole authentication solutions (see above/below).&lt;br /&gt;
&lt;br /&gt;
According to a paper on strong authentication (entitled &amp;quot;Road Map: Replacing Passwords with OTP Authentication&amp;quot;) published by [[Burton Group]] (a division of [[Gartner|Gartner, Inc.]]) in 2010, &amp;quot;[[Gartner]]'s expectation is that the hardware [[One-time password|OTP]] form factor will continue to enjoy modest growth while [[smartphone]] OTPs will grow and become the default hardware platform over time.&amp;quot;&amp;amp;lt;ref name=&amp;quot;gartnerotprm&amp;quot;/&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Initiative For Open Authentication]]&lt;br /&gt;
* [[S/KEY]]&lt;br /&gt;
* [[Time-based One-time Password Algorithm]]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://wikipedia.org/ http://wikipedia.org/]&lt;br /&gt;
[[Category:Cryptography]]&lt;br /&gt;
[[Category:Cryptographic algorithms]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>