Last update: Thu Sep 10 13:39:48 2009
Release date (Thu Sep 10 13:39:48 2009)
If possible use the RSP Encrypt DLL , it is a better and newer implementation of this ocx ( recommended )
What is new in the version 3.4.3 (Fri Oct 09 12:19:33 2009) Added full support to long files ( above 2gb )
What is new in the version 3.4.1 (Thu Sep 10 13:35:56 2009) Small update to reflect the changes
What is new in the version 3.4.0 (Fri Jun 06 09:32:00 2008) :Fixed incompatibility with Windows Vista , minor modifications
What is new in the version 3.3.0 (Mon Aug 08 14:55:15 2005) : Fixed incompatibility with Win XP SP2 , minor bugs fixed , the upgrade is recommended
What is new in the version 3.2.0 (06/Jan/2005 15:59) : Added a new mode of AES encryption called CTR mode , in this mode the original block cipher is converted to a stream cipher , then , no more padding required when the string or file is not multiple of 16 , and this new mode also will make the output data to be indistinguishable from random noise no matter what kind of input is sent to the encryption code , the speed execution is slightly slower than the normal AES mode , and this is the mode of choice for maximum security , notice that both old mode and new modes are available in the control , minor modifications also
What is new in the version 3.1.0 (05/Jan/2005 16:26) : Added full support to multiples instances of the control in the same form using normal method or CreateObject , modified the termination of the control to avoid possible VB crashes , enhanced the speed execution of the encryption/decryption , now the control is 10 percent faster when encrypting RC4 files and 40 percent faster when encrypting AES 256 files , minor bugs fixed
What is new in the version 3.0.0 (26/Aug/2004 10:55) : Added CRC data detection on the encrypted file , now the control can check whether the correct password was entered , added new functions to avoid the break of compatibility with older versions , then the control can work in old mode or in the new mode in the same environment , the new functions are NewEncryptFileAES , NewDecryptFileAES , NewEncryptFileRC4 and NewDecryptFileRC4 , added detection of valid encrypted files , now the control will detect whether a file passed to the encryption functions are encrypted or not before unencrypting , notice that it only applies to the new functions added , when using the old functions the new mode is just deactivated , minor bugs fixed
What is new in the version 2.5.0 (01/Mar/2004 18:38) : Added string encryption code , added Unicode support to encryption of strings , fixed a bug that may occur when very large passwords are passed to the control , in this case the control can just crash due to memory corruption on the stack , added string size verification code to both files and strings encryption , minor bugs fixed
What is new in the version 2.0.0 (16/Feb/2004 20:52) : Added cpu detection code , added pause , resume and cancel functions , extended the execution to make the encryption and decryption functions to return immediately while the process is executing in the background , added progress event function , added wait mode execution to make the functions to return only after the end of the execution , added process priority selection , minor bugs fixed
This control can encrypt files or strings using AES 256 , AES 256 CTR or RC4 encryption methods
The code is optimized to very fast code execution on Win32 when new AMD or Intel processors are available
Ability to pause , resume and cancel the encryption of files
Progress event to report the progress of the execution
In the case of encryption of strings , the string will be converted to hexadecimal notation since the encrypted string is binary information that can have characters that cannot be shown in textboxes
This conversion will cause the size of the string to double , and when Unicode is used , the size will be 4 times the size of the original string
This occur because in Unicode support method each character is stored as a 16 bits value , and with the hexadecimal conversion the size of the original string will be four times the size of the original string
Unicode support is important to make it possible to show any character set available today , including chinese and others characters sets that has simbols instead of ANSI character codes
Description of the encryption methods
The AES ( Advanced Encryption Standard ) is adopted by NIST
as an encryption standard to be used when very strong encryption is required
What is the AES 256
In cryptography, the Advanced Encryption Standard (AES), also known as Rijndael, is a block cipher adopted as an encryption standard by the US government, and is expected to be used worldwide and analysed extensively, as was the case with its predecessor, the Data Encryption Standard (DES).
It was adopted by National Institute of Standards and Technology (NIST) as US FIPS PUB 197 in November 2001 after a 5-year standardisation process (see Advanced Encryption Standard process for more details).
The cipher was developed by two Belgian cryptographers, Joan Daemen and Vincent Rijmen, and submitted to the AES selection process under the name "Rijndael", a portmanteau comprised of the names of the inventors.
Rijndael was a refinement of an earlier design by Daemen and Rijmen, Square;
Square was a development from Shark.
Unlike its predecessor DES, Rijndael is a substitution-permutation network, not a Feistel network.
AES is fast in both software and hardware, is relatively easy to implement, and requires little memory.
As a new encryption standard, it is currently being deployed on a large scale.
As of 2004, no successful attacks against AES have been recognised.
The National Security Agency (NSA) reviewed all the AES finalists, including Rijndael, and stated that all of them were secure enough for US Government non-classified data.
In June 2003, the US Government announced that AES may be used for classified information:
"The design and strength of all key lengths of the AES algorithm (i.e., 128, 192 and 256) are sufficient to protect classified information up to the SECRET level.
TOP SECRET information will require use of either the 192 or 256 key lengths.
The implementation of AES in products intended to protect national security systems and/or information must be reviewed and certified by NSA prior to their acquisition and use."
What is the RC4
In cryptography, RC4 (or ARCFOUR) is the most widely-used software stream cipher and is used in popular protocols such as Secure Sockets Layer (SSL) (to protect Internet traffic) and WEP (to secure wireless networks).
RC4 was designed by Ron Rivest of RSA Security in 1987; while it is officially termed "Rivest Cipher 4", the RC acronym is alternatively understood to stand for "Ron's Code"
RC4 was initially a trade secret, but in September 1994 a description of it was anonymously posted to the Cypherpunks mailing list.
It was soon posted on the sci.crypt newsgroup, and from there to many sites on the Internet.
Because the algorithm is known, it is no longer a trade secret.
RC4 is often referred to as "ARCFOUR", to avoid possible trademark problems.
It has become part of some commonly used encryption protocols and standards, including WEP and WPA for wireless cards and SSL.
RC4 generates a pseudorandom stream of bits (a "keystream") which, for encryption, is combined with the plaintext using XOR as with any Vernam cipher; decryption is performed the same way.
To generate the keystream, the cipher makes use of a secret internal state which consists of two parts: A permutation of all 256 possible bytes.
Two 8-bit index-pointers .
The permutation is initialised with a variable length key, typically between 40 and 256 bits, using the key-scheduling algorithm (KSA).
Once this has been completed, the stream of bits is generated using the pseudo-random generation algorithm (PRGA).
If security is the goal , then use AES
AES have several more levels of security than RC4
RC4 can be used "only" when speed is important and security isnot the major concern
AES 256 encryption modes of operation
Mode electronic codebook (ECB)
The simplest of the encryption modes is the electronic codebook (ECB) mode, in which the message is split into blocks ( 16 bytes ) and each is encrypted separately
The disadvantage of this method is that identical plaintext blocks are encrypted to identical ciphertext blocks; it does not hide data patterns.
And notice also that to avoid the padding of the files or strings that are not multiples of 16 bytes , the slice of the file or string that are different of a multiple of 16 is encrypted with RC4 , so , the destination file or string will always be the size of the original file or string with no padding bytes
The ECB mode is used in the following functions:
For security reasons and to avoid data paterns in the encrypted data use the CTR mode
Mode counter (CTR)
Counter mode turns a block cipher into a stream cipher.
It generates the next keystream block by encrypting successive values of a "counter".
The counter can be any simple function which produces a sequence which is guaranteed not to repeat for a long time, although an actual counter is the simplest and most popular.
CTR mode has very similar characteristics to OFB, but also allows a random access property for decryption
This is the recommended mode of execution of the AES encryption
Since it transform the original block cipher to a stream cipher , no padding bytes are required
This mode is implemented in the following functions:
This is the recommended mode to be used for maximum security
AES Encryption samples
Original binary file with a sequence of 0
Encrypted file with AES 256 ECB mode
Encrypted file with AES 256 CTR mode
As the samples show , when the CTR mode is selected the output is indistinguishable from random noise.
This avoid possible attacks
Documentation of the RSP Encrypt OCX 3.3.0 will be available soon
- Execute register_ocx.exe , if Vista then as admin
- Execute unregister_ocx.exe , if Vista then as admin
Operating System Compliance
Windows 95 , Windows 98 , Windows Millenium , Windows NT 4.0(sp6a) , Windows 2000 , Windows XP
Home Contact About Development C Programming
Processor Research Products License Mirrors