μΌλ°μ μΌλ‘ μ¬μ©λλ λΉλ°λ²νΈ ν΄μ± μκ³ λ¦¬μ¦μ μ€λλ λ€μκ³Ό κ°μ΄ μλν©λλ€. λΉλ°λ²νΈμ μκΈμ λ°λ₯΄κ³ KDFμ 곡κΈν©λλ€. μλ₯Ό λ€μ΄, PBKDF2-HMAC-SHA1μ μ¬μ©νλ κ²½μ° λΉλ°λ²νΈ ν΄μ± νλ‘μΈμ€λ DK = PBKDF2(HMAC, Password, Salt, ...)
μ
λλ€. HMACλ ν¨λ© λ ν€κ°μλ 2 λΌμ΄λ ν΄μ±μ΄κ³ SHA1μ μΌλ ¨μ μμ΄, μννΈ, νμ λ° λΉνΈ μ°μ°μ κΈ°λ³ΈμΌλ‘νκΈ° λλ¬Έμ μ 체 νλ‘μΈμ€λ νΉμ λ°©μμΌλ‘ ꡬμ±λ μΌλΆ κΈ°λ³Έ μ°μ°μ
λλ€. κΈ°λ³Έμ μΌλ‘ κ·Έλ€μ΄ μ€μ λ‘ κ³μ°νκΈ°κ° μΌλ§λ μ΄λ €μ΄μ§λ λΆλͺ
νμ§ μμ΅λλ€. μλ§λ λ¨λ°©ν₯ ν¨μκ° μ¬μ ν λ―ΏκΈ° λλ¬Έμ μμ¬μ μΌλ‘ μ€μν μνΈν ν΄μ ν¨μκ° μμ νμ§ μκ³ λ μ΄μ μ¬μ©λμ§ μλ κ²μ 보μμ΅λλ€.
λ μμ ν μ΄λ‘ μ ν λλ₯Ό μ 곡νκΈ° μν΄ μλ‘μ΄ λ°©λ²μΌλ‘ μνΈλ₯Ό ν΄μνκΈ° μν΄ NP μ 체 λ¬Έμ λ₯Ό νμ©ν μ μλμ§ κΆκΈν©λλ€. ν΅μ¬ μμ΄λμ΄λ P! = NPλΌκ³ κ°μ νκ³ (P == NPμ΄λ©΄ OWFκ° μμΌλ―λ‘ νμ¬ μ²΄κ³λ μ€λ¨λ¨) NPC λ¬Έμ λ λ΅μ μ½κ² νμΈν μ μμ§λ§ κ³μ°νκΈ° μ΄λ ΅λ€λ κ²μ μλ―Έν©λλ€. μ΄ νΉμ±μ λΉλ°λ²νΈ ν΄μ± μꡬ μ¬νμ μ ν©ν©λλ€. μνΈλ₯Ό NPC λ¬Έμ μ λν λ΅λ³μΌλ‘ λ³Ό κ²½μ° NPC λ¬Έμ λ₯Ό μνΈ μ ν΄μ λ‘ μ μ₯νμ¬ μ€νλΌμΈ 곡격μ λμν μ μμ΅λλ€. μνΈλ₯Ό νμΈνκΈ°λ μ½μ§λ§ ν¬λνκΈ°λ μ΄λ ΅μ΅λλ€.
μ£Όμ μ¬νμ λμΌν μνΈκ° NPC λ¬Έμ μ μ¬λ¬ μΈμ€ν΄μ€μ 맀ν λ μ μλ€λ κ²μ λλ€. λͺ¨λ ν΄κ²°νκΈ° μ΄λ €μ΄ κ²μ μλλλ€. μ΄ μ°κ΅¬μ 첫 λ¨κ³λ‘, μ΄μ§ λ¬Έμμ΄μ 3-SAT λ¬Έμ μ λν ν΄λ΅μΌλ‘ ν΄μνκ³ μ΄μ§ λ¬Έμμ΄μ΄ μ루μ μΈ 3-SAT λ¬Έμ μ μΈμ€ν΄μ€λ₯Ό ꡬμ±νλ €κ³ νμ΅λλ€. κ°μ₯ κ°λ¨ν ννλ‘ μ΄μ§ λ¬Έμμ΄μ 3 λΉνΈ (x_0, x_1, x_2)λ₯Ό κ°μ΅λλ€. κ·Έλ° λ€μ 2 ^ 3 == 8 μ μ΄ μμ΅λλ€.
000 ( (x_0) v (x_1) v (x_2) )
--------------------------------------
001 ( (x_0) v (x_1) v NOT(x_2) )
010 ( (x_0) v NOT(x_1) v (x_2) )
011 ( (x_0) v NOT(x_1) v NOT(x_2) )
100 ( NOT(x_0) v (x_1) v (x_2) )
101 ( NOT(x_0) v (x_1) v NOT(x_2) )
110 ( NOT(x_0) v NOT(x_1) v (x_2) )
111 ( NOT(x_0) v NOT(x_1) v NOT(x_2) )
μ΄μ§ λ¬Έμμ΄μ΄ 000μ΄λΌκ³ κ°μ ν©λλ€. κ·Έλ° λ€μ 1/8 μ λ§ κ±°μ§ (첫 λ²μ§Έ)μ λλ€. 첫 λ²μ§Έ μ κ³Ό ANDμ λλ¨Έμ§ 7 μ μ λ²λ¦°λ€λ©΄ 000μ κ²°κ³Ό 곡μμ ν΄μ λλ€. λ°λΌμ 곡μμ μ μ₯νλ©΄ 000μ νμΈν μ μμ΅λλ€.
λ¬Έμ λ 3 λΉνΈ λ¬Έμμ΄μ κ²½μ° 7 κ°μ λ€λ₯Έ μ μ΄ νμλλ©΄ μ΄λ μ μ΄ λΉ μ‘λμ§ μ¦μ μ μ μμΌλ©° λΉνΈκ° νμλ©λλ€.
λμ€μ λλ κ·Έμ€ 3 κ°λ₯Ό λ²λ¦¬κ³ 001, 010, 100, 111λ‘ νμλ 4 κ°λ§ μ μ§νκΈ°λ‘ κ²°μ νμ΅λλ€. μ΄κ²μ λλλ‘ μΆ©λμ μΌμΌν€μ§ λ§ λ¬Έμ λ₯Ό λ μ¬μνκ² λ§λλλ€. μΆ©λμ΄ νμ λ°μνλ κ²μ μλμ§λ§ μ λ ₯μ λ λ§μ λΉνΈκ°μμ λ μΆ©λμ΄ μ¬λΌμ§μ§ μ¬λΆλ μμ§ μλ €μ§μ§ μμμ΅λλ€.
νΈμ§νλ€. μ΄μ§ λ¬Έμμ΄μ΄ (000, 001, β¦, 111) μ€ νλ μΌ μμλ μΌλ°μ μΈ κ²½μ°μλ μ¬μ ν 7μ΄ μ°Έμ΄κ³ 1μ΄ κ±°μ§ μΈ 8 κ°μ μ μ΄ μμ΅λλ€. μ§μ€ κ°μΉλ₯Ό μ 곡νλ 4 κ°μ§ μ‘°νμ μ ννμμμ€ (001, 010, 100, 111). μ΄κ²μ μλμ νλ‘ν νμ ꡬνμ λ°μλ©λλ€.
νΈμ§νλ€. μλμ @DWμ μν΄ νμλ λ΅μ²λΌ, μ μ μ ννλμ΄ λ°©λ²μ μ£Όμ΄μ§ λ³μ μΈνΈμμ μ μ΄ λ무 λ§μμ κ°μ λΉ λ₯΄κ² μ’ν μ μμ΅λλ€. μ΄ 7 * C (n, 3) μ μ€μμ μ μ μ ννλ λ€λ₯Έ λ°©λ²μ΄ μμ΅λλ€. μλ₯Ό λ€μ΄ : μ£Όμ΄μ§ λ³μ μΈνΈμμ λ€λ₯Έ μμ μ μ μ ννκ³ μΈμ ν λ³μ ((x_0, x_1, x_2), (x_1, x_2, x_3), (x_2, x_3, x_4), .. )μ ν΄λ¦νμ¬ λλΉ λμ μ¬μ΄ν΄μ νμ±νμμμ€. μ§κ΄μ μΌλ‘ μ λλ₯Ό μ¬μ©νμ¬ ν λΉμ μλνμ¬ λͺ¨λ μ μ λ§μ‘±μν¬ μ μλμ§ μ¬λΆλ₯Ό ν μ€νΈ ν μ μμΌλ―λ‘μ΄ λ°©λ²μ μ λλ‘ μλνμ§ μμ μ μμ΅λλ€. μ 체 ꡬ쑰λ₯Ό κ°λ¨νκ² μ€λͺ νκΈ° μν΄ νμ¬ λ°©λ²μ κ°λ¨ν μ¬μ©νκ² μ΅λλ€.
n λΉνΈ λ¬Έμμ΄μ μ μλ 4 * C (n, 3) = 4 * n * (n-1) * (n-2) / 6 = O (n ^ 3)μ λλ€. ν΄μ λ μνΈ ν¬κΈ°μ λ€νμμ λλ€.
νμ΄μ¬μλ νλ‘ν νμ ꡬνμ΄ μμ΅λλ€ . μ¬μ©μ μ λ ₯ μ΄μ§ λ¬Έμμ΄μμ 3-SAT λ¬Έμ μΈμ€ν΄μ€λ₯Ό μμ±ν©λλ€.
μ΄ κΈ΄ μκ° νμ λ§μΉ¨λ΄ λ΄ μ§λ¬Έ :
-
μμ κ΅¬μ± (νλ‘ν νμ μ ꡬν λ)μ΄ μμ ν μνΈ ν΄μ±μΌλ‘ μλν©λκΉ, μλλ©΄ μ μ΄λ μ λ§ν κ²μΌλ‘ μμ λ μ μμ΅λκΉ? κ·Έλ μ§ μμ κ²½μ° μ΄λμμ μ€ν¨ν©λκΉ?
-
μ νν μμλ 7 * C (n, 3) μ μ΄ μκΈ° λλ¬Έμ μμμ λμμ λ°μ μνΈ ν΄μλ‘ μ¬μ©νκΈ°μ μ ν©ν μμ ν 3-SAT μΈμ€ν΄μ€λ₯Ό ꡬμ±νλ λ€λ₯Έ λ°©λ²μ μ°Ύμ μ μμ΅λκΉ?
-
μ μ¦ λ 보μ μνΈ ν΄μ± 체κ³λ₯Ό μ€κ³νκΈ° μν΄ NP μμ±λλ₯Ό νμ©νλ €λ μ μ¬ν μμ μ΄ μμ΅λκΉ? μ΄λ―Έ λͺ κ°μ§ κ²°κ³Ό (κΈμ μ μ΄λ λΆμ μ μ΄λ )λ₯Ό μ»μμ΅λκΉ? μΌλΆ μκ°μ λ§ν¬λ λ§€μ° νμλ°μ κ²μ λλ€.
νΈμ§νλ€. λλ @DWμ μλ λ΅λ³μ λ°μ λ€μλ€. κ·Έλ μ²μ λ΅λ³μ λ°μκ³ λ¬Έμ ꡬ쑰μ μ μ©ν μλ£μ λν΄ ν° ν΅μ°°μ μ£Όμλ€. μ¬κΈ°μ μκ° λ μμ§ν μ μ ν μ²΄κ³ (Python νλ‘ν νμ μμ ꡬν λ¨)λ μκ·λͺ¨ κ·Έλ£Ήμμ λ³μ ν λΉμ λΉ λ₯΄κ² μ’ν μ μκΈ° λλ¬Έμ μλνμ§ μλ κ² κ°μ΅λλ€. κ·Έλ¬λ μ΄λ¬ν NPC-to-PasswordHashing κ°μκ° μ ν μλνμ§ μλλ€λ 곡μμ μΈ μ¦κ±°λ₯Ό λ³΄μ§ λͺ»νκΈ° λλ¬Έμ λ¬Έμ λ μ¬μ ν μ΄λ € μμ΅λλ€. μ΄ νΉμ 3-SAT κ°μ λ¬Έμ μλ λΆκ΅¬νκ³ μ¬κΈ°μ μ΄κ±°νκ³ μΆμ§ μμ μ μ μ ννλ λ€λ₯Έ λ°©λ²μ΄μμ μ μμ΅λλ€. λ°λΌμ λͺ¨λ μ λ°μ΄νΈ λ° ν λ‘ μ μ¬μ ν ββνμν©λλ€.
λ΅λ³
λΆννλ, μ΄κ²μ μλνμ§ μλ κ² κ°μ΅λλ€ (μμΈν λ΄μ©μ μλ μ°Έμ‘°). μ΄λ° μ’ λ₯μ μμ΄λμ΄κ° νμ€ν 보μ 체κ³λ₯Ό λ§λ€ μμλ λ°©λ²μ μ°ΎκΈ°κ° μ΄λ ΅μ΅λλ€.
μΌλ°μ μΈ μμ΄λμ΄μ λ¬Έμ
NP- μμ λ¬Έμ λ₯Ό κΈ°λ°μΌλ‘ μνΈνλ₯Ό μλνλ€λ μμ΄λμ΄λ₯Ό μ²μμΌλ‘ μκ°ν μ¬λμ μλλλ€. λ¬Έμ λ NP κ²½λκ° μ΅μ μ κ²½λλ§μ 보μ₯νμ§λ§ μνΈνμλ νκ· μΌμ΄μ€ κ²½λκ° νμνλ€λ κ²μ λλ€. NP- μμ λ¬Έμ (μ : λ°°λ μνΈ μμ€ν )λ₯Ό κΈ°λ°μΌλ‘ μνΈνλ₯Ό μλνλ μ¬λ¬ κ°μ§ μλκ° μμμ§λ§ μ λλ‘ μ§νλμ§ μμμ΅λλ€. μΌλ°μ μΌλ‘ μ¬λλ€μ μ΅μ μ κ²½μ°μ κΈ°ν κΈμμ μ΄λλΌλ νκ· μ μΌλ‘ ν¨κ³Όμ μΈ μκ³ λ¦¬μ¦ (λλ μ¬μν νλ₯ λ‘)μ λ°κ²¬ν©λλ€. μ΄κ²μ NP κ²½λμ λͺ¨μλμ§ μλλΌλ μνΈλ₯Ό ν΄λ νκΈ°μ μΆ©λΆν©λλ€.
β
λλ κ·Έ μ£Όμ μ κ΄ν΄ λ λ§μ κ²μ μ½λ κ²μ΄ μ’μ΅λλ€. μνΈνμ NP-Hard λ¬Έμ μ μ€μμ± , μΌλ°© ν¨μ μ΄μΈμ νκ· μ¬λ‘ 볡μ‘μ± μ΄λ¦° λ¬Έμ , Impagliazzoμ μΈκ³ μν μμ μ μ©ν μμμ μ μ°Ύμ μ μμ΅λλ€ . , νκ· μ κ²½μ° κ°μλ‘ μ΅μ μ κ²½μ° .
νΉμ 체κ³μ λ¬Έμ
νΉμ μ μμ΄ μμ ν μ§μ λμ§ μμμ΅λλ€. 체κ³λ₯Ό λΆμνλ €λ©΄ 체κ³κ° μλνλ λ°©μμ μμ ν μ§μ ν΄μΌν©λλ€. κ·νμ κ²½μ° μΌλ°μ μΈ μμμ 7 μ μ€ 4 μ μ μ΄λ»κ² μ ννλμ§ λͺ ννμ§ μμ΅λλ€. (λ¨μΌ μλ μΌλ°μ μΈ λ°©λ²μ μ€λͺ νλ μ¬μμ λ체νμ§ μμ΅λλ€.)
x0,x1,x2,x3,x4
25
μ΄ 5 κ°μ λ³μμ κ°λ₯ν ν λΉμ΄λ―λ‘, λͺ¨λ μλνκ³ 40 κ°μ μ‘°ν μ€ νλμ μν΄ μλ° λ λͺ¨λ ν λΉμ νκΈ°νμμμ€. λλ μ΄κ²μ΄ λͺ¨λ μ κ³Ό μΌμΉνλ μ½ νλμ κ³Όμ λ§ λ¨κΈΈ κ²μ΄λΌκ³ μμΈ‘ν©λλ€.
1/2
1/210
25β1
7/8
(7/8)40β2β7.7
(25β1)Γ2β7.7β0.15
μ΄λ 5 κ°μ λ³μ κ·Έλ£Ήλ§λ€ λ°λ³΅ λ μ μμΌλ©° κ° λ³μμ λν κ³ μ ν λ§μ‘± ν λΉμ κ³ μ νκ² λ³΅κ΅¬ν©λλ€. λͺ¨νΈμ±μ΄μλ κ²½μ° λ€λ₯Έ κ³Όμ μ λΉκ΅νμ¬ ν보 κ³Όμ λ₯Ό νμΈν μ μμ΅λλ€.
μ΄λ° μμΌλ‘, μ°λ¦¬λ μΌλ°μ μΌλ‘ μ μ°¨μ μν΄ μμ± λ 3SAT μΈμ€ν΄μ€ ν΄λμ€λ₯Ό ν΄κ²°νλ ν¨μ¨μ μΈ μκ³ λ¦¬μ¦μ΄ μμμ μ μ μμ΅λλ€. λͺ¨λ 3SAT μΈμ€ν΄μ€λ₯Ό ν΄κ²°νμ§λ μμ§λ§ μμ± ν μΈμ€ν΄μ€μλ νΉμ κ΅¬μ‘°κ° μμΌλ©° ν΄λΉ νΉμ ꡬ쑰λ₯Ό κ°μ§ μΈμ€ν΄μ€λ₯Ό ν¨κ³Όμ μΌλ‘ ν΄κ²°ν©λλ€. μ΄λ 3SATμ μΌλΆ μΈμ€ν΄μ€κ° λ€λ₯Έ μΈμ€ν΄μ€λ³΄λ€ μ¬μ° λ©° 3SATμ κ²½λ (μ΅μ μ κ²½μ° λ³΅μ‘λ)λ μμ± ν νΉμ μΈμ€ν΄μ€μ κ²½λ λλ νκ· 3SAT μΈμ€ν΄μ€μ κ²½λμ λν΄ κ±°μ λλ μ ν μΈκΈνμ§ μμ΅λλ€.