Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スマートフォンのモーションセンサを利用した個人認証アプリケーションの開発

 スマートフォンのモーションセンサを利用した個人認証アプリケーションの開発

FIT2016 第15回情報科学技術フォーラム(会場:富山大学)での発表時に用いたスライド.

29d1647494c7eab70c334c0d309c5ca6?s=128

Kensuke Kosaka

September 09, 2016
Tweet

Transcript

  1. εϚʔτϑΥϯͷϞʔγϣϯηϯαΛར༻ͨ͠
 ݸਓೝূΞϓϦέʔγϣϯͷ։ൃ ؔ੢େֶେֶӃ ૯߹৘ใֶݚڀՊ ஌ࣝ৘ใֶઐ߈
 ∁ࡔ ݡ༎ ฏদ ߞี খྛ

    ޹࢙ 1
  2. ൃදͷྲྀΕ • εϚʔτϑΥϯʹ͓͚Δطଘͷݸਓೝূํࣜͷ໰୊఺ • ؔ࿈ݚڀͷ঺հ • ຊݚڀͷ঺հ • ධՁ࣮ݧɼ݁Ռͱͦͷߟ࡯ •

    ݱࡏͷ՝୊఺ • ࠓޙͷల๬ʹ͍ͭͯ 2
  3. ͸͡Ίʹ • εϚʔτϑΥϯ͕ঃʑʹීٴ • ଟ͘ͷݸਓ৘ใΛ಺แ • ݸਓͷೝূํࣜ • ύείʔυೝূɼࢦ໲ೝূ… 3

  4. ύείʔυೝূ • ͋Β͔͡Ίɼύείʔυ Λొ࿥ • ղআ࣌ʹೖྗ͞Εͨίʔ υͱൺֱ͠ɼೝূ 4

  5. ύείʔυೝূͷ໰୊఺ • දࣔ͞ΕͨΩʔϘʔυը໘͔Βඞཁͳܻ਺͚ͩೖྗ͢Δ • ܻ਺ʹΑͬͯ͸ɼೝূ࡞ۀ͕൥ࡶʹ • γϣϧμʔϋοΫͷةݥੑ • ݶΒΕͨจࣈछͷத͔ΒύείʔυΛߏங •

    ύλʔϯ਺΍ࣗ༝౓ʹ੍ݶ 5
  6. ࢦ໲ೝূ • ͋Β͔͡Ίࢦ໲εΩϟφΛ௨ͯ͡ࢦ໲Λొ࿥ • ղআ࣌ʹࢦ໲εΩϟφʹࢦΛ͋ͯͯೝূ 6

  7. ࢦ໲ೝূͷ໰୊఺ • ࢦ໲͸ύείʔυͳͲͱҧ͍มߋͰ͖ͳ͍ • ࢦ໲৘ใ͕࿙Ӯͯ͠͠·͏ͱɼͦͷࢦΛ༻ ͍ͯೝূͰ͖ͳ͘ͳΔՄೳੑ • ࣸਅ΍ϏσΦͳͲͰࢦ໲͕өͬͯ͠·͏ͱɼ ࢦ໲Λ࠶ݱ͞ΕΔՄೳੑ΋ 7

  8. ݚڀ֓ཁ • ݸਓೝূͷ൥ࡶ͞Λܰݮ • 伴৘ใ͕࿙Ӯͯ͠΋มߋ͕Մೳ • ࣗ༝౓͕ߴ͘ɼ௚ײతͳݸਓೝূ • εϚʔτϑΥϯʹ౥ࡌ͞Ε͍ͯΔՃ଎౓ɾ֯ ଎౓ηϯαΛ༻͍ͨɼಈ࡞ʹΑΔೝূΛ࣮ݱ

    8
  9. ؔ࿈ݚڀͱͦͷ՝୊఺ • ࡔຊͷݚڀ [1] • Ճ଎౓ηϯαΛ༻͍ɼ͋Β͔͡Ίอଘͨ͠ෳ਺छྨͷδΣενϟύλʔϯͱϢʔβͷೖྗ σʔλΛൺֱͯ͠ೝࣝ཰Λௐ΂ͨ • ѻ͏δΣενϟʹΑͬͯೝࣝ཰͕ߴ͍΋ͷͱ௿͍΋ͷʹೋ෼Խ͢Δ܏޲ •

    ⅓໺Βͷݚڀ [2] • Ճ଎౓ηϯαʹՃ͑ͯ֯଎౓ηϯαΛ༻͍ͨδΣενϟಈ࡞ʹΑΔೝূख๏ΛఏҊ͠ɼࣗ ༝౓޲্ͱͳΓ͢·͠ೝূʹର͢Δڧ౓ͷ޲্ΛՄೳʹͨ͠ • ॳճͷೝূͰͷຊਓڋ൱཰͕໿61%ͱൺֱతߴ͍ 9 [1] ࡔຊᠳ, “Ϣʔβͷ௚ײతͳೖྗΛͱΒ͑ΔͨΊͷ3࣠Ճ଎౓ηϯαʹΑΔδΣενϟೝࣝͷݚڀ”, 2009೥౓ެཱ͸ͩͯ͜ະདྷେֶଔۀ࿦จ. [2] ⅓໺խ࢙, ৽ҪΠεϚΠϧ, “Ճ଎౓ηϯαɾδϟΠϩ ηϯαΛซ༻ͨ͠εϚʔτϑΥϯͷར༻ೝূख๏ͷఏҊ”, ৘ใॲཧֶձݚڀใࠂ, Vol.2014- MBL-70, No.17, Vol2014-UBI-41, No.17,2014.
  10. ຊݚڀͷ໨ඪ • ⅓໺ΒͷݚڀͰڍ͛ΒΕ͍ͯͨຊਓڋ൱཰ͷ վળΛ໨ඪͱ͢Δ • ୺຤Λ্ԼʹৼΔͳͲΑΓ୯७Ͱ೔ৗతͳ ೖྗ͕Մೳͳಈ࡞Ͱͷར༻͕ՄೳͳγεςϜ 10

  11. ຊݚڀͷγεςϜʹ͍ͭͯ • AndroidσόΠε্Ͱಈ࡞ ͢ΔΞϓϦέʔγϣϯͱ ࣮ͯ͠૷ • 3࣠Ճ଎౓ηϯα ʢTYPE_LINEAR_ACCELER ATIONʣͱ3࣠֯଎౓ηϯ αʢTYPE_GYROSCOPEʣ

    Λ࢖༻ X Z Y 11
  12. γεςϜͷಈ࡞Ϟʔυ • ొ࿥Ϟʔυ • ಉҰϞʔγϣϯΛ3ճೖྗ͠ɼ͜ͷฏۉσʔλΛೝূʹར༻͢Δ伴 Ϟʔγϣϯͱͯ͠ొ࿥ • ೝূϞʔυ • ϞʔγϣϯΛ1ճೖྗ͠ɼ伴Ϟʔγϣϯͱൺֱͯ͠ೝূ

    • σʔλӾཡϞʔυ • ొ࿥͞ΕͨϢʔβ໊ͱɼϢʔβຖͷ伴ϞʔγϣϯͷσʔλΛදࣔ 12
  13. σʔλͷऔಘ • ΞϓϦ্ʹ഑ஔ͞ΕͨσʔλऔಘϘλϯΛ ԡ͍ͯ͠ΔؒɼσʔλΛऔಘ • αϯϓϦϯάִؒ͸SENSOR_DELAY_GAME • ࣮ݧʹ༻͍ͨ෋࢜௨ T-02DͰɼ໿6ϛϦඵ 13

  14. σʔλͷൺֱํ๏ • ίαΠϯྨࣅ౓Λ࢖༻ • ϕΫτϧAͱϕΫτϧBͷίαΠϯྨࣅ౓͸ɼ • ྨࣅ౓͕0.5ΑΓߴ͚Ε͹ಉҰϞʔγϣϯͱΈͳ͢ public double cosSimilarity(double[][]

    A, double[][] B) { log(INFO); double similarity = 0.0; for (int item = 0; item < A[0].length; item++) { double AB = A[0][item] * B[0][item] + A[1][item] * B[1][item] + A[2][item] * B[2][item]; double sizeA = Math.sqrt(Math.pow(A[0][item], 2) + Math.pow(A[1][item], 2) + Math.pow(A[2][item], 2)); double sizeB = Math.sqrt(Math.pow(B[0][item], 2) + Math.pow(B[1][item], 2) + Math.pow(B[2][item], 2)); similarity += AB / (sizeA * sizeB); } similarity /= A[0].length; return similarity; } 14 cos( ⃗ A, ⃗ B) = ⃗ A · ⃗ B | ⃗ A|| ⃗ B|
  15. σʔλͷՃ޻ • ηϯα͔Βಘͨσʔλ͸ɼͦͷ··Ͱ͸ѻ͍ʹ ͍͘ • ίαΠϯྨࣅ౓͕૝ఆ͍ͯ͠ΔҎ্ʹ௿͘ग़Δ • σʔλͷৼΕ෯૿෯΍ϩʔύεϑΟϧλͳͲ ͷՃ޻Λࢪ͢ 15

  16. σʔλ਺Λἧ͑Δ • Ϟʔγϣϯͷೖྗ͸೚ҙͷ࣌ؒͰߦ͑Δ • ొ࿥ϞʔυͰ͸3ճͷೖྗຖʹɼೝূϞʔυ Ͱ͸伴Ϟʔγϣϯͱͷؒʹσʔλ௕ͷࠩҟ 16

  17. σʔλ਺Λἧ͑Δ • ొ࿥ϞʔυͰ͸࠷΋ೖྗ࣌ؒͷ௕͍σʔλ Λج४ʹɼଞͷσʔλͷ຤ඌʹθϩΛิర • ೝূϞʔυͰ͸伴ϞʔγϣϯΛج४ʹɼ୹ ͚Ε͹θϩΛิరɼ௕͚Ε͹຤ඌΛ੾Δ 17

  18. σʔλͷৼΕ෯૿෯ • Ϟʔγϣϯͷಈ͖͕খ͞ ͘σʔλͷมԽ͕খ͍͞ ৔߹ • ͋Β͔͡Ίઃఆͨ͠஋Λ ֻ͚ͯৼΕ෯Λ૿෯ -4 -3

    -2 -1 0 1 2 0.5 1 Time (s) before after 18
  19. ϩʔύεϑΟϧλ • Ϟʔγϣϯೖྗ࣌ͷखͷ ਒͑ʹΑΔϊΠζͷӨڹ ΛऔΓআ͘ • ϑʔϦΤม׵ʹΑΔϩʔ ύεϑΟϧλॲཧΛߦ͏ -4 -3

    -2 -1 0 1 2 0.5 1 Time (s) before after 19
  20. σʔλͷζϨमਖ਼ • ొ࿥ϞʔυͰͷೖྗλΠ ϛϯάͷζϨʹΑΔӨڹ Λ࠷খԽ͢Δ • σʔλͷ࠷େ஋ɾ࠷খ஋ɾ தԝ஋ͦΕͧΕʹج४Λ ஔ͍ͯमਖ਼ΛࢼΈΔ -0.002

    -0.0015 -0.001 -0.0005 0 0.0005 0.001 0.5 1 Time (s) before-1 before-2 before-3 -0.002 -0.0015 -0.001 -0.0005 0 0.0005 0.001 0.5 1 Time (s) after-1 after-2 after-3 20
  21. ධՁ࣮ݧ • ొ࿥ٴͼೝূͷ੒ޭ཰ௐࠪ • ͳΓ͢·͠ೝূͷݕূ • ର৅Ϟʔγϣϯɿ
 ɹԁɼࡾ֯ɼ৸͔ͤͯى͜͢ɼ
 ɹإʹ͚ۙͮΔɼ্ԼʹৼΔ 21

  22. ొ࿥ٴͼೝূͷ੒ޭ཰ௐࠪ • ֤Ϟʔυͱ΋ɼࢼߦճ਺͸3ճ·Ͱ • ճ਺಺Ͱొ࿥΍ೝূ͕Ͱ͖ͨ৔߹ʹ੒ޭ • ొ࿥ʹ੒ޭͨ͠৔߹ͷΈɼೝূʹҠΔ 22

  23. Ϟʔγϣϯຖͷ੒ޭ཰ʢ%ʣ ԁ ࡾ֯ ৸͔ͤͯ ى͜͢ إʹ
 ͚ۙͮΔ ্Լʹ
 ৼΔ ొ࿥

    92 92 53 53 76 ೝূ 91 75 100 100 90 23
  24. ඃݧऀຖͷ੒ޭ཰ʢ%ʣ A B C D E F G H I

    J K L M FRR ొ ࿥ 80 80 100 60 60 100 40 100 60 40 60 100 80 26.1 ೝ ূ 100 75 100 66 100 80 100 80 66 100 100 100 100 10.2 24
  25. ͳΓ͢·͠ೝূͷݕূ • ొ࿥ٴͼೝূͷ੒ޭ཰ௐࠪͷࡍʹɼඃݧऀ͕Ϟʔ γϣϯೖྗ͢Δ༷ࢠΛݞӽ͠ʹࡱӨ • શͯͷϞʔγϣϯͰొ࿥ٴͼೝূʹ੒ޭͨ͠2໊ ͷඃݧऀΛର৅ʹɼࡱӨσʔλΛ༻͍ͯͳΓ͢· ͠ೝূ͕Մೳ͔ݕূ • ࢼߦճ਺͸3ճ·Ͱ

    25
  26. ͳΓ͢·͠ೝূͷݕূ ԁ ࡾ֯ ৸͔ͤͯ ى͜͢ إʹ
 ͚ۙͮΔ ্Լʹ
 ৼΔ C

    มҐ 0.21 0.11 -0.06 0.34 0.28 ֯౓ 0.04 -0.19 -0.27 0.50 0.09 L มҐ 0.08 -0.12 -0.16 0.45 0.03 ֯౓ -0.24 -0.13 0.02 0.55 0.20 26
  27. ݱࡏͷ՝୊఺ • ిं΍ࣗಈंͳͲͷҠಈ͍ͯ͠Δं಺Ͱೝূ͕ Մೳ͔ͷݕূ • ొ࿥΍ೝূͷ൑ఆʹ༻͍ΔίαΠϯྨࣅ౓ͷᮢ ஋ʹ͍ͭͯɼଥ౰ͳ஋ͷݕ౼ • ొ࿥͔ΒظؒΛஔ͍ͯೝূͨ͠ࡍͷ੒ޭ཰ͷௐ ࠪ

    27
  28. ࠓޙͷల๬ • ೔ৗతͳ࢖༻Λߟྀ͠ɼ୺຤ΛৼΔ͚ͩͰ ݸਓࣝผΛߦ͑ΔΑ͏ʹ • ొ࿥ɼೝূͷՄ൱൑ఆʹػցֶशΛಋೖͰ ͖ͳ͍͔ݕ౼ 28

  29. ·ͱΊ • εϚʔτϑΥϯͷՃ଎౓ٴͼ֯଎౓ηϯαΛ༻͍ɼಈ࡞ͰݸਓΛೝূ • σʔλͷൺֱʹίαΠϯྨࣅ౓Λ࢖༻͠ɼσʔλͷৼΕ෯૿෯΍ζϨमਖ਼ͳͲ ͷσʔλՃ޻ػೳΛ࣮૷ • ݸਓೝূͷ੒ޭ཰Λ޲্ͤ͞ɼ೔ৗతͳೖྗ͕Մೳͳ୯७ͳϞʔγϣϯͰͷར ༻΋Մೳʹɽ·ͨͳΓ͢·͠ೝূͷ੒ޭ཰΋௿͍͜ͱΛ֬ೝ •

    ొ࿥΍ೝূͷ൑ఆج४ͱͳΔίαΠϯྨࣅ౓ͷᮢ஋ʹ͓͚Δଥ౰ͳ஋ͷݕ౼΍ɼ Ҡಈ͍ͯ͠Δं಺Ͱͷಈ࡞ݕূɼظؒΛஔ͍ͯͷೝূՄ൱ͷݕূ • ೔ৗతͳ࢖༻Λߟྀ͠ɼ୺຤ΛৼΔ͚ͩͰߴ͍ݸਓࣝผ͕࣮ݱͰ͖ΔΑ͏վྑ ΛॏͶΔ 29