Authentication system with multiple authentication modes using one-time passwords for improved security

The authentication system addresses the challenges of password security by generating and restoring time-dependent authentication parameters through reversible transformations, supporting multiple authentication modes for enhanced security and variability.

JP7655655B2Active Publication Date: 2025-04-02INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2023515644
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-10-06
Filing Date
2021-08-23
Publication Date
2025-04-02
Estimated Expiration
2041-08-23

AI Technical Summary

Technical Problem

Existing authentication systems face challenges in securely transmitting passwords over communication channels, as even encrypted passwords can be intercepted and used for unauthorized access. Additionally, traditional one-time passwords may not provide sufficient security due to their short validity periods.

Method used

The proposed solution involves a computer program product that generates authentication parameters using time-dependent inputs through a predefined transformation with an inverse transformation. These authentication parameters are then used to create a time-dependent password, which can be restored using the inverse transformation. The system supports multiple authentication modes with varying bit lengths for the time-dependent input, enhancing security and variability.

Benefits of technology

This approach provides enhanced security by allowing the regeneration of original time-dependent information from authentication parameters, enabling secure verification without the need for nonce values. The system's ability to support multiple authentication modes with different bit lengths maximizes variability, making it more resistant to unauthorized access attempts.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007655655000002
    Figure 0007655655000002
  • Figure 0007655655000003
    Figure 0007655655000003
  • Figure 0007655655000004
    Figure 0007655655000004
Patent Text Reader

Abstract

An authentication process is provided that includes generating an authentication parameter responsive to a time-dependent input using a predetermined transformation having an inverse transformation. Multiple authentication modes are supported, and the bit length of the time-dependent input for one authentication mode differs from the bit length of the time-dependent input for another authentication mode. The generation of the authentication parameter depends in part on whether the time-dependent input is for the one authentication mode or the other authentication mode. A time-dependent password including a character string is generated from the authentication parameter using another predetermined transformation having a different inverse transformation. The time-dependent password is transmitted within the authentication system for authentication by an authenticator.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a computer program product for an authentication process within an authentication system. [Background technology]

[0002] Authentication systems for authenticating a user to a system resource, such as a user application, are well known. Many authentication systems operate by using a password that is generally known only to the user and an issuer or certifier. Systems that transmit such a password over a communication channel from the node requesting the resource are susceptible to interception of the transmitted password by an unauthorized entity. Such an entity may then attempt to gain access to the system resource by using the intercepted password together with non-confidential information, such as a user ID, that may also have been intercepted.

[0003] To thwart attempts to gain unauthorized access, passwords are often transmitted over communications channels in encrypted form so that access to the communications channel does not yield the password itself in plaintext form. However, even systems that encrypt passwords before transmission are subject to situations in which the encrypted password can be recorded and then injected directly into the communications channel (rather than through a terminal or encryption device) to gain desired access.

[0004] To combat this problem, "one-time" or "dynamic" passwords are traditionally used, which are valid only for a short interval of time (e.g., one minute or less), so that interception of the one-time password during one interval does not provide any useful information to gain access to a system during a later interval.

[0005] This type of system typically generates a one-time password in response to secret information (such as a user password or an encryption key), time-dependent information (a time of day (TOD) or date-time value), and optionally non-secret information (such as a user ID or an application ID). The one-time password is sent to an authentication node where, in one embodiment, the password is compared to a comparison password, which is generated in a similar manner using the same secret and, if present, non-secret information along with a time value available at the authentication node. If the transmitted password matches the comparison password, the user is authenticated and access to system resources is granted. In another implementation, the need to generate a comparison password at the authenticator can be avoided by recovering the original date-time value from the received one-time password for direct comparison with the date-time value available at the authentication node. Summary of the Invention

[0006] In one or more embodiments, certain deficiencies in the prior art are overcome and further advantages are provided through the provision of a computer program product for authentication processing within an authentication system. The computer program product includes a computer readable storage medium readable by a processing circuit and having instructions stored thereon for performing a method. The method includes generating an authentication parameter responsive to a time-dependent input using a predefined transformation having an inverse transformation. The time-dependent input is recoverable from the authentication parameter using the inverse transformation, and the authentication system supports a plurality of authentication modes. A bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differs from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes. Furthermore, the generation of the authentication parameter depends in part on whether the time-dependent input is for the one authentication mode or the other authentication mode. The method also includes generating a time-dependent password including a character string from the authentication parameter using another predefined transformation having an inverse transformation, the authentication parameter being recoverable from the time-dependent password using the other inverse transformation, and forwarding the time-dependent password to an authenticator of the authentication system for authentication.

[0007] Computer systems and methods relating to one or more aspects may also be described and claimed herein. Additionally, services relating to one or more aspects may also be described and claimed herein.

[0008] Additional features and advantages are realized through the techniques described herein.Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed aspects.

[0009] One or more aspects of the present invention are particularly described and distinctly claimed by way of example in the claims at the end of this specification. The foregoing and other objects, features and advantages of the present invention will become apparent from the following detailed description read in conjunction with the accompanying drawings. [Brief description of the drawings]

[0010] [Figure 1] FIG. 1 is a block diagram of one embodiment of an authentication system for using an authentication process according to one or more aspects of the present invention. [Diagram 2] 2 is a more detailed block diagram illustrating further details of one embodiment of the authentication system of FIG. 1, in accordance with one or more aspects of the present invention. [Diagram 3] FIG. 1 is a block diagram of another embodiment of an authentication system in which an authentication password is generated by a security server using an authentication process according to one or more aspects of the present invention. [Figure 4] FIG. 1 illustrates one process embodiment for cryptographically converting a time-dependent input of any bit length to obtain a time-dependent authentication password for transmission to an authenticator of an authentication system, in accordance with one or more aspects of the present invention. [Diagram 5] FIG. 5 illustrates one process embodiment for evaluating a time-dependent authentication password in accordance with one or more aspects of the present invention, in which the original time value input to the cryptographic conversion process of FIG. 4 is restored for comparison with a reference time value. [Figure 6A] FIG. 2 illustrates a more detailed embodiment of a cryptographic conversion process for generating a time-dependent authentication password for transmission to an authenticator, in accordance with one or more aspects of the present invention. [Figure 6B] FIG. 2 illustrates a more detailed embodiment of a cryptographic conversion process for generating a time-dependent authentication password for transmission to an authenticator, in accordance with one or more aspects of the present invention. [Figure 6C] FIG. 2 illustrates a more detailed embodiment of a cryptographic conversion process for generating a time-dependent authentication password for transmission to an authenticator, in accordance with one or more aspects of the present invention. [Figure 6D] FIG. 2 illustrates a more detailed embodiment of a cryptographic conversion process for generating a time-dependent authentication password for transmission to an authenticator, in accordance with one or more aspects of the present invention. [Figure 7A]FIG. 7 illustrates a more detailed embodiment of an evaluation process for evaluating a time-dependent authentication password generated via the cryptographic transformation process of FIGS. 6A-6D, in accordance with one or more aspects of the present invention. [Figure 7B] FIG. 7 illustrates a more detailed embodiment of an evaluation process for evaluating a time-dependent authentication password generated via the cryptographic transformation process of FIGS. 6A-6D, in accordance with one or more aspects of the present invention. [Figure 8A] FIG. 1 illustrates an example of a computing environment or resources for incorporating and using one or more aspects of the present invention. [Figure 8B] FIG. 8B illustrates further details of the processor of FIG. 8A in accordance with one embodiment of the present invention. [Figure 9A] FIG. 1 illustrates another example of a computing environment or resources for incorporating and using one or more aspects of the present invention. [Figure 9B] FIG. 9B illustrates further details of the memory of FIG. 9A, according to one embodiment of the present invention. [Figure 10] FIG. 1 illustrates an embodiment of a cloud computing environment in which certain aspects of embodiments of the present invention may be implemented or used in connection therewith. [Figure 11] FIG. 2 is a diagram of abstraction model layers according to one embodiment of the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0011] The accompanying drawings, in which like reference numerals refer to identical or functionally similar elements throughout the different views and which are incorporated in and form a part of this specification, further illustrate the present invention and, together with the detailed description, serve to explain aspects of the present invention. In this regard, it should be noted that descriptions of well-known systems, devices, processing techniques, and the like are omitted so as not to obscure the details of the present invention. However, it should be understood that the detailed description and its specific examples, while illustrating aspects of the present invention, are given by way of example only and are not limiting. Various substitutions, modifications, additions, or other configurations, or combinations thereof, within the spirit or scope of the underlying inventive concept, will become apparent to those skilled in the art from this disclosure. Furthermore, it should be noted that a number of inventive aspects and features are disclosed herein, and that, unless inconsistent, each disclosed aspect or feature is compatible with other disclosed aspects or features as required for one or more specific applications of the concepts disclosed herein.

[0012] It should also be noted that the exemplary embodiments are described below using specific code, designs, architectures, protocols, layouts, circuit diagrams, or tools, but not by way of limitation. Furthermore, the exemplary embodiments are described in particular instances where specific software, tools, or data processing environments are used as examples only for clarity of explanation. The exemplary embodiments may be used with other compatible or similarly contemplated structures, systems, applications, architectures. One or more aspects of the exemplary embodiments may be implemented in hardware, software, or a combination thereof.

[0013] As will be appreciated by those skilled in the art, program code as referred to herein can include both software and hardware. For example, the program code in some embodiments of the present invention can include fixed-function hardware, while other embodiments can utilize software-based implementations of the described functionality. Some embodiments combine both types of program code. An example of program code, also referred to as one or more programs or program instructions, is shown in FIG. 8A as application program 830 and / or computer readable program instructions 834 stored in memory 806 of computer system 802, and program 846 and computer readable program instructions 848 stored in data storage device 844 accessed by computer system 802.

[0014] As briefly mentioned above, a verification system based on authentication tokens can provide a means for an entity, such as a requesting node, to confirm its identity claim to an authenticator (or authenticating node). Confirming the identity claim is by proving possession of a private sign-on key through the use of an established authentication protocol. Several different protocols exist for generating and evaluating authentication parameters or tokens. In many cases, authentication parameter generation protocols operate in two main stages. First, a token binary value, or authentication parameter, is generated using a private key, other known authentication details, and one or more cryptographic processes. The token binary value is then encoded as a string token value, or authentication password.

[0015] In many types of authentication systems, authentication credentials are constrained to a particular length and character set, but at the same time, a dichotomy exists in that having more possible valid token values ​​creates more variability and therefore makes it more difficult for an attacking entity to identify or guess the correct token value.

[0016] In one or more aspects, an authentication system with multiple authentication modes is disclosed herein, in which an authentication parameter (AP) is generated as a function of time-dependent information, such as time-of-day (TOD) information, using a predefined (first) transformation, the predefined transformation having an inverse transformation such that the time-dependent information can be regenerated from the authentication parameter. A time-dependent password, including a string, such as an alphanumeric string, is generated from the authentication parameter using a predefined (second) transformation, the predefined transformation having an inverse transformation such that the authentication parameter can be regenerated from the password.

[0017] Note that, unless otherwise specified, reference to an inverse transform in this context means not only that the inverse exists, but also that it is computationally feasible to produce it. Transforms that have such a computationally feasible inverse are said to be "invertible"; those that do not are said to be "irreversible" or "one-way" transforms or functions.

[0018] The password is presented to an authenticator, which may be located at an authentication node to which the password is sent from the requesting node, for example. The authenticator regenerates the time-dependent information from the password by regenerating the authentication parameters from the password presented to the authenticator using the inverse of the second transformation, and then regenerating the time-dependent information from the authentication parameters using the inverse of the first transformation.

[0019] The authenticator compares the regenerated time-dependent information with the reference time-dependent information and grants access to the resource according to the comparison of the regenerated time-dependent information with the reference time-dependent information. For example, if the regenerated time value is within a predetermined tolerance from the reference time value, the authentication request is granted, but is rejected otherwise. In one or more embodiments, the predetermined tolerance is configurable by the system.

[0020] In one or more implementations, the first transformation is a cryptographic transformation using an encryption key shared with the authenticator. The cryptographic transformation is such that the time-dependent information can be regenerated from the authentication parameters and the key, but the key cannot be regenerated from the authentication parameters and the time-dependent information. In such a case, the authenticator regenerates the original time-dependent information by decrypting the regenerated authentication parameters using a decryption key corresponding to the original encryption key. In one or more embodiments, using the disclosed encryption procedure, the encryption key is identical to the corresponding decryption key, while in other encryption procedures, the encryption key may be different from the corresponding decryption key, although the encryption key and the decryption key are related to each other.

[0021] In one or more embodiments, the authentication parameters are generated by combining the time-dependent information with non-time-dependent information to generate composite information and encrypting the composite information to generate the authentication parameters. For example, in one embodiment, the non-time-dependent information may be generated by encrypting non-confidential information (e.g., a user ID or an application name or ID, or both) for an event that requires identifying a request for authentication.

[0022] By converting the authentication parameters into a password using a reversible transformation, the original time-dependent information can be regenerated and the password can be verified based on only a single comparison between the regenerated time-dependent information and reference time-dependent information available at the authenticating node.

[0023] Advantageously, in one or more embodiments, the authentication system is capable of supporting different authentication modes. One mode, referred to herein as UPPER, provides an m-bit authentication parameter, while another approach, referred to herein as MIXED, provides an n-bit authentication parameter. In one particular embodiment, m is 41 bits and N is 48 bits. Furthermore, in one embodiment, in the UPPER mode, the secret sign-on key is generated using only uppercase letters and numbers, e.g., 2 41possible tokens or parameters, whereas in MIXED mode, for example, two possible tokens or parameters can be generated using upper and lower case letters, numbers, and one or more special characters such as "_" and "-". 48 In one embodiment, the authentication parameter is thus a first plurality of possible values ​​(e.g., 2 for an m-bit AP). m , or 2 for n-bit AP n ), whereas a password or other authentication code has a second plurality of possible values ​​that is greater than the first plurality of values ​​(e.g., 36 for a password of eight uppercase alphanumeric characters). 8 ) in the authentication system. Note that the reference in this context ignores any inter-character constraints that may be imposed by the AP or the particular system used to generate the password. The enhanced block cipher procedure described herein, having m-bit input and output or n-bit input and output, is used to generate the desired authentication parameters, depending on the mode being used by the authentication system.

[0024] Another aspect of the invention encompasses a system for transforming (e.g., encrypting or decrypting) an input data block containing x bits into an output data block containing x bits, where x is an even or odd integer. During the transformation, the input data block is first divided into first and second (e.g., left and right) bit segments (or portions), where one bit segment can have a different length than the other bit segment. The two bit segments or portions of the input data block are subjected to multiple rounds of transformation, where the segments (or portions) are transformed into first and second output segments that become corresponding segments for subsequent rounds. Once the multiple rounds are completed, the final transformed segments (or portions) are recombined to generate the output data block.

[0025] According to one or more aspects described herein, a data block of any size, be it an odd number of bits or an even number of bits, can be transformed into an output data block of similar size while preserving all information in the input block for recovery by inverse transformation. This is beneficial in many situations, such as those described herein, where block sizes that are too large for standard encryption procedures are required. By using a round-specific value in each round, the same key can be used for encryption of x bits in each pass, thereby avoiding the computational burden of having to set up a different encryption for each round.

[0026] In one or more embodiments, disclosed herein is a novel authentication process for an authentication system that can accommodate multiple authentication modes and provides one-time passwords with improved security.

[0027]

[0010] Embodiments of the present invention include computer program products, computer systems, and methods, where program code executing on one or more processors provides authentication processing for an authentication system by generating authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation. The time-dependent input is recoverable from the authentication parameters using the inverse transformation. The authentication system supports a plurality of authentication modes, where a bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differs from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes. Furthermore, the generation of the authentication parameters depends in part on whether the time-dependent input is for the one authentication mode or the other authentication mode. Additionally, embodiments of the present invention include program code for generating a time-dependent password comprising a character string from the authentication parameters using another predefined transformation having another inverse transformation, where the authentication parameters are recoverable from the time-dependent password using the other transformation. Furthermore, embodiments of the present invention include program code for forwarding the time-dependent password to an authenticator of the authentication system for authentication in conjunction with a request event, such as for accessing a protected application.

[0028] In a particular embodiment, if the time-dependent input is for one authentication mode, the time-dependent input is a binary input of an odd or even number of bits, and if the time-dependent input is for another authentication mode, the time-dependent input is a binary input of a different odd or even number of bits. For example, in one embodiment, the time-dependent input for the one authentication mode corresponds to an odd number of bits, such as 41 bits, and the time-dependent input for the other authentication mode corresponds to an even number of bits, such as 48 bits, with both modes providing an increased number of authentication parameters or tokens compared to conventional approaches.

[0029] In one or more embodiments, program code executing on one or more processors generates an authentication parameter by dividing a time-dependent input into one segment (part_a) and another segment (part_b) and performing multiple rounds of transformation of the one segment (part_a) and the other segment (part_b) to obtain a final part_a and a final part_b, where a round of transformation of the multiple rounds of transformation includes transforming a current part_a and a current part_b at least in part using a sign-on key, a round-specific value, and a transformation process, where the round-specific value changes for each round of transformation of the multiple rounds of transformation. Based on performing the multiple rounds of transformation, the final part_a and the final part_b are combined to form an authentication parameter.

[0030] In one or more embodiments, the one authentication mode is an UPPER authentication mode, in which the sign-on key uses only uppercase letters and numbers, and the other authentication mode is a MIXED authentication mode, in which the sign-on key uses any of uppercase and lowercase letters, numbers, and one or more special characters.

[0031] In one or more implementations, one or more of the multiple rounds of conversion include a process that depends in part on whether the authentication system is currently using one or another of the authentication modes.

[0032] In one implementation, during multiple rounds of transformation of part_a and part_b, at least one round of transformation includes generating a new part_a by transforming the current part_a using the current part_b, and generating a new part_b by transforming the current part_b using the new part_a.

[0033] In one embodiment, the round-specific value includes a current value of a round counter, and the current value of the round counter changes for each round of a multi-round transformation. Further, in one or more embodiments, the transformation process is a message authentication code (MAC) process, such as a hash-based message authentication code (HMAC) process.

[0034] In one embodiment, program code executing on the one or more processors regenerates an authentication parameter from the time-dependent password presented to the authenticator using another inverse transformation, and regenerates a time-dependent input from the authentication parameter using the inverse transformation. Additionally, program code executing on the one or more processors grants access to the resource if the regenerated time-dependent value is within a predetermined tolerance from a reference time-dependent value, and denies access to the resource otherwise. In one embodiment, the predetermined tolerance may be configurable for a particular authentication system.

[0035] An embodiment of the present invention inevitably relates to computing and offers much more than existing authentication approaches. For example, an embodiment of the present invention provides program code executing on one or more processors for leveraging the interconnectivity of various systems and utilizing various computing-centric data analysis and processing techniques to generate authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation, where the time-dependent input is recoverable from the authentication parameters using the inverse transformation, and the authentication system supports multiple authentication modes. A bit length of the time-dependent input for one authentication mode of the multiple authentication modes differs from a bit length of the time-dependent input for another authentication mode of the multiple authentication modes, and generation of the authentication parameters depends in part on whether the time-dependent input is for the one authentication mode or the other authentication mode. The program code executing on the one or more processors further generates a time-dependent password including a character string from the authentication parameters using another predefined transformation having an inverse transformation, where the authentication parameters are recoverable from the time-dependent password using the other inverse transformation, and the program code forwards the time-dependent password to an authenticator of the authentication system for authentication.

[0036] Both the interconnectivity of the computing systems or nodes utilized and the computer-specific data processing techniques utilized by the program code enable various aspects of the invention. Additionally, embodiments of the invention go far beyond existing authentication approaches by providing an authentication process that uses multiple authentication modes and an enhanced number of authentication parameters, as well as by providing a cryptographic transformation and decryption process that can be applied to values ​​of any length, i.e., any bit length, including even and odd lengths, giving the authentication system the ability to maximize the amount of variability in binary token values ​​to accommodate a particular system's constrained string set, thereby providing improved security against possible system compromise attempts. Additionally, the authentication process disclosed herein does not require a nonce value to be secure. The disclosed process increases entropy by splitting the cryptographically transformed value into multiple parts and using multiple rounds of an enhanced transformation process on each part before recombining the parts into the final authentication parameter or cryptographically transformed value.

[0037] In an embodiment of the invention, the program code provides much more functionality, including, but not limited to: 1) program code for generating authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation, the time-dependent input being recoverable from the authentication parameters using the inverse transformation, the authentication system supporting a plurality of authentication modes, a bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differing from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes, the generation depending in part on whether the time-dependent input is for one authentication mode or another authentication mode, 2) program code for generating a time-dependent password comprising a string from the authentication parameters using another predefined transformation having another inverse transformation, the authentication parameters being recoverable from the time-dependent password using the another transformation, and 3) program code for forwarding the time-dependent password to an authenticator of the authentication system for authentication.

[0038] By way of example, one embodiment of a system 100 employing one or more aspects of the present invention is depicted in FIG. 1. As shown, the system 100 includes one entity, such as a requesting node 102, and another entity, such as an authenticator node 104, in communication through a communication channel 106 established, for example, via one or more networks through which the requesting node 102 and the authenticator node 104 communicate. The requesting node 102 may run on or be any of a variety of computing resources, environments, or devices that are authenticated to communicate with or receive requested data from the authenticator node 104. For example, the requesting node 102 may be a mobile device, a smartphone, a tablet computer, a laptop computer, a personal digital assistant (PDA), a wireless computer, a desktop computer, a server, a workstation, or other computing resource, etc. Additionally, the authenticator node 104 may run on or be any of a variety of computing environments, such as those described herein. In one or more embodiments, the authenticator node 104 executes on or can be one or more of a variety of computing resources, including in one or more embodiments a cloud-based computing resource. As noted, the requesting node 102 can be communicatively coupled to the authenticator node 104 via a communication channel 106 provided through one or more networks. By way of example only, the one or more networks can include a telecommunications network, a local area network (LAN), a wide area network (WAN) such as the Internet, or a combination thereof, and can include wired, wireless, fiber optic connections, etc. The network can include one or more wired and / or wireless networks capable of receiving and transmitting data, including data related to authentication as described herein.

[0039] Briefly, in one or more embodiments, the computing resources of the requesting node 102 and / or the authenticating node 104 may include one or more processors, e.g., a central processing unit (CPU). The processor may also include functional components used in the integration of the program code, such as functional components for retrieving program code from a location in memory, such as a cache or main memory, decoding the program code, executing the program code, accessing memory for instruction execution, and writing results of executed instructions or code. The processor may include registers used by one or more of the functional components. In one or more embodiments, the computing resources may include memory, input / output, network interfaces, and storage, which may include and / or access one or more other computing resources and / or databases as necessary to implement the processes described herein. The components of each computing resource may be coupled to each other via one or more buses and / or other connections. The bus connection may be any one or more of several bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor bus or local bus, using any of a variety of bus architectures. By way of example, but not limitation, such architectures may include Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA), a local bus, and Peripheral Component Interconnect (PCI). Examples of computing resources or computer systems capable of implementing one or more aspects disclosed herein are further described below with reference to Figures 8A-11.

[0040] FIG. 2 illustrates a more detailed implementation of an authentication system according to one or more aspects of the present invention. In this implementation, the requesting node 102 is shown as including a one-time password generator 200, which may be implemented as program code executing on a computing resource or machine that constitutes the requesting node. Alternatively, one or more aspects of the password generator 200 may be implemented using special purpose hardware. The requesting node 102 also includes a memory location for storing, for example, a user ID (UID) 202 that identifies a user, an application ID (AID) 204 that identifies a host application being accessed, a sign-on key (K) 206 that is used as a secret key for encryption as described herein, and a date and time value (T) 208. As illustrated in FIG. 2, the values ​​202-208 provide inputs to the password generator 200.

[0041] In one embodiment, password generator 200 includes program code executing on one or more computing resources of requesting node 102, which is invoked when a user wishes to access a hosted application. Further, in one or more embodiments, when invoked, password generator 200 generates a one-time password 210 as a function of, for example, user ID 202, application ID 204, sign-on key 206, and date and time 208. In one embodiment, password 210 is sent to authentication node 104 along with user ID 202 and application ID 204 as part of sign-on request 220.

[0042] The authentication node 104 includes a password evaluator 212, which, like the password generator 200, may be implemented as program code executing on one or more computing resources of the machine that constitutes the authentication node 104. The authentication node 104 also includes, for example, one or more host applications 218, which may be accessed by a user of the requesting node 102 upon presentation of a valid password 210. The password evaluator 212 may, for example, be a separate program code or part of a security software program, such as the IBM Resource Access Control Facility (RACF®) software product. (RACF® is a trademark of International Business Machines Corporation, Armonk, New York, USA.) The authentication node 104 stores a copy of the sign-on key (K) 214, which is never revealed to the communication channel 106, and a reference time (Tref) 216. The password evaluator 212 receives as input the local sign-on key 214 and a sign-on request 220 from the requesting node 102, the request including the one-time authentication password 210 and the user ID 202. In one or more implementations, an application ID 204 identifying the host application 218 may be obtained directly from the host application by the password evaluator 212. In one embodiment, the password generator 200 uses these quantities to regenerate the original date and time input 208, which is compared to the reference date and time 216 to determine whether the difference between the two is within a predetermined tolerance (e.g., 10 minutes or less). If so, the password evaluator 212 authenticates the user and approves access to the application; if not, the evaluator 212 denies access. In either case, the password evaluator 212 sends a response 222 to the requesting node 102 advising it regarding the disposition of the sign-on request 220.

[0043] FIG. 3 illustrates another embodiment of a system 300 that implements one-time access authentication parameters or tokens as disclosed herein. In the embodiment of FIG. 3, the system is implemented as a client-server environment, with resource request functions split between a client workstation 302 and a security server workstation 308. As illustrated, the system 300 includes, in one or more embodiments, a client workstation 302 coupled to an authentication node 304 via a communication channel 306 and a security server 308 via a local area network (LAN) 310. The client workstation 302, security server 308, and LAN 310 can be viewed collectively as a single requesting node from the perspective of the authentication node 304. The authentication node 304 and communication channel 306 of the system 300 can be similar to the corresponding elements 104 and 106 of the system 100. Like the requesting node 102 of the system 100, the client workstation 302 and the security server 308 may be, include, or execute on any of a variety of computing resources or devices, such as, for example, a mobile device, a smart phone, a tablet computer, a laptop computer, a personal digital assistant (PDA), a wireless computer, a desktop computer, a server, a workstation, etc. Additionally, the LAN 310 may be any suitable type of local area network, such as a token ring LAN.

[0044] In one authentication sequence embodiment of the system 300, a user at a client workstation 302 authenticates to the LAN 310, for example by entering a LAN security server authentication password, and the method for authenticating the user to the LAN 310 may be any one of a variety of methods known in the art and, if desired, an authentication method such as that disclosed herein. After authenticating to the LAN 310 and the security server 308, the user may access a host application, for example, through a workstation or client function. A request (REQ1) 312 containing information identifying the user and the host application being accessed is sent from the client workstation 302 over the LAN 310 to the security server 308. The security server 308 uses this information, along with date and time information and a sign-on key, to generate a one-time password (PW) 314, as disclosed herein, for accessing the host application. The one-time password 314 is returned over the LAN 310 to the client workstation 302, which sends a sign-on request (REQ2) 316 containing the password along with user and application information to the authentication node 304. The authentication node 304, in one or more embodiments, processes the request 316 in a manner similar to the authentication node 104 of Figures 1 and 2.

[0045] As mentioned, embodiments of the present invention include computer program products, computer systems, and methods for enhanced authentication processing within an authentication system. The aspects described herein provide an enhanced process for cryptographically transforming and decrypting values ​​of any bit length, including even and odd bit lengths. This functionality is useful in authentication token systems to maximize the resulting or cryptographically transformed total binary value (e.g., authentication parameter), which may be encoded within an authentication password with a constrained length and constrained character set for a particular system's authentication credentials. By supporting both even and odd time-dependent length values ​​(via multiple authentication modes), the enhanced authentication process disclosed herein provides a binary value range that exactly matches the size of the authentication system's constrained string set requirements. Furthermore, the process disclosed herein does not require a nonce value to be secure. Instead, increased entropy is provided by splitting the value to be cryptographically transformed into multiple parts and using multiple rounds of transformation on the different parts before recombining the parts into a cryptographically transformed value or authentication parameter.

[0046] In one or more embodiments, the authentication process disclosed herein utilizes several input values, including a sign-on key, an event-specific value (e.g., authentication details such as a user identification value and an application name identifier), round-count specific details (such as a round counter value and / or other round-specific transformation data), a transformation process (such as a message authentication code (MAC) process, e.g., a hash-based message authentication code (HMAC)), and a cryptographic transformation target value, such as a time-dependent input based on the current date and time. Note that a round-specific value, such as the count value of a round counter, is used to ensure that each round-specific transformation produces a result that is different from all other rounds even if all other inputs are the same.

[0047] FIG. 4 illustrates one program code embodiment for generating a time-dependent password and transmitting it to an authenticator of an authentication system for authentication, according to one or more aspects of the present invention. The program code generation or cryptographic conversion can optionally include generating a time-dependent input for a particular authentication mode of a plurality of authentication modes supported by the authentication system by converting a cryptographically converted time value using a secret sign-on key, one or more event-specific values, and a conversion process as described herein (400). As described herein, if the time-dependent input is for one authentication mode, the time-dependent input is a binary number of a first odd or even number of bits, and if the time-dependent input is for another authentication mode, the time-dependent input is a binary input of a different number of bits (by way of example only). For example, in one embodiment, the time-dependent input for one authentication mode is an odd number of bits, and the time-dependent input for another authentication mode is an even number of bits. Thus, the time-dependent input can be a binary number of an odd or even number of bits depending on the authentication mode currently being used by the authentication system. In one particular example described herein, the time-dependent input for one authentication mode is 41 bits and the time-dependent input for another authentication mode is 48 bits, although those skilled in the art will recognize that these bit numbers are provided merely as examples.

[0048] As shown, the time-dependent input or initial binary package is split (402) into two segments, referred to (in one embodiment) herein as part_a and part_b. Advantageously, as disclosed herein, the time-dependent input can be split into segments (or portions) of equal or unequal length.

[0049] Based on the authentication mode, multiple rounds of transformation of the time-dependent inputs are performed using part_a and part_b to obtain final part_a and final part_b (404). The multiple rounds of transformation may include, for each round, (i) generating a new part_a by transforming the current part_a using a secret sign-on key, one or more event-specific values, one or more round-specific parameters (e.g., a round count or a current part_b, or both), and a transformation process (406), and (ii) generating a new part_b by transforming the current part_b using a secret sign-on key, one or more event-specific values, one or more round-specific parameters (e.g., a round count or a new part_a, or both), and a transformation process (408). Generation (i) and generation (ii) are repeated for N rounds, replacing the current part_a with the new part_a and replacing the current part_b with the new part_b at the start of each round (410). It should be noted that the number of rounds of transformation may be configurable for a particular authentication system.

[0050] The final part_a and the final part_b are combined together to form an authentication parameter with the same number of bits as the time-dependent input, or a cryptographically transformed binary value (412). The authentication parameter is encoded into a string token value of an acceptable length and character set for the target system (e.g., authentication node) (414). In particular, a time-dependent password including a string is generated from the authentication parameter using another predefined transformation having an inverse transformation, and the authentication parameter is recoverable from the time-dependent password using the inverse transformation. The time-dependent password is then forwarded to an authenticator of the authentication system for authentication (416).

[0051] It should be noted that the process of FIG. 4 illustrates just one embodiment for cryptographically transforming plaintext values ​​of, for example, any bit length, in accordance with the concepts disclosed herein.

[0052] Figure 5 illustrates one process embodiment for evaluating an authentication password, such as that generated using the process of Figure 4. This evaluation process includes decrypting the authentication password, which, as stated, can be based on a cryptographically transformed value of any bit length obtained using a generation process such as that described herein.

[0053] The evaluation process of Figure 5 assumes that a reverse conversion of the authentication password to an authentication parameter has already been performed, leaving the authentication parameter as the value to be decrypted. For example, in one or more embodiments, the authentication password, or string token value, is first decrypted or reverse converted into the authentication parameter (or the cryptographically converted binary value that is the value to be decrypted). As shown, the value to be decrypted, i.e., the authentication parameter, is split (500) into two segments (part_a, part_b) of the same number of bits as the two segments (initial part_a, initial part_b) into which the time-dependent input was originally split during the cryptographic conversion process, and the segments may be of equal or unequal length, as noted.

[0054] A multi-round reverse transformation of part_a and part_b is performed to obtain an initial part_a and an initial part_b of the cryptographic transformation process (502). The multi-round reverse transformation includes (i) generating a new part_b by transforming the current part_b using a secret sign-on key, one or more event-specific values, one or more round-specific values ​​(e.g., a round count (counting in reverse order from the cryptographic transformation), and the current part_a), and a transformation process (504), and (ii) generating a new part_a by transforming the current part_a using a secret sign-on key, one or more event-specific values, one or more round-specific values ​​(e.g., a round count (counting in reverse order from the cryptographic transformation), and the new part_b), and a transformation process (506). The generation (i) and generation (ii) are repeated for N rounds, replacing the current part_a with the new part_a and replacing the current part_b with the new part_b at the beginning of each round (508). Based on performing multiple rounds of reverse transformation, an initial part_a and an initial part_b are obtained, which are combined together to form a time-dependent input (510). The original cryptographically transformed time value can then be recovered (512) by reverse transforming the time-dependent input using the secret sign-on key, one or more event-specific values, and the transformation process. Once obtained, the recovered time value is compared to a reference time value at the authenticator to determine whether the recovered time value is within a predetermined tolerance (e.g., within a predetermined number of minutes or seconds) (514).

[0055] 6A-7B show more detailed program code embodiments for password generation and password evaluation according to one or more implementations of the present invention.

[0056] In one embodiment, the process uses multiple inputs, which in one embodiment include a host user ID, such as a RACF® host user ID, a secret sign-on key, which may be mode and application dependent, an application name, time and date information, and an encoding or conversion process type. For example, the user ID identifies a user on the authentication system on which the target application executes or operates. The user ID, in one implementation, may be represented in Extended Binary Coded Decimal Interchange Code (EBCDIC) and may be extended to a length of 8 bytes by being left justified and padded on the right with blanks (in one embodiment). The sign-on key is a secret application key value appropriate to the authentication mode currently configured for the authentication system. In one or more embodiments, the secret key is an HMAC secret key, which may be a variable number of bits. In one implementation, HMAC with SHA-512 is used in conjunction with a 256-bit to 2048-bit HMAC key. However, other platforms or implementations may have other support or constraints for HMAC. In one embodiment, an HMAC secret key is used in both the UPPER and MIXED authentication modes.

[0057] An application name may be defined for a particular application and used to associate a private sign-on key with a particular host application. By way of example, further details regarding the determination of application names are described in the z / OS Security Server RACF® Security Administrator's Guide, published by International Business Machines Corporation, Armonk, New York, USA. In one implementation, the application name (or ID) is represented in EBCDIC, left justified and padded on the right with blanks to a length of 8 bytes (by way of example only). Note that the user ID and application ID are in text form (typically ASCII or EBCDIC, depending on the implementation) when used by the password generator. In one embodiment, a separate matching sign-on key is used for each host application being accessed. To facilitate this, the sign-on keys may be stored in a table (not shown), where they are accessed using, for example, the application ID.

[0058] The date and time information (together with the reference date and time generated by the authenticating node) indicates the number of time intervals of a specified duration that have elapsed since a defined start time. In one embodiment, the time / date information represents the number of seconds that have elapsed since 00:00 GMT on January 1, 1970. (The term "date and time" is used because the value indicates both the time of day (TOD) and the date as a whole, and there are no separate fields for these two quantities.) The date and time input for one authentication mode is a 41-bit binary integer (for UPPER mode) derived by using a time macro or equivalent programming function to obtain the time from a clock on a machine located at the node in question. For another authentication mode, the date and time information is a 48-bit binary integer (for MIXED mode). Various programming languages ​​support functions for representing time in this way. For example, in C, the time in the required format can be obtained by the following code: Assuming that the variable "ts" is declared as "long", then invoking the function time(&ts) will return in the variable "ts" the number of seconds that have elapsed since 00:00 GMT, 1 January 1970, expressed as an unsigned long integer.

[0059] Note that the computer or authentication node that authenticates a time-dependent password is likely not the computer or requesting node that generated the password. To account for differences between internal clocks, the processes disclosed herein allow the generated time to differ from the TOD clock of the authenticator or authentication node that is evaluating the time-dependent password. The amount of allowed drift or time skew may be configurable within the authentication system. In one embodiment, for evaluation of a time-dependent password, the TOD clock must be set to the GTM, not the local time.

[0060] As a further example, Figures 6A-6D illustrate in more detail one program code embodiment for generating an authentication password, according to one or more implementations. Figure 6A shows an overview of an authentication password process 600, which optionally includes generating (602) a time-dependent input, one embodiment of which is described below with reference to Figure 6B. The time-dependent input is converted (604) into authentication parameters via a timecoder generation process, one embodiment of which is shown in Figure 6C and described below. Once obtained, the authentication parameters are converted (606) into an authentication password by an encoding process, one embodiment of which is shown in Figure 6D and described below. The authentication password, in one or more implementations, along with associated non-secret data such as a user ID and an application ID, are forwarded (608) to the authenticator at the authenticating node, after which the process returns (610).

[0061] As mentioned, FIG. 6B illustrates one program code embodiment for generating (602) a time-dependent input that is transformed into an authentication parameter as described herein. In the illustrated embodiment, a user ID and an application ID are appended together to generate a composite information (Result 1) (620). The composite information is transformed using a transformation process, such as, for example, HMAC. In one embodiment, an HMAC operation using a secret sign-on key is performed on the composite information to generate a transformed composite information (Result 2). Note that in one implementation, the cryptographic operation used may use HMAC with SHA-512, which generates a 64-byte output. In the embodiment of FIG. 6B, the left 6 bytes of the transformed information are selected and the remainder are discarded (624). The selected bytes are transformed by applying an exclusive OR operation with the date and time information to generate the required number of bits of the time-dependent input for the particular mode (626). The program code then returns and proceeds to, for example, the time coder generation process 604 (FIG. 6A).

[0062] By way of example, FIG. 6C illustrates one embodiment of a program code cryptographic conversion process or routine that involves multiple iterations or "rounds." This process is commonly referred to as a timecoder generation process, and results in an output of an authentication parameter. As shown, in one embodiment, a 6-byte time-dependent input is separated (630) into two segments, part_a, in this embodiment referred to as L3B (i.e., the left three bytes) and part_b, in this embodiment referred to as R3B (i.e., the right three bytes). The 17 bytes are concatenated with part_b (R3B) to generate a resulting 20-byte string (R20B), with the three bytes of R3B occupying the left-most three byte positions. In one implementation, the padding is a 17-byte string that includes separate fields including, for example, a 1-byte round counter (the round counter starts with a value of 1 for the first iteration and is incremented by 1 after each round), an 8-byte user ID, and an 8-byte application name or ID. Note that step 632 is the first step in a loop that includes steps S632-644 that are performed N times (referred to herein as "rounds"), in one example where N=6, and in each round, part_a (L3B) and part_b (R3B) are subjected to various operations, after which the resulting parts are recombined into an authentication parameter output.

[0063] As shown, pseudorandom bits are generated (634) from the resulting R20B, in one embodiment using an HMAC and a secret signon key as the HMAC key, to generate a pseudorandom product. The leftmost 3 bytes of the product are chopped off (636) as D3B, and the remainder of the value is discarded.

[0064] The resulting D3B from step 636 is then combined 638 with part_a(L3B) using an exclusive-OR (XOR) or modulo-2 addition operation to complete the encryption process.

[0065] If the authentication mode is UPPER and the round counter is, for example, 1, 3, or 5, a masking operation is performed. In particular, the leftmost 7 bits of the XOR result of step 638 are masked to change their value to 0. Otherwise, if the authentication mode is UPPER and the round counter is 2, 4, or 6, or if the authentication mode is MIXED, the result of the XOR is passed through unchanged (640). Next, the current part_a (L3B) is set equal to the current part_b (R3B) to generate new part_a, and new part_b is set equal to the result of the XOR operation (642). A check is made of the number of rounds completed (644). For example, if N is equal to 6, if the count value is less than 6, the process returns to step 632 for another round. If N rounds are complete, the process proceeds to step 646 by combining the final part_a with the final part_b to obtain the timecoder output, i.e., the authentication parameter (646), and then the process returns to the process of, for example, FIG. 6A, to convert the authentication parameter into an authentication password (648).

[0066] As noted, once obtained, the authentication parameters are converted into an authentication password. In one or more implementations, the process uses a translation table consisting of 64 slots. The first 10 slots are occupied by the numbers 0-9, the next 26 slots are occupied by uppercase letters of the alphabet (A-Z). The next 26 slots are occupied by lowercase letters of the alphabet (a-z). In one embodiment, the last two slots may be occupied by two special characters (such as "-" and "_"). An embodiment of this is shown in Table 1 below.

[0067] [Table 1]

[0068] Note that the authentication parameters in the UPPER authentication mode only use the first 36 slots (0 to 35) of the conversion table, while the authentication parameters in the MIXED mode can use all 64 slots.

[0069] As shown in FIG. 6D, converting 606 the authentication parameters into an authentication password may involve program code that first converts the timecoder generated output into an EBCDIC string value by converting 650 the 6 bytes of the timecoder output into a 64-bit binary value.

[0070] A loop including steps S652-662 is then entered where the process is repeated to generate each of the eight characters to be encrypted. As shown, for the UPPER authentication mode, a modulo 36 is determined for the 64-bit binary value (for the UPPER mode encryption conversion) or, for the MIXED mode encryption conversion, a modulo 64 is determined for the 64-bit binary value (652). In the next step, the result is converted from binary to an EBCDIC value (as an example) using a conversion table such as Conversion Table 1 (654). For example, the binary value 33 is converted to the EBCDIC value "X".

[0071] The converted results are set as individual characters with EBCDIC value (656). The characters are concatenated together one at a time, starting with the rightmost character and working to the left with each conversion round.

[0072] The 64-bit binary value is adjusted (658) (divide by 36 for an UPPER cipher transform or by 64 for a MIXED cipher transform) and the adjusted 64-bit binary value is used in place of the 64-bit binary value (660). Step 662 determines whether the required number of characters have been encoded, which is eight in the example of FIG. 6D. If fewer than eight characters have been encoded, the convert process returns to step 652 for another round. Once eight characters have been encoded, the authentication password value has been assembled (664) and processing returns to the overview code process of, for example, FIG. 6A (666).

[0073] 7A-7B illustrate a more detailed embodiment of a program code evaluation process for evaluating a time-dependent authentication password generated via the cryptographic transformation process of FIGS. 6A-6D.

[0074] FIG. 7A illustrates one embodiment of code processing implemented by a password evaluator of an authenticating node to evaluate an authentication request received from a requesting node, the authentication request including a one-time password, a user ID, and an application ID.

[0075] Upon receiving a sign-on request that includes a one-time password, the password evaluator may first attempt to reverse convert the password (702). If this attempt results in the received password corresponding to a valid password, i.e., a password that could have been generated from the values ​​of the authentication parameters input to the password conversion routine, the authentication parameters are regenerated. If the reverse conversion procedure determines (704) that the received password does not correspond to a valid password, the password evaluator denies access without further processing (706) because the received password represents either an attempt to break into the system or corruption of data.

[0076] Based on the correspondence of the received password to a valid password, the password evaluator determines whether the received password is identical to a valid password recently received over a prescribed time interval (708). If the received password is a repetition or replay of a previously processed password within the prescribed time interval, the just-received password is rejected as being a "replay" of the previously received password (706). Because valid passwords for a given user ID and application ID change over time, the only practical way that an identical password can be generated is by intercepting a previously transmitted password (e.g., while traversing a communications channel) and "replaying" it by injecting it back into the authentication system.

[0077] If the received password is not a replay of a previously generated password, the password evaluator then generates 710 an encryption product in a manner similar to the generation of the corresponding product by the password generator, except that the keys used are the sign-on key stored in the authentication node and the received user ID and application ID.

[0078] The regenerated authentication parameters are passed to a decryption routine, one embodiment of which is shown in Figure 7B, for parameter inversion (712). Inversion of the authentication parameters converts the parameters into a decrypted m-bit or n-bit quantity that corresponds to the time-dependent input. The decryption result is then combined with the encryption product (the HMAC product) using an XOR operation to generate the date-time value T (714).

[0079] The regenerated time T is compared with a reference time value Tref generated locally by the authenticating node using an appropriate comparison routine (716). If the regenerated value T is outside a predefined tolerance (e.g., + / - x minutes) from Tref (720), the password does not correspond to a valid period and the password evaluator denies access (706).

[0080] If the regenerated value T is within a predetermined tolerance, the evaluator verifies that the requester is valid and approves the request for access to the host application (722). The verified password is also added to a queue of comparison passwords for replay detection (724). Validated passwords are added to the queue in order of their generation time T (maintained by the particular requesting node) rather than their arrival time (which may be different from T) as indicated by the host time Tref. They are purged from the queue when their generation time T is more than the current number of minutes later than the current host time Tref, because by that time they are stale and cannot be successfully replayed into the system. This purging can occur after the passwords are verified (after step 720) as well as immediately before checking the queue for reused passwords (at step 708).

[0081] 7B shows one embodiment of a program decryption routine 712 for reverse transformation. Upon entry to the routine, the input is split 730 into one segment, part_a (L3B), and another segment, part_b (R3B). Processing then proceeds through N iterations ("rounds") of a loop including steps S732-742, in which part_a and part_b are subjected to various operations before recombining the parts and completing the decryption routine.

[0082] In each round, part_a(L3B) is concatenated with 17 bytes of padding bits consisting of a round counter, user ID, and application ID (732), as in the cryptographic transformation process. In the resulting L20B output, the 3 bytes of L3B occupy the leftmost 3 byte positions. An HMAC with SHA-512 is performed (734) on the result of L20B, using an authenticated copy of the secure sign-on key as the HMAC key, to generate a pseudorandom product. The leftmost 3 bytes of the pseudorandom product are isolated (736) as D3B, and the rightmost byte outside of D3B is discarded. The resulting D3B is combined (738) with R3B using an XOR (modulo 2 addition) operation. The current part_b is then set equal to the current part_a(L3B), and then the current part_a is set equal to the result of the XOR operation (740).

[0083] In step 742, a check is made as to the number of rounds completed. If the value has not yet reached 1, the decryption process continues for another round by subtracting 1 from the current round number (744) before repeating the loop. If 6 rounds have been completed, i.e., the round number has counted down to 1, then the resulting part_a (L3B) and part_b (R3B) are combined into the corresponding bit string for authentication mode to complete the process (746) before returning (748).

[0084] One embodiment of a computing environment for incorporating and using one or more aspects of the present invention is described with reference to Figure 8A. In one example, the computing environment is based on the z / Architecture hardware architecture provided by International Business Machines Corporation of Armonk, New York. One embodiment of the z / Architecture hardware architecture is described in "z / Architecture Principles of Operation," IBM Publication No. SA22-7832-12, 13th Edition, September 2019, which is incorporated herein by reference in its entirety. IBM and Z / ARCHITECTURE are registered trademarks of International Business Machines Corporation in at least one jurisdiction.

[0085] In another example, the computing environment is based on the Power Architecture offered by International Business Machines Corporation of Armonk, NY. One embodiment of the Power Architecture is described in "Power ISA™ Version 2.07B," International Business Machines Corporation, April 9, 2015, which is incorporated herein by reference in its entirety. POWER ARCHITECTURE is a registered trademark of International Business Machines Corporation, Armonk, NY, USA.

[0086] The computing environment may be based on other architectures, including, but not limited to, the Intel x86 architecture. Other examples exist.

[0087] 8A, the computing environment 800 includes, by way of example, a computer system 802, shown, for example, in the form of a general-purpose computing device. The computer system 802 may include, but is not limited to, one or more processors or processing units 804 (e.g., a central processing unit (CPU)), memory 806 (for example, referred to as main memory or storage), and one or more input / output (I / O) interfaces 808 coupled together via one or more buses or other connections 810 or both.

[0088] Bus 810 represents any one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor bus or local bus using any of a variety of bus architectures, including, by way of example and not limitation, Industry Standard Architecture (ISA), Micro Channel Architecture (MCA), Enhanced ISA (EISA), Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI).

[0089] The memory 806 may include a cache 820, such as, for example, a shared cache, which may be coupled to a cache 822 local to the processor 804. Additionally, the memory 806 may include one or more programs or applications 830, an operating system 832, and one or more computer readable program instructions 834. The computer readable program instructions 834 may be configured to perform functions of embodiments of aspects of the present invention.

[0090] The computer system 802 may communicate with one or more external devices 840, one or more network interfaces 842, or one or more data storage devices 844, or a combination thereof, for example, via the I / O interface 808. Exemplary external devices include user terminals, tape drives, pointing devices, displays, etc. The network interface 842 enables the computer system 802 to communicate with one or more networks, such as a local area network (LAN), a general wide area network (WAN), or a public network (e.g., the Internet), or a combination thereof, to provide communication with other computing devices or systems.

[0091] The data storage device 844 may store one or more programs 846, one or more computer readable program instructions 848, or data, or a combination thereof, etc. The computer readable program instructions may be configured to perform the functions of an embodiment of an aspect of the present invention.

[0092] Computer system 802 may include and / or be coupled to removable / non-removable, volatile / non-volatile computer system storage media. For example, it may include and / or be coupled to non-removable, non-volatile magnetic media (commonly referred to as a "hard drive"), a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a "floppy disk"), or an optical disk drive for reading from and writing to a removable, non-volatile optical disk, such as a CD-ROM, DVD-ROM, or other optical media, or a combination thereof. It should be understood that other hardware and / or software components may be used in conjunction with computer system 802. Examples include, but are not limited to, microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data archiving storage systems.

[0093] Computer system 802 can operate with numerous other general purpose or special purpose computing system environments or configurations. Examples of well-known computing systems, environments, or configurations, or combinations thereof, that may be suitable for use with computer system 802 include, but are not limited to, personal computer (PC) systems, server computer systems, thin clients, thick clients, handheld or laptop devices, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs, minicomputer systems, mainframe computer systems, and distributed cloud computing environments that include any of the above systems or devices.

[0094] Further details regarding an example of a processor 804 are described with reference to FIG. 8B. The processor 804 includes multiple functional components used to execute instructions, including, for example, an instruction fetch component 850 that fetches instructions to be executed, an instruction decode unit 852 that decodes the fetched instructions and obtains operands for the decoded instructions, an instruction execution component 854 that executes the decoded instructions, a memory access component 856 that accesses memory for instruction execution, if necessary, and a writeback component 860 that provides results of the executed instructions. The processor 804 also includes one or more registers 870 that are used by one or more of the functional components, in one embodiment.

[0095] Another embodiment of a computing environment for incorporating and using one or more aspects is described with reference to Figure 9A. In this example, the computing environment 900 illustratively includes a native central processing unit (CPU) 902, memory 904, and one or more input / output devices or interfaces 90, or combinations thereof, coupled together, for example, via one or more buses 908 or other connections or both. By way of example, the computing environment 900 may include a PowerPC processor or a pSeries server offered by International Business Machines Corporation of Armonk, NY, or other machines based on architectures offered by International Business Machines Corporation, Intel, or other companies, or combinations thereof.

[0096] The native central processing unit 902 includes one or more native registers 910, such as one or more general purpose registers and / or one or more special purpose registers, that are used during processing within the environment. These registers contain information that represents the state of the environment at any particular time.

[0097] Additionally, the native central processing unit 902 executes instructions and code stored in memory 904. In one particular example, the central processing unit executes emulator code 912 stored in memory 904. This code enables a computing environment configured with one architecture to emulate another architecture. For example, the emulator code 912 enables a machine based on an architecture other than the z / Architecture, such as a PowerPC processor, a pSeries server, or other server or processor, to emulate the z / Architecture and execute software and instructions developed based on the z / Architecture.

[0098] Further details regarding the emulator code 912 are described with reference to FIG. 9B. The guest instructions 950 stored in memory 904 include software instructions (e.g., correlated to machine instructions) developed to execute in an architecture other than that of the native CPU 902. For example, the guest instructions 950 may be designed to execute on a z / Architecture processor, but are instead emulated on the native CPU 902, which may be, for example, an Intel processor. In one example, the emulator code 912 includes an instruction fetch routine 952 for retrieving one or more guest instructions 950 from the memory 904, and optionally providing local buffering of the retrieved instructions. It also includes an instruction conversion routine 954 for determining the type of the retrieved guest instruction and converting the guest instruction into one or more corresponding native instructions 956. This conversion may include, for example, identifying a function performed by the guest instruction and selecting a native instruction to perform the function.

[0099] Additionally, emulator code 912 includes an emulation control routine 960 that causes native instructions to be executed. Emulation control routine 960 may cause native CPU 902 to execute a routine of native instructions that emulates one or more previously fetched guest instructions and, upon completion of execution, returns control to an instruction fetch routine to emulate the fetch of the next guest instruction or group of guest instructions. Execution of native instructions 956 may include loading data from memory 904 into registers, storing data from registers back to memory, or performing some type of arithmetic or logical operation, depending on the determination of the translation routine.

[0100] Each routine may be implemented, for example, as software that is stored in memory and executed by the native central processing unit 902. In other examples, one or more of the routines or operations are implemented as firmware, hardware, software, or some combination thereof. Registers of the emulated processor may be emulated using the native CPU's registers 910 or by using locations in memory 904. In an embodiment, the guest instructions 950, native instructions 956, and emulator code 912 may reside in the same memory or be distributed among different memory devices.

[0101] As used herein, firmware includes, for example, the microcode or millicode of a processor. It includes, for example, hardware level instructions and / or data structures used in implementing higher level machine code. In one embodiment, it includes, for example, proprietary code, which includes trusted software or microcode that is specific to the underlying hardware and is typically provided as microcode that controls operating system access to the system hardware.

[0102] The guest instructions 950 that are obtained, translated, and executed are, for example, instructions of a monitored storage facility, some of which are described herein. Instructions of one architecture (e.g., z / Architecture) are fetched from memory and translated to represent a sequence of native instructions 956 of another architecture (e.g., PowerPC, pSeries, Intel, etc.). These native instructions are then executed.

[0103] One or more aspects may relate to or use cloud computing.

[0104] Although this disclosure includes detailed descriptions of cloud computing, it should be understood in advance that implementation of the particular teachings described herein is not limited to a cloud computing environment. Rather, embodiments of the invention may be implemented in conjunction with any other type of computing environment now known or later developed.

[0105] Cloud computing is a service delivery model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, memory, storage, applications, virtual machines, and services) that can be rapidly provisioned and made available with minimal administrative effort or interaction with service providers. This cloud model may include at least five characteristics, at least three service models, and at least four deployment models.

[0106] The characteristics are as follows:

[0107] On-Demand Self-Service: Cloud consumers can unidirectionally provision computing capacity, such as server time or network storage, automatically, as needed, without the need for human interaction with the service provider.

[0108] Broad network access: Capabilities are available over the network and accessed through standard mechanisms that facilitate use by heterogeneous thin- or thick-client platforms (e.g., cell phones, laptops, and PDAs).

[0109] Resource Pooling: Provider computing resources are pooled to serve multiple consumers using a multi-tenant model, with various physical and virtual resources dynamically allocated and reallocated as needed. Consumers generally have no control or knowledge regarding the exact location of the resources provided, but there is a sense of location independence in that location can be specified at a high level of abstraction (e.g., country, state, or data center).

[0110] Rapid Elasticity: Capacity can be rapidly and elastically provisioned, in some cases automatically, to scale up quickly, release quickly, and scale down quickly. To the consumer, the capacity available to provision often appears infinite and can be purchased at any time and in any quantity.

[0111] Metered Services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at some level of abstraction appropriate to the type of service (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported to provide transparency to both providers and consumers of the services utilized.

[0112] The service model is as follows:

[0113] Software as a Service (SaaS): The capability offered to the consumer is the ability to use a provider's applications running on a cloud infrastructure. The applications can be accessed from a variety of client devices through thin-client interfaces such as web browsers (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, storage, or even individual application capabilities except possibly limited user-specific application configuration settings.

[0114] Platform as a Service (PaaS): The ability offered to a consumer is the ability to deploy applications created or acquired by the consumer, written using programming languages ​​and tools supported by the provider, onto a cloud infrastructure. The consumer does not manage or control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but does have control over the deployed applications and potentially the application host environment configuration.

[0115] Infrastructure as a Service (IaaS): The ability provided to the consumer is the ability to provision processing, storage, network, and other basic computing resources onto which the consumer can deploy and run any software, which may include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure, but has control over the operating systems, storage, deployed applications, and possibly limited control over selected networking components (e.g., host firewalls).

[0116] The deployment model is as follows:

[0117] Private Cloud: The cloud infrastructure is operated exclusively for one organization. It may be managed by that organization or a third party and may reside on-premise or off-premise.

[0118] Community Cloud: The cloud infrastructure is shared by several organizations to support a specific community with shared concerns (e.g., mission, security requirements, policy, and compliance considerations). It may be managed by those organizations or a third party and may reside on-premise or off-premise.

[0119] Public Cloud: The cloud infrastructure is made available to the general public or large industry groups and is owned by an organization that sells cloud services.

[0120] Hybrid Cloud: A cloud infrastructure is a composition of two or more clouds (private, community, or public) that remain unique entities but are bound together by standardized or proprietary technologies (e.g. cloud bursting for load balancing between clouds) that enable data and application portability.

[0121] A cloud computing environment is a set of services that emphasize statelessness, low coupling, modularity, and semantic interoperability. At the core of cloud computing is an infrastructure that includes a network of interconnected nodes.

[0122] A cloud computing node may include a computer system / server such as that shown in FIG. 10. The computer system / server 802 of FIG. 8A or 902 of FIG. 9A may be implemented in a distributed cloud computing environment where tasks are performed by remote processing devices linked by a communications network. In a distributed cloud computing environment, program modules may be located in both local and remote computer system storage media, including memory storage devices. The computer system / server 802, 902 may implement and / or perform any of the functions described above.

[0123] Referring now to FIG. 10, an exemplary cloud computing environment 50 is depicted. As shown, the cloud computing environment 50 may include one or more cloud computing nodes 10, with which local computing devices used by cloud consumers, such as personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, or automobile computer systems 54N, or combinations thereof, may communicate. The nodes 10 may communicate with each other. They may be physically or virtually grouped (not shown) as one or more networks, such as private, community, public, or hybrid clouds, or combinations thereof, as described herein above. This enables the cloud computing environment 50 to provide infrastructure, platform, or software, or combinations thereof, as a service, for which the cloud consumers do not need to maintain resources on their local computing devices. It will be understood that the types of computing devices 54A-N shown in FIG. 6 are intended to be merely exemplary, and that the computing node 10 and cloud computing environment 50 can communicate with any type of computerized device through any type of network or network-addressable connection (e.g., using a web browser), or combination thereof.

[0124] Referring to Figure 11, a set of functional abstraction layers provided by cloud computing environment 50 (Figure 10) is shown. It should be understood in advance that the components, layers, and functions shown in Figure 10 are intended to be merely exemplary, and embodiments of the present invention are not limited thereto. As depicted, the following layers and corresponding functions are provided:

[0125] Hardware and software layer 60 includes hardware and software components. Examples of hardware components include mainframe 61, RISC (reduced instruction set computer) architecture based servers 62, servers 63, blade servers 64, storage devices 65, and networks and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.

[0126] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities may be provided: virtual servers 71, virtual storage 72, virtual networks including virtual private networks 73, virtual applications and operating systems 74, and virtual clients 75.

[0127] In one example, the management layer 80 may provide the following functions: Resource provisioning 81 provides dynamic procurement of computing and other resources utilized to perform tasks within the cloud computing environment. Metering and pricing 82 provides cost tracking as resources are utilized within the cloud computing environment and billing or invoicing for the consumption of those resources. In one example, the resources may include application software licenses. Security provides identity verification for cloud consumers and tasks, and protection for data and other resources. User portal 83 provides consumers and system administrators with access to the cloud computing environment. Service level management 84 provides allocation and management of cloud computing resources such that required service levels are met. Service level agreement (SLA) planning and fulfillment 85 provides proactive configuration and procurement of cloud computing resources in anticipation of future needs in accordance with SLAs.

[0128] The workload tier 90 provides examples of functions for which a cloud computing environment may be utilized. Examples of workloads and functions that may be provided from this tier include mapping and navigation 91, software development and lifecycle management 92, virtual classroom instructional delivery 93, data analytics processing 94, transaction processing 95, and authentication system processing 96.

[0129] The description of various embodiments of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the disclosed forms. Many changes and modifications will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terms used in this specification have been selected to best explain the principles of the embodiments, practical applications, or technical improvements to the technology found in the market, or to enable those skilled in the art to understand the embodiments described herein.

[0130] The present invention may be a system, method, or computer program product, or combination thereof, at any possible level of technical detail integration. The computer program product may include a computer-readable storage medium(s) having computer-readable program instructions for causing a processor to implement aspects of the present invention.

[0131] A computer readable storage medium may be a tangible device capable of holding and storing instructions for use by an instruction execution device. A computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. A non-exhaustive list of more specific examples of computer readable storage media includes portable computer diskettes, hard disks, random access memories (RAM), read-only memories (ROM), erasable programmable read-only memories (EPROMs or flash memories), static random access memories (SRAMs), portable compact disk read-only memories (CD-ROMs), digital versatile disks (DVDs), memory sticks, floppy disks, mechanically encoded devices such as punch cards or raised structures in grooves in which instructions are recorded, and any suitable combination of the above. A computer-readable storage medium as used in the present invention should not be construed as a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., light pulses through a fiber optic cable), or electrical signals transmitted over electrical wires.

[0132] The computer readable program instructions described herein may be downloaded from a computer readable storage medium to each computing / processing device or to an external computer or storage device via a network, such as the Internet, a local area network, a wide area network, or a wireless network, or a combination thereof. The network may include copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, or edge servers, or a combination thereof. A network adapter card or network interface within each computing / processing device receives the computer readable program instructions from the network and transfers the computer readable program instructions for storage within a computer readable storage medium within the respective computing / processing device.

[0133] The computer readable program instructions for carrying out the operations of the present invention may be either assembler instructions, instruction set architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state setting data, configuration data for an integrated circuit, or source or object code written in any combination of one or more programming languages, including object oriented programming languages ​​such as Smalltalk, C++, and procedural programming languages ​​such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server, as a stand-alone software package. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or wide area network (WAN), or a connection may be made to an external computer (e.g., through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may execute computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry to perform aspects of the invention.

[0134] Aspects of the present invention are described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer readable program instructions.

[0135] These computer-readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions, executed by the processor of the computer or other programmable data processing apparatus, create means for performing the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams. Those computer-readable program instructions may be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, or other device, or combination thereof, to function in a particular manner such that the computer-readable storage medium on which the instructions are stored constitutes an article of manufacture including instructions that implement aspects of the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0136] The computer-readable program instructions may be loaded into a computer, other programmable data processing apparatus, or other device, causing the computer, other programmable apparatus, or other device to perform a series of operational steps to generate a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus, or other device, perform the functions / acts specified in one or more blocks of the flowcharts and / or block diagrams.

[0137] The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a module, segment, or part of an instruction, which includes one or more executable instructions for performing the specified logical function. In some alternative implementations, the functions noted in the blocks may occur out of the order noted in the figures. For example, two blocks shown in succession may in fact be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order depending on the functionality involved. It should also be noted that each block of the block diagrams and / or flowchart illustrations, and combinations of blocks in the block diagrams and / or flowchart illustrations, may be implemented by a special-purpose hardware-based system that performs the specified functions or acts or implements a combination of special-purpose hardware and computer instructions.

[0138] In addition to the above, one or more aspects may be provided, supplied, deployed, managed, serviced, etc., by a service provider that provides management of a customer environment. For example, a service provider may create, maintain, support, etc., computer code and / or computer infrastructure that performs one or more aspects for one or more customers. In return, the service provider may receive payments from the customer, for example under a subscription and / or fee agreement. Additionally or alternatively, the service provider may receive payments from the sale of advertising content to one or more third parties.

[0139] In one aspect, an application may be deployed to perform one or more embodiments. By way of example, deploying the application may include providing a computer infrastructure operable to perform one or more embodiments.

[0140] As a further aspect, a computing infrastructure may be deployed that includes integrating computer readable code into a computing system, the code being capable of performing one or more embodiments in combination with the computing system.

[0141] As yet a further aspect, there may be provided a process for integrating a computing infrastructure comprising integrating computer readable code into a computer system, the computer system comprising a computer readable medium, the computer medium comprising one or more embodiments, the code in combination with the computer system capable of performing one or more embodiments.

[0142] Although various embodiments have been described above, they are merely examples. For example, computing environments of other architectures may be used to incorporate and use one or more embodiments. Furthermore, different instructions, instruction formats, instruction fields, or instruction values, or combinations thereof, may be used. Many variations are possible.

[0143] Additionally, other types of computing environments may be beneficially utilized. As an example, a data processing system suitable for storing and / or executing program code may be utilized that includes at least two processors coupled directly or indirectly through a system bus to memory elements. The memory elements may include, for example, local memory used during the actual execution of the program code, mass storage, and cache memory that provides temporary storage of at least some of the program code to reduce the number of times the code must be retrieved from mass storage during execution.

[0144] Input / output or I / O devices (including but not limited to keyboards, displays, pointing devices, DASDs, tapes, CDs, DVDs, thumb drives and other memory media) may be coupled to the system either directly or through intermediary I / O controllers. Network adapters may also be coupled to the system to enable the data processing system to be coupled to other data processing systems or remote printers or storage devices through intermediary private or public networks. Modems, cable modems, and Ethernet cards are just a few of the available types of network adapters.

[0145] The terms used herein are for the purpose of describing particular embodiments only and are not intended to be limiting of the invention. As used herein, the singular forms "a," "an," and "the" are intended to encompass the plural unless the context clearly indicates otherwise. Additionally, the words "comprise" (and any form of "comprise," such as "comprises" or "comprising"), "have" (and any form of "have," such as "has" or "having"), "include" (and any form of "include," such as "includes" or "including"), and "contain" (and any form of "contain," such as "contains" or "containing") will be understood to be open-ended linking verbs. As a result, a method or device that "comprises," "has," "includes," or "contains" one or more steps or elements possesses those one or more steps or elements, but is not limited to possessing only those one or more steps or elements. Similarly, a method step or device element that "comprises," "has," "includes," or "contains" one or more features possesses those one or more features, but is not limited to possessing only those one or more features. Furthermore, a device or structure that is configured in a certain way may be configured in at least that way, but in ways not recited.

[0146] Corresponding structures, materials, acts, and equivalents of all means or step-function-added elements in the following claims are intended to encompass any structure, material, or act for performing a function in combination with other claimed elements, if any, as specifically claimed. The description of the present invention has been presented for purposes of illustration and description and is not intended to be exhaustive or to limit the invention to the disclosed form. Many modifications and variations will become apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The embodiments have been selected and described in order to best explain the principles and practical application of one or more aspects of the present invention, and to enable those skilled in the art to understand one or more aspects of the present invention in relation to the various embodiments, together with various modifications suitable for the particular use contemplated in relation to the various embodiments.

Claims

1. A computer system for authentication processing in an authentication system, comprising: The computer system comprises: generating authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation, the time-dependent input being recoverable from the authentication parameters using the inverse transformation, the authentication system supporting a plurality of authentication modes, a bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differing from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes, generating the authentication parameters depending in part on whether the time-dependent input is for the one authentication mode or the other authentication mode, and including performing multiple rounds of transformation of the time-dependent input, one or more of the multiple rounds of transformation depending in part on whether the authentication system is currently using the one authentication mode or the other authentication mode; generating a time-dependent password comprising a character string from the authentication parameter using another predefined transformation having another inverse transformation, the authentication parameter being recoverable from the time-dependent password using the other inverse transformation; transmitting said time-dependent password to an authenticator of said authentication system for authentication; 23. A computer system that performs operations including:

2. 2. The computer system of claim 1, wherein if the time-dependent input is for the one authentication mode, the time-dependent input is a binary input having an odd number of bits.

3. 3. The computer system of claim 1, wherein if the time-dependent input is for the other authentication mode, the time-dependent input is a binary input having an even number of bits.

4. 4. The computer system of claim 3, wherein the time-dependent input for the one authentication mode comprises 41 bits and the time-dependent input for the other authentication mode comprises 48 bits.

5. generating the authentication parameters, Splitting the time-dependent input into one segment (part_a) and another segment (part_b); performing the multiple rounds of transformation of the time-dependent input using the one segment (part_a) and the other segment (part_b) to obtain a final part_a and a final part_b, wherein a round of transformation of the multiple rounds of transformation includes transforming a current part_a and a current part_b at least in part using a sign-on key, a round-specific value, and a transformation process, the round-specific value changing for each round of transformation of the multiple rounds of transformation; combining the final part_a and the final part_b to form the authentication parameter based on performing the multiple rounds of transformation; The computer system according to any one of claims 1 to 4, comprising:

6. 6. The computer system of claim 5, wherein the one authentication mode is an UPPER authentication mode in which the sign-on key uses only uppercase letters and numbers, and the other authentication mode is a MIXED authentication mode in which the sign-on key uses any of uppercase and lowercase letters, numbers, and one or more special characters.

7. A computer system as described in any one of claims 1 to 6, wherein the partially dependent process includes performing a masking operation depending on whether the authentication system is currently using the one authentication mode or the other authentication mode.

8. A computer system for authentication processing within an authentication system, comprising: The computer system comprises: generating authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation, the time-dependent input being recoverable from the authentication parameters using the inverse transformation, the authentication system supporting a plurality of authentication modes, a bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differing from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes, and generating the authentication parameters depending in part on whether the time-dependent input is for the one authentication mode or the other authentication mode; generating a time-dependent password comprising a character string from the authentication parameter using another predefined transformation having another inverse transformation, the authentication parameter being recoverable from the time-dependent password using the other inverse transformation; transmitting said time-dependent password to an authenticator of said authentication system for authentication; and generating the authentication parameters, Splitting the time-dependent input into one segment (part_a) and another segment (part_b); performing multiple rounds of transformation of the time-dependent input using the one segment (part_a) and the other segment (part_b) to obtain a final part_a and a final part_b, wherein a round of transformation of the multiple rounds of transformation includes transforming a current part_a and a current part_b at least in part using a sign-on key, a round-specific value, and a transformation process, the round-specific value changing for each round of transformation of the multiple rounds of transformation; combining the final part_a and the final part_b to form the authentication parameter based on performing the multiple rounds of transformation; wherein the round-specific value comprises a current value of a round counter, the current value of the round counter changing for each round of transformation of the multiple rounds of transformation, and the transformation process is a Message Authentication Code (MAC) process.

9. 1. A method of authentication processing in an authentication system, the method comprising: generating authentication parameters responsive to a time-dependent input using a predefined transformation having an inverse transformation, the time-dependent input being recoverable from the authentication parameters using the inverse transformation, the authentication system supporting a plurality of authentication modes, a bit length of the time-dependent input for one authentication mode of the plurality of authentication modes differing from a bit length of the time-dependent input for another authentication mode of the plurality of authentication modes, generating the authentication parameters depending in part on whether the time-dependent input is for the one authentication mode or the other authentication mode, and including performing multiple rounds of transformation of the time-dependent input, one or more of the multiple rounds of transformation depending in part on whether the authentication system is currently using the one authentication mode or the other authentication mode; generating a time-dependent password comprising a character string from the authentication parameter using another predefined transformation having another inverse transformation, the authentication parameter being recoverable from the time-dependent password using the other inverse transformation; transmitting said time-dependent password to an authenticator of said authentication system for authentication; A method for causing an action to be performed, including

10. 10. The method of claim 9, wherein when the time-dependent input is for the one authentication mode, the time-dependent input is a binary input with an odd number of bits, and when the time-dependent input is for the other authentication mode, the time-dependent input is a binary input with an even number of bits.

11. generating the authentication parameters, Splitting the time-dependent input into one segment (part_a) and another segment (part_b); performing the multiple rounds of transformation of the time-dependent input using the one segment (part_a) and the other segment (part_b) to obtain a final part_a and a final part_b, wherein a round of transformation of the multiple rounds of transformation includes transforming a current part_a and a current part_b at least in part using a sign-on key, a round-specific value, and a transformation process, the round-specific value changing for each round of transformation of the multiple rounds of transformation; combining the final part_a and the final part_b to form the authentication parameter based on performing the multiple rounds of transformation; The method of claim 9 or 10, comprising:

12. A computer program for causing a computer to execute the method according to any one of claims 9 to 11.

13. A computer readable storage medium having recorded thereon the computer program of claim 12.

Citation Information

Patent Citations

  • Method and equipment for confirmation

    JP1995107086A

  • A computer-readable recording medium containing information on user registration and authentication methods for disposable passwords using multiple methods, and the program that performs these methods.

    JP2010503912A

  • Time-based authentication

    US20140189831A1

  • Authenticated device, authentication device, authentication request transmitting method, authentication method, and program

    WO2020080301A1