RSP Software - 15/12/2003 22:24

RSP Checksum OCX 1.0.0

ActiveX OCX to compute very fast the checksum of 
strings or files using Adler32 , CRC32 , MD5 , SHA-1 
and SHA-256


Features

- Ability to generate the checksum using 
Adler32, CRC32 , MD5 , SHA-1 and SHA-256

- The process occurs in an in-process code 
loaded in the same address space of the 
application using the control

- The speed execution is lightning fast

- The code is optimized for new AMD and 
Intel processors ,  check the speed execution 
against other implementations of these algorithms

Description

SHA-1 Description

Secure Hash Standard.

This Standard specifies a secure hash algorithm, SHA-1, for 
computing a condensed representation of a message or a data file. 
When a message of any length < 2^64 bits is input, the SHA-1 
produces a 160-bit output called a message digest.

The SHA-1 is called secure because it is computationally 
infeasible to find a message which corresponds to a given 
message digest, or to find two different messages which 
produce the same message digest.
Any change to a message in transit will, with very high 
probability, result in a different message digest, and 
the signature will fail to verify.
SHA-1 is a technical revision of SHA (FIPS 180).

The SHA-1 is based on principles similar to those used 
by Professor Ronald L. Rivest of MIT when designing the 
MD4 message digest algorithm, and is closely modelled 
after that algorithm.


The MD5 Message-Digest Algorithm

 The algorithm takes as input a message of arbitrary 
 length and produces as output a 128-bit "fingerprint" 
 or "message digest" of the input.
 It is conjectured that it is computationally infeasible 
 to produce two messages having the same message 
 digest, or to produce any message having a given 
 prespecified target message digest.
 The MD5 algorithm is intended for digital signature 
 applications, where a large file must be "compressed" 
 in a secure manner before being encrypted with a 
 private (secret) key under a public-key cryptosystem 
 such as RSA.
 The MD5 algorithm is designed to be quite fast on 
 32-bit machines.
 In addition, the MD5 algorithm does not require any 
 large substitution tables; the algorithm can be coded 
 quite compactly.
 The MD5 algorithm is an extension of the MD4 
 message-digest algorithm .
 MD5 is slightly slower than MD4, but is more 
 "conservative" in design.
 MD5 was designed because it was felt that MD4 was 
 perhaps being adopted for use more quickly than 
 justified by the existing critical review; because 
 MD4 was designed to be exceptionally fast, it is 
 "at the edge" in terms of risking successful 
 cryptanalytic attack.
 MD5 backs off a bit, giving up a little in speed 
 for a much greater likelihood of ultimate security.
 It incorporates some suggestions made by various 
 reviewers, and contains additional optimizations.
 The MD5 algorithm is being placed in the public 
 domain for review and possible adoption as a standard.

 
Description of SHA-256
 
 The SHA-256 compression function operates on a 
 512-bit message block and a 256-
bit intermediate hash value.
It is essentially a 256-bit block cipher algorithm 
which encrypts the intermediate hash value using 
the message block as key.


CRC32 Description

Generate a table for a byte-wise 32-bit CRC 
calculation on the polynomial:
  x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x+1.

  Polynomials over GF(2) are represented in binary, 
  one bit per coefficient,
  with the lowest powers in the most significant bit. 
  Then adding polynomials is just exclusive-or, and 
  multiplying a polynomial by x is a right shift by 
  one. 
  If we call the above polynomial p, and represent a 
  byte as the polynomial q, also with the lowest power 
  in the most significant bit (so the byte 0xb1 is the 
  polynomial x^7+x^3+x+1), then the CRC is (q*x^32) 
  mod p, where a mod b means the remainder after 
  dividing a by b.

  This calculation is done using the shift-register 
  method of multiplying and taking the remainder.  
  The register is initialized to zero, and for each 
  incoming bit, x^32 is added mod p to the register 
  if the bit is a one (where x^32 mod p is p+x^32 = 
  x^26+...+1), and the register is multiplied mod p 
  by x (which is shifting right by one and adding 
  x^32 mod p if the bit shifted out is a one). 
  We start with the highest power (least significant 
  bit) of q and repeat for all eight bits of q.

  The table is simply the CRC of all possible eight 
  bit values. 
  This is all the information needed to generate CRC's 
  on data a byte at a time for all
  combinations of CRC register values and incoming 
  bytes.
 
  (This description come from the sources of Zlib 
  compression )


Adler32 Description

Adler32 is a very fast checksum based on the sum of 
the high word with the low word of a dword value in 
a sequence of input bytes
The dword is sliced in two words and the sum is 
calculated and mod against 65521 , the result value 
is added to a dword value that is the return value of 
the computation
This is the fastest checksum available to win32 , and 
provide the same security of the CRC32

Documentation

Documentation is available online in the homepage

Install

- To install the control , open the package , decompress "OCX install.zip"
and execute setup.exe , it will initialize the installation execution
of the control
- To use the sample , decompress the "sample project.zip" to an empty folder
and load the project in your VB
- To uninstall the control , search for the package in the add/remove applications
in the controle panel , and select remove , it will remove the control
from the system

Homepage
http://rspsoftware.clic3.net
http://rspsoftware.tripod.com
http://www.geocities.com/rspsoftware1/

Homepage of the control
http://rspsoftware.clic3.net/rspchecksum.htm
http://rspsoftware.tripod.com/rspchecksum.htm
http://www.geocities.com/rspsoftware1/rspchecksum.htm

Email 
info@rspsoftware.clic3.net
rspsoftware1@yahoo.com
maquisistem@wln.com.br

Phone
#55 46 2323994

Thanks for using our software

RSP Software 1996-2003