Score:0

การกำบังข้อมูลเชิงกำหนด

ธง jp

เรากำลังสร้างกรอบการปกปิดข้อมูลเป็นหลักเพื่อปกปิด PII สเกลของเราค่อนข้างใหญ่ และการมาสก์จะทำในเวลานำเข้า ดังนั้นเราจึงต้องการให้การมาสก์ทำได้อย่างมีประสิทธิภาพ ข้อจำกัดบางประการที่เรามีคือเราต้องการให้กำบังถูกกำหนดและย้อนกลับได้ ฉันได้ดูการเข้ารหัส AES เพื่อเข้ารหัส PII โดยเฉพาะอย่างยิ่ง AES SIV บน macbook ของฉัน ซึ่งใช้เวลาประมาณ ~2 มิลลิวินาที ซึ่งอาจไม่เหมาะสำหรับขนาดของเรา

จะดีมากหากได้รับการรับฟังจากชุมชนหากมีทางเลือกอื่นสำหรับ AES SIV ซึ่งเร็วกว่า (และกำหนดได้) หรือหากมีทางเลือกอื่นสำหรับการเข้ารหัส AES

นี่คือวิธีการเข้ารหัสของฉัน ฉันใช้ Cryptodome.Cipher AES


    def เข้ารหัส (คีย์: ไบต์, ข้อความ: str) -> str:
        โนนเซ่ = ไม่มี
        ตัวเลข = ไม่มี
        encoded_text = text.encode('utf-8')

        nonce = get_random_bytes (AES.block_size)
        การเข้ารหัส = AES.new (คีย์, AES.MODE_SIV, nonce=nonce)
        cipher_text แท็ก = cipher.encrypt_and_digest (เข้ารหัสข้อความ)

        ret_cipher_text = ไม่มีค่า + cipher_text
        ret_cipher_text = แท็ก + ret_cipher_text
        ส่งคืน b64encode(ret_cipher_text).decode()

ประสิทธิภาพของการเข้ารหัสนี้ ~2 มิลลิวินาทีสำหรับข้อความขนาดเล็ก

poncho avatar
my flag
2 msec ถึง AES เข้ารหัสข้อความขนาดเล็กปานกลางหรือไม่ แน่นอน CPUs บน macbooks นั้นไม่ได้แย่ขนาดนั้น - ฉันสงสัยว่าคุณกำลังใช้ตัวเข้ารหัส AES ที่ไม่ดี (ประสิทธิภาพต่ำ)...
Paul Uszak avatar
cn flag
วลี _"deterministic_" ปรากฏขึ้นสามครั้งที่นี่ ข้อกังวลเฉพาะของคุณคืออะไร?
jp flag
@poncho - ใช่ ข้อความขนาดเล็ก ฉันใช้ Cryptodome.Cipher AES มีทางเลือกอื่นที่เร็วกว่านี้ไหม? อาจเป็นมิจฉาชีพ?
jp flag
@PaulUszak - ฉันต้องการทราบว่าประสิทธิภาพการเข้ารหัส AES SIV นั้นต่ำกว่ามาตรฐานหรือไม่ และมีวิธีอื่นในการปกปิดข้อมูลหรือไม่ เช่น ข้อความธรรมดาเดียวกันถูกปิดบังเป็นข้อความเข้ารหัสเดียวกันและสามารถแปลงกลับเป็นข้อความธรรมดาได้ .
Paul Uszak avatar
cn flag
_"หรือหากมีทางเลือกอื่นนอกเหนือจากการเข้ารหัส AES"_ : คุณพบว่า (นอกเหนือจาก http://tls) ไม่มีการเข้ารหัสทางเลือกอื่นจากมุมมองด้านการตลาด AES หรือหน้าอก
Paul Uszak avatar
cn flag
คุณแน่ใจหรือไม่ว่าต้องการสิ่งนี้: _"ข้อความธรรมดาเดียวกันถูกปิดบังเป็นข้อความรหัสเดียวกันทุกประการ"_ ? สิ่งนี้บอกทุกอย่างว่าไม่มีอะไรเปลี่ยนแปลงและถือว่าฟอร์มไม่ดี
Score:2
ธง us

ปัญหาที่นี่เป็นไปได้มากที่สุด หลาม และไม่ เออีเอส.

ด้วยการรองรับฮาร์ดแวร์ (AES-NI) โดยทั่วไป AES สามารถคำนวณได้ที่ ~1 CPU รอบ/ไบต์ หากคุณมีงาน AES อิสระจำนวนมากเพียงพอ (เช่น มีโหมดตัวนับ) และประมาณ 2-5 CPU รอบ/ไบต์ หากไม่มี (เช่น ด้วยโหมด CBC)

AES-SIV ตอนนี้ทำงานได้อย่างมีประสิทธิภาพโดยการผูกมัดการทำงานแบบ CBC โดยใช้เอาต์พุตเป็นตัวนับเริ่มต้นไปยังโหมดตัวนับ ดังนั้น ประสิทธิภาพที่คาดไว้คือประมาณ 3-6 รอบต่อไบต์สำหรับการใช้งานที่เหมาะสมที่สุด

สองมิลลิวินาทีบน CPU 1GHz (นาฬิกาของคุณอาจสูงกว่า) คือประมาณ 2 ล้านรอบของ CPU แม้จะสมมติว่ามีการใช้งานที่ค่อนข้างแย่กับ CPU รุ่นเก่าที่มี AES-NI การใช้งานที่ "ไม่ดี" ก็จะอยู่ที่ประมาณ 20-30 รอบ / ไบต์ แต่ไม่มีที่ไหนเลยที่ใกล้เคียงกับ 2 ล้าน.

ดังนั้นปัญหาจึงมักเกี่ยวข้องกับล่ามที่ต้องทำมากกว่าการตีความที่รวบรวม / ปรับให้เหมาะสม

โพสต์คำตอบ

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