密码学之计算安全加密相关概念

  • Post author:
  • Post category:其他




安全参数



1

n

1^n







1










n












  • 算法及复杂度理论中,算法的运行时间为输入长度(数据规模)的函数,因此把安全参数表示为



    1

    n

    1^n







    1










    n












    的形式,也就是一个长度为



    n

    n






    n





    的全一串,用它代表安全参数,提供给攻防双方作为输入参数(它们使用的算法以



    1

    n

    1^n







    1










    n












    为输入应该在多项式时间内运行完毕)



可忽略函数



n

e

g

l

negl






n


e


g


l





  • 定义





p

(

)

,

N

,

s

t

.

n

>

N

,

f

(

n

)

<

1

p

(

n

)

,

f

(

n

)

i

s

n

e

g

l

i

g

i

b

l

e

\forall p(\cdot), \exist N, st. \forall n \gt N, f(n) \lt \frac{1}{p(n)}, \quad f(n) \quad is \quad negligible









p


(





)


,







N


,




s


t


.





n




>








N


,




f


(


n


)




<



















p


(


n


)














1




















,






f


(


n


)




i


s




n


e


g


l


i


g


i


b


l


e





  • 推论




    1. n

      e

      g

      l

      3

      (

      n

      )

      =

      n

      e

      g

      l

      1

      (

      n

      )

      +

      n

      e

      g

      l

      2

      (

      n

      )

      negl_3(n) = negl_1(n) + negl_2(n)






      n


      e


      g



      l










      3


















      (


      n


      )




      =








      n


      e


      g



      l










      1


















      (


      n


      )




      +








      n


      e


      g



      l










      2


















      (


      n


      )





      可忽略




    2. n

      e

      g

      l

      4

      (

      n

      )

      =

      p

      (

      n

      )

      n

      e

      g

      l

      1

      (

      n

      )

      negl_4(n) = p(n) * negl_1(n)






      n


      e


      g



      l










      4


















      (


      n


      )




      =








      p


      (


      n


      )













      n


      e


      g



      l










      1


















      (


      n


      )





      可忽略



私钥加密方案



(

G

e

n

,

E

n

c

,

D

e

c

)

(Gen, Enc, Dec)






(


G


e


n


,




E


n


c


,




D


e


c


)





  • 定义




    1. G

      e

      n

      Gen






      G


      e


      n





      以安全参数



      1

      n

      1^n







      1










      n












      为输入,输出密钥



      k

      k






      k





      ,记作



      k

      G

      e

      n

      k \leftarrow Gen






      k













      G


      e


      n





      (”



      \leftarrow












      “强调其是一个随机算法),并不失一般性的假设



      k

      n

      |k| \ge n









      k
















      n







    2. E

      n

      c

      Enc






      E


      n


      c





      以密钥



      k

      k






      k





      和明文



      m

      {

      0

      ,

      1

      }

      m \in \{0, 1\}^*






      m













      {



      0


      ,




      1



      }























      (注意此处明文可以是任意长度)为输入,输出密文



      c

      c






      c





      。因为



      E

      n

      c

      Enc






      E


      n


      c





      可能是一个随机算法,所以将其记为



      c

      E

      n

      c

      k

      (

      m

      )

      c \leftarrow Enc_k(m)






      c













      E


      n



      c










      k


















      (


      m


      )





      (注意没有使用



      c

      :

      =

      E

      n

      c

      k

      (

      m

      )

      c := Enc_k(m)






      c




      :






      =








      E


      n



      c










      k


















      (


      m


      )





      ,这强调了



      E

      n

      c

      Enc






      E


      n


      c





      可能是随机算法)




    3. D

      e

      c

      Dec






      D


      e


      c





      以密钥



      k

      k






      k





      和密文



      c

      c






      c





      为输入,输出明文



      m

      m






      m





      。不失一般性的,



      D

      e

      c

      Dec






      D


      e


      c





      被假设为确定算法,因此记作



      m

      :

      =

      D

      e

      c

      k

      (

      c

      )

      m := Dec_k(c)






      m




      :






      =








      D


      e



      c










      k


















      (


      c


      )




  • 基本正确性要求





D

e

c

k

(

E

n

c

k

(

m

)

)

=

m

,

n

,

k

,

m

Dec_k(Enc_k(m)) = m, \forall n, \forall k, \forall m






D


e



c










k


















(


E


n



c










k


















(


m


)


)




=








m


,







n


,







k


,







m





  • 定长私钥加密方案

    当对明文长度有要求时,即



    m

    {

    0

    ,

    1

    }

    l

    (

    n

    )

    m \in \{0, 1\}^{l(n)}






    m













    {



    0


    ,




    1



    }











    l


    (


    n


    )













    ,称为定长私钥加密方案,其具有长度参数



    l

    (

    n

    )

    l(n)






    l


    (


    n


    )






窃听不可区分实验



P

r

i

v

K

A

,

Π

e

a

v

(

n

)

PrivK_{\Alpha, \Pi}^{eav}(n)






P


r


i


v



K












A



,


Π










e


a


v



















(


n


)





  • 定义

    1. 给敌手



      A

      \Alpha







      A






      指定



      1

      n

      1^n







      1










      n












      作为输入,(敌手在多项式时间内)输出一对等长的消息



      m

      0

      ,

      m

      1

      m_0, m_1







      m










      0


















      ,





      m










      1




















    2. 产生随机密钥



      k

      G

      e

      n

      (

      1

      n

      )

      k \leftarrow Gen(1^n)






      k













      G


      e


      n


      (



      1










      n









      )





      ,随机选择一个比特



      b

      {

      0

      ,

      1

      }

      b \leftarrow \{0, 1\}






      b













      {



      0


      ,




      1


      }





      ,计算密文



      c

      E

      n

      c

      k

      (

      m

      b

      )

      c \leftarrow Enc_k(m_b)






      c













      E


      n



      c










      k


















      (



      m










      b


















      )





      并交给



      A

      \Alpha







      A








    3. A

      \Alpha







      A






      输出一个比特



      b

      b^{\\’}







      b












































    4. 如果



      b

      =

      b

      b^{\\’} = b







      b












































      =








      b





      ,则实验输出为



      1

      1






      1





      ,否则为



      0

      0






      0





      。如果



      P

      r

      i

      v

      K

      A

      ,

      Π

      e

      a

      v

      (

      n

      )

      =

      1

      PrivK_{\Alpha, \Pi}^{eav}(n) = 1






      P


      r


      i


      v



      K












      A



      ,


      Π










      e


      a


      v



















      (


      n


      )




      =








      1





      ,则称敌手成功。



窃听者存在下的不可区分性
  • 定义





P

r

[

P

r

i

v

A

,

Π

e

a

v

(

n

)

=

1

]

1

2

+

n

e

g

l

(

n

)

Pr[Priv_{\Alpha, \Pi}^{eav}(n) = 1] \le \frac{1}{2} + negl(n)






P


r


[


P


r


i



v












A



,


Π










e


a


v



















(


n


)




=








1


]
























2














1






















+








n


e


g


l


(


n


)





  • 理解

    在窃听不可区分实验中,敌手成功的概率中,多于



    1

    2

    \frac{1}{2}


















    2
















    1
























    的部分是可忽略的



窃听者存在下的不可区分性等价定义
  • 定义





P

r

[

o

u

t

p

u

t

(

P

r

i

v

A

,

Π

e

a

v

(

n

,

0

)

)

=

1

]

P

r

[

o

u

t

p

u

t

(

P

r

i

v

A

,

Π

e

a

v

(

n

,

1

)

)

=

1

]

n

e

g

l

(

n

)

|Pr[output(Priv_{\Alpha, \Pi}^{eav}(n, 0)) = 1] – Pr[output(Priv_{\Alpha, \Pi}^{eav}(n, 1)) = 1]| \le negl(n)









P


r


[


o


u


t


p


u


t


(


P


r


i



v












A



,


Π










e


a


v



















(


n


,




0


)


)




=








1


]













P


r


[


o


u


t


p


u


t


(


P


r


i



v












A



,


Π










e


a


v



















(


n


,




1


)


)




=








1


]
















n


e


g


l


(


n


)





  • 理解

    在窃听不可区分实验中,当选择



    b

    =

    0

    b = 0






    b




    =








    0





    时,敌手输出



    b

    =

    1

    b^{\\’} = 1







    b












































    =








    1





    的概率,和



    b

    =

    1

    b = 1






    b




    =








    1





    时,敌手输出



    b

    =

    1

    b^{\\’} = 1







    b












































    =








    1





    的概率差是可忽略的



窃听者存在下的语义安全
  • 定义





P

r

[

A

(

1

n

,

E

n

c

k

(

m

)

,

h

(

m

)

)

=

f

(

m

)

]

P

r

[

A

(

1

n

,

h

(

m

)

)

=

f

(

m

)

]

n

e

g

l

(

n

)

|Pr[\Alpha(1^n, Enc_k(m), h(m)) = f(m)] – Pr[\Alpha^{\\’}(1^n, h(m)) = f(m)]| \le negl(n)









P


r


[



A



(



1










n









,




E


n



c










k


















(


m


)


,




h


(


m


)


)




=








f


(


m


)


]













P


r


[




A











































(



1










n









,




h


(


m


)


)




=








f


(


m


)


]
















n


e


g


l


(


n


)





  • 理解

    对于得到和未得到密文的攻击者,利用已知的明文相关信息,可获得的其他明文信息是几乎一样的;

    也就是说,密文没有泄露有关明文的任何信息



版权声明:本文为weixin_39578432原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。