在《Hello肢娘,密碼學(xué):第二部分,對(duì)稱密碼算法》中講述了對(duì)稱密碼的概念舆驶,以及DES和AES兩種經(jīng)典的對(duì)稱密碼算法原理橱健。既然有對(duì)稱密碼的說法,自然也就有非對(duì)稱密碼沙廉,也叫做公鑰密碼算法拘荡。對(duì)稱密碼和非對(duì)稱密碼兩種算法的本質(zhì)區(qū)別在于,加密密鑰和解密密鑰是否相同:
- 對(duì)稱密碼的加解密密鑰相同蓝仲,用密鑰A加密俱病,也用密鑰B解密。
- 公鑰密碼的加解密密鑰不同袱结,用密鑰A加密亮隙,而用密鑰B解密。
一垢夹、公鑰密碼產(chǎn)生的初衷
公鑰密碼產(chǎn)生的初衷就是為了解決 密鑰配送 的問題溢吻。
Alice 給遠(yuǎn)方的 Bob 寫了一封情意慢慢的信,并使用強(qiáng)悍的 AES-256 進(jìn)行了加密果元,但她很快就意識(shí)到促王,光加密內(nèi)容不行,必須要想一個(gè)安全的方法將加密密鑰告訴 Bob而晒,如果將密鑰也通過網(wǎng)絡(luò)發(fā)送蝇狼,很可能被技術(shù)高手+偷窺癖的 Eve 竊聽到。
既要發(fā)送密鑰倡怎,又不能發(fā)送密鑰迅耘,這就是對(duì)稱密碼算法下的“密鑰配送問題”贱枣。
解決密鑰配送問題可能有這樣幾種方法:
- 通過事先約定的共享密鑰解決
- 通過密鑰分配中心解決
- 通過公鑰密碼解決
方法一: 事先約定的共享密鑰
這種方法比較高效,但有局限性:
- 只適用于較近的距離颤专。也就是不必通過不信任的網(wǎng)絡(luò)就能通信的情況纽哥,比如辦公室內(nèi)的同事之間,完全可以面對(duì)面?zhèn)鬟f一下密鑰栖秕。一旦距離較遠(yuǎn)春塌,無(wú)法面對(duì)面交互,就出現(xiàn)了問題簇捍。
- 只適用于小規(guī)模使用只壳。即使距離較近,但如果通信人數(shù)眾多暑塑,比如一個(gè)公司有 1000 人吕世,每個(gè)員工都可以和另外 999 個(gè)人進(jìn)行加密通信,每個(gè)人都需要 999 個(gè)密鑰梯投,整個(gè)公司需要的密鑰數(shù)量為 1000 × 999 ÷ 2 = 499500 個(gè)密鑰,這顯然不現(xiàn)實(shí)况毅。
方法二:密鑰分配中心
與方法一不同分蓖,密鑰不再由通信個(gè)體來(lái)保存,而由密鑰分配中心(KDC)負(fù)責(zé)統(tǒng)一的管理和分配尔许。雙方需要加密通信時(shí)么鹤,由 KDC 生成一個(gè)用于本次通信的通信密鑰交由雙方,通信雙方只要與 KDC 事先共享密鑰即可味廊。這樣就大大減少密鑰的存儲(chǔ)和管理問題蒸甜。
因此,KDC 涉及兩類密鑰:
- 身份密鑰:代表通信個(gè)體身份的密鑰余佛,好比工卡柠新。企業(yè)有 1000 個(gè)員工,KDC 中就保存 1000 個(gè)身份密鑰辉巡,人來(lái)人往恨憎,身份密鑰也隨之發(fā)生變化。
- 通信密鑰:也叫做會(huì)話密鑰郊楣,僅在一個(gè)通信會(huì)話過程中有效憔恳。
領(lǐng)略下 KDC 的過程:
- KDC 事先保存了 Alice 和 Bob 的身份密鑰,分別記為 iKey-Alice 和 iKey-Bob净蚤,i 是 identity 的意思钥组;
- Alice 向 KDC 發(fā)出要與 Bob 通信的請(qǐng)求;
- KDC 生成一個(gè)通信密鑰今瀑,記為 cKey程梦,c 是 communication 的意思点把;
- KDC 從數(shù)據(jù)庫(kù)中調(diào)取 Alice 和 Bob 的身份密鑰,用 iKey-Alice 對(duì) cKey 進(jìn)行加密后發(fā)送給Alice作烟,用iKey-Bob 對(duì) cKey 加密后發(fā)送給 Bob愉粤;
- Alice 使用 iKey-Alice 解密出 cKey 后,并使用 cKey 對(duì)信息進(jìn)行加密后發(fā)送給 Bob拿撩;
- Bob 使用 iKey-Bob 解密出 cKey 后衣厘,并使用 cKey 對(duì)來(lái)自 Alice 的加密信息進(jìn)行解密;
- 本次會(huì)話結(jié)束后压恒,Alice 和 Bob 按照公司要求影暴,在本地刪除本次使用通信密鑰 cKey。
KDC 通過中心化的手段探赫,確實(shí)能夠有效的解決方法一的密鑰管理和分配問題型宙,安全性也還不錯(cuò)。但也存在兩個(gè)顯著的問題:
- 性能問題:由于所有的加密通信伦吠,都要和 KDC 發(fā)生交互妆兑,KDC 的負(fù)荷會(huì)隨著通信會(huì)話的增加而陡增,一旦癱瘓毛仪,整個(gè)組織的加密通信都將癱瘓搁嗓。
- 安全問題:KDC 也是軟件,也存在漏洞箱靴,黑客 Mallory 可能直接對(duì) KDC 下手腺逛。一旦 KDC 的密鑰數(shù)據(jù)庫(kù)被破解,整個(gè)組織的加密通信都將被破譯衡怀。
方法三:公鑰密碼
使用公鑰密碼棍矛,加密密鑰和解密密鑰不同,只要擁有加密密鑰抛杨,所有人都能進(jìn)行加密够委,但只有擁有解密密鑰的人才能進(jìn)行解密。于是就出現(xiàn)了這個(gè)過程:
- 信息接收者事先將加密密鑰通過普通途徑發(fā)送給信息發(fā)送者即可蝶桶,不必?fù)?dān)心加密密鑰被竊聽慨绳;
- 信息發(fā)送者使用加密密鑰對(duì)信息進(jìn)行加密并發(fā)送給信息接收者;
- 信息接收者使用解密密鑰對(duì)加密信息進(jìn)行解密真竖。
密鑰配送的問題天然被解決了脐雪。當(dāng)然,解密密鑰丟失而導(dǎo)致信息泄密恢共,這不屬于密鑰配送的問題战秋。
下面,再詳細(xì)看下這個(gè)過程讨韭。
二脂信、公鑰密碼的基本流程
公鑰密碼流程的核心癣蟋,可以用如下四句話來(lái)概述:
- 發(fā)送者只需要加密密鑰
- 接收者只需要解密密鑰
- 解密密鑰須妥善保管,不能被竊聽者獲取
- 加密密鑰無(wú)所謂狰闪,被竊聽者獲取也沒關(guān)系
既然加密密鑰是公開的疯搅,因此也叫做 “公鑰(Public Key)”。
既然解密密鑰是私有的埋泵,因此也叫做 “私鑰(Private Key)幔欧。
公鑰和私鑰是一一對(duì)應(yīng)的,稱為 “密鑰對(duì)”丽声,他們好比相互糾纏的量子對(duì)礁蔗,彼此之間通過嚴(yán)密的數(shù)學(xué)計(jì)算關(guān)系進(jìn)行關(guān)聯(lián),不能分別單獨(dú)生成雁社。
在公鑰密碼體系下浴井,再看看 Alice 如何同 Bob 進(jìn)行通信。
在公鑰密碼體系下霉撵,通信過程是由 Bob 開始啟動(dòng)的:
- Bob 生成公私鑰對(duì)磺浙,妥善保管私鑰;
- Bob 將公鑰發(fā)送給 Alice徒坡,公鑰被 Eve 竊聽也沒關(guān)系屠缭;
- Alice 使用 Bob 的公鑰對(duì)消息進(jìn)行加密;
- Alice 將加密后的消息發(fā)送給 Bob崭参,密文被 Eve 截取也沒關(guān)系;
- Bob 使用私鑰對(duì)密文進(jìn)行解密款咖。
過程看起來(lái)非常簡(jiǎn)單何暮,但為什么即使公鑰被竊取也沒有關(guān)系?這就涉及了上文提到的嚴(yán)密的數(shù)學(xué)計(jì)算關(guān)系了铐殃。如果上一篇文章對(duì)稱密鑰的 DES 和 AES 算法進(jìn)行概述海洼,下面一節(jié)也會(huì)對(duì)公鑰體系的數(shù)學(xué)原理進(jìn)行簡(jiǎn)要說明。
三富腊、RSA算法背后的數(shù)學(xué)原理
自從 Diffie 和 Hellman 在1976年提出公鑰密碼的設(shè)計(jì)思想后坏逢,1978年,Ron Rivest赘被、Adi Shamir 和 Reonard Adleman 共同發(fā)表了一種公鑰密碼算法是整,就是大名鼎鼎的 RSA,這也是當(dāng)今公鑰密碼算法事實(shí)上的標(biāo)準(zhǔn)民假。其實(shí)浮入,公鑰密碼算法還包括ElGamal、Rabin羊异、橢圓曲線等多種算法事秀,這一節(jié)主要講述 RSA 算法的基本數(shù)學(xué)原理彤断。
- RSA 加密公式:密文 = 明文 ^ E mod N
- RSA 解密公式:明文 = 密文 ^ D mod N
- RSA 公鑰:{E, N}
- RSA 私鑰:{D, N}
一堆符號(hào),解釋下易迹,E 代表 Encryption宰衙,D 代表 Decryption,N 代表 Number睹欲。
從公式種能夠看出來(lái)供炼,RSA的加解密數(shù)學(xué)公式非常簡(jiǎn)單(即非常美妙)。RSA 最復(fù)雜的并非加解密運(yùn)算句伶,而是如何生成密鑰對(duì)劲蜻,這和對(duì)稱密鑰算法是不太一樣的。而所謂的嚴(yán)密的數(shù)學(xué)計(jì)算關(guān)系考余,就是指 E 和 D 不是隨便選擇的先嬉。
RSA的核心問題:生成密鑰對(duì)
密鑰對(duì)的生成,是 RSA 最核心的問題楚堤,RSA 的美妙與奧秘也藏在這里面疫蔓。
- 求 N
- 求 L(L是生成密鑰對(duì)過程種一個(gè)關(guān)鍵的中間變量)
- 求 E
- 求 D
1. 求N
求 N 公式:N = p × q
其中身冬,p 和 q 是兩個(gè)質(zhì)數(shù)衅胀,而且應(yīng)該是很大又不是極大的質(zhì)數(shù)。如果太小的話酥筝,密碼就容易被破解滚躯;如果極大的話,計(jì)算時(shí)間就會(huì)很長(zhǎng)嘿歌。比如 512 比特的長(zhǎng)度(155 位的十進(jìn)制數(shù)字)就比較合適掸掏。
這樣的質(zhì)數(shù)是如何找出來(lái)的呢?需要通過 “偽隨機(jī)數(shù)生成器(PRNG)” 進(jìn)行生成宙帝,然后再判斷其是否為質(zhì)數(shù)丧凤。如果不是,就需要重新生成步脓,重新判斷愿待。
判斷一個(gè)數(shù)是否為質(zhì)數(shù),并不是看其能不能分解質(zhì)因數(shù)靴患,而是通過數(shù)學(xué)的判斷方法來(lái)完成仍侥,比如費(fèi)馬測(cè)試和米勒·拉賓測(cè)試等。(描述復(fù)雜數(shù)學(xué)算法的念頭還是算了吧)
2. 求L
求 L 公式:L = lcm(p-1, q-1)
lcm 代表 “最小公倍數(shù)(least common multiple)” 鸳君。注意访圃,L 在加解密時(shí)都不需要,僅出現(xiàn)在生成密鑰對(duì)的過程中相嵌。
3. 求E
E 要滿足兩個(gè)條件:
1)1 < E < L
2)gcd(E,L) = 1
gcd 代表 “最大公約數(shù)(greatest common divisor)”腿时。gcd(E,L) = 1 就代表 “E 和 L 的最大公約數(shù)為1况脆,也就是說,E 和 L 互質(zhì)”批糟。
L 在第二步已經(jīng)計(jì)算出來(lái)格了,而為了找到滿足條件的 E,第二次用到 “偽隨機(jī)數(shù)生成器(PRNG)”徽鼎,在 1 和 L 之間生成 E 的候選盛末,判斷其是否滿足 “gcd(E,L) = 1” 的條件。
可以使用“歐幾里得輾轉(zhuǎn)相除法”計(jì)算最大公約數(shù)。(描述復(fù)雜數(shù)學(xué)算法的念頭還是算了吧)
經(jīng)過前三步,已經(jīng)能夠得到密鑰對(duì)種的 “公鑰:{E, N}” 了揩魂。
4. 求D
D 要滿足兩個(gè)條件:
1)1 < D < L
2)E × D mod L = 1
只要 D 滿足上面的兩個(gè)條件骂倘,使用 {E, N} 進(jìn)行加密的報(bào)文唆铐,就能夠使用 {D, N} 進(jìn)行解密。
"E × D mod L = 1" 在數(shù)學(xué)上的表述方式為:在以 L 為模的世界中,E 和 D 互為倒數(shù)。我們平時(shí)說的乘法中的倒數(shù)(比如 3 和 1/3)嚎京,只是 L 為 1 的特殊情況。
至此隐解,N鞍帝、L、E煞茫、D 都已經(jīng)計(jì)算出來(lái)帕涌,再整理一下
求解目標(biāo) | 計(jì)算公式 |
---|---|
求 N | N = p × q (p 和 q 都是用 “偽隨機(jī)數(shù)生成器(PRNG)” 生成的大質(zhì)數(shù)) |
求 L | L = lcm(p-1, q-1)(lcm 代表計(jì)算最小公倍數(shù)) |
求 E | E 要滿足兩個(gè)條件: 1 < E < L,以及 gcd(E,L) = 1(gcd 代表計(jì)算最大公約數(shù))续徽,即 E 和 L互質(zhì) |
求 D | D 要滿足兩個(gè)條件:1 < D < L宵膨,以及 E × D mod L = 1 |
RSA 模擬實(shí)踐
模擬實(shí)踐的過程包括兩部分,第一部分是生成密鑰對(duì)炸宵,第二部分是對(duì)數(shù)據(jù)進(jìn)行加解密。為了方便計(jì)算谷扣,都使用了較小的數(shù)字土全。
第一部分:生成密鑰對(duì)
1. 求N
準(zhǔn)備兩個(gè)質(zhì)數(shù),p = 5会涎,q = 7裹匙,N = 5 × 7 = 35
2. 求L
L = lcm(p-1, q-1) = lcm (4, 6) = 12
3. 求E
gcd(E, L) = 1,即 E 和 L 互質(zhì)末秃,而且 1 < E < L概页,滿足條件的 E 有多個(gè)備選:5、7练慕、11惰匙,選擇最小的 5 即可技掏。于是,公鑰 = {E, N} = {5, 35}
4. 求D
E × D mod L = 1项鬼,即 5 × D mod 12 = 1哑梳,滿足條件的 D 也有多個(gè)備選:5、17绘盟、41鸠真,選擇 17 作為 D(如果選擇 5 恰好公私鑰一致了,這樣不太直觀)龄毡,于是吠卷,私鑰 = {D, N} = {17, 35}
至此,我們得到了公私鑰對(duì):
- 公鑰 = {5, 35}
- 私鑰 = {17, 35}
第二部分:模擬加解密
明文我們也使用一個(gè)比較小的數(shù)字 -- 4沦零,利用 RSA 的加密公式:
密文 = 明文 ^ E mod N = 4 ^ 5 mod 35 = 9
明文 = 密文 ^ D mod N = 9 ^ 17 mod 35 = 4
從這個(gè)模擬的小例子能夠看出,即使我們用了很小的數(shù)字蠢终,計(jì)算的中間結(jié)果也是超級(jí)大序攘。如果再加上偽隨機(jī)數(shù)生成器生成一個(gè)數(shù)字,判斷其是否為質(zhì)數(shù)等寻拂,這個(gè)過程想想腦仁兒就疼程奠。還好,現(xiàn)代芯片技術(shù)祭钉,讓計(jì)算機(jī)有了足夠的運(yùn)算速度瞄沙。然而,相對(duì)于普通的邏輯運(yùn)算慌核,這類數(shù)學(xué)運(yùn)算仍然是相當(dāng)緩慢的距境。這也是一些非對(duì)稱密碼卡/套件中,很關(guān)鍵的性能規(guī)格就是密鑰對(duì)的生成速度
四垮卓、針對(duì) RSA 的攻擊
公鑰密碼體系中垫桂,用公鑰加密,用私鑰解密粟按,公鑰公開诬滩,私鑰隱藏。因此:
- 黑客能夠拿到的信息:1)密文灭将;2)公鑰(即 E 和 N)
- 黑客無(wú)法拿到的信息:1)明文疼鸟;2)私鑰(即 D 和 N);3)中間計(jì)算過程的信息(即 p庙曙、q空镜、L)。當(dāng)然,私鑰中的 N 其實(shí)能夠拿到吴攒,和明文的 N 是一樣的张抄。
攻擊方式一:直接破解明文
加密公式為:密文 = 明文 ^ E mod N
破譯的過程就是對(duì)該公式進(jìn)行逆運(yùn)算。由于除了對(duì)明文進(jìn)行冪次運(yùn)算外舶斧,還加上了“模運(yùn)算”欣鳖,因此在數(shù)學(xué)上,該逆運(yùn)算就不再是簡(jiǎn)單的對(duì)數(shù)問題茴厉,而是求離散對(duì)數(shù)問題泽台,目前已經(jīng)在數(shù)學(xué)領(lǐng)域達(dá)成共識(shí),尚未發(fā)現(xiàn)求離散對(duì)數(shù)的高效算法矾缓。
攻擊方式二:通過暴力破解求 D
暴力破解的本質(zhì)就是逐個(gè)嘗試怀酷。當(dāng)前主流的 RSA 算法中,使用的 p 和 q 都是 1024 位以上嗜闻,這樣 N 的長(zhǎng)度就是 2048 位以上蜕依。而 E 和 D 的長(zhǎng)度和 N 差不多,因此要找出 D琉雳,就需要進(jìn)行 2048 位以上的暴力破解样眠。即使上文那個(gè)簡(jiǎn)單的例子,算出(蒙出) “9 ^ D mod 35 = 4” 中的 D 也要好久吧翠肘。
攻擊方式三:通過 E 和 N 求出 D
因?yàn)?E 和 N 是已知的檐束,而 D 和 E 在數(shù)學(xué)上又緊密相關(guān)(通過中間數(shù) L),能否通過一種反向的算法來(lái)求解 D 呢束倍?
- E × D mod L = 1
- L = lcm(p-1, q-1)
從這個(gè)地方能夠看出被丧,p 和 q 是極為關(guān)鍵的,這兩個(gè)數(shù)字不泄密绪妹,幾乎無(wú)法通過公式反向計(jì)算出 D甥桂。也就是說,對(duì)于 RSA 算法邮旷,質(zhì)數(shù) p 和 q 絕不能被黑客獲取黄选,否則等價(jià)于交出私鑰。
既然不能靠搶婶肩,N = p × q办陷,N是已知的,能不能通過 “質(zhì)因數(shù)分解” 來(lái)推導(dǎo) p 和 q 呢狡孔?或者說,一旦找到一種高效的 “質(zhì)因數(shù)分解” 算法蜂嗽,就能夠破解 RSA 算法了苗膝。
幸運(yùn)的是,這和上述的“離散對(duì)數(shù)求解”一樣植旧,當(dāng)下在數(shù)學(xué)上還沒有找到這種算法辱揭,當(dāng)然离唐,也無(wú)法證明“質(zhì)因數(shù)分解”是否真的是一個(gè)困難問題。因此只能靠硬算问窃,只是當(dāng)前的算力無(wú)法在可現(xiàn)實(shí)的時(shí)間內(nèi)完成亥鬓。這也是很多人都提到過的,“量子時(shí)代來(lái)臨域庇,當(dāng)前的加密體系就會(huì)崩潰”嵌戈,從算力的角度看,或許如此吧听皿。
既不能搶熟呛,也不能算,能不能猜呢尉姨?也就是通過 “推測(cè) p 和 q 進(jìn)行破解”庵朝。
p 和 q 是通過 PRNG(偽隨機(jī)數(shù)生成器)生成的,于是又厉,又一個(gè)關(guān)鍵因素九府,就是采用的偽隨機(jī)數(shù)生成器算法要足夠隨機(jī)。
隨機(jī)數(shù)對(duì)于密碼學(xué)極為重要覆致,后面會(huì)專門寫一篇筆記侄旬。
攻擊方式四:中間人攻擊(最常見的 RSA 攻擊手段)
前三種攻擊方式,都是基于 “硬碰硬” 的思路篷朵,而 “中間人攻擊” 則換了一種迂回的思路勾怒,不去嘗試破解密碼算法,而是欺騙通信雙方声旺,從而獲取明文笔链。具體來(lái)說,就是:主動(dòng)攻擊者 Mallory 混入發(fā)送者和接收者之間腮猖,面對(duì)發(fā)送者偽裝成接收者鉴扫,面對(duì)接收者偽裝成發(fā)送者。
這個(gè)過程可以重復(fù)多次澈缺。需要注意的是坪创,中間人攻擊方式不僅能夠針對(duì) RSA,還可以針對(duì)任何公鑰密碼姐赡。能夠看到莱预,整個(gè)過程中,公鑰密碼并沒有被破譯项滑,密碼體系也在正常運(yùn)轉(zhuǎn)依沮,但機(jī)密性卻出現(xiàn)了問題,即 Alice 和 Bob 之間失去了機(jī)密性,卻在 Alice 和 Mallory 以及 Mallory 和 Bob 之間保持了機(jī)密性危喉。即使公鑰密碼強(qiáng)度再?gòu)?qiáng)大 N 倍也無(wú)濟(jì)于事宋渔。也就是說,僅僅依靠密碼算法本身辜限,無(wú)法防御中間人攻擊皇拣。
而能夠抵御中間人攻擊的,就需要用到密碼工具箱的另一種武器 -- 認(rèn)證薄嫡。在下面一篇筆記中氧急,就將涉及這個(gè)話題。
好了岂座,以上就是公鑰密碼的基本知識(shí)了态蒂。
五、混合密碼體系
公鑰密碼體系能夠完美的解決對(duì)稱密碼體系中 “密鑰配送” 這個(gè)關(guān)鍵問題费什,但是拋開 “中間人攻擊” 問題不談钾恢,公鑰密碼自己也有個(gè)嚴(yán)重的問題:
公鑰密碼處理速度遠(yuǎn)遠(yuǎn)低于對(duì)稱密碼。不僅體現(xiàn)在密鑰對(duì)的生成上鸳址,也體現(xiàn)在加解密運(yùn)算處理上瘩蚪。
因此,在實(shí)際應(yīng)用場(chǎng)景下稿黍,往往會(huì)將對(duì)稱密碼和公鑰密碼的優(yōu)勢(shì)相結(jié)合疹瘦,構(gòu)建一個(gè) “混合密碼體系”。簡(jiǎn)單來(lái)說:首先用相對(duì)高效的對(duì)稱密碼對(duì)消息進(jìn)行加密巡球,保證消息的機(jī)密性言沐;然后用公鑰密碼加密對(duì)稱密碼的密鑰,保證密鑰的機(jī)密性酣栈。
下面是混合密碼體系的加解密流程圖险胰。整個(gè)體系分為左右兩個(gè)部分:左半部分加密會(huì)話密鑰的過程,右半部分是加密原始消息的過程矿筝。原始消息一般較長(zhǎng)起便,使用對(duì)稱密碼算法會(huì)比較高效;會(huì)話密鑰一般比較短(十幾個(gè)到幾十個(gè)字節(jié))窖维,即使公鑰密碼算法運(yùn)算效率較低榆综,對(duì)會(huì)話密鑰的加解密處理也不會(huì)非常耗時(shí)。
著名的密碼軟件 PGP铸史、SSL/TLS鼻疮、視頻監(jiān)控公共聯(lián)網(wǎng)安全建設(shè)規(guī)范(GB35114) 等應(yīng)用,都運(yùn)用了混合密碼系統(tǒng)琳轿。
1. 混合密碼體系-加密流程
2. 混合密碼體系-解密流程
好了判沟,以上就是公鑰密碼算法的全部?jī)?nèi)容了震贵,拖更了很久,以后還要更加勤奮一些水评。
為了避免被傻啦吧唧的審核機(jī)器人處理,后面就不再附漂亮姑娘的照片(也是為了你們的健康)媚送,改成我的攝影作品中燥,希望不要對(duì)收視率產(chǎn)生影響,雖然很多小伙兒就是沖著姑娘來(lái)的塘偎。
就從喀納斯之旅開始吧疗涉。