Một phương pháp phổ biến để thiết kế giao thức mật mã gồm hai bước sau đây.
Một đầu thiết kế một hệ thống lý tưởng trong đó tất cả các bên (bao gồm cả các đối thủ) có quyền truy cập oracle
đến một chức năng thực sự ngẫu nhiên, và chứng minh sự an toàn của hệ thống lý tưởng này. Tiếp theo, một thay thế
oracle ngẫu nhiên bởi một "hàm băm mật mã tốt" (như MD5 hoặc SHA), cung cấp tất cả
các bên (bao gồm cả kẻ thù) với một mô tả ngắn gọn của chức năng này. Vì vậy, một trong những có được
một thực hiện của hệ thống lý tưởng trong một "thế giới thực", nơi sấm ngẫu nhiên không tồn tại. Điều này
phương pháp, công thức một cách rõ ràng bởi Bellare và Rogaway [5] và sau đây gọi là các
phương pháp oracle ngẫu nhiên, đã được sử dụng trong nhiều công trình
đang được dịch, vui lòng đợi..