Authentication and personal data sharing for partner services using out-of-band optical mark recognition

Information

  • Patent Grant
  • 11640602
  • Patent Number
    11,640,602
  • Date Filed
    Friday, May 7, 2021
    3 years ago
  • Date Issued
    Tuesday, May 2, 2023
    a year ago
Abstract
Disclosed are methods and apparatuses for creating a verified mutually authenticated transaction between a service provider and an on-line identity for a physical client person. A dynamic optical mark may be displayed on a device screen where the physical client person is using a web service. The dynamic optical mark may be recognized via scanning the dynamic optical mark by a personal mobile device equipped with a camera. The verified mutually authenticated transaction between the service provider and the on-line identity for the physical client person may be used for sharing personal data of the physical client person by using out-of-band optical mark recognition of the dynamic optical mark. The verified mutually authenticated transaction may be initiated with a time-limited one-time password comprising a sequence of numbers encoded in the dynamic optical mark.
Description
BACKGROUND OF THE DISCLOSURE

Authentication is an important aspect of on-line communication between various parties, such as service providers and individual users. In order to use a web service offered by a service provider, a user may need to confirm his identity to the service provider. The service provider may implement an authentication service locally or use an external identity provider to confirm the user's identity. When using an external identity provider, the service provider may request the identity confirmation via a standard API and may receive a verified user identity as a response. When using the web service, the user may share personal data with the service provider.


A common way for implementing authentication for both local implementations and external identify provider services is based on the use of a username and a password as authentication credentials. Password-based authentication, however, can be problematic. Usernames or passwords can be forgotten, stolen, or unintentionally exposed.


SUMMARY OF THE DISCLOSURE

This disclosure provides methods and apparatuses for creating a verified mutually authenticated transaction between a service provider and an on-line identity for a physical client person. A dynamic optical mark may be displayed on a device screen where the physical client person is using a web service. The dynamic optical mark may be recognized via scanning the dynamic optical mark by a personal mobile device equipped with a camera.


The verified mutually authenticated transaction between the service provider and the on-line identity for the physical client person may be used for sharing personal data of the physical client person by using out-of-band optical mark recognition of the dynamic optical mark. The verified mutually authenticated transaction may be initiated with a time-limited one-time password comprising a sequence of numbers encoded in the dynamic optical mark.


The on-line identity for the physical client person may be authenticated to the web service by signing a transaction completion request with a private key and a corresponding public key stored within the web service may be used for verification. The on-line identity may be verified by personal biometry. The private key may be stored at a hardware encrypted storage (TPM) of the personal mobile device.


An authorization assertion may be constructed and passed to the service provider. The authorization assertion may be in a form of a OAuth2 token, SAML token, RP token or another provider supported technology.





BRIEF DESCRIPTION OF THE DRAWINGS


FIG. 1 illustrates exemplary processes for user registration or user authorization.



FIG. 2 illustrates an exemplary process for user authorization at a partner web service.





DETAILED DESCRIPTION

In the following description of examples, reference is made to the accompanying drawings which form a part hereof, and in which it is shown by way of illustration specific examples that can be practiced. It is to be understood that other examples are can be used and structural changes can be made without departing from the scope of the disclosed examples.


According to one aspect, a cloud-based service, or cloud service, is described which implements means to create a verified mutually authenticated transaction between a service provider and an on-line identity securely tied to a physical person with a custom mandatory security step integrated. In one example, the custom step involves displaying of a specially formed dynamic optical mark on the device where client is using web service (e.g., authorized email), and recognition of this mark via scanning it by client personal smartphone.


The client personal smartphone may hold a personal client certificate created during enrollment procedure. The personal smartphone may manage client authorization, provide full control of the stored personal data, manage the access to personal data from third-parties. Client can revoke the third-party access at any time. On the other hand, the communication between client personal smartphone and the cloud service (implemented via, e.g., an API layer and a database) may be encrypted by personal client certificate and can be performed by public networks without security flaw too.


Instead of directly providing authorization credentials, a client may use his/her personal smartphone as identity provider after mark recognition. User may specify the part of the personal data that he/she wants to share with the third-party. No sensitive data (including client credentials, client profile list, etc.) other than explicitly allowed by user for this third-party may be transferred through the computer and network used for accessing of third-party service. No direct communication may be performed between the computer and client smartphone apart from optical mark recognition. Sensitive data management may be leveraged to the client smartphone.


Client may have a number of personal data sets (profiles) stored in the single account. When a personal data is requested by the third-party, the client may have the ability to choose the profile to be shared.


Additional security level can be enabled at the smartphone by using available built-in capabilities such as device-wide password protected lock, retina scanning, fingerprint scanning. Moreover, additional security level can be enabled for different profiles separately.


In one example, the solution uniquely features ability to initiate each transaction with a sequence of numbers encoded in a proprietary dynamic optical code (see, e.g., U.S. Ser. No. 62/248,605, entitled “Palette-Based Optical Recognition Code Generators and Decoders,” the entire content of which is incorporated by reference herein). These numbers may represent the time-limited one-time password (TOTP) represented in a form of a series of static optical marks. Only third-parties who are authenticated to the service can initiate transactions. Dynamic nature of the optical code may provide sufficient encoding depth and channel robustness for the high level of password security.


To complete the transaction, the code may be read through a mobile phone camera. The optical nature of the code recognition may create an out-of-band transaction verification channel air-gapped from the network over which the digital service is provided.


Client's on-line identity may authenticate to the service by signing its transaction completion request with its private key stored in the phone's hardware encrypted storage (TPM). Corresponding public key needed for verification may be stored within the service.


Once the client is authenticated, authorization assertion, which could take a form of a OAuth2 token, SAML token, RP token or another provider supported technology, may be passed to the third-party, creating a closed-loop process.


In case the mobile phone is compromised, a new set of private/public key pair may be issued. A key pair may correspond to the mobile device, or can be created individually for each of the on-line identities (profiles) registered for the physical person.


Transactions that require lower level of security can implement the protocol partially. Transactions that require multiple independent providers can also be supported.


The cloud service can be implemented via, e.g., API layer(s) and database(s) that are run on server(s), such as Linux server(s). The client personal smartphone or mobile phone may be examples of a personal mobile device. The functionalities of each computing device mentioned in this disclosure (e.g., server, personal mobile device, computer) can be performed by suitable logic circuitry in or for that computing device. For example, suitable logic circuitry may include processor(s) that, when executing instruction implemented in software program(s) stored in processor-readable storage medium(s) (e.g., memory) in or for that computing device, performs that computing device's functionalities. As another example, suitable logic circuitry may include hardware logic circuitry, such as a programmable logic device or an application-specific integrated circuit, implementing logic designs that provide that computing device's functionalities. As yet another example, suitable logic circuitry for that computing device may include an implementation that combines both processor(s) running software and hardware logic circuitry.


The following workflows describe exemplary processes of partner registration, user registration, user authorization on the example of OAuth2 protocol used for data sharing.


Third-Party Partner Registration


To get personal information about particular client, third-party partner may need to be registered providing administrator email, service name, service base URL, URL for OAuth2 redirect required access level and arbitrary secret key. These registration data may be stored in the database 160.


Third-party administrator may provide additional information on how to verify the owner of the domain and payment information.



FIG. 1 illustrates an exemplary process for user registration at mobile application.


Workflow for User Registration at Mobile Application


User may install the application 120 at his smartphone 140 and start it.


A Sign Up view of application 120 may be displayed.


User may navigate to the Sign Up screen and follow the sign up procedure providing his email.


Application 120 may send the given email to the cloud service 180 over TLS connection using temporary asymmetric RSA key pair for this communication. TLS connection can also be known as SSL connection.


An account record may be created for the user, having stored user email. An activation link may be sent to user email.


A message may be shown to the user informing him that the enrollment procedure is pending and he should check email. A scanner view of the application 120 may be displayed with all UI controls related to user profile disabled.


User may navigate to the activation link on another computer. A special dynamic optical mark 122 for enrollment procedure may be displayed. Optical mark 122 may encode registration session identifier.


User may scan the given optical mark 122 by pointing smartphone camera 142 to the optical mark 122 having application 120 in the foreground.


Application 120 may send the scanned code to the cloud service 180 over TLS (or SSL) connection using temporary asymmetric RSA key pair for this communication.


If recognized code matches to stored registration session identifier then cloud service 180 may return the unique user identifier and certificate signing token to the application 120.


Application 120 may generate a new personal asymmetric RSA key pair and store the private key at the smartphone 140 in protected storage space 144.


X.509 certificate signing request may be created using the personal key pair and given user identifier.


Application 120 may send the X.509 certificate signing request and certificate signing token to the cloud service 180 over TLS (or SSL) connection using temporary asymmetric RSA key pair for this communication.


Cloud service 180 may match user identifier with X.509 certificate signing request and certificate signing token, sign the X.509 certificate and return signed personal X.509 certificate to the application 120.


Application 120 may store the personal X.509 certificate at the smartphone 140 in protected storage space 144 and enable UI controls related to user profile.


User may create and fill in at least one profile in the application 120.


Application 120 may send profile data to the cloud service 180 over TLS (or SSL) connection using personal X.509 certificate.


Cloud service 180 may identify user by personal X.509 certificate and store the profile information.


Application 120 may be ready to scan optical marks to perform user authorization at third-parties.


Workflow for User Certification Invalidation


Personal user certificate invalidation may be performed at the following circumstances.

    • a. Administrator manually revokes the certificate for particular user via Administrative Tool.
    • b. User installs the application 120 to another device and activates a new personal certificate, the previous one becomes revoked.
    • c. Personal user certificate is expired.


When mobile application 120 tries to perform any request over TLS (or SSL) connection using revoked/expired personal X.509 certificate, the cloud service 180 may return special error code denoting the using certificate is invalid and should be deleted.


Application 120 may check if the server certificate matches the one stored at the application 120, removes certificate and RSA key pair from the keychain and show Sign Up view.


User may have to follow the “Workflow for user authorization at the application using another device (or in the case of personal X.509 certificate revocation/expiration)” below.



FIG. 1 also illustrates an exemplary process for user authorization at the application using another device (or in the case of personal X.509 certificate revocation/expiration)


Workflow for User Authorization at the Application Using Another Device (or in the Case of Personal X.509 Certificate Revocation/Expiration)


User may install the application 120 at a new smartphone 140 and start it, or User may start the application 120 having invalid (e.g., revoked or expired) personal X.509 certificate.


A Sign Up view of the application 120 may be displayed.


User may navigate to the Sign Up screen and may follow the sign up procedure providing his email.


Application 120 may send the given email to the cloud service 180 over TLS (or SSL) connection using temporary asymmetric RSA key pair for this communication.


Cloud service 180 may find user account by given email. An activation link may be sent to user email.


A message may be shown to the user informing him that the enrollment procedure is pending and he should check email. A scanner view of the application 120 may be displayed with all UI controls related to user profile disabled.


User may navigate to the activation link on another computer. A special dynamic optical mark 122 for enrollment procedure may be displayed.


User may scan the given optical mark 122 by pointing smartphone camera 142 to the optical mark 122 having application 120 in the foreground.


Application 120 may send the scanned code to the cloud service 180 over TLS (or SSL) connection using temporary asymmetric RSA key pair for this communication.


Cloud service 180 may return the unique user identifier and certificate signing token to the application 120.


Application 120 may generate a new personal asymmetric RSA key pair and store the private key at the smartphone 140 in protected storage space 144.


X.509 certificate signing request may be created using the personal key pair and given user identifier.


Application 120 may send the X.509 certificate signing request and certificate signing token to the cloud service 180 over TLS (or SSL) connection using temporary asymmetric RSA key pair for this communication.


Cloud service 180 may match user identifier with X.509 certificate signing request and certificate signing token, sign the X.509 certificate and return signed personal X.509 certificate to the application 120.


Application 120 may store the personal X.509 certificate at the smartphone 140 in protected storage space 144 and enable UI controls related to user profile.


User may create and fill in at least one profile in the application 120.


Application 120 sends profile data to the cloud service 180 over TLS (or SSL) connection using personal X.509 certificate.


Cloud service 180 may identify user by personal X.509 certificate and store the profile information.


Application 120 may be ready to scan optical marks to perform user authorization at third-parties.



FIG. 2 illustrates an exemplary process for user authorization at a partner web service.


Workflow for User Authorization at a Partner Web Service


User may click at the special link at the partner web service.


Third-party may redirect user browser to a special web page for custom authorization.


A new authorization session may be created in the cloud service 180. A random session code, random dynamic optical mark code, access token, and one-time OAuth2 code may be generated and stored in the authorization session record.


The custom authorization page may display special dynamic optical mark 122 to user and display information on which data will be available to the partner. A polling may be performed to check if mark 122 is already recognized.


User may start the application 120 and direct smartphone camera 142 to the dynamic optical mark 122 displayed at the page.


Application 120 may recognize the dynamic optical mark 122 and send its code over TLS (or SSL) connection using personal X.509 certificate.


Cloud service 180 may identify source user by personal X.509 certificate and associate user identifier with the authorization session.


If user has already authorized with this partner:

    • Cloud service 180 may use the selected profile and access levels from the previous authorization session at this partner.


If user has not already authorized with this partner:

    • Cloud service 180 may return “profile” state to the application 120.
    • Application 120 may display the profile choosing view with profile list and the access level controls.
    • User may select the profile he wants to be used by this partner. Before actual authorization, the user may, if he deems it fit, adjust the access levels.
    • Application 120 may send the selected profile identifier, access levels over TLS (or SSL) connection using personal X.509 certificate.
    • Cloud service 180 may identify source user by personal X.509 certificate and binds the profile selection and access levels to the authorization session.


If the selected profile and access levels require multi-factor procedure:

    • Cloud service 180 may return “multifactor” state to the application 120.
    • Application 120 may display security screen with additional verification procedure implemented (for example, fingerprint scan).
    • User may go through the additional verification procedure.
    • Application 120 may send the additional verification result over TLS (or SSL) connection using personal X.509 certificate.
    • Cloud service 180 may identify source user by personal X.509 certificate and the authorization session and allow the process to continue.


Cloud service 180 may return “finish” state to the application 120.


Application 120 may return to the main scanner view.


Custom authorization page may redirect user browser back to the partner web service (HTTPS back redirect URL is mandatory) with the one-time OAuth2 code in the GET parameter.


Partner web service may make a request to cloud service 180 via TLS (or SSL) connection providing partner web service identifier, given one-time OAuth2 code and secret partner key.


Cloud service 180 may search the given one-time OAuth2 code and returns the stored authorization session access token to the partner if match and the state of the authorization session is active.


Partner web service may now have an access token which may enable it to make requests to the cloud service 180.


Partner web service may make a request to cloud service 180 using given access token to fetch user unique identifier, first and last name and any other required private information. Cloud service 180 may return requested data if the state of the authorization session is active.


User may see his name at the partner website and can act as an authorized user.


Partner website may contain a link that makes user to logout. This link may pass the session code for the authorization session to be invalidated in the cloud service 180. Alternatively, user can break the authorization session at the partner web service at any time using “Remove Application” feature in the mobile application 120.


It should be noted that the practice of the present disclosure is not limited to the above-described examples. Those of ordinary skill in the art may perform modification or variation in accordance with the foregoing description, and all such modifications and variations should fall into the scope of the appended claims of the present disclosure.

Claims
  • 1. A method programmed in a non-transitory memory of a mobile device comprising: recognizing an optical mark displayed on a device screen of a device, wherein the optical mark comprises at least two concentric circles, wherein the optical mark is calibrated by comparing at least three different colors within a calibration region within the at least two concentric circles to an encoding palette, wherein a portion of the optical mark within the at least two concentric circles, comprises a plurality of segments wherein each segment of the plurality of segments comprises one color of the at least three different colors;detecting the optical mark using the registration mark and the calibration region by identifying and assigning values to the plurality of segments of the segmented portion and decoding an optical code based on the assigned values; andauthenticating an on-line identity for a client based on the optical code of the optical mark and based on the on-line identity of the client.
  • 2. The method of claim 1 wherein the portion of the optical mark is based on the at least three different colors and each color is associated with the optical code comprising a number.
  • 3. The method of claim 1 wherein the optical mark is oriented by positioning a registration mark relative to the portion of the optical mark.
  • 4. The method of claim 1 wherein recognizing the optical mark comprises recognizing the optical mark over an air-gapped channel between the mobile device and the device screen of the device.
  • 5. The method of claim 1 further comprising: storing a first key, wherein authenticating the on-line identity for the client comprises signing a transaction completion request with the first key stored in the mobile device; andverifying the on-line identity for the client by using a corresponding second key stored by a computer of a web service provider.
  • 6. The method of claim 5 wherein verifying the on-line identity for the client comprises evaluating personal biometry.
  • 7. The method of claim 5 further comprising: constructing an authorization assertion; andpassing the authorization assertion to the web service provider.
  • 8. The method of claim 7 wherein passing the authorization assertion comprises passing an OAuth2 token, SAML token, or RP token to the web service provider.
  • 9. The method of claim 1 wherein recognizing the optical mark comprises scanning the optical mark by a camera of the mobile device.
  • 10. The method of claim 5 wherein the first key comprises a private key, and wherein the second key comprises a public key.
  • 11. The method of claim 6 wherein evaluating the personal biometry comprises retina scanning or fingerprint scanning.
  • 12. An apparatus comprising: a non-transitory memory configured for storing an application, the application configured for: recognizing an optical mark displayed on a device screen of a device, wherein the optical mark comprises at least two concentric circles, wherein the optical mark is calibrated by comparing at least three different colors within a calibration region within the at least two concentric circles to an encoding palette, wherein a portion of the optical mark within the at least two concentric circles, comprises a plurality of segments wherein each segment of the plurality of segments comprises one color of the at least three different colors;detecting the optical mark using the registration mark and the calibration region by identifying and assigning values to the plurality of segments of the segmented portion and decoding an optical code based on the assigned values; andauthenticating an on-line identity for a client based on the optical code of the optical mark and based on the on-line identity of the client; anda processor configured for processing the application.
  • 13. The apparatus of claim 12 wherein the portion of the optical mark is based on the at least three different colors and each color is associated with the optical code comprising a number.
  • 14. The apparatus of claim 12 wherein the optical mark is oriented by positioning a registration mark relative to the portion of the optical mark.
  • 15. The apparatus of claim 12 wherein recognizing the optical mark comprises recognizing the optical mark over an air-gapped channel between the mobile device and the device screen of the device.
  • 16. The apparatus of claim 12 wherein the application is configured for: storing a first key, wherein authenticating the on-line identity for the client comprises signing a transaction completion request with the first key stored in the mobile device; andverifying the on-line identity for the client by using a corresponding second key stored by a computer of a web service provider.
  • 17. The apparatus of claim 16 wherein verifying the on-line identity for the client comprises evaluating personal biometry.
  • 18. The apparatus of claim 16 wherein the application is configured for: constructing an authorization assertion; andpassing the authorization assertion to the web service provider.
  • 19. The apparatus of claim 18 wherein passing the authorization assertion comprises passing an OAuth2 token, SAML token, or RP token to the web service provider.
  • 20. The apparatus of claim 12 wherein recognizing the optical mark comprises scanning the optical mark by a camera of the mobile device.
  • 21. The apparatus of claim 16 wherein the first key comprises a private key, and wherein the second key comprises a public key.
  • 22. The apparatus of claim 17 wherein evaluating the personal biometry comprises retina scanning or fingerprint scanning.
  • 23. A method programmed in a non-transitory memory of a mobile device comprising: recognizing an optical mark displayed on a device screen of a device, wherein the optical mark comprises at least two concentric circles, wherein the optical mark is calibrated by comparing at least three different colors within a calibration region within the at least two concentric circles to an encoding palette;detecting the optical mark using the registration mark and the calibration region by decoding an optical code; andauthenticating an on-line identity for a client based on the optical code of the optical mark and based on the on-line identity of the client.
  • 24. The method of claim 23 wherein a portion of the optical mark is based on the at least three different colors and each color is associated with the optical code comprising a number.
  • 25. The method of claim 23 wherein the optical mark is oriented by positioning a registration mark relative to a portion of the optical mark.
  • 26. The method of claim 23 wherein recognizing the optical mark comprises recognizing the optical mark over an air-gapped channel between the mobile device and the device screen of the device.
  • 27. The method of claim 23 further comprising: storing a first key, wherein authenticating the on-line identity for the client comprises signing a transaction completion request with the first key stored in the mobile device; andverifying the on-line identity for the client by using a corresponding second key stored by a computer of a web service provider.
  • 28. The method of claim 27 wherein verifying the on-line identity for the client comprises evaluating personal biometry.
  • 29. The method of claim 27 further comprising: constructing an authorization assertion; andpassing the authorization assertion to the web service provider.
  • 30. The method of claim 29 wherein passing the authorization assertion comprises passing an OAuth2 token, SAML token, or RP token to the web service provider.
  • 31. The method of claim 23 wherein recognizing the optical mark comprises scanning the optical mark by a camera of the mobile device.
  • 32. The method of claim 27 wherein the first key comprises a private key, and wherein the second key comprises a public key.
  • 33. The method of claim 28 wherein evaluating the personal biometry comprises retina scanning or fingerprint scanning.
RELATED APPLICATION(S)

This application is a continuation of co-pending U.S. patent application Ser. No. 15/721,899, filed Sep. 30, 2017, and titled “AUTHENTICATION AND PERSONAL DATA SHARING FOR PARTNER SERVICES USING OUT-OF-BAND OPTICAL MARK RECOGNITION” which claims benefit of U.S. Provisional Patent Application No. 62/402,728, filed Sep. 30, 2016, which are all hereby incorporated by reference in their entirety for all purposes.

US Referenced Citations (115)
Number Name Date Kind
D607009 McEnaney Dec 2009 S
D614192 Takano Apr 2010 S
7885635 Laursen Feb 2011 B2
7992102 De Angelo Aug 2011 B1
8363259 Gilboa Jan 2013 B2
8417642 Oren Apr 2013 B2
8543834 Barra Sep 2013 B1
8621209 Johansson Dec 2013 B1
8639785 Kiley Jan 2014 B2
8892871 Cho Nov 2014 B2
D719176 Cohen Dec 2014 S
D719177 Cohen Dec 2014 S
D723050 Minsung et al. Feb 2015 S
9112835 Isozaki Aug 2015 B2
9210156 Little Dec 2015 B1
9219732 Baghdasaryan Dec 2015 B2
9392460 Blake Jul 2016 B1
9419951 Felsher et al. Aug 2016 B1
D765669 Shaw Sep 2016 S
9706406 Adams Jul 2017 B1
D800764 Thoreson Oct 2017 S
9852418 Mardikar Dec 2017 B2
D813884 Penker Mar 2018 S
9959694 Lindsay May 2018 B2
9961547 Molina-Markham May 2018 B1
10019561 Shelton Jul 2018 B1
10200364 Ketharaju et al. Feb 2019 B1
D847857 Elatta May 2019 S
10402800 Lucas Sep 2019 B2
10521223 Bogushefsky, III Dec 2019 B1
10810290 Minter et al. Oct 2020 B2
D916890 Nagpal Apr 2021 S
10970607 Xue Apr 2021 B2
11005839 Shahidzadeh May 2021 B1
11030618 Budko Jun 2021 B1
11038694 Kleinman Jun 2021 B1
D925602 Xu Jul 2021 S
D928803 Faller Aug 2021 S
D928820 Bodduluri Aug 2021 S
11121878 McCarty Sep 2021 B2
20020099955 Peled Jul 2002 A1
20030016844 Numaoka Jan 2003 A1
20040223616 Kocarev Nov 2004 A1
20060031301 Herz et al. Sep 2006 A1
20060196950 Kiliccote Sep 2006 A1
20080301057 Oren Dec 2008 A1
20090194592 Ming et al. Aug 2009 A1
20090315671 Gocho Dec 2009 A1
20100079591 Lee Apr 2010 A1
20110072142 Herz et al. Mar 2011 A1
20110167255 Matzkel Jul 2011 A1
20110187642 Faith Aug 2011 A1
20110233284 Howard Sep 2011 A1
20110302405 Marlow Dec 2011 A1
20120214442 Crawford Aug 2012 A1
20120221859 Marten Aug 2012 A1
20120272058 Wang et al. Oct 2012 A1
20130086625 Driscoll Apr 2013 A1
20130111208 Sabin May 2013 A1
20140039892 Mills Feb 2014 A1
20140040628 Fort Feb 2014 A1
20140244514 Rodriguez Aug 2014 A1
20140278077 Levin Sep 2014 A1
20150089568 Sprague Mar 2015 A1
20150242601 Griffiths Aug 2015 A1
20150242605 Du Aug 2015 A1
20150271679 Park Sep 2015 A1
20150278805 Spencer, III Oct 2015 A1
20150294092 Balasubramanian Oct 2015 A1
20150347734 Beigi Dec 2015 A1
20150356289 Brown Dec 2015 A1
20150373007 Shelter Dec 2015 A1
20160011224 Pollack Jan 2016 A1
20160057623 Dutt Feb 2016 A1
20160065570 Spencer Mar 2016 A1
20160110528 Gupta Apr 2016 A1
20160180078 Chhabra Jun 2016 A1
20160182503 Cheng Jun 2016 A1
20160227411 Lundblade Aug 2016 A1
20160239649 Zhao Aug 2016 A1
20160239657 Loughlin-Mchugh Aug 2016 A1
20160283406 Linga Sep 2016 A1
20160342873 Feld et al. Nov 2016 A1
20170013453 Lee Jan 2017 A1
20170041309 Ekambaram Feb 2017 A1
20170063528 Seo Mar 2017 A1
20170193211 Blake Jul 2017 A1
20170272419 Kumar Sep 2017 A1
20170289168 Bar Oct 2017 A1
20170339118 Hwang Nov 2017 A1
20180005239 Schlesinger Jan 2018 A1
20180012003 Asulin Jan 2018 A1
20180025135 Odom Jan 2018 A1
20180039990 Lindemann Feb 2018 A1
20180114221 Karantzis Apr 2018 A1
20180135815 Rowles May 2018 A1
20180167816 Kusens et al. Jun 2018 A1
20180285879 Gadnis Oct 2018 A1
20180302416 Einberg Oct 2018 A1
20180329857 Ko Nov 2018 A1
20190207918 Kurian Jul 2019 A1
20190268774 Kusens et al. Aug 2019 A1
20190281025 Harriman Sep 2019 A1
20190281036 Eisen Sep 2019 A1
20190342092 Handschuh Nov 2019 A1
20200042723 Krishnamoorthy Feb 2020 A1
20200050745 Kim Feb 2020 A1
20200053096 Bendersky Feb 2020 A1
20200162435 Kubo May 2020 A1
20200175157 Wilding Jun 2020 A1
20200358787 Barker Nov 2020 A1
20200403787 Islam Dec 2020 A1
20200403992 Huffman Dec 2020 A1
20210014314 Yamada Jan 2021 A1
20210250759 Ziv Aug 2021 A1
Foreign Referenced Citations (2)
Number Date Country
107924475 Apr 2018 CN
2016179433 Nov 2016 WO
Non-Patent Literature Citations (11)
Entry
Magoon, Owais, “iOS app.” Behance, published Sep. 7, 2015 (Retrieved from the Internet Mar. 22, 2021). Internet URL: <https://www.behance.net/gallery/27383661/iOS-app> (Year: 2015).
Bywater Films. “Winkk: Emotion to Action.” Vimeo, published Oct. 7, 2015 (Retrieved from the Internet Mar. 22, 2021). Internet URL: <https://vimeo.com/141695923> (Year:2015).
Schiff, Eli, “Unofficial Apple Icon Design Awards.” Eli Schiff Blog, published Jan. 5, 2016 (Retrieved from the Internet Mar. 22, 2021), Internet URL: <www.elischiff.com/blog/2016/1/5/apple-icon-design-awards> (Year: 2016).
Li et al., “Addressable Metasurfaces for Dynamic Holography and Optical Information Encryption”, Jun. 15, 2018, http://advances.sciencemag.org/content/advances/4/6/eaar6768.full.pdf.
International Search Report and Written Report for the International Application No. PCT/JS2020/064099 dated Mar. 16, 2021.
International Report on Patentability from International Application No. PCT/US2020/064099, dated Jun. 23, 2022, 7 pages.
Erdem Alkim et al., “Post-Quantum key exchange—a new hope”, International Association For Cryptologic Research, vol. Nov. 16, 2016:063839, Nov. 16, 2016, pp. 1-22.
Joppe W. Bos et al., “Post-quantum key exchange for the TLS protocol from the ring learning with errors problem”, International Association for Cryptologic Research, vol. Mar. 16, 2015:235249, Mar. 17, 2015, pp. 1-28.
International Search Report dated Aug. 11, 2016, for PCT Application No. PCT/US2016/031055, filed May 5, 2016, five pages.
International Search Report dated Oct. 9, 2019, for PCT Application No. PCT/US2019/041871, filed Jul. 15, 2019, four pages.
International Search Report and Written Report for the International Application No. PCT/US2020/064099 dated Mar. 16, 2021.
Related Publications (1)
Number Date Country
20210264418 A1 Aug 2021 US
Provisional Applications (1)
Number Date Country
62402728 Sep 2016 US
Continuations (1)
Number Date Country
Parent 15721899 Sep 2017 US
Child 17314900 US