[
[
['4','add','hl'],
['5','add','hl'],
['11','add','hl'],
['155','add','hl'],
['37','remove','slide-up'],
['15','add','slide-down']
],
[
['168','add','hl'],
['168','remove','slide-left'],
['19','add','hl'],
['19','remove','hidden'],
['156','add','hl'],
['156','remove','slide-left'],
['157-slide','remove','slide-left'],
['3','add','hidden'],
['4','remove','hl'],
['4','add','hidden'],
['5','remove','hl'],
['5','add','hidden'],
['11','remove','hl'],
['11','add','hidden'],
['155','remove','hl'],
['155','add','slide-right']
],
[
['168','remove','hl'],
['19','remove','hl'],
['156','remove','hl']
],
[
['157-flip','add','flipped'],
['61','remove','slide-up'],
['37','add','slide-down']
],
[
['168','add','hl'],
['19','add','hl'],
['12','add','hl'],
['161','add','hl'],
['75','remove','slide-up'],
['61','add','slide-down']
],
[
['5','add','hl'],
['5','remove','hidden'],
['155','add','hl'],
['155','remove','slide-right'],
['71','add','hl'],
['71','remove','hidden'],
['72','add','hl'],
['72','remove','hidden'],
['168','remove','hl'],
['168','add','slide-left'],
['19','remove','hl'],
['19','add','hidden'],
['12','remove','hl'],
['12','add','hidden'],
['161','remove','hl'],
['161','add','slide-left'],
['157-slide','add','slide-left']
],
[
['5','remove','hl'],
['155','remove','hl'],
['71','remove','hl'],
['72','remove','hl'],
['160','add','hl'],
['89','remove','slide-up'],
['75','add','slide-down']
],
[
['161','add','hl'],
['161','remove','slide-left'],
['160','remove','hl'],
['160','add','slide-right']
],
[
['161','remove','hl'],
['72','add','hl'],
['163','add','hl'],
['108','remove','slide-up'],
['89','add','slide-down']
],
[
['160','add','hl'],
['160','remove','slide-right'],
['164','add','hl'],
['164','remove','slide-left'],
['165-slide','remove','slide-left'],
['72','remove','hl'],
['72','add','hidden'],
['163','remove','hl'],
['163','add','slide-right']
],
[
['160','remove','hl'],
['164','remove','hl']
],
[
['165-flip','add','flipped'],
['126','remove','slide-up'],
['108','add','slide-down']
],
[
['164','add','hl'],
['139','remove','slide-up'],
['126','add','slide-down']
],
[
['166','add','hl'],
['166','remove','slide-right'],
['164','remove','hl'],
['164','add','slide-left'],
['165-slide','add','slide-left']
],
[
['166','remove','hl'],
['167','add','hl'],
['71','add','hl'],
['13','add','hl'],
['152','remove','slide-up'],
['139','add','slide-down']
],
[
['143','remove','hidden'],
['168','add','hl'],
['168','remove','slide-left'],
['163','add','hl'],
['163','remove','slide-right'],
['164','add','hl'],
['164','remove','slide-left'],
['150','add','hl'],
['150','remove','hidden'],
['167','remove','hl'],
['167','add','slide-right'],
['71','remove','hl'],
['71','add','hidden'],
['13','remove','hl'],
['13','add','hidden']
],
[
['168','remove','hl'],
['163','remove','hl'],
['164','remove','hl'],
['150','remove','hl']
]
]
The starting point is
Lpke-cpa-realHyb.
Rewrite in a logically equivalent way so that an instance of
Lkem-cpa-realKEM appears.
KEM is CPA-secure, so
Lkem-cpa-realKEM can be replaced by
Lkem-cpa-randKEM with only negligible effect on the calling program.
Inline the instance of
Lkem-cpa-randKEM.
By our assumption,
KEM.M=DEM.K.
Rewrite in a logically eqivalent way, so that an instance of
Lske-ots-realDEM appears.
DEM has cOTS security, so
Lske-ots-realDEM can be replaced by
Lske-ots-randDEM with only negligible effect on the calling program.
Inline the instance of
Lske-ots-randDEM.
What remains is exactly
Lpke-cpa-randHyb, after suitably renaming things.
Lpke-cpa-realHyb
Lpke-cpa-randHyb
(PK,SK):=
KEM.KeyGen()
Hyb.KeyGen()
PK:=kem.cpa.pk()
(Ckem,K)
↞KEM.Encaps(PK)
:=kem.cpa.enc()
Ckem↞KEM.C
K↞
KEM.M
DEM.K
Cdem
↞DEM.Enc(K,M)
:=ske.ots.enc(M)
↞DEM.C
(Ckem,Cdem)↞Hyb.C
return
(Ckem,Cdem)
⋄
Lkem-cpa-realKEM
(PK,SK):=KEM.KeyGen()
return
KEM.Encaps(PK)
Lkem-cpa-randKEM
(PK,SK):=KEM.KeyGen()
C↞KEM.C
M↞KEM.M
return
(C,M)
⋄
Lske-ots-realDEM
K↞DEM.K
C:=DEM.Enc(K,M)
Lske-ots-randDEM
C↞DEM.C