Score:5

คุณสามารถใช้ SHAKE256_XOF กับ XOR เพื่อสร้างรหัสสตรีมได้หรือไม่

ธง mc

SHAKE256_XOF เป็นฟังก์ชันเอาต์พุตที่ขยายได้โดยใช้ SHA3-512 SHAKE256_XOF สามารถใช้เพื่อสร้างสตริงบิตความยาวไม่สิ้นสุดพร้อมความปลอดภัย 256 บิต ตัวอย่างเช่น:

จาก Crypto.Hash.SHAKE256 นำเข้า SHAKE256_XOF

เขย่า = SHAKE256_XOF()
shake.update (b'key' + b'nonce')

สำหรับ _ ในช่วง (10):
    พิมพ์(shake.read(16).hex())
18068a140f4c0f1f85f17da13b049155
1fc6d25b11833480แด5fba50b8b73db
bf4284c0d9a32b9b374ae82d5c0514c6
...

SHAKE256_XOF เป็นฟังก์ชันสุ่มเทียม ดังนั้น เอ็กซ์ออร์- การใช้เอาต์พุตด้วยข้อความธรรมดาควรสร้างข้อความไซเฟอร์ ความเข้าใจของฉันคือนี่จะเป็นรหัสสตรีมแบบอสมมาตร ฉันมีช่วงเวลาที่ยากลำบากในการค้นหางานวิจัยเกี่ยวกับเรื่องนี้นอกเหนือจากที่เป็นอยู่ เป็นไปได้ และบรูซ ชไนเออร์ พูดว่า "ฉันรู้ว่าไม่มีการวิเคราะห์การเข้ารหัสของฟังก์ชันแฮชแบบทางเดียวโดยเฉพาะในฐานะตัวเข้ารหัสแบบบล็อก โปรดรอการวิเคราะห์ดังกล่าวก่อนที่คุณจะเชื่อถือสิ่งใดสิ่งหนึ่ง" ในที่สุดก็สามารถสร้างรหัสนี้ได้ รับรองความถูกต้อง โดย SHA3-512 เป็นส่วนหนึ่งของเมล็ด สิ่งนี้นำไปสู่อัลกอริทึมขั้นสุดท้าย:

จาก Crypto.Hash.SHAKE256 นำเข้า SHAKE256_XOF
จาก Crypto.Hash นำเข้า SHA3_512

xor = lambda lhs, rhs: ไบต์(a ^ b สำหรับ a, b ใน zip(lhs, rhs))

ข้อความธรรมดา = b'ข้อความธรรมดา'
คีย์ = b'คีย์'
nonce = b'นอนเซ่'
ไดเจสต์ = SHA3_512.new().update(ข้อความธรรมดา).ไดเจสต์()

e_shake = SHAKE256_XOF().update(key + nonce +digest)
cipher_text = xor(e_shake.read(len(ข้อความธรรมดา)), ข้อความธรรมดา)

d_shake = SHAKE256_XOF().update(key + nonce + ไดเจสต์)
d_plaintext = xor(d_shake.read(len(cipher_text)), cipher_text)

พิมพ์ (d_plaintext)
  1. มีวรรณกรรมเกี่ยวกับการใช้ SHAKE256_XOF เป็นรหัสหรือไม่?
  2. วิธีนี้เปรียบเทียบกับ AES256 ในแง่ของความปลอดภัยอย่างไร
  3. จุดอ่อนหรือข้อเสียของรหัสนี้คืออะไร? เห็นได้ชัดว่า การใช้ SHA3-512 เพื่อทำให้การรับรองความถูกต้องหมายความว่าไม่สามารถเข้ารหัสได้อย่างมีประสิทธิภาพในหนึ่งรอบ และการถอดรหัสต้องมีการคำนวณไดเจสต์ SHA3-512 เพื่อรับรองความถูกต้อง (ฉันกำลังเรียนรู้ว่าการเข้ารหัสที่ผ่านการรับรองความถูกต้องทำงานอย่างไร จึงยินดีรับคำแนะนำและคำติชม) .
  4. มันให้ข้อได้เปรียบที่เป็นไปได้เหนือ AES256 หรือไม่?
  5. AES256 มีความต้านทาน 128 บิต เชิงทฤษฎี การโจมตีด้วยควอนตัม รหัสนี้จะรักษา นาที (key_length/2, 256) บิตของความต้านทานการโจมตีควอนตัมทางทฤษฎีที่ SHAKE256_XOF มี.
Score:7
ธง vu

ในหัวข้อ 3.2 "โหมดการใช้งานฟังก์ชั่นฟองน้ำ" ของ ฟังก์ชัน Cryptographic Sponge (CSF ย่อมาจากวัตถุประสงค์ของคำตอบนี้) ผู้เขียนได้ระบุ "โหมดการทำงาน" หลายโหมดสำหรับวัตถุประสงค์ที่แตกต่างกัน โดยมีแอปพลิเคชันการเข้ารหัสสตรีมเป็นหนึ่งในนั้น นี่คือตาราง:

ฟังก์ชั่น การแสดงออก ป้อนข้อมูล เอาต์พุต
$n$- ฟังก์ชันแฮชบิต $h = H(M)$ $M$ $\ชั้น Z \rชั้น _n$
$n$ฟังก์ชันแฮชแบบสุ่มบิต $h = H_R(M)$ $R|M$ $\ชั้น Z \rชั้น _n$
$n$ความแตกต่างของอินสแตนซ์ฟังก์ชันแฮช -bit $h = H_D(M)$ $D|M$ $\ชั้น Z \rชั้น _n$
ช้า $n$- ฟังก์ชันทางเดียวบิต $h = H_{\text{ช้า}}(M)$ $M|0^N$ $\ชั้น Z \rชั้น _n$
$n$- บิตฟังก์ชัน MAC $T = MAC(K,[IV,]M)$ $K|IV|M$ $\ชั้น Z \rชั้น _n$
รหัสสตรีมการเข้าถึงแบบสุ่ม ($n$บิตบล็อก) $z_i = F(K,IV,i)$ $K|IV|i$ $\ชั้น Z \rชั้น _n$
รหัสสตรีม $Z=F(K,IV)$ $K|IV$ อย่างที่เป็น
เครื่องกำเนิดบิตสุ่มเชิงกำหนด (DRBG) $z=DRBG(เมล็ด)$ เมล็ดพันธุ์ อย่างที่เป็น
ฟังก์ชันการสร้างมาสก์และการรับคีย์ $mask=F(seed,l)$ เมล็ดพันธุ์ $\ชั้น Z \rชั้น _l$

มีวรรณกรรมเกี่ยวกับการใช้ SHAKE256_XOF เป็นรหัสหรือไม่?

คุณได้ครอบคลุมกระดาษแล้ว

วิธีนี้เปรียบเทียบกับ AES256 ในแง่ของความปลอดภัยอย่างไร

วิธีนี้มีความแข็งแกร่งเท่ากันในแง่ของกำลังที่โหดเหี้ยม รหัสสตรีมของ SHAKE จะสามารถมีระยะเวลานานกว่า AES-256 ไม่ว่าจะเป็นโหมดตัวนับ (CTR) หรือโหมดป้อนกลับรหัส (CFB)

จุดอ่อนหรือข้อเสียของรหัสนี้คืออะไร? เห็นได้ชัดว่า การใช้ SHA3-512 เพื่อทำให้การรับรองความถูกต้องหมายความว่าไม่สามารถเข้ารหัสได้อย่างมีประสิทธิภาพในหนึ่งรอบ และการถอดรหัสต้องมีการคำนวณไดเจสต์ SHA3-512 เพื่อรับรองความถูกต้อง

ที่จริงแล้ว หากคุณดูที่โหมด "ดูเพล็กซ์" (ซึ่งกระดาษ CSF ครอบคลุมด้วย) จริง ๆ แล้ว AEAD นั้นติดตั้งได้ง่ายกว่าในครั้งเดียว

มันให้ข้อได้เปรียบที่เป็นไปได้เหนือ AES256 หรือไม่?

ฉันได้กล่าวถึง 2 (ระยะเวลาระยะเวลา 1 รอบ) นอกจากนี้ยังมีความสามารถในการปรับขนาดพารามิเตอร์ได้ดีกว่า block-cipher ที่มีความกว้างคงที่ ดังนั้นฉันจึงนับว่านี่เป็นอันดับที่ 3

AES256 มีความต้านทาน 128 บิตต่อการโจมตีควอนตัมตามทฤษฎี รหัสนี้จะรักษา นาที (key_length/2, 256) บิตของความต้านทานต่อการโจมตีควอนตัมทางทฤษฎีที่ SHAKE256_XOF มี

อาจเป็นไปได้ แต่ฉันไม่เก่งคณิตศาสตร์

forest avatar
vn flag
XOF มีความหลากหลายอย่างน่าอัศจรรย์จริงๆ

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา