1. Trang chủ
  2. » Công Nghệ Thông Tin

Cracker Handbook 1.0 part 395 pdf

6 60 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 6
Dung lượng 130,47 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Nghề này chỉ có làm một việc là nhận 1 message text như thư từ chẳng hạn, sau đó chuyển thông tin text đó thành 1 chuổi mật mã 0,1 theo một quy luật gọi là khóa “Key” và rồi “gỏ” tín hiệ

Trang 1

for (int bx=0; bx<256; bx++){

int eax=0;

eax=eax&0xFFFFFF00+bx&0xFF; // the 'mov al,bl' instruction for (int cx=0; cx<8; cx++){

if (eax&&0x1) {

eax>>=1;

eax^=poly;

}

else eax>>=1;

}

crctable[bx]=eax;

}

The implementation for computing CRC-32 using the table:

computeLoop:

xor ebx, ebx

xor al, [si]

mov bl, al

shr eax, 8

xor eax, dword ptr[4*ebx+crctable]

inc si

loop computeLoop

xor eax, 0FFFFFFFFh

Notes: - ds:si points to the buffer where the bytes to process are

- cx contains the number of bytes to process

- eax contains current CRC

- crctable is the table computed with the code above

- the initial value of the CRC is in the case of CRC-32: FFFFFFFF

- after complete calculation the CRC is XORred with: FFFFFFFF which is the same as NOTting

In Java or C it is like this:

for (int cx=0; cx>=8;

eax^=crcTable[ebx];

}

eax^=0xFFFFFFFF;

Trang 2

Cuối cùng bây giờ chúng ta cũng đã đi đến phần cuối của phần một : The CRC tutorial.Nếu bạn muốn tìm hiểu sâu hơn nữa về CRC tôi khuyên bạn nên tìm đọc thêm các tài liệu mà tác giả đã khuyến cáo sau đây :

Quote:

References

> A painless guide to CRC error detection algorithm

ftp://ftp.adelaide.edu.au/pub/rocksoft/crc_v3.txt

(I bet this 'painless guide' is more painfull then my 'short' one ;)

> I also used a random source of a CRC-32 algorithm to understand the algorithm better

> Link to crc calculation progs hmmm search for 'CRC.ZIP' or 'CRC.EXE' or something

alike at ftpsearch (http://ftpsearch.lycos.com?form=advanced)

Trong phần sau chúng ta sẽ đến phần 2 không kém phần hấp dẫn : Reversing CRC! Ok Hẹn trong tut sau Thanx ( Sorry nếu như có chỗ tôi dịch chưa sát nghĩa lắm)

Kienmanowar(REA)

Encrypting data with the Blowfish algorithm

Ặc ặc, keke

(Đó là những từ cảm thán mà tui học được trên NET Tui yêu NET và con người ảo của NET ở chổ này hihi )

Gác kiếm đã lâu đang ngâm trầm cái khác, híhí , bài này cũng đã viết lâu rồi (từ lúc mới wen NINI trên NET có send cho ẻm đọan vào đề :) ) Hôm nay lục ra ,thấy cũng giống như một bài luận nên post cho các bạn xem chơi Đọan analysis thuật tóan và cracking cắt bỏ Mong các bạn thông cảm vì em đã lỡ dại gác rồi

VÀO ĐỀ:

Lúc bé, tui thường ở nhà với bà nội , vì mẹ tôi phải đi dạy học xa Và tui là một trong những đứa cháu nội được yêu thương nhất Bà nội tui lúc nào cũng muốn những điều tốt lành cho tôi Bà thường mong muốn: Nếu lớn lên tôi sẽ được làm nghề “gỏ dây thép”, vì nghề này chỉ ngồi ở trong mát lại lương cao.Và ngày hôm nay khi nghiên cứu về mã hóa bổng tôi rất nhớ đến bà TUT này ngòai việc chia sẽ cho các bạn, tui cũng muốn gởi tặng linh hồn Nội tôi Rất rất nhớ bà !!!.huhu

Thưa các bạn, thật ra viết tut ko cần dài dòng như benina hay làm Nhưng vì đối

Trang 3

tượng đọc tut mà benina muốn share là các newbie như benina vậy Thật là vất vả cho newbie khi trên các diễn đàn cracker tiếng Việt chưa nhiều tài liệu hướng dẫn

cụ thể Và thường , các newbie ko biết bắt đầu từ đâu Vì vậy bắt buộc benina biết

gì thì sẽ share ngay cho các bạn Thật là vui vẽ khi chúng ta cùng tiến bộ

Như trên tui có nói, bà nội tui rất thích nghề “gỏ dây thép” Vì những năm 60, kỹ thuật còn lạc hậu so với bây giờ, nghề “gỏ dây thép” rất sang trọng, là một nghề

“ngồi mát ăn bát vàng” Nghề này chỉ có làm một việc là nhận 1 message text (như thư từ chẳng hạn), sau đó chuyển thông tin text đó thành 1 chuổi mật mã 0,1 theo một quy luật gọi là khóa “Key” và rồi “gỏ” tín hiệu 0,1 đó bằng 1 công cụ đặc biệt

để chuyển đi bằng sóng điện từ (nên được gọi là gỏ dây thép) Người nhận tín hiệu bên kia ghi lại chuổi mã hóa 0,1 và dựa vào khóa “key” qui định mà chuyển ra tín hiệu text Đấy là qui trình chuyển 1 tín hiệu mã hóa Ví dụ này để các bạn dể hình dung ra cách mã hóa tin hiệu text như thế nào và nó cũng là một ví dụ thật “thô sơ” cho thuật tóan mã hóa Blowfish

GIỚI THIỆU VÀ THUẬT NGỮ

Trong chu trình mã hóa, plaintext là tín hiệu mà bạn chuyển đi Tín hiệu này có thể

là một bản báo cáo kiểm tra sức khỏe, một bức thư tình… Hay một cái gì đó mà

nó có thể được diễn tả ra thành một luồng bits Quá trình mã hóa là biến tín hiệu plaintext thành ciphertext (văn bản đã mã hóa), và quá trình giải mã thì ngược lại chuyển ciphertext thành plaintext

Thông thường người ta hay nói rằng, thuật tóan mã hóa có 2 lọai , symmetric (đối xứng) và public (công khai) Thuật tóan đối xứng như Blowfish chẳng hạn , dùng khóa bí mật giống nhau (same secret key) để mã hóa và giải mã Bạn phải giấu key một cách bí mật chỉ cho người nhận và gởi tín hiệu biết mà thôi Ví dụ như chúng

ta thường sử dụng một password trong IT,thì chỉ có người nhận và người gởi biết

mà thôi

Thuật tóan mã hóa khóa công khai (public) là dùng 2 key, một cho mã hóa, khóa kia cho giải mã Khóa được dùng cho mã hóa gọi là “public key” (khóa công khai) không cần giữ bí mật Người gởi tín hiệu dùng khóa này để gởi tín hiệu của họ và người nhận tín hiệu dùng khóa giải mã bí mật hay còn gọi là “private key” (khóa riêng) để đọc tín hiệu nhận được Khóa public key nó “locks” tín hiệu, còn khóa private key thì “unclocks” tín hiệu: một tín hiệu được mã hóa bằng public key, thì

ko ai ngọai trừ người giữ khóa private key có thể giải mã được tín hiệu RSA là một thuật tóan mã hóa public key thông dụng

Trang 4

Ở đây tui xin lấy một ví dụ để mô tả kiểu mã hóa key public và symmetric như sau (ko biết đúng ko nhe nhưng dễ hình dung,hihi) Nếu các bạn nào có đi du lịch ở khách sạn, hay gia đình khá giả chắc các bạn sẽ biết và đã từng xem truyền hình cáp Thực ra nó cũng giống như lọai truyền hình bình thường, không phải nối cáp

từ đài phát hình đến truyền hình của ta như là cái tên của nó dễ làm ta nhằm lẩn

Nó chỉ khác ở chổ, truyền hình bình thường, các bạn cứ tường tượng tín hiệu của

nó là lọai tín hiệu được mã hóa đối xứng, tức là tín hiệu hình ảnh được mã hóa bằng một chuổi tín hiệu được truyền qua sóng điện từ đến truyền hình của ta Lúc

đó truyền hình sẽ giải mã chuổi tín hiệu đó thành hình ảnh bằng 1 khóa giống nhau (same secret key) khi mã hóa và giải mã Đây là lọai mã hóa đối xứng symmetric Còn truyền hình cáp thì khác, đài phát hình sẽ mã hóa hình ảnh bằng một khóa

“public key” mà tất cả các ăn-ten truyền hình nào cũng nhận được Nhưng bạn phải

có một đầu giải mả tín hiệu (hình dáng giống như một cái đầu máy DVD), có

nhiệm vụ giải mã tín hiệu truyền hình đã mã hóa thành tín hiệu hình ảnh thông qua một khóa riêng “private key” kết hợp với khóa “public key” để giải mả Đó chính

là lọai thuật tóan mã hóa công khai

Vậy muốn giải mã một tín hiệu mã hóa bằng thuật tóan symmetric ta phải biết khóa “same secret key” Và muốn giải mã một tín hiệu mã hóa bằng thuật tóan public key chúng ta bắt buộc phải biết khóa “private key”

Ngòai ví dụ trên, các thuật tóan mã hóa còn được sử dụng rất nhiều trong thực tế như : tín hiệu điện thọai di động, hay một vi chương trình cập nhật nâng cấp mà chúng ta thường thấy ,nó sẽ gởi 1 tín hiệu về trang chủ của soft để báo có cần nâng cấp soft ko khi có 1 bản upgrade mới,hoặc được sử dụng trong Embedded systems, vân vân nhiều lắm

Phần lớn thuật tóan đáng tin cậy nhất đã được xuất bản free để cho phân tích

(analysis) thỏai mái, bởi vì khóa bảo mật của chúng được sử dụng trong thực tế kiểm chứng rất an tòan Một thuật tóan tốt nó giống như “ một cái hầm chứa tiền của nhà băng ”: Cái hầm này được làm rất hòan chỉnh , nó là lọai tốt nhất , bạn ko thể vào bên trong hầm mà ko có khóa Blowfish chính là thuật tóan lọai này, nó rất đáng tin cậy đã được public công khai

Đôi khi một thuật tóan mã hóa bị giới hạn ko free, có nghĩa là chính thuật tóan này được giử bí mật Chính vì vậy bạn sẽ ko bao giờ biết chắc rằng thuật tóan bị giới hạn đó thật sự yếu kém như thế nào, bởi vì người phát triển ko cho bất cứ ai một cơ hội để phân tích nó

Thuật tóan có thể được sử dụng bảo mật những lọai dữ liệu khác nhau Đôi khi bạn

Trang 5

muốn dữ liệu được “tòan vẹn” khi gởi đi, và tin chắc rằng người nhận sẽ nhận được những thông tin giống đúng như bạn đã gởi,lúc đó bạn cũng phải sử dụng đến thuật tóan mã hóa Thuật tóan mã hóa cũng cung cấp những “xác nhận”, cho biết chắc rằng một tín hiệu đến từ một người nào đó đã gởi nó đến đó là một vài mục đích sử dụng của thuật tóan mã hóa Một ứng dụng nữa của các thuật tóan mã hóa nói chung và Blowfish nói riêng là bảo mật phần mềm , ko cho các cracker chôm chỉa Nó sẽ mã hóa chuổi password (là plaintext) thành chuổi mã hóa ciphertext

Và sao đó sẽ xử lý chuổi ciphertext này

Trên đây là những giới thiệu sơ khởi về thuật tóan mã hóa và các ứng dụng của nó trong thực tế nhằm mục đích khởi xứng cho việc ứng dụng vào cracking mà chúng

ta quan tâm Tui xin tóm tắt lại các ý chính trên để chúng ta bắt đầu đi vào phần chính của vấn đề là phân tích thuật tóan Blowfish và ứng dụng trong cracking như thế nào:

-plaintext là tín hiệu mà bạn chuyển đi

-Ciphertext: tín hiệu mã hóa

-Thuật tóan mã hóa có 2 lọai , symmetric (đối xứng) và public (công khai)

- Thuật tóan đối xứng (symmetric) như Blowfish chẳng hạn , dùng khóa bí mật giống nhau (same secret key) để mã hóa và giải mã

- Thuật tóan mã hóa khóa công khai (public) là dùng 2 key, một cho mã hóa, khóa kia cho giải mã Khóa được dùng cho mã hóa gọi là “public key” (khóa công khai) không cần giữ bí mật.Khóa được dùng cho giải mã là “private key” (khóa riêng) RSA là một thuật tóan mã hóa public key thông dụng

- Vậy muốn giải mã một tín hiệu mã hóa bằng thuật tóan symmetric ta phải biết khóa “same secret key” Và muốn giải mã một tín hiệu mã hóa bằng thuật tóan public key chúng ta bắt buộc phải biết khóa “private key”

-Encryption algorithm thuật tóan mã hóa ở đây khác thuật tóan hash chuổi MD5 là: Thuật tóan mã hóa sẽ mã hóa ra 1 Ciphertext và có thể giải mã ngược lại 1

ciphertext thành 1 plaintext Còn thuật tóan MD5 thì sẽ hash chuổi thành 1 tín hiệu

MD nhưng ko thể biến đổi từ 1 chuổi MD về tín hiệu gốc

Đến đây thì hết phần giới thiệu, phần sao sẽ “chua” hơn phần này

Benina 2004

Patch: Add CRC32C chksums to crypto routines

Linux Code:

Trang 6

This patch against 2.6.1 adds CRC32C checksumming capabilities to the

Ngày đăng: 03/07/2014, 18:20

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN