`
`(12) United States Patent
`US 9,559,852 B2
`(10) Patent No.:
`Miller et al.
`(45) Date of Patent:
`Jan. 31, 2017
`
`(54)
`
`CRYPTOGRAPHIC SECURITY FUNCTIONS
`BASED ON ANTICIPATED CHANGES IN
`DYNAMIC MINUTIAE
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`(71)
`
`Applicant: mSignia, Inc., Irvine, CA (US)
`
`(72)
`
`Inventors: Paul Timothy Miller, Irvine, CA (US);
`George Allen Tuvell, Thompson’s
`Station, TN (US)
`
`6,041,133 A *
`
`6,185,316 B1*
`
`3/2000 Califano ............ G06K9/00067
`382/124
`2/2001 Buffam ................... G06F 21/32
`382/100
`
`(Continued)
`
`FOREIGN PATENT DOCUMENTS
`
`(73)
`
`Assignee: mSignia, Inc., Irvine, CA (US)
`
`JP
`JP
`
`2008516472
`2009111971
`
`5/2008
`5/2009
`
`(*)
`
`Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`(21)
`
`Appl. No.: 15/075,066
`
`(22)
`
`Filed:
`
`Mar. 18, 2016
`
`(65)
`
`Prior Publication Data
`
`US 2016/0261416 A1
`
`Sep. 8,2016
`
`Related US. Application Data
`
`(63)
`
`Continuation of application No. 14/458,123, filed on
`Aug. 12, 2014, now Pat. No. 9,294,448, which is a
`(Continued)
`
`Int. Cl.
`
`(51)
`
`H04L 29/06
`H04L 9/32
`
`US. Cl.
`
`(52)
`
`(2006.01)
`(2006.01)
`(Continued)
`
`CPC ........... H04L 9/3271 (2013.01); H04L 9/0861
`(2013.01), H04L 9/0866 (2013.01), H04L
`9/0872 (2013.01),
`
`(Continued)
`Field of Classification Search
`CPC
`H04L 36/0876; H04L 9/0861; H04L 9/0866
`(Continued)
`
`(58)
`
`Shibata, Yoichi, “Mechanism-based PKI,” Computer Security Sym-
`posium, Oct. 29, 2003, vol. 2003, N0. 15, pp. 181-186, Information
`Processing Society of Japan, Japan.
`(Continued)
`
`Primary Examiner 7 Dao Ho
`(74) Attorney, Agent, or Firm 7 Haynes and Boone, LLP
`
`(57)
`
`ABSTRACT
`
`Dynamic key cryptography validates mobile device users to
`cloud services by uniquely identifying the user’s electronic
`device using a very wide range of hardware, firmware, and
`software minutiae, user secrets, and user biometric values
`found in or collected by the device. Processes for uniquely
`identifying and validating the device include: selecting a
`subset of minutia from a plurality of minutia types; com-
`puting a challenge from which the user device can form a
`response based on the selected combination of minutia;
`computing a set of pre-processed responses that covers a
`range of all actual responses possible to be received from the
`device if the combination of the particular device with the
`device’s collected actual values of minutia is valid; receiv-
`ing an actual response to the challenge from the device;
`determining whether the actual response matches any of the
`pre-processed responses; and providing validation, enabling
`authentication, data protection, and digital signatures.
`
`25 Claims, 11 Drawing Sheets
`
`
`
`
`
`
`
`
`
`_/1
`
`Choose Hardware (Hx) Firmware (Fy).\y
`Software (52) Secret (1a) and/or
`g7
`l Biometric (so) based on need tar
`l uniqueness predictability multiID
`i~20i0
`1factor_5c scope_at possiole changes1
`V
`
`Formulate
`~116
`Choienge
`IHey: Fn(Hx+Fy+Sz+?a+Bb)
`
`1
`lCompule Challenge irom Indexes
`
`Calculate
`i Challenge: Fn(x+y+z+a+b+Rondomlt)F4020
`
`1
`Possible Responses ~124 -
`1 Process Range of Possible Changes L__
`t
`Minutia DB
`
`Send Challenge
`l Hx- Hardware no poss. changes
`pr: firmware 9 poss changes
`70
`ond await Response .415
`
`l:Sz Software 250 pass. changes
`l~xzoso
`120
`
`i ?a: Secret no pass changes
`'
`Fn(Key+Challenge)
`'
`r Validate by matching Computer
`Hose
`,
`l
`
`Validate Response
`iResponse against possible responses,
`l
`
`
`tram Computer
`;
`apply confidence score based on
`1 Receive k Unpack Challenge
`y
`‘Felch Minutia Values 12 Build Key
`128
`
`i=Response Fn(Key+Chaiienge)
`1
`Update
`l Return Response
`I F
`i or were unkawn update the Minutia
`i—
`Computer Minutia
`1 DB with new values
`1
`
`
`Intelligent
`Minnlio Selection ~II4
`
`
`
`changed1y 2050
` /
`
`|A1001
`
`IA1001
`
`
`
`US 9,559,852 B2
`
`Page 2
`
`Related U.S. Application Data
`
`continuation of application No. 13/366,197, filed on
`Feb. 3, 2012, now Pat. No. 8,817,984.
`
`(60) Provisional application No. 61/462,474, filed on Feb.
`3, 2011.
`
`2007/0240222 A1
`2008/0086773 A1
`2008/0086776 A1
`2008/0175449 A1*
`
`2008/0196104 A1
`2008/0235515 A1*
`
`10/2007 Tuvell et a1.
`4/2008 Tuvell et a1.
`4/2008 Tuvell et a1.
`7/2008 Fang ....................... G06F 21/32
`382/124
`
`8/2008 Tuvell et a1.
`9/2008 Yedidia .............. G06K 9/00073
`713/186
`
`10/2008 Thomas et a1.
`2008/0244744 A1
`2008/0267510 A1* 10/2008 Paul
`................... G06K 9/00577
`382/209
`
`(51)
`
`(2006.01)
`(2006.01)
`
`Int. Cl.
`H04L 9/16
`H04L 9/08
`(52) U.S. Cl.
`CPC ............... H04L 9/16 (2013.01), H04L 9/3231
`(2013.01); H04L 9/3247 (2013.01); H04L
`63/0428 (2013.01); H04L 63/0861 (2013.01);
`H04L 63/0876 (2013.01)
`(58) Field of Classification Search
`USPC .......................................................... 380/255
`
`See application file for complete search history.
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`7,269,160 B1*
`
`7,330,871 B2
`7,333,871 B2
`7,373,669 B2
`7,908,662 B2
`7,937,467 B2
`8,213,907 B2
`8,312,157 B2
`8,335,925 B2
`8,375,221 B1*
`
`2006/0031676 A1*
`
`2006/0104484 A1*
`
`2007/0124801 A1
`2007/0174206 A1*
`
`2007/0214151 A1
`2007/0240217 A1
`2007/0240218 A1
`2007/0240219 A1
`2007/0240220 A1
`2007/0240221 A1
`
`9/2007 Friedman ........... G06Q 30/0601
`370/352
`
`2/2008 Barber
`2/2008 Schwarm
`5/2008 Eisen
`3/2011 Richardson
`5/2011 Barber
`7/2012 Etchegoyen
`11/2012 Jakobsson et a1.
`12/2012 Taugbol
`2/2013 Thom ..................... G06F 21/57
`713/189
`2/2006 Vantalon ................ G06Q 10/02
`713/176
`5/2006 Bolle ................. G06K 9/00885
`382/115
`
`5/2007 Thomas et a1.
`7/2007 Colella ................ G06Q 20/382
`705/64
`
`9/2007 Thomas et a1.
`10/2007 Tuvell et a1.
`10/2007 Tuvell et a1.
`10/2007 Tuvell et a1.
`10/2007 Tuvell et a1.
`10/2007 Tuvell et a1.
`
`5/2009 Richardson
`2009/0138975 A1
`2009/0310779 A1* 12/2009 Lam ................... G06K 9/00093
`380/46
`
`2010/0027834 A1
`2010/0229224 A1
`2010/0332400 A1
`2011/0007177 A1*
`
`2011/0082768 A1
`2011/0093503 A1
`2011/0113388 A1
`2011/0293094 A1
`2011/0296170 A1
`2012/0201381 A1*
`
`2013/0340052 A1
`2014/0229386 A1
`
`2/2010 Spitzig et a1.
`9/2010 Etchegoyen
`12/2010 Etchegoyen
`1/2011 Kang ..................... H04N5/232
`348/2221
`
`4/2011 Eisen
`4/2011 Etchegoyen
`5/2011 Eisen et a1.
`12/2011 Os et a1.
`12/2011 Chen
`8/2012 Miller ....................... H04L 9/ 16
`380/255
`
`12/2013 Jakobsson
`8/2014 Tervo et a1.
`
`FOREIGN PATENT DOCUMENTS
`
`W0
`W0
`W0
`
`WO 2010/035202
`WO 2013/138714
`WO 2013/154936
`
`4/2010
`9/2013
`10/2013
`
`OTHER PUBLICATIONS
`
`Juels et a1., “A Fuzzy Vault Scheme,” Designs, Codes and Cryp-
`tography, Feb. 2006, pp. 237-257, vol. 38, N0. 2, Springer Science
`+ Business Media, Inc., New York/USA.
`Notice of Reasons for Rejection dated Sep. 6, 2016, Japanese Patent
`Application No. P2014/555571.
`Jakobsson et a1., “Implicit Authentication for Mobile Devices,”
`H0tSec’09 Proceedings of the 4th USENIX conference on Hot
`topics in security, 2009, USENIX Association, Berkeley, California/
`USA. Retrieved from the Internet on Nov. 18, 2016: <URL:https://
`wwwusenix.org/1egacy/event/hotsecO9/tech/fullipapers/
`jakobsson.pdf>.
`
`* cited by examiner
`
`|A1001
`
`IA1001
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 1 of 11
`
`US 9,559,852 B2
`
`iOO
`
`10
`
`Crypto Provider
`
`14
`
`Service Provider
` Dynamic Key
`vI
`
`
`
`20
`
`Service Provider App
`
`56
`
`
`
`
`Dynamic Key
`Crypto Library
`
`
`
`44
`
`FIG. 1
`
`|A1001
`
`IA1001
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 2 of 11
`
`US 9,559,852 B2
`
`comN:
`
`
`
`$3835m£358
`
`25220%$E250%
`
`32:2052%
`
`
`
`583:895
`
`m:
`
`ow$338
`
`2322
`
`@J
`
`
`
`g$8592$255835m@28me
`
`385.652812;
`
`__<5%@9235
`
`waxgems;
`
`
`
`EmmaONmoExI
`
`maman0%fo
`
`magn3%fo
`
`gamman_NmoExI
`
`IISE2&5:
`
`“22%:2E525;2&523E:£358
`
`5a2033m”258gm
`
`2%:”egg:203::
`
`sE....................-,
`
`3a
`
`
`
`E2583/Us822,85cm0%x
`
`$3QOuEwafx:
`
`232:8:32a8536:B82%332
`
`fl.2522g
`
`Egg:
`
`33.83552
`
`$3uE
`
`E:u3:
`
`33nE
`
`52na:
`
`@95505
`
`E
`
`Q}
`
`.5:.<:
`
`ems42
`
`motgt
`
`@332
`
`2gas
`
`.Ew
`
`m9583828:5%
`:Enommm
`
`20:85:59222:82.”
`mmefiamoas22;;m3%msmommm4%?mEma
`
`Io?na
`
`_
`
`
`
`|A1001
`
`IA1001
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 3 of 11
`
`US 9,559,852 B2
`
` .9:agesWNO_n_822E:"Anm+£+Nm+r+x$£Iix3E.
`
`
`
`
`
`
`
`$22,32:::5:Am;3388
`
`
`
`
`
`
`
`
`
`
`Ew:393%:2525
`
`53388932ch3302:5\
`
`
`QENZW895%.880mm82:3nNmmm
`v\IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII/
`$956$8o:65%n8am
`
`Aomcgfiéigi!3:881
`
`
`
`
`
`£2,351ux:me23:5,$0850358;Us0081$88;@826525m895%.88aSEE:ur805%$30:
`
`
`EA88381@358;I...............A...............
`3283............................
`oNoNLAAAEOEEEJFENitEI@8265],
`
`
`@23813%_._o>ammcams2988Esme@8881mA
`ms...............A...............W$926533?
`
`.335850¢so82528m852283qumx!.....................
`
`I--:--:-------..--:}-...mww§o.A525a82%32::Ex
`
`38%
`
`9.5;:£258
`
`\
`
`
`
`A$2232£2,mo.__SE22:2.52:252::2%5m88L8956555BE.8222.3%:5w_
`
`
`
`2
`
`
`
`mmcogmomEfimm/
`
`mmcoqmmm
`
`
`
`@9265#895gm23$
`
`\\
`
`\\|lllllllllllllllllllllllllllllll
`
`|A1001
`
`
`
`meansso:@3285£328
`
`\\
`
`E8:830:352
`
`Egg
`
`
`
`_ImmmcofigammaA02589%atom
`
`
`
`
`
`
`
`2:255$22:5382838083::§8%S825Acme
`
`
`
`
`
`:55ActEomm.Ava82:8
`
`{Arv22E:3;sages:885
`
`\
`
`
`
`IA1001
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 4 of 11
`
`US 9,559,852 B2
`
`
`
`23:55
`
`cozcgaé
`
`
`
`52.35835m
`
`\E2553
`
`$255295
`
`E
`
`835m
`
`&<539;
`
`asE:
`
`
`
`82.3529Eostom
`
`ONI
`
`am855
`
`I
`
`in
`
`M:1/
`
`
`
`mvou«Ezom
`
`58322.5
`
`8:53?8:05am
`
`532595m
`
`835m2305:
`
`5225
`
`$585583:
`
`
`
`525i853m
`
`a
`
`
`
`E528;835m
`
`on
`
`mm503:8&5weaat:am52883
`
`-
`
`reg:895
`
`‘5sagasinmm
`
`mom
`
`
`
`|A1001
`
`IA1001
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 5 of 11
`
`US 9,559,852 B2
`
`539:8am
`
`mo258553:38
`
`28mxx‘:3:58
`
`$23:8338:82:23:
`
`am:
`
`mm:a.833m
`
`so:
`
`N:
`
`
`
`2
`
`53:55033E239:31'@J
`
`
`
`
`
`m:0:2:0:20:
`
`E:£28m
`
`33:3828
`
`
`
`53:38536$
`
`3ix23:95
`
`mm30:35iE
`
`
`
`3:3::35
`
`E
`
`am338:
`
`23:3
`
`
`
`me23:22
`
`:3:8:20:23323:33:22:
`:03:
`
`N:
`
`3352:38:
`
`wea.25mm
`
`
`
`32mmmm.vmV—n—Somvflwmusfiwémax835m:282332
`
`
`
`23:5539:8
`
`g
`
`|A1001
`
`IA1001
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 6 of 11
`
`US 9,559,852 B2
`
`500\
`80
`
`10
`
`86
`
`- Dynamic Key
`Software
`Crypto Provider
`Manufacturers
`
`- 82
`Computer Hardware
`Manufacturers
`
`- e
`
`Firmware
`Manufacturers
`
`84
`
`Industry Minutia
`Cataloging
`
`
`
`
`
`Minutia
`Update
`Correction
`
`@
`
`Computer
`industry
`Research
`
`
`
`%
`
`92
`
`- Data
`,
`M d l’
`Industry Update
`,
`7
`O f'lg
`Heunshcs
`Catalogue DB
`and
`Permutations
`
`
`
`
`95
`
`98
`
`70
`
`-
`
`Anticipated
`Minutia DB
`
`- .
`
`Minutia DB
`
`-
`
`Historical
`Minutia
`Trends &
`
`Data Mining
`
`
`
`
`~94
`
`FlG.5
`
`|A1001
`
`IA1001
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 7 of 11
`
`US 9,559,852 B2
`
`0%
`
`$88;23:823:8
`
`Egg;8»Em
`
`0202
`
`8:2mm:
`
`228::
`
`2,22mm»“A28m
`
`m:
`
`E388;g
`
`@358am
`
`
`
`m:
`
`
`
`523$833m
`
`.1:
`
`m:
`
`#5302
`
`mu!
`
`mm
`
`N28m8358wea.22mmE525:E-2&52523
`
`
`
`33%:
`
`g2::
`
`0.:
`
`Scamc2322,
`
`0:322
`
`mi
`
`Ucom
`
`accoom
`
`n_m8
`
`”A88m
`
`223::
`
`amg235:
`
`
`
` amammmcoqmm20>
`
`
`
`02N:{6.0E
`
`|A1001
`
`IA1001
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`7
`
`e
`
`9
`
`2B
`
`
`mam82:6”—Eocmoé.2058::228::
`
`
`
`
`8:82;2mm02”Avfiesmoz”Amccmmmoom02”Am;
`
`
`
`
`
`
`
`2
`
`“Eva:5:£3
`
`nJaL8:
`
`m2:weEmE8:25”:68:;mm;
`
`
`
`35%Eggmt$2881
`
`30>SEES
`
`Eocwmbfi.vac
`
`on_figgmgash
`
`am$82;
`
`
`
`a.m3;mm.9:fi23
`
`mo:Ea:
`
`@2085:52:88?2:55@2265
`
`
`
`8::mm:ESE;32:55
`
`nM...N§EEWfmaImmNM:8»_r-m-%_Ew:mm:L_
`
`|A1001
`
`IA1001
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 9 of 11
`
`US 9,559,852 B2
`
`ll4
`
`I0
`
`r__________________ 1
`
`700
`
`Intelligent
`Minutia Selection
`
`i
`
`in Figs 2
`
`Dynamic Key,
`Crypto Provrder
`
`26
`
`Secrets and
`Biometric Minutia
`
`a
`
`20
`
`256
`
`Display System
`PIN
`Computer 18
`
`
`Service Provider App
`
`System
`PIN
`
`Dynamic Key
`in Use
`
`
`Crypto Library
`
`
`252
`
`
`264
`
`Get Biometric
`
`MMuUa
`
`44
`
`Process
`
` Unpack
`Computer Minutia
`
`
`
`ChoNenge
`
` Use
`
`Service
`
`PIN
`
`
`
`
`Process
`
`Response
`
`Fetch Key
`Minutia
`
`Biometric Request
`
`262
`
`64
`
`108
`
`Display
`Service PIN
`
`258
`
`
`
`
`
`Yes
`Digital
`
`
`Signature
`
`Oct Time Since
`
`last Successful
`
`
`
`
`Substitute Message
`Hash for
`Random Number
`
`242
`
`FIG. 7
`
`|A1001
`
`PIN Event
`
`
`Calculate
`Actual Response
`
`
`260
`
`IA1001
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 10 of 11
`
`US 9,559,852 B2
`
`800
`
`\
`
`Dynamic Key
`2410 Crypto Provider
`
`.
`‘
`MW??? DB
`
`-
`Secrets and
`
`Biometric Minutia
`
`Crypto Library
`
`44
`
`194
`
`E.ncrypted
`
`Service Data
`
`112
`
`196
`
`Heartbeat & Chatter
`
`210
`
`No
`
`Heartbeat
`
`I rar
`
`y
`
`ora e
`g
`
`Yes
`
`
`
`
`
`_elete Servicefrom_omputer
`
`
`
`i
`Register
`i Computer (Fig 4)
`
`5
`i
`
`201
`
`FIG 8
`
`MinutIa
`
`204
`
`|A1001
`
`User Do
`
`Service Provider
`
`Local
`Computer Check
`
`Encrypt &
`
`206
`
`Retries
`
`
`
`-élComputerMinutia
`
`Service Key
`Minutia Selections
`
`Fetch Random
`
`|8ServiceProviderApp
` Dynamic Key
`
`
`DetcryptData
`
`
` V0|Id
`Fetch Key
`L'b U::::t[e
`Decryption
`
`
`
`
`
`Exhausted
`
`
`
`
`_ynchMinutiawithD—CP
`
`IA1001
`
`
`
`U.S. Patent
`
`Jan. 31, 2017
`
`Sheet 11 of 11
`
`US 9,559,852 B2
`
`196
`
`900
`
`- - /
`Delete Service
`-
`Encrypted
`from Computer
`. SW06 Kat,
`Servrce Data
`lvlinutia Selections
`
`
`Yes
`
`66
`
`FIG. 9
`
`238
`
`Transfer
`
`Service
`
`
`Figure 4
`Crypto Library
`
`App Delivery in
`Figure 3
`
`Computer System
`Registration in
`
`i
`i
`t
`
`Dynamic Key
`Crypto Library
`
`Il
`:I
`
`IIlIll :ll|l|||||
`
`Dynamic Key
`
`
`Computer
`E
`
`Service User
`E
`
`IL
`\‘ /
`is?
`[In
`
`Other
`
`Service Providers
`
`I
`
`10
`
`Dynamic Key
`Crypto Provider
`
`New Computer
`m
`
`Service Provider App
`Processing in
`Figure 8
`
`L____________________.1
`Biometric Minutia
`
`Secrets and
`
`14
`
`26
`
`232
`
`
`
`Hold, Delete, Transfer
`Service Request
`
`
`222 m
`LII-.-
`
`Hold Service
`
`Delete Service
`
`Transfer Service
`
`- - .
`Minutia DB
`SP Info & le
`9’ goniidence
`E
`Q
`
`conng
`
`
`
`
`Notify Other
`Service Providers
`
`228
`
`|A1001
`
`IA1001
`
`
`
`US 9,559,852 B2
`
`1
`CRYPTOGRAPHIC SECURITY FUNCTIONS
`BASED ON ANTICIPATED CHANGES IN
`DYNAMIC MINUTIAE
`
`CROSS REFERENCE TO RELATED
`APPLICATIONS
`
`This application is a continuation of co-pending US.
`patent application Ser. No. 14/458,123 filed Aug. 12, 2014,
`which is a continuation of and claims benefit of priority to
`US. patent application Ser. No. 13/366,197 filed Feb. 3,
`2012, now US. Pat. No. 8,817,984, issued Aug. 26, 2014,
`which claims the benefit of US. Provisional Patent Appli-
`cation No. 61/462,474 filed Feb. 3, 2011, all of which are
`incorporated by reference.
`
`BACKGROUND
`
`Technical Field
`
`The present disclosure generally relates to dynamic key
`cryptography used, for example, for authentication between
`a client electronic device and a service provider, encryption
`of data communications, and digital signatures and, more
`particularly, to cryptography using dynamic keys derived
`from dynamically changing key material.
`Related Art
`
`Use of computers for connecting to a network (such as the
`Internet) and communicating with a variety of services risks
`the privacy of many types of information belonging to a user
`including, for example, the user’s relationships (e.g., social
`connections), business secrets, banking details, payment
`options, and health records. The use of cryptography is
`common to authenticate identities, protect data, and digitally
`sign the summary (i.e. digest) of an action.
`Cryptography
`generally
`uses
`an
`algorithm (e.g.,
`Advanced Encryption Standard (AES), Rivest Shamir Adel-
`man (RSA)) to combine cryptographic keys (which may be
`symmetric, public, or private, for example) with plain text to
`form cipher text. Cryptography keys are typically random
`numbers without any special meaning. The process of dis-
`tributing cryptographic keys and storing them on a client
`computer (referred to as “key management”) is difficult to
`perform securely and is often the point-of-attack for break-
`ing the security of a cryptographic system. The key repre-
`sents a single sequence of data and thus a single point-of-
`failure for the cryptographic system. Since the key normally
`must be present at the client computer, finding the key and
`then copying it to another computer can allow an imposter
`entity to masquerade as a valid entity.
`Secure elements (e.g., smartcards) can securely store the
`cryptographic key and, in some instances, generate the key
`in a secure environment. Access to the key was typically
`controlled by requiring the user to enter a personal identi-
`fication number (PIN); this ensured that the user had to
`provide a secret before the secure element would allow use
`of the key. Such access to a key is commonly known as
`two-factor authentication, and the two factors are generally
`referred to as: “Something You Know” and “Something You
`Have”. A third factor, “Something You Are”, can include, for
`example, biometric information. The factors themselves are
`related in use but entirely separate in material. Possession of
`the physical secure element (“Something You Have”) may
`be via validation of cryptographic functions using the ran-
`dom number cryptographic key provisioned to a particular
`secure element whose use may be protected by a secret PIN
`(“Something You Know”). There is no implicit binding
`between the key and the user.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`
`The use of certificates in cryptography enabled the bind-
`ing of a distinguished name (e.g., a unique user) with a
`cryptographic key. Yet, still
`the cryptographic key is a
`random number, and when the key is validated, the crypto-
`graphic system attributes the user in the certificate to the
`usage of the key; the key matter itself has no relation to the
`user.
`
`On the Internet, ensuring a real-world identity for the user
`is critical for protecting data and privacy. Mobile users
`especially are at risk because they often do not use anti-virus
`applications and many of the service providers use applica-
`tions (apps) optimized for simplicity, not security. This
`leaves much of the private data meaningful to both a user’s
`identity and a service’s value inadequately protected. Since
`online service providers (OSP) incur much of the risk, safety
`has become their responsibility.
`The standard method for identifying a user to an online
`service is by entering a username and password. The user-
`name is a known service index and, as such, can be stored
`on the computer for convenience. The password is a user
`secret verifiable by the OSP; it should not be stored at the
`computer, where it can be compromised. However, because
`a quality password has many characters which should be a
`mix of upper, lower, punctuation and special characters, the
`password is often difficult and time-consuming to type. This
`is especially true on a mobile computer using touch keypads
`that have various ‘levels’ of keypads for characters beyond
`simple alpha-numeric. Thus, many mobile apps store the
`password on the computer. Because mobile operating sys-
`tems require mobile apps to be signed in order to run, the
`apps themselves cannot be altered after installation. So, any
`data stored by the mobile app is separate from the mobile
`app and often can be vulnerable to attack. Furthermore,
`because the app cannot change, if encryption was used to
`protect
`the cached password,
`there could only be one
`encryption key for all
`instances of the application. This
`commonality made harvesting and cracking stored pass-
`words on a mobile computer relatively simple, even if the
`passwords were encrypted, since they all used the same key
`for decryption.
`Computer and computer identification has been attempted
`by calculating a hash of the minutia found on a computer to
`uniquely identify the computer, often referred to as a com-
`puter fingerprint. Computer fingerprints typically are used,
`among other things, to ‘lock’ software to a particular com-
`puter fingerprint and identify computers used in online
`actions to profile the history and potential risk of particular
`actions. A typical computer identifier is computed and
`remains static; to ensure reliability the computer fingerprint
`typically uses computer minutiae (e.g., serial numbers) that
`normally do not change. Thus, current computer fingerprints
`typically use a relatively small set of static minutia which
`may be prone to spoofing. Some approaches to improving
`computer identification have sought to increase the number
`of minutiae used in identifying the computer through the
`analysis of time (both in clock and network latency) and bits
`of information left on the computer (i.e. ‘cookies’). How-
`ever, as more minutiae are included in the computation, the
`probability that changes occurred naturally to the minutia
`can result in a new computer fingerprint. This falsely iden-
`tifies a computer as ‘different’ when it is actually the same
`computer (often referred to as ‘false negatives’). These
`changes to the minutia on a unique computer occur naturally
`during normal use and can invalidate the computer finger-
`
`|A1001
`
`IA1001
`
`
`
`US 9,559,852 B2
`
`3
`print process or inconvenience the user or service by forcing
`a re-initialization of the computer fingerprint.
`
`SUMMARY
`
`According to one or more embodiments of the present
`invention, methods and systems for dynamic key cryptog-
`raphy use a wide range of minutiae as key material including
`computer hardware, firmware, software, user secrets, and
`user biometrics rather than store a random number as a
`
`cryptographic key on the computer. Methods and systems
`for using dynamic key cryptography, according to one or
`more embodiments, can be used for authenticating users to
`services, ciphering data for protection, and digitally signing
`message digests. In one embodiment, dynamic key cryptog-
`raphy anticipates changes to computers caused by industry
`updates to hardware, firmware, and software of computers.
`In one embodiment, a method of dynamic key cryptog-
`raphy includes: selecting a subset from a set of minutia
`types; for a particular device, sending a challenge to the
`device, in which: the challenge includes information from
`which the device can collect actual values of minutia cor-
`
`responding to the selected subset of minutia types in order
`to form a cryptographic key, the cryptographic key is never
`transmitted from the device across any communication
`channel, and the cryptographic key is used to encrypt an
`actual response to the challenge; pre-processing a set of
`responses to the challenge based on tracking updates of
`minutia from which the selected subset of minutia types is
`selected, in which: the set of pre-processed responses covers
`a range of all actual responses possible to be received from
`the particular device if the combination of the particular
`device with collected actual values of minutia is valid;
`comparing the actual response from the particular device to
`the set of pre-processed responses; and validating the com-
`bination of the particular device with the collected actual
`values if the actual response is included in the set of
`pre-processed responses for the particular device.
`In another embodiment, a method includes: selecting at
`least one type of minutia from a plurality of minutia types;
`forming a challenge that conveys the selection of minutia
`types; computing a plurality of pre-processed responses
`possible to receive from a valid device,
`in which: each
`pre-processed response is computed using a key, each key is
`computed using values that are possible for the selection of
`minutia types; sending the challenge to the device; receiving
`an actual response to the challenge from the device,
`in
`which: the actual response is computed using an actual key,
`the actual key is computed using: a deduction of the selec-
`tion of minutia types from the challenge and actual values of
`the selection of minutia types; comparing the actual
`response to the pre-processed responses for a match; and
`based on whether or not a match was found, validating the
`combination of the device with the actual values of the
`
`selection of minutia types.
`In still another embodiment, a system includes a server
`configured to communicate with a device,
`in which the
`server selects at least one type of minutia from a plurality of
`minutia types; the server forms a challenge that conveys the
`selection of minutia types; the server computes a plurality of
`pre-processed responses possible to receive from a valid
`device, in which: each pre-processed response is computed
`using a key, each key is computed using values that are
`possible for the selection of minutia types; the server sends
`the challenge to the device; the server receives an actual
`response to the challenge from the device, in which: the
`actual response is computed using an actual key; the actual
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`
`key is computed using: a deduction of the selection of
`minutia types from the challenge and actual values of the
`selection of minutia types; the server compares the actual
`response to the pre-processed responses for a match; and
`based on whether or not a match was found, the server
`validates the combination of the device with the actual
`
`values of the selection of minutia types.
`In yet another embodiment, a computer program product
`includes a non-transitory computer readable medium having
`computer readable and executable code for instructing a
`processor to perform a method,
`the method including:
`selecting at least one type of minutia from a plurality of
`minutia types; forming a challenge that conveys the selec-
`tion of minutia types; computing a plurality of pre-processed
`responses possible to receive from a valid device, in which:
`each pre-processed response is computed using a key and
`each key is computed using values that are possible for the
`selection of minutia types; sending the challenge to the
`device; receiving an actual response to the challenge from
`the device, in which: the actual response is computed using
`an actual key, the actual key is computed using: a deduction
`of the selection of minutia types from the challenge and
`actual values of the selection of minutia types; comparing
`the actual response to the pre-processed responses for a
`match; and based on whether or not a match was found,
`validating the combination of the device with the actual
`values of the selection of minutia types.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a system diagram illustrating communication
`and security between a client, a client device and a service
`provider facilitated by a dynamic key cryptography provider
`in accordance with one or more embodiments;
`is a system
`FIG. 2, comprising FIG. 2A and FIG. 2B,
`diagram illustrating a challenge, response and validation
`process performed by the system of FIG. 1 in accordance
`with an embodiment;
`FIG. 3 is a system diagram illustrating a service provider
`application (app) delivery system in accordance with an
`embodiment;
`FIG. 4 is a system process flow diagram illustrating a
`system for registration of computer system and user minu-
`tiae and services in accordance with an embodiment;
`FIG. 5 is a system diagram illustrating a system to
`catalogue and model industry minutia and user heuristics to
`create and update anticipated minutia databases in accor-
`dance with an embodiment;
`is a system
`FIG. 6, comprising FIG. 6A and FIG. 6B,
`process flow diagram illustrating a system for validation
`scoring, confidence rating and step-up authentication pro-
`cessing in accordance with an embodiment;
`FIG. 7 is a system process flow diagram for an authen-
`tication and digital signature system capable of incorporat-
`ing three identity factors in accordance with an embodiment;
`FIG. 8 is a system process flow diagram illustrating a
`system for application processing for local and update data
`security functions in accordance with an embodiment; and
`FIG. 9 is a system diagram illustrating computer identity
`provider lifecycle functionality and services to service pro-
`viders in accordance with an embodiment.
`
`DETAILED DESCRIPTION
`
`In accordance with embodiments of the present invention,
`methods and systems of dynamic key cryptography using
`dynamically changing keys composed of or derived from
`
`|A1001
`
`IA1001
`
`
`
`US 9,559,852 B2
`
`5
`dynamically changing key material provide cryptographic
`services such as authentication, data protection, and digital
`signature by uniquely identifying a user’s computer or other
`electronic device based on (1) the electronic device itself,
`e.g., a mobile phone or personal computing device, and
`using a very wide range of hardware, firmware, and software
`minutia found on the computer; (2) secrets a user of the
`computer knows; and (3) biometric information the com-
`puter might collect from the user. Dynamic key cryptogra-
`phy in accordance with one or more embodiments enables
`secured actions for users of electronic computers and, more
`particularly, provides authentication between a client elec-
`tronic computer and a service provider, encryption of data
`electronically stored or sent on a communication channel,
`and digital signature for electronic digests of actions per-
`formed by the user on an electronic computer.
`The dynamic key cryptography system according to one
`embodiment anticipates changes to the minutia caused by
`updates and natural usage of the computer and practically
`eliminates false negatives that block valid users from a
`network service. Dynamic key cryptography may provide a
`safe, reliable method to users of network services for authen-
`ticating the user to network services that protects both the
`user and the network services, protects the integrity and
`privacy of data, and provides for digitally signing the digest
`of an action performed by the user on the electronic com-
`puter.
`One or more embodiments may provide features such as:
`simple user experienceino difficult passwords
`to
`1)
`remember or type, the user device or computer is invisibly
`authenticated and the user can be asked to enter a second
`
`identity factor such as a secret PIN or biometric (e.g.,
`voiceprint) into the computer only if required by the service
`and protected services can be automatically reconnected to
`a new device or computer when it is registered by the user;
`2) unprecedented securityiusing a wider range of hard-
`ware, firmware, software, secret and biometric minutia to
`deliver a very accurate device or computer and user identity
`that is more difficult to spoof, especially as some computer
`identifier values are not static but are expected to change; 3)
`reliabilityianticipating changes to the user device or com-
`puter delivers a tolerant, yet secure authentication with
`fewer false negatives that anger users and clog customer
`support services; and 4) service and data separationi
`delivered as an integrated part of a mobile application (app),
`a “foundation” (e.g., dynamic key cryptographic service)
`helps protect the app, encrypt service data stored on the user
`device or computer, digitally sign actions and allows the
`service to react without affecting other services, e.g., should
`data need to be wiped, only the app’s data is affected, not the
`user’s other information such as the user’s pictures or
`messages.
`One or more embodiments may enable a more convenient
`method for connecting the user and service. For example,
`instead of subscribers typing in cumbersome passwords (or
`worse yet, storing them unencrypted on the computer), the
`dynamic key cryptographic (dynamic key crypto) service
`and related client software can compute and manage the
`unique properties of the user device or computer. The
`resultant identified computer can be used in place of pass-
`words to simplify the customer connection experience.
`Since the computer itself is uniquely identified, it represents
`a safer method of identifying customers (e.g., users or
`subscribers). By forming cryptographic keys which use
`minutia found on the computer,
`the computer itself (as
`defined by its minutia) is validated, not a static key stored or
`intended to be stored only on the computer. The discovery
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`and copying of a single value (the secret key) is significantly
`easier than the discovery and copying of a very large range
`of computer minutia values. In addition, the writing of a
`single key in a computer’s memory effectively counterfeits
`the uniqueness of a computer identified by a single, static
`stored value. To counterfeit a dynamic key crypto-identified
`computer, it would be necessary to intercept various meth-
`ods to learn the minutiae values of the computer. Several
`direct and related methods may exist for learning the value
`of a particular computer minutia; to effectively counterfeit
`the computer, it may be that all methods for accessing all
`computer minutia values would need to be intercepted and
`the fraudulent response returned. Furthermore, since the
`dynamic key crypto system expects certain computer minu-
`tia values to change, a successfully counterfeited computer
`would also need to ensure the fraudulent computer minutia
`values change in an expected manner. Should a user’ s online
`activities require an even higher level of trust, the platform
`(e.g., dynamic key crypto service and related client soft-
`ware) can force the user to enter the user’s standard PIN into
`the computer to ensure a valid user is the person using the
`computer.
`Several technologies exist for processing security and
`assurance claims using static values. These include pass-
`words themselves and static ‘seed keys’ for functions like
`one-time-password and chal