Hàm băm RIPEMD là gì? Tìm hiểu RACE Integrity Primitives Evaluation Message Digest

Hàm băm RIPEMD là gì? Tìm hiểu RACE Integrity Primitives Evaluation Message Digest

Hàm băm (Hash Function) là một hàm có vai trò to lớn trong việc đảm bảo An toàn cho Hệ thống (System Secure) vì nó chuyển đổi dữ liệu bình thường được cấp cho nó thành một giá trị bất thường (Irregular Value) có độ dài cố định. Chúng ta có thể tưởng tượng nó là một chiếc Bình lắc pha chế (Shaker) của các Bartender.

Khi chúng ta đưa dữ liệu vào hàm này, nó sẽ xuất ra một giá trị bất thường. Giá trị bất thường mà nó xuất ra được gọi là “Hash Value – Giá trị băm“. Giá trị băm (Hash Value) chỉ đơn giản là các số nhưng thường được viết dưới dạng Hệ thập lục phân (Hexadecimal). Máy tính quản lý các giá trị dưới dạng Binary. Giá trị băm cũng là một dữ liệu và thường được quản lý trong Binary.

Hàm băm RIPEMD là gì?

RIPEMD được viết tắt từ: RACE Integrity Primitives Evaluation Message Digest hay còn gọi là ‘Thông báo đánh giá tính toàn vẹn RACE‘. Hàm băm RIPEMD là một nhóm hàm băm (hash function) được phát triển bởi Hans Dobbertin, Antoon Bosselaers và Bart Preneel vào năm 1992. Ý tưởng phát triển của RIPEMD dựa trên MD4, bản thân nó là một hàm băm yếu. Nó được phát triển để hoạt động tốt với bộ vi xử lý 32-bit.

Các loại hàm băm RIPEMD là:

  • RIPEMD-128
  • RIPEMD-160
  • RIPEMD-256
  • RIPEMD-320

Cách làm việc của Hàm băm RIPEMD:

Nó là một khối con của thuật toán băm RIPEMD-160. Thông điệp (message) được xử lý bằng hàm nén (compression function) trong các khối 512 bit và được chuyển qua hai luồng (streams) của khối con (sub-block) này bằng cách sử dụng 5 phiên bản khác nhau, trong đó giá trị của hằng số ‘k’ cũng khác nhau.

  Chính phủ Ukraine nhận được hơn 10 triệu đô la tiền điện tử quyên góp

Các phiên bản khác nhau của hàm băm RIPEMD:

  • RIPEMD đầu tiên không được coi là một hàm băm tốt vì một số lỗi thiết kế dẫn đến một số vấn đề bảo mật lớn, một trong số đó là kích thước đầu ra 128 bit quá nhỏ và dễ bị hỏng. Trong phiên bản tiếp theo RIPEMD-128, lỗi thiết kế đã được loại bỏ nhưng đầu ra vẫn là 128 bit khiến nó kém an toàn hơn.
  • RIPEMD-160 là phiên bản tiếp theo tăng độ dài đầu ra lên 160 bit và tăng mức độ bảo mật của hàm băm. Hàm này được thiết kế để thay thế cho các hàm băm 128 bit MD4, MD5 và RIPEMD-128.
  • RIPEMD-256 và RIPEMD-320 là phần mở rộng của RIPEMD-128 cung cấp bảo mật tương tự như RIPEMD-160 và RIPEMD-128 được thiết kế cho ứng dụng thích giá trị băm lớn hơn là mức độ bảo mật cao hơn.

Ví dụ 1:

# Python program to demonstrate
# RIPEMD 
  
  
import hashlib
  
# Passing the required algorithm
# as string to the new constructor
x = hashlib.new('ripemd160')
  
# passing GeeksforGeeks 
# to x() which uses 
# ripemd 160 algorithm for
# hashing
x.update(b"GeeksForGeeks")
  
# printing the equivalent hexadecimal
# value. 
print("The hexadecimal equivalent of hash is :") 
print(x.hexdigest())

Đầu ra:

The hexadecimal equivalent of hash is :
1b4470fb3147534653ddca6d7a1b2109b5449089

Trong ví dụ trên, hàm tạo new() lấy tên thuật toán là một chuỗi (string) và tạo một đối tượng (object) cho thuật toán đó. Sau đó, phương thức update() nhận một chuỗi nhị phân (binary string) để nó có thể được hàm băm chấp nhận. Hàm băm x() mã hóa nó và sau đó sử dụng hexdigest(), chuỗi mã hóa tương đương hệ thập lục phân (hexadecimal) được in.

  Giám đốc điều hành Binance từ chối mua Chelsea

Ví dụ 2: Hãy xem nếu chúng ta muốn tìm biểu diễn byte của giá trị băm được mã hóa (encoded hash value).

# Python program to demonstrate
# RIPEMD 
  
  
import hashlib
  
# Passing the required algorithm
# as string to the new constructor
x = hashlib.new('ripemd160')
  
# passing GeeksforGeeks 
# to x() which uses 
# ripemd 160 algorithm for
# hashing
x.update(b"GeeksForGeeks")
  
# printing the equivalent hexadecimal
# value. 
print("The byte equivalent of hash is :") 
print(x.digest())

Đầu ra:

The byte equivalent of hash is :
b'\x1bDp\xfb1GSFS\xdd\xcamz\x1b!\t\xb5D\x90\x89'

Theo: geeksforgeeks

Khuyến cáo: Thông tin trên bài viết này chỉ mang tính tham khảo, không có bất kỳ lời khuyên nào về mua bán, đầu tư. Bạn hãy tự nghiên cứu trước khi thực hiện bất kỳ hình thức đầu tư nào.

Nội dung đề xuất