向晚的意思是什么| lin是什么意思| 氯化钠是什么东西| 殉葬是什么意思| 婴儿咳嗽用什么药| 心律平又叫什么名字| 赞什么不已| 什么血型| 偏头痛吃什么药| 补办医保卡需要什么资料| 吃榴莲对妇科病有什么好处| 山竹不能和什么水果一起吃| 冷鲜肉和新鲜肉有什么区别| 张良为什么不救韩信| 深海鱼油什么牌子好| 幽门螺旋杆菌是什么病| 正常舌头是什么颜色| 医学cr是什么意思| 干净的什么| 羊经后半边读什么| 调停是什么意思| 抑郁症什么症状表现| 白带有血丝是什么原因| 一什么傍晚| 木指什么生肖| 十二生肖排第七是什么生肖| 梦见火烧房子是什么预兆| 性欲是什么意思| 猫咪掉胡子是什么原因| 嗓子疼吃什么药效果最好| 团宠是什么意思| 心肌供血不足用什么药| 肿瘤cr是什么意思| 耐药性是什么意思| 抗坏血酸钠是什么| 中指和无名指一样长代表什么| 小孩突然抽搐失去意识是什么原因| 为什么不建议光子嫩肤| 什么地爬| 五月十六日是什么星座| vcr什么意思| 潮喷是什么| 大便隐血阴性是什么意思| 鱼漂什么牌子的好| 安居乐业什么意思| 非营利性医院是什么意思| 中元节会开什么生肖| 买盘和卖盘是什么意思| 胸部胀疼是什么原因| 喝什么可以减肥瘦肚子| 每天喝柠檬水有什么好处| 晕倒挂什么科| 可可尼女装什么档次| 孺子可教什么意思| 大能是什么意思| 因地制宜是什么意思| 什么闻什么睹| 卡帝乐鳄鱼什么档次| 子宫破裂有什么危险| 晚上睡觉流口水是什么病| 请丧假需要什么证明| 有血尿是什么原因| 婴儿采足底血是查什么| 粥样动脉硬化是什么意思| 女生发个wink什么意思| 今年什么时间进伏| 考研要考什么| 阑尾炎是什么引起的| 结婚五十年是什么婚| 腰穿是什么意思| 御姐是什么意思| 食用酒精是什么做的| 凭什么是什么意思| 漂流是什么| 羊水破了是什么症状| 糖尿病主食吃什么好| 男女接吻有什么好处| 什么是记忆棉| 点天灯是什么意思| 清真是什么意思| 鹿晗的粉丝名叫什么| 煎中药用什么锅| 胃疼吃什么药最有效| 后羿射日什么意思| 粉蒸肉的粉是什么粉| 火龙果什么人不能吃| 拖什么东西最轻松| 嬉皮士是什么意思| 蜻蜓点水的目的是什么| 间羟胺又叫什么| 结膜囊在眼睛什么位置| 亦或是什么意思| 小猫吃什么东西| 面色晄白是什么意思| 1995属什么| 抗sm抗体阳性什么意思| 面肌痉挛吃什么药效果好| 紫荆花代表什么生肖| 乙肝病毒表面抗体阳性是什么意思| 玑是什么意思| 拉不出来屎是什么原因| 斯里兰卡用什么货币| 户口迁移需要什么手续| 碱性水是什么水| 蜈蚣最怕什么东西| 东倒西歪是什么意思| 站街女是什么意思| ca什么意思| 品质是什么| 天上火是什么意思| 胸痛是什么原因导致的| 老火是什么意思| 司令是什么意思| 来姨妈吃什么水果好| bpm是什么意思| 苋菜与什么食物相克| 鹤膝风是什么病| 流鼻血是什么病| 东施效颦什么意思| 睡眠不好挂什么科| 七月十三号是什么星座| 头发轻轻一拉就掉了是什么原因| 先算什么再算什么| 明太鱼是什么鱼| 鱼肉百姓什么意思| 虾青素有什么功效| 迟脉是什么意思| 美仑美奂什么意思| f00d中文是什么意思| 早茶是什么意思| ariel是什么意思| 低密度脂蛋白高是什么原因| 乌龟为什么不吃东西| 什么水果含维生素b| 操刀是什么意思| 丸吞是什么意思| mds是什么意思| 别出心裁什么意思| 提高什么| 心理卫生科看什么病的| 甲状腺病变是什么意思| 自言自语是什么意思| 珍珠鸟吃什么食物| 润喉咙什么东西最合适| 吃什么补孕酮最快| 做梦车丢了有什么预兆| 开心果为什么叫开心果| 白色裤子搭什么颜色上衣| 全麦粉和小麦粉的区别是什么| 妇科ph值是什么意思| 梦见奶奶去世预示什么| 什么是黑科技| 床品是什么意思| py是什么意思| 骨刺吃什么药| 朱元璋为什么杀徐达| 枸杞与菊花一起泡水喝有什么功效| 翡翠和玉的区别是什么| 黄占读什么| 右手无名指戴戒指是什么意思| 备孕吃叶酸有什么好处| 日是什么意思| 临床医学学什么| 克罗心是什么牌子| 肛裂是什么| 勾芡用什么粉| bnp是什么检查| 面瘫去医院挂什么科| 宫腔镜是什么意思| 小狗得细小是什么症状| 霉菌性阴炎用什么药好得快| or什么意思| 为什么吃火龙果会拉肚子| coa什么意思| os是什么意思| 杨贵妃是什么生肖| 家人们是什么意思| 嗣读什么| oversize风格什么意思| allin什么意思| 狗改不了吃屎是什么意思| 01年属蛇的是什么命| 为什么睡觉磨牙| 给男朋友买什么礼物比较好| 怀孕吃什么必定流产| 凭什么姐| 什么油适合油炸| 贫血不能吃什么| 为什么会停电| alp医学上是什么意思| 吃三七粉有什么作用| 恩五行属什么| 梦见弟弟是什么意思| 湿疹用什么药| 只是女人容易一往情深是什么歌| 伏羲女娲是什么关系| 磨皮是什么意思| 吃完狗肉不能吃什么| 弱水三千只取一瓢什么意思| 奶油的原料是什么| 力挺是什么意思| 省纪委副书记是什么级别| 鼻窦炎吃什么药好得快| tr是什么意思| 尿里有红细胞是什么原因| 经期吃什么让血量增加| 娃娃流鼻血是什么原因| 52什么意思| 红字五行属什么| 区长是什么级别的干部| 属兔配什么属相最好| 手口足吃什么药| 托帕石是什么宝石| 磁共振是检查什么的| 福五行属性是什么| 呃逆吃什么药| 维生素d低是什么原因| 世故是什么意思| 茶色尿液提示什么病| 唾液有臭味是什么原因| 小舌头叫什么| 资治通鉴讲的是什么| 年轻人手抖是什么原因| 东北方向五行属什么| 龙涎香什么味道| 绿色心情是什么意思| 印度人口什么时候超过中国| 胃酸吃什么好| 五味子不适合什么人喝| 就不告诉你就不告诉你是什么儿歌| 头部MRI检查是什么意思| 茯茶属于什么茶| 08属什么生肖| 高血压突然变成低血压是什么原因| 眼珠子疼是什么原因| 检查全身挂什么科| 情绪低落是什么意思| 家里狗死了预示着什么| 结膜炎吃什么消炎药| 怀孕腿抽筋是因为什么原因引起的| 干红是什么意思| 胃不好可以吃什么| 伤口撒什么药粉好得快| 殿试第一名叫什么| 肝实质弥漫性回声改变什么意思| 肠漏是什么| 胎儿永久性右脐静脉是什么意思| 睡莲什么时候开花| 手脚发热吃什么药| 高血压二级是什么意思| 什么是疱疹怎么得的| 拜土地公要准备什么东西| bpd是胎儿的什么意思| 紫苏有什么功效| 腰两边疼是什么原因| 血糖高初期有什么症状| 做爱为什么那么舒服| 刺身是什么意思| 感冒喝什么饮料| 爱打哈欠是什么原因| 有炎症吃什么药| 风热证是什么意思| 来年是什么意思| igg是什么意思| 百度Jump to content

合格的不锈钢配电箱 品牌推荐 :中国配电箱

From Wikipedia, the free encyclopedia
百度 由此来看,10000元的差价不仅令舒适性大幅提升,同时人身安全也得到了更充分得保障,仅是如此,两者的售价差异已经比较合理的从差异配置上体现。

In cryptography, a one-way compression function is a function that transforms two fixed-length inputs into a fixed-length output.[1] The transformation is "one-way", meaning that it is difficult given a particular output to compute inputs which compress to that output. One-way compression functions are not related to conventional data compression algorithms, which instead can be inverted exactly (lossless compression) or approximately (lossy compression) to the original data.

A one-way compression function

One-way compression functions are for instance used in the Merkle–Damg?rd construction inside cryptographic hash functions.

One-way compression functions are often built from block ciphers. Some methods to turn any normal block cipher into a one-way compression function are Davies–Meyer, Matyas–Meyer–Oseas, Miyaguchi–Preneel (single-block-length compression functions) and MDC-2/Meyer–Schilling, MDC-4, Hirose (double-block-length compression functions). These methods are described in detail further down. (MDC-2 is also the name of a hash function patented by IBM.)

Another method is 2BOW (or NBOW in general), which is a "high-rate multi-block-length hash function based on block ciphers"[1] and typically achieves (asymptotic) rates between 1 and 2 independent of the hash size (only with small constant overhead). This method has not yet seen any serious security analysis, so should be handled with care.

Compression

[edit]

A compression function mixes two fixed length inputs and produces a single fixed length output of the same size as one of the inputs. This can also be seen as that the compression function transforms one large fixed-length input into a shorter, fixed-length output.

For instance, input A might be 128 bits, input B 128 bits and they are compressed together to a single output of 128 bits. This is equivalent to having a single 256-bit input compressed to a single output of 128 bits.

Some compression functions do not compress by half, but instead by some other factor. For example, input A might be 256 bits, and input B 128 bits, which are compressed to a single output of 128 bits. That is, a total of 384 input bits are compressed together to 128 output bits.

The mixing is done in such a way that full avalanche effect is achieved. That is, every output bit depends on every input bit.

One-way

[edit]

A one-way function is a function that is easy to compute but hard to invert. A one-way compression function (also called hash function) should have the following properties:

  • Easy to compute: If you have some input(s), it is easy to calculate the output.
  • Preimage-resistance: If an attacker only knows the output it should be infeasible to calculate an input. In other words, given an output , it should be unfeasible to calculate an input such that .
  • Second preimage-resistance: Given an input whose output is , it should be infeasible to find another input that has the same output , i.e. .
  • Collision-resistance: It should be hard to find any two different inputs that compress to the same output i.e. an attacker should not be able to find a pair of messages such that . Due to the birthday paradox (see also birthday attack) there is a 50% chance a collision can be found in time of about where is the number of bits in the hash function's output. An attack on the hash function thus should not be able to find a collision with less than about work.

Ideally one would like the "infeasibility" in preimage-resistance and second preimage-resistance to mean a work of about where is the number of bits in the hash function's output. However, particularly for second preimage-resistance this is a difficult problem.[citation needed]

The Merkle–Damg?rd construction

[edit]
The Merkle–Damg?rd hash construction. The boxes labeled [f] are a one-way compression function.

A common use of one-way compression functions is in the Merkle–Damg?rd construction inside cryptographic hash functions. Most widely used hash functions, including MD5, SHA-1 (which is deprecated[2]) and SHA-2 use this construction.

A hash function must be able to process an arbitrary-length message into a fixed-length output. This can be achieved by breaking the input up into a series of equal-sized blocks, and operating on them in sequence using a one-way compression function. The compression function can either be specially designed for hashing or be built from a block cipher. The last block processed should also be length padded, which is crucial to the security of this construction.

When length padding (also called MD-strengthening) is applied, attacks cannot find collisions faster than the birthday paradox (, being the block size in bits) if the used function is collision-resistant.[3][4] Hence, the Merkle–Damg?rd hash construction reduces the problem of finding a proper hash function to finding a proper compression function.

A second preimage attack (given a message an attacker finds another message to satisfy can be done according to Kelsey and Schneier[5] for a -message-block message in time . The complexity of this attack reaches a minimum of for long messages when and approaches when messages are short.

Construction from block ciphers

[edit]
A typical modern block cipher

One-way compression functions are often built from block ciphers.

Block ciphers take (like one-way compression functions) two fixed size inputs (the key and the plaintext) and return one single output (the ciphertext) which is the same size as the input plaintext.

However, modern block ciphers are only partially one-way. That is, given a plaintext and a ciphertext it is infeasible to find a key that encrypts the plaintext to the ciphertext. But, given a ciphertext and a key a matching plaintext can be found simply by using the block cipher's decryption function. Thus, to turn a block cipher into a one-way compression function some extra operations have to be added.

Some methods to turn any normal block cipher into a one-way compression function are Davies–Meyer, Matyas–Meyer–Oseas, Miyaguchi–Preneel (single-block-length compression functions) and MDC-2, MDC-4, Hirose (double-block-length compressions functions).

Single-block-length compression functions output the same number of bits as processed by the underlying block cipher. Consequently, double-block-length compression functions output twice the number of bits.

If a block cipher has a block size of say 128 bits single-block-length methods create a hash function that has the block size of 128 bits and produces a hash of 128 bits. Double-block-length methods make hashes with double the hash size compared to the block size of the block cipher used. So a 128-bit block cipher can be turned into a 256-bit hash function.

These methods are then used inside the Merkle–Damg?rd construction to build the actual hash function. These methods are described in detail further down.

Using a block cipher to build the one-way compression function for a hash function is usually somewhat slower than using a specially designed one-way compression function in the hash function. This is because all known secure constructions do the key scheduling for each block of the message. Black, Cochran and Shrimpton have shown that it is impossible to construct a one-way compression function that makes only one call to a block cipher with a fixed key.[6] In practice reasonable speeds are achieved provided the key scheduling of the selected block cipher is not a too heavy operation.

But, in some cases it is easier because a single implementation of a block cipher can be used for both a block cipher and a hash function. It can also save code space in very tiny embedded systems like for instance smart cards or nodes in cars or other machines.

Therefore, the hash-rate or rate gives a glimpse of the efficiency of a hash function based on a certain compression function. The rate of an iterated hash function outlines the ratio between the number of block cipher operations and the output. More precisely, the rate represents the ratio between the number of processed bits of input , the output bit-length of the block cipher, and the necessary block cipher operations to produce these output bits. Generally, the usage of fewer block cipher operations results in a better overall performance of the entire hash function, but it also leads to a smaller hash-value which could be undesirable. The rate is expressed by the formula:

The hash function can only be considered secure if at least the following conditions are met:

  • The block cipher has no special properties that distinguish it from ideal ciphers, such as weak keys or keys that lead to identical or related encryptions (fixed points or key-collisions).
  • The resulting hash size is big enough. According to the birthday attack a security level of 280 (generally assumed to be infeasible to compute today)[citation needed] is desirable thus the hash size should be at least 160 bits.
  • The last block is properly length padded prior to the hashing. (See Merkle–Damg?rd construction.) Length padding is normally implemented and handled internally in specialised hash functions like SHA-1 etc.

The constructions presented below: Davies–Meyer, Matyas–Meyer–Oseas, Miyaguchi–Preneel and Hirose have been shown to be secure under the black-box analysis.[7][8] The goal is to show that any attack that can be found is at most as efficient as the birthday attack under certain assumptions. The black-box model assumes that a block cipher is used that is randomly chosen from a set containing all appropriate block ciphers. In this model an attacker may freely encrypt and decrypt any blocks, but does not have access to an implementation of the block cipher. The encryption and decryption function are represented by oracles that receive a pair of either a plaintext and a key or a ciphertext and a key. The oracles then respond with a randomly chosen plaintext or ciphertext, if the pair was asked for the first time. They both share a table for these triplets, a pair from the query and corresponding response, and return the record, if a query was received for the second time. For the proof there is a collision finding algorithm that makes randomly chosen queries to the oracles. The algorithm returns 1, if two responses result in a collision involving the hash function that is built from a compression function applying this block cipher (0 else). The probability that the algorithm returns 1 is dependent on the number of queries which determine the security level.

Davies–Meyer

[edit]
The Davies–Meyer one-way compression function

The Davies–Meyer single-block-length compression function feeds each block of the message () as the key to a block cipher. It feeds the previous hash value () as the plaintext to be encrypted. The output ciphertext is then also XORed (⊕) with the previous hash value () to produce the next hash value (). In the first round when there is no previous hash value it uses a constant pre-specified initial value ().

In mathematical notation Davies–Meyer can be described as:

The scheme has the rate (k is the keysize):

If the block cipher uses for instance 256-bit keys then each message block () is a 256-bit chunk of the message. If the same block cipher uses a block size of 128 bits then the input and output hash values in each round is 128 bits.

Variations of this method replace XOR with any other group operation, such as addition on 32-bit unsigned integers.

A notable property of the Davies–Meyer construction is that even if the underlying block cipher is totally secure, it is possible to compute fixed points for the construction: for any , one can find a value of such that : one just has to set .[9] This is a property that random functions certainly do not have. So far, no practical attack has been based on this property, but one should be aware of this "feature". The fixed-points can be used in a second preimage attack (given a message , attacker finds another message to satisfy ) of Kelsey and Schneier [5] for a -message-block message in time . If the construction does not allow easy creation of fixed points (like Matyas–Meyer–Oseas or Miyaguchi–Preneel) then this attack can be done in time. In both cases the complexity is above but below when messages are long and that when messages get shorter the complexity of the attack approaches .

The security of the Davies–Meyer construction in the Ideal Cipher Model was first proven by R. Winternitz.[10]

Matyas–Meyer–Oseas

[edit]
The Matyas–Meyer–Oseas one-way compression function

The Matyas–Meyer–Oseas single-block-length one-way compression function can be considered the dual (the opposite) of Davies–Meyer.

It feeds each block of the message () as the plaintext to be encrypted. The output ciphertext is then also XORed (⊕) with the same message block () to produce the next hash value (). The previous hash value () is fed as the key to the block cipher. In the first round when there is no previous hash value it uses a constant pre-specified initial value ().

If the block cipher has different block and key sizes the hash value () will have the wrong size for use as the key. The cipher might also have other special requirements on the key. Then the hash value is first fed through the function to be converted/padded to fit as key for the cipher.

In mathematical notation Matyas–Meyer–Oseas can be described as:

The scheme has the rate:

A second preimage attack (given a message an attacker finds another message to satisfy ) can be done according to Kelsey and Schneier[5] for a -message-block message in time . The complexity is above but below when messages are long, and that when messages get shorter the complexity of the attack approaches .

Miyaguchi–Preneel

[edit]
The Miyaguchi–Preneel one-way compression function

The Miyaguchi–Preneel single-block-length one-way compression function is an extended variant of Matyas–Meyer–Oseas. It was independently proposed by Shoji Miyaguchi and Bart Preneel.

It feeds each block of the message () as the plaintext to be encrypted. The output ciphertext is then XORed (⊕) with the same message block () and then also XORed with the previous hash value () to produce the next hash value (). The previous hash value () is fed as the key to the block cipher. In the first round when there is no previous hash value it uses a constant pre-specified initial value ().

If the block cipher has different block and key sizes the hash value () will have the wrong size for use as the key. The cipher might also have other special requirements on the key. Then the hash value is first fed through the function to be converted/padded to fit as key for the cipher.

In mathematical notation Miyaguchi–Preneel can be described as:

The scheme has the rate:

The roles of and may be switched, so that is encrypted under the key , thus making this method an extension of Davies–Meyer instead.

A second preimage attack (given a message an attacker finds another message to satisfy ) can be done according to Kelsey and Schneier[5] for a -message-block message in time . The complexity is above but below when messages are long, and that when messages get shorter the complexity of the attack approaches .

Hirose

[edit]
The Hirose double-block-length compression function

The Hirose[8] double-block-length one-way compression function consists of a block cipher plus a permutation . It was proposed by Shoichi Hirose in 2006 and is based on a work[11] by Mridul Nandi.

It uses a block cipher whose key length is larger than the block length , and produces a hash of size . For example, any of the AES candidates with a 192- or 256-bit key (and 128-bit block).

Each round accepts a portion of the message that is bits long, and uses it to update two -bit state values and .

First, is concatenated with to produce a key . Then the two feedback values are updated according to:

is an arbitrary fixed-point-free permutation on an -bit value, typically defined as for an arbitrary non-zero constant (all ones may be a convenient choice).

Each encryption resembles the standard Davies–Meyer construction. The advantage of this scheme over other proposed double-block-length schemes is that both encryptions use the same key, and thus key scheduling effort may be shared.

The final output is . The scheme has the rate relative to encrypting the message with the cipher.

Hirose also provides a proof in the Ideal Cipher Model.

Sponge construction

[edit]

The sponge construction can be used to build one-way compression functions.

See also

[edit]

References

[edit]

Citations

[edit]
  1. ^ a b Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Fifth Printing (August 2001) page 328.
  2. ^ "Announcing the first SHA1 collision". Google Online Security Blog. Retrieved 2025-08-05.
  3. ^ Ivan Damg?rd. A design principle for hash functions. In Gilles Brassard, editor, CRYPTO, volume 435 of LNCS, pages 416–427. Springer, 1989.
  4. ^ Ralph Merkle. One way hash functions and DES. In Gilles Brassard, editor, CRYPTO, volume 435 of LNCS, pages 428–446. Springer, 1989.
  5. ^ a b c d John Kelsey and Bruce Schneier. Second preimages on n-bit hash functions for much less than 2n work. In Ronald Cramer, editor, EUROCRYPT, volume 3494 of LNCS, pages 474–490. Springer, 2005.
  6. ^ John Black, Martin Cochran, and Thomas Shrimpton. On the Impossibility of Highly-Efficient Blockcipher-Based Hash Functions. Advances in Cryptology – EUROCRYPT '05, Aarhus, Denmark, 2005. The authors define a hash function "highly efficient if its compression function uses exactly one call to a block cipher whose key is fixed".
  7. ^ John Black, Phillip Rogaway, and Tom Shrimpton. Black-Box Analysis of the Block-Cipher-Based Hash-Function Constructions from PGV. Advances in Cryptology – CRYPTO '02, Lecture Notes in Computer Science, vol. 2442, pp. 320–335, Springer, 2002. See the table on page 3, Davies–Meyer, Matyas–Meyer–Oseas and Miyaguchi–Preneel are numbered in the first column as hash functions 5, 1 and 3.
  8. ^ a b S. Hirose, Some Plausible Constructions of Double-Block-Length Hash Functions. In: Robshaw, M. J. B. (ed.) FSE 2006, LNCS, vol. 4047, pp. 210–225, Springer, Heidelberg 2006.
  9. ^ Handbook of Applied Cryptography by Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone. Fifth Printing (August 2001) page 375.
  10. ^ R. Winternitz. A secure one-way hash function built from DES. In Proceedings of the IEEE Symposium on Information Security and Privacy, p. 88-90. IEEE Press, 1984.
  11. ^ M. Nandi, Towards optimal double-length hash functions, In: Proceedings of the 6th International Conference on Cryptology in India (INDOCRYPT 2005), Lecture Notes in Computer Science 3797, pages 77–89, 2005.

Sources

[edit]
1947年属什么生肖 赊事勿取是什么意思 念珠菌是什么 鬼迷心窍是什么生肖 白细胞偏低是什么原因
宫腔镜是什么手术 白羊座上升星座是什么 梦见不干净的东西代表什么 嗓子有异物感堵得慌吃什么药 5月6日是什么星座
脑梗不能吃什么 锁阳有什么功效 灵芝长什么样 营销号是什么 2月11日是什么星座
1969年什么时候退休 王晶为什么不娶邱淑贞 看幽门螺旋杆菌挂什么科 邓超的公司叫什么名字 硅胶是什么材料做的
维生素c有什么好处hcv8jop4ns3r.cn 比干是什么神hcv9jop0ns1r.cn 补脑吃什么最好hcv8jop5ns2r.cn 角加斗念什么hcv8jop5ns8r.cn 吃什么降血脂最快hcv9jop7ns3r.cn
hpv病毒是什么病hcv8jop2ns4r.cn 脂蛋白a是什么意思hcv9jop7ns5r.cn 琬字五行属什么hcv8jop3ns4r.cn 名人轶事是什么意思hcv8jop0ns1r.cn 公务员是什么编制hcv9jop7ns1r.cn
浑身解数是什么意思bfb118.com 什么茶降血压效果最好hcv8jop6ns5r.cn 脱发吃什么药hcv9jop0ns8r.cn 什么止痛药效果最好hcv8jop1ns9r.cn 意面是什么做的wuhaiwuya.com
结肠炎有什么症状表现hcv8jop3ns9r.cn 花名册是什么意思hcv7jop9ns7r.cn 哼哈二将是什么意思jingluanji.com 基佬是什么意思hcv8jop2ns8r.cn 月经失调是什么原因引起的hcv9jop2ns1r.cn
百度