999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

DWB-AES:基于AES 的動態白盒實現方法

2021-03-09 08:55:32王濱陳思陳加棟王星
通信學報 2021年2期
關鍵詞:安全性

王濱,陳思,陳加棟,王星

(1.浙江大學電氣工程學院,浙江 杭州 310058;2.中國電科集團52 所海康威視網絡與信息安全實驗室,浙江 杭州 310053)

1 引言

由于物聯網感知層的設備受到軟硬件資源的各種限制,而傳統的密碼技術需要消耗較多的資源,從而導致傳統的密碼技術手段很難直接應用到感知層設備。白盒密碼作為一種軟密碼模塊,與傳統的密碼技術不同,能夠隱藏密鑰信息、極大地提高物聯網設備的安全性,同時能夠大幅降低成本,非常適用于對成本敏感的感知層設備。

白盒密碼顛覆了傳統密碼學對攻擊者能力的諸多限制,且應用的成本較低,所以更適合應對實際中的安全威脅。目前,白盒密碼已經在數字版權保護管理、云上數據軟件加解密、移動智能終端信息加密保護等方面得到了較廣泛的應用,引起了學術界和產業界的廣泛關注。

白盒密碼學的概念由Chow 等[1]提出,同時Chow 等[2]通過查找表的方式實現了數據加密標準(DES,data encryption standard)和AES[1]的白盒密碼算法。然而,文獻[3-4]中提出了對Chow 等白盒DES 算法的有效攻擊方法。Billet 等[5]給出了對Chow 等白盒算法的攻擊方法,被稱為BGE 攻擊。在BGE 攻擊被提出之后,Xiao 等[6]利用更大的線性編碼設計了能抵御BGE 攻擊的AES 白盒密碼算法。然而Mulder 等[7]以230的時間復雜度提取了Xiao-Lai 白盒算法[6]的密鑰。為了抵御Mulder 等的攻擊,文獻[8]在Xiao-Lai 白盒算法的基礎上,通過增加非線性編碼的方式設計了新的AES 白盒算法。此外,Karroumi[9]通過引入二元密文的方式實現了AES 白盒密碼算法,但是隨后由Mulder[10]攻破。Biryukov 等[11]提出了基于ASASA(affine-substitution-affine-substitution-affine)結構的多變量密碼體系,并設計了基于ASASA 結構的白盒密碼方案,通過插入擾亂項來抵抗攻擊。文獻[12]以分組密碼算法為底層模塊,設計了基于底層分組密碼算法安全性[13]的白盒密碼。文獻[14]設計了類AES 的白盒算法。文獻[15]設計了一種基于SM4 的白盒算法。此外,近年來還有其他密碼算法的白盒實現被研究和設計[16-18]。但是相比于其他白盒實現思路,基于查找表的白盒方案計算相對簡單、占用空間較小、計算效率更高。

由于白盒密碼是軟件實現的,因此可以很好地滿足對成本和安全都有較高要求的場景,但是當前白盒密碼技術存在以下的問題。

1)靈活性較差。為了保證加解密的安全性,需要定期更換密鑰,而現有的白盒算法的表是與密鑰綁定的,即靜態白盒算法,每次更換密鑰需要重新生成和更換表,甚至更換白盒算法庫。

2)實用性不好。如前所述,已有的白盒算法要么存在安全設計缺陷,容易被敵手攻擊;要么為了提高安全性,增加計算復雜度,需要占用較大的存儲和計算資源,這對當前白盒密碼的應用場景來說不適用。

基于當前的研究現狀和需求,本文提出一種基于查找表的動態AES 白盒算法——DWB-AES,該算法具有以下特點。

1)具有較高的靈活性。每次更換密鑰時,不必更新表和白盒算法庫,只需要更新很小的白盒密鑰信息即可。

2)具有較高的實用性。DWB-AES 加解密過程基于查找表實現,具有較高的運算效率和較低的存儲空間需求,尤其適合計算和存儲資源受限的物聯網設備。

3)具有較高的安全性。DWB-AES 對密鑰和表同時混淆,引入16 B 的混淆變換,使其能夠抵御現有針對白盒密碼的BGE 和Mulder 等常用攻擊方法,并且擁有較高的白盒多樣性和白盒含混度。

2 AES 靜態白盒算法

在白盒攻擊環境下,攻擊者可以觀察到密碼算法執行的整個過程,為了保護密鑰,可以將加解密過程以表的形式實現,這種思路是由Chow 等提出的。通過查找表,由輸入數據直接獲取輸出數據,從而隱藏了密鑰信息。下面,將分別介紹Chow 等白盒實現和Xiao-Lai 白盒算法。

2.1 Chow 等白盒實現

在Chow 等白盒實現里[1],通過改變輪與輪之間的邊界,將加密鑰和S盒變換組合在一起,對應一個8 bit 雙射,稱為T盒變換。以AES-128 為例,第r輪、第i行、第j列的T盒為

其中,sr(i,j)表示行變換之后的下標。

列混淆操作每次作用在狀態矩陣的一列,對應32×32的列混淆矩陣和32×1的列向量相乘。為了減小表大小,將列混淆矩陣MC 分割成4 個部分,即MC=(M C0,MC1,MC2,MC3),將列混淆操作MC 轉換為4 次32×8矩陣和8×1列向量相乘,并對4 個列向量相加。

為了隱藏密鑰,需要引入混淆編碼。為此,在T盒變換之前引入雙射變換,在列混淆操作之后乘32×32矩陣MB,并使用和分割矩陣MC 一樣的方法分割矩陣MB。

將T盒變換和列混淆操作結合,生成TypeII 表;TypeII=MB ? MC?T? mb,其中,mb 表示引入的雙射變換,MB 表示引入的線性變換:乘矩陣MB。為了抵消引入的線性變換和mb 雙射變換,引入TypeIII 表,對應實現mb 的逆變換和MB 的逆變換。

此外,為了實現矩陣分割過程中的異或操作,構造異或輔助表TypeIV,實現了4 bit 和4 bit 的異或操作。

2.2 Xiao-Lai 白盒實現

和Chow 等白盒算法類似,Xiao-Lai 的AES白盒實現算法將加密鑰操作和S盒變換結合在一起生成T盒,這里不再贅述。與Chow 等白盒算法不同,Xiao-Lai 的AES 白盒實現算法的列混淆操作將 MC 分割成 2 個部分,即MC=(M C0,MC1),列混淆操作變為2 次32×16矩陣和16×1列向量相乘再相加。

構造表TMC 為

其中,T2i+1和T2i表示相鄰的2 個T盒變換,R表示32×32矩陣線性變換,L表示16×16矩陣線性變換。將查表得到的2 個列向量直接相加,得到列混淆的結果。

行變換操作可看作乘128×128矩陣的操作,通過乘隨機矩陣來實現混淆,最終得到矩陣M=LSRR?1,其中,L為16×16的矩陣,SR 為行變換矩陣,R為32×32的矩陣,M矩陣既實現了行變換操作,又抵消了TMC 表中引入的線性變換。為了處理外部編碼,第一輪的M矩陣引入了輸入變換,最后一輪的M矩陣引入了輸出變換。

3 AES 動態白盒算法DWB-AES 實現方案

所謂動態白盒算法,就是在密鑰更換時,不需要更換查找表,可以動態地更換密鑰。其核心思想是,對密鑰引入混淆變換得到白盒密鑰,每次加密時將白盒密鑰和明文一起作為輸入參數,進行查找表操作,最終得到輸出結果。每次更換密鑰后,只需更換白盒密鑰。

動態白盒使用流程分為初始化和加(解)密2個過程,如圖1 所示。

圖1 動態白盒使用流程

初始化過程涉及表的生成和白盒密鑰的生成,加(解)密通過查找混淆表實現。

動態白盒算法的實現流程為,對輪密鑰和數據進行行變換操作,然后乘16×16的非退化矩陣(稱該操作為L變換),從而實現線性混淆。對混淆后的結果進行異或操作、S盒變換、列混淆操作,最后乘32×32的非退化矩陣(稱該操作為R操作)。

涉及的表為行變換表(對應行變換和L變換)、加密鑰表(對應加密鑰操作ARK)、列混淆表(對應S盒變換、列混淆操作MC 和R變換)。引入的L變換和R變換在相鄰的表之間抵消。

以AES-128 為例進行說明,通過改變輪與輪之間的邊界,并且將行變換操作提前。修改后的輪邊界如圖2 所示。下面,將描述密鑰變換和各表的構造過程。

圖2 修改后的輪邊界

1)密鑰變換

首先對AES 密鑰進行密鑰擴展操作,得到輪密鑰。密鑰變換的過程可描述如下,以第r(1≤r≤10)輪為例。首先將輪密鑰進行變換操作。然后將密鑰矩陣的每一列分成兩部分,每2 B 為一組,得到GF(2)16上的列向量,對其進行線性變換:隨機生成16×16的非退化矩陣Li(i≤0 ≤7),計算

圖3 密鑰變換

由于AES 進行最后一次加密鑰操作后不進行行變換,因此,不對最后一次的輪密鑰進行行變換操作。對密鑰矩陣進行線性變換的過程可以寫成

其中,diag 表示對角陣。下面以加密的過程為例,描述查找表的生成方法。按照順序被查找的表依次為輸入變換表、行變換表、異或輔助表、加密鑰表、列混淆表和輸出變換表。為了更清晰地描述動態白盒實現的過程,將行變換表放到列混淆表后面進行說明,輸入輸出變換表放到最后進行說明。

2)加密鑰表

加密鑰表對應加密鑰操作。對于動態白盒實現,密鑰是可變的,由于密鑰和明文一樣是作為參數輸入的,若將其嵌入其他表里,則會導致表過于龐大,為此,單獨構造16 bit 輸入、8 bit 輸出的加密鑰表。其中,16 bit 的輸入包含8 bit 白盒密鑰和8 bit 明文。這里的白盒密鑰是由密鑰變換過程生成的。

表構造過程為,對8 bit 白盒密鑰和8 bit 明文先解碼,再進行異或操作得到8 bit 的數據;然后對8 bit 數據進行輸出編碼:先進行線性變換,再進行非線性編碼得到輸出數據。加密鑰表如圖4 所示。

圖4 加密鑰表

3)列混淆表sTMC

與文獻[6]中的nTMC 表構造思路相同,為了減少表的大小,將列混淆操作分成2 步,先是將列混淆矩陣MC 分割后和狀態矩陣的列相乘,最后將分割相乘的結果再相加,即

其中,將MC 進行矩陣分塊,分成2 個32×16的矩陣,即MC=(M C0,MC1),對狀態矩陣分塊,得到Tir。

列混淆表sTMC 實現了乘分割后的MC 矩陣:每個sTMC 表乘MC 的一部分,每輪一共有8 個sTMC 表。由于加密鑰表的輸出數據含有線性變換,因此將S盒置換嵌入列混淆表里而不是加密鑰表,sTMC 表列混淆表的輸入為16 bit,輸出為32 bit。輸入的狀態矩陣每2 B 為一組,分成8 組,分別查找8 個sTMC 表,得到8 個32 bit 的向量,后面兩兩一組進行異或,最后得到128 bit 數據。

圖5 列混淆表第1~9 輪

圖6 列混淆表第10 輪

4)行變換表

行變換操作可以看作對一個128 bit 的列向量乘128×128矩陣的變換,行變換操作可使用查找表的方式來實現。其涉及的線性變換如式(7)所示。

若不進行矩陣分割,行變換表大小為 2128×128 bit,這在實際中不可行。因此需要進行分割,GF(2)128上的任一列向量X可分割成32 塊,其中每塊為GF(2)4上的列向量。即xj(0≤j≤31)為GF(2)4上的列向量,則式(8)成立。

其中,M=(M0,M1,…,M31)為128×128的矩陣,Mj(0≤j≤31)為128×4的矩陣。

根據上述分割思路,可將一個 2128×128 bit 的表分割成32 個 24×128 bit 的表。下面進行具體說明。

下面是行變換表的構造過程,行變換表的輸入為8 bit,輸出為128 bit。

輸入的8 bit 數據,其中4 bit 來自乘MC0的結果,另外4 bit 來自乘MC1的結果。以狀態矩陣的第一列為例,其中4 bit 是查找表之后的結果,另外4 bit 是查找之后的結果。在行變換表里,首先對輸入數據做非線性變換,進行解碼操作,將來源不同的4 bit 數據異或,得到4 bit 列向量;然后按照上述計算式,先乘32×4的矩陣,抵消列混淆表里的線性編碼,再乘128×32的矩陣,進行行變換;最后乘128×128的矩陣,進行線性變換,得到128 bit 的列向量,其中每4 bit 一組,進行非線性編碼,得到輸出結果。表構造的過程如圖7 和圖8 所示,在查找第1 輪TSR 之前,先進行輸入線性編碼(乘大小為128×128隨機矩陣IN),因此第一輪表的線性逆變換乘的是矩陣IN?1。

圖7 行變換表第1 輪

圖8 行變換表第2~10 輪

5)異或輔助表TXOR

行變換的矩陣乘操作被分割成32 個列向量分別乘分割后的矩陣后再相加。本文用異或輔助表實現異或操作,一共有32 個乘法操作,對應32 個行變換表,每個表輸出128 bit 列向量,因此行變換輔助表實現32 個128 bit 列向量的加法操作,對應31次異或操作。為了減少表大小,將31 次128 bit 異或操作分成31×32次4 bit 異或操作。異或輔助表如圖9 所示。

圖9 異或輔助表

6)輸入輸出編碼表

輸入輸出編碼均是外部編碼,輸入編碼是對輸入明文進行乘128×128非退化矩陣IN,輸出編碼是對輸出前的密文乘128×128非退化矩陣OUT,這里有

因此輸入輸出編碼表實現了128×128的矩陣乘法,為了減少表大小,對矩陣進行分塊,最終使用16 個規模為8×128的表來實現。表構造如圖10所示。

圖10 輸入輸出編碼表

整個加密過程為,首先查找輸入編碼表和輔助異或表實現輸入編碼,再重復10 輪如下的表查找:查找行變換表和輔助異或表實現行變換,查找加密鑰表實現加密鑰,查找列混淆表實現列混淆和S 盒變換。10 輪之后,查找加密鑰表實現最后一輪加密鑰,最后進行輸出編碼變換得到真正的密文。

4 正確性和效率分析

第3 節詳細介紹了動態白盒實現方案,把AES實現的各步驟都使用查找表來實現,每個表的輸入和輸出都引入了線性變換和非線性變換來實現混淆,為了保證算法的正確性,在相鄰表之間引入的變換都是互逆的,即保證了在進行AES 的各步驟之前的數據都是正確的。為了實現動態白盒算法,預先對輪密鑰進行線性和非線性變換,其中非線性變換在加密鑰表的輸入里被抵消,而線性變換則和輸入數據的線性變換相同,并在列混淆表中被抵消。各表的構造示意和描述均在第3 節給出說明。

下面,將分析動態白盒算法的效率。

TSR 第1 輪表的大小為 28×128 bit,表個數為16 個,對應TXOR 表個數為480 個;第2~10 輪,每輪需要32 個表,表大小為 24×128 bit,對應TXOR表個數為992 個。sTMC 表第1~9 輪表大小為216×32 bit,每輪需要8 個表;第10 輪表大小為216×16 bit,需要8 個表。TK 表大小為 216×8 bit,每輪需要16 個表。輸入輸出編碼表大小為 28×128 bit,表個數為32 個,對應TXOR 表個數為960 個。各表所占空間總大小如下。

表1 3 種基于查找表的白盒方案的效率對比

輸入輸出編碼:32×28×128 bit=128 KB

因此,整個加密過程中所有表的大小為136+1296+19 456+11264+128=32 280 KB。

3 種基于查找表的白盒方案的效率對比如表1 所示。在3 種白盒實現里,只有Xiao-Lai 的白盒實現涉及了耗時多的矩陣乘法,其余均為簡單的查找表操作。考慮到空間大小,DWB-AES 所占用的空間是最大的,但仍在可接受范圍內,并且由于DWB-AES 是動態白盒,每次更換密鑰需要更換查找表的大小為0。

此外,3 種基于查找表的白盒實現里,只有DWB-AES 既能抵御BGE 攻擊又能抵御Mulder 等的攻擊,這將在后面的安全性分析中進行說明。

5 安全性分析

下面,使用常用的分析方法對DWB-AES 進行安全性分析型。

5.1 本地安全性

查找表技術通過將密鑰隱藏在表中,對表進行混淆,最終保證表空開后也無法對外泄露信息[1],并且保證任何一個表都不會泄露額外信息,也就是所謂的本地安全性。DWB-AES 生成每個表的過程中,都引入了隨機的線性變換和非線性編碼,每一個查找表都獨立引入了隨機混淆信息,因此所有的查找表都是本地安全的。

5.2 白盒多樣性和白盒含混度

Chow 等提出了評估白盒安全性的2 個指標,即白盒多樣性和白盒含混度。白盒多樣性用來評估可選擇的混淆表的數量;白盒含混度用來評估給定表可選擇的混淆編碼的數量。白盒多樣性越大,含混度越高,則密鑰混淆的越充分,越不容易被提取密鑰。

GF(2)上的n×n階可非退化矩陣的個數為,m×n列滿秩矩陣的個數為例如GF(2)上的4×4非退化矩陣個數為20 160,由此計算本文白盒實現中表的白盒多樣性。

表2 給出了3 種白盒方案的白盒含混度和白盒多樣性。TK 的白盒含混度為 28!×28≈21692,TXOR 的白盒含混度為 24!×24≈248,其余表的白盒含混度計算起來比較復雜,本文僅給出粗略的下界,TSR 為(24!)2×2126≈ 2214,sTMC 為 (28!)2×2254≈23622,TOUT 為 (24!)2×2016032≈ 2536。

表2 3 種白盒方案的白盒含混度和白盒多樣性

從表2 可以看出,DWB-AES 擁有較高的白盒含混度和白盒多樣性,因此具有較高的安全性。

5.3 抵御BGE 攻擊

Billet 等提出了對Chow 等的白盒AES 算法的攻擊方法,被稱為BGE 攻擊。在Chow 的白盒設計里,表滿足了比較高的白盒多樣性和白盒含混度,從單個表里提取密鑰信息十分困難,然而由于表與表之間的混淆會相互抵消,將表組合在一起分析能更容易地提取密鑰信息。在BGE 攻擊中,將每輪的各變換當作一個整體,看作一個變換,如圖11 所示。從圖11 可以看出,每輪的輸入編碼和前一輪的輸出編碼是互逆的,即

圖11 Chow 等白盒算法流程

其次,計算出仿射變換,該步驟主要基于任意的(yi,yj)存在線性關系,即yi(x0,00,00,00)=

下面,將說明DWB-AES 可以抵御BGE 攻擊。與Chow 等白盒算法不同,DWB-AES 的算法實現里,每一輪的置換編碼是16 bit,(yi,yj)不一定存在線性關系。顯然,將TK、sTMC 和TSR 組合在一起分析,是最容易攻擊的。令輸入數據為(x0,x1,…,x15),令狀態矩陣的排列方式為按列排列。將第一輪TK 表數據輸入的第i個字節定義為xi,將第二輪行變換輸出(查找TSR 和XOR 表的輸出)的第i個字節定義為yi。令

其中,t=0或 1,v是u經過加密鑰、S盒變換、列混淆、行變換之后的結果。以前2 B 為例,第1 B的v0和v1的計算式為

5.4 抵御Mulder 攻擊

Mulder 等[7]對Xiao-Lai 白盒實現進行了攻擊,該攻擊方法是基于Biryukow 等[19]的LE 算法。LE算法給出了尋找線性變換對(A,B),使S2=B?S1?A的算法,其中S1和S2均為nbit 雙射,若存在這樣的線性變換對,則S1和S2是線性等效的,此時LE 算法輸出符合要求的線性變換對集合;否則,輸出相應信息表示S1和S2不是線性等效的。在Xiao-Lai 白盒實現里,由于TMC 表只引入了線性變換

其中,(S,S)為AES 的S盒變換。因此若找到TMC和(S,S)之間的線性變換(A,B),則可將表中引入的線性變換去掉,進而提取密鑰。

Mulder 等通過觀察Xiao-Lai 白盒實現結構,對LE 算法進行改造,以便能在 232的復雜度內提取密鑰。首先,Mulder 等將密鑰相關的表轉換為密鑰無關的表。其次,找到線性矩陣。最后,提取AES 密鑰。其中,找到線性矩陣的步驟是核心步驟,通過將第1 輪的TMC 表和第2 輪的列混淆操作結合,并將列混淆操作相關輸出設置為0,攻擊者可以構造出線性等價解的集合。

下面將說明這種攻擊方法不適用于DWB-AES。由于表的輸入和輸出均增加了非線性編碼,因此使用基于LE算法及Mulder等的改造算法來尋找線性變換對(A,B)的方法不能直接被應用。即使將非線性編碼的部分去掉,由于TSR 表的輸入分別來源于列混淆矩陣MC 和TMCi+1,線性等價的解集合的構造將更加復雜。

該集合的大小為 224,而不是原來的 28,這將攻擊復雜度提升至 264,對于使用白盒密碼的應用程序來說,可認為是安全的復雜度。

本文使用常用的方法對DWB-AES 進行了安全行分析,并對Chow 白盒方案、Xiao-Lai 白盒方案和DWB-AES 進行了對比,結果如表3 所示。

表3 3 種白盒方案對比

6 結束語

針對物聯網設備軟硬件資源有限,密碼模塊既要滿足安全性,又要具有較大靈活性的需求,本文提出了一種不需要更換查找表就能更換密鑰的動態白盒實現方法DWB-AES,在保證正確性的前提下,具有較高的安全性,可以有效地抵御BGE 攻擊和Mulder 等針對白盒算法的已知常用攻擊,由于該方法在密鑰更新時不需要更換查找表就能更新密鑰,因此應用模式更加靈活,可以更好地滿足物聯網設備在安全應用中的需求。

猜你喜歡
安全性
兩款輸液泵的輸血安全性評估
新染料可提高電動汽車安全性
既有建筑工程質量安全性的思考
某既有隔震建筑檢測與安全性鑒定
基于安全性需求的高升力控制系統架構設計
加強廣播電視信息安全性的思考
科技傳播(2019年22期)2020-01-14 03:05:32
網約車安全性提高研究
活力(2019年17期)2019-11-26 00:42:18
注意藥酒服用的安全性
基層中醫藥(2018年6期)2018-08-29 01:20:20
田間施用滅幼脲在桃中的殘留安全性評估
ApplePay橫空出世 安全性遭受質疑 拿什么保護你,我的蘋果支付?
主站蜘蛛池模板: 国产免费羞羞视频| 国产国语一级毛片在线视频| 欧美一级在线看| 国产哺乳奶水91在线播放| 无码不卡的中文字幕视频| 中国国产一级毛片| 亚洲精品午夜天堂网页| 99er这里只有精品| 亚洲国产精品一区二区高清无码久久| 又大又硬又爽免费视频| 在线高清亚洲精品二区| 久久精品人妻中文视频| 欧美区一区| AV老司机AV天堂| 亚洲免费黄色网| 久久久久亚洲精品成人网| 成年片色大黄全免费网站久久| 亚洲第一页在线观看| 亚洲国产无码有码| 国内熟女少妇一线天| 在线观看免费国产| 超清人妻系列无码专区| 71pao成人国产永久免费视频| 久久综合伊人 六十路| 国产成人乱无码视频| 国产91精品久久| 欧美不卡视频在线观看| 国产成人盗摄精品| 色悠久久久久久久综合网伊人| 国产精品免费电影| a级毛片免费看| 免费在线成人网| 国产一级精品毛片基地| 亚洲天堂网在线观看视频| 欧美97色| 波多野结衣一区二区三区四区| 亚洲AV无码乱码在线观看裸奔| 欧美日本中文| 亚洲无码精品在线播放| 亚洲三级a| 国产高清国内精品福利| 蜜臀AV在线播放| 亚洲天堂区| 欧洲一区二区三区无码| 国产欧美一区二区三区视频在线观看| 国产精品无码AⅤ在线观看播放| 国产亚洲视频免费播放| 日韩国产欧美精品在线| 国产精品久久久久久影院| 中文字幕亚洲另类天堂| 日韩 欧美 小说 综合网 另类| 久草性视频| 国产成人高清精品免费5388| 免费av一区二区三区在线| 青草国产在线视频| 在线观看的黄网| 久夜色精品国产噜噜| 国产青青操| 一级毛片在线播放免费| 国产精品v欧美| 超碰91免费人妻| 欧美另类第一页| 一区二区三区四区日韩| 制服丝袜一区| 中文字幕资源站| 国产精品福利社| 国产高清精品在线91| 青草娱乐极品免费视频| 青青青视频免费一区二区| 欧美精品另类| 多人乱p欧美在线观看| 欧美午夜视频在线| 久久精品这里只有国产中文精品| 亚洲精品午夜无码电影网| 伊人久久精品无码麻豆精品| 国产精品19p| a亚洲视频| 中文字幕欧美成人免费| 色综合天天娱乐综合网| 香蕉久久永久视频| 欧美亚洲国产视频| 久久久久亚洲AV成人人电影软件 |