⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme.phei.txt

📁 密码编码学——加密方法的C与C++实现
💻 TXT
字号:
Welcome, 

this CD-ROM is a supplement to the book 

                     "Cryptography in C and C++" 

by Michael Welschenbach, published in 2003 by PHEI, P.R.China.

The CD-ROM provides functions and programs which are described in the book. 
The software has been developed and tested for platforms that provide C/C++ 
development environments compliant to the ANSI/ISO C- and C++-standards. 

The batch- and makefiles which are listed below are designed for the gcc 
C/C++ compiler of the GNU project, which is part of virtually all Linux 
distributions and there are ports for many other operating systems and 
hardware platforms available. The makefiles can easily be adapted to other 
development environments. 

The testprograms for the C++-class LINT are suggested as examples for the tests 
that the readers are encouraged to develop as an exercise in chapter 17 of the 
book. 

For installing the software it is recommended to copy the directories and 
subdirectories contained on the CD-ROM onto a harddisk. 

Some of the text files on this CD-ROM contain UNIX-style end-of-lines (LF). 
This may cause problems with some operating systems or text editors. A way 
around those problems may be to compress files with zip und to decompress 
the compressed files with unzip -a, which will automatically convert the 
end-of-lines to local conventions. 

The CD-ROM contains the following directories and files: 

Directory   files        Description 
---------   -----        ----------- 
flint/src: 
            flint.c      C functions for arithmetic and number theory 
            flint.h      Header file for flint.c 
            kmul.c       Karatsuba multiplication 
            kmul.h       Header file for kmul.c 
            _assert.h    Header file with dummy assertion macros 
            ripemd.c     Implementation of the hash function RIPEMD160 
            ripemd.h     Header file for ripemd.c 
            sha1.c       Implementation of the hash function SHA-1
            sha1.h       Header file for sha1.c 
            aes.c        Implementation of the Advanced Encryption Standard
            aes.h        Header file for the Advanced Encryption Standard
            flintpp.cpp  Implementation of the arithmetic class LINT 
            flintpp.h    Header file for flintpp.cpp 

flint/src/asm: 
            mult.asm     Multiplication function mult() in 80x86 assembler 
            umul.asm     Multiplication function umul() in 80x86 assembler 
            sqr.asm      Squaring function sqr() in 80x86 assembler 
            div.asm      Division function div_l() in 80x86 assembler 

flint/src/asm/cygwin:    Assembler functions coded for Cygwin-environment
            mult.s       Multiplication function mult() in 80x86 assembler 
            umul.s       Multiplication function umul() in 80x86 assembler 
            sqr.s        Squaring function sqr() in 80x86 assembler        
            div.s        Division function div_l() in 80x86 assembler      

flint/src/asm/linux:     Assembler functions coded for Linux (w/o underscores)
            mult.s       Multiplication function mult() in 80x86 assembler 
            umul.s       Multiplication function umul() in 80x86 assembler 
            sqr.s        Squaring function sqr() in 80x86 assembler        
            div.s        Division function div_l() in 80x86 assembler      

flint/lib: 
            flinta.lib   Library providing the objectcode of the assembler 
                         functions in OMF format for usage under DOS, 
                         Windows, OS/2 
            flintavc.lib Library providing the objectcode of the assembler 
                         functions in COFF format for usage with lcc-win32, 
                         Microsoft Visual C/C++ and other environments 
            flinta.a     Archive providing the objectcode of the assembler 
                         functions for usage with emx/gcc under OS/2 and 
                         Windows (9x, NT) 
            libflint.a   Archive providing the objectcode of the assembler 
                         functions for usage with gcc under Linux (on Pentium 
                         or compatible hardware platforms) 

flint/lib/dll: 
            flint.dll    Dynamic Link Library (DLL) providing the C functions 
                         and data of the FLINT/C package (developed with 
                         Visual C/C++ V. 6.0) 
            flint.def    FLINT/C symbols that are exported by flint.dll 
            flint.lib    COFF import library for flint.dll 
            makedll.bat  Batch file for the generation of flint.dll and 
                         flint.lib under Visual C/C++ 
            dllmain.c    Function for initialization of flint.dll 

flint/rsa: 
            rsakey.cpp   Implementation of the RSA classes rsakey and rsapub 
            rsakey.h     Header file for rsakey.cpp 
            rsademo.cpp  Demoapplication for RSA classes 
            makefile     Makefile for rsademo using gcc, make or nmake 
            makefile.asm Makefile for rsademo with support of assembler 
                         functions using gcc, make or nmake 

flint/test: 
            testaes.c    Test of the Advanced Encryption Standard in aes.c 
            testrand.c   Test of the pseudo random number generator usrand64_l 
            testbbs.c    Test of the pseudo random number generator usrandBBS_l 
            testbas.c    Tests of the functions for conversion and I/O 
            testreg.c    Tests of register management 
            testadd.c    Tests of addition 
            testsub.c    Tests of subtraction 
            testmul.c    Tests of multiplication 
            testkar.c    Tests of Karatsuba multiplication 
            testsqr.c    Tests of squaring 
            testdiv.c    Tests of division 
            testmadd.c   Tests of modular addition 
            testmsub.c   Tests of modular subtraction 
            testmmul.c   Tests of modular multiplication 
            testmsqr.c   Tests of modular squaring 
            testgcd.c    Tests of gcd functions 
            testmexp.c   Tests of modular exponentiation 
            testset.c    Tests of functions for bit manipulation 
            testshft.c   Tests of shift operations 
            testiroo.c   Test calculation of integer square roots 
            testbool.c   Tests of boolean functions and_l, or_l, xor_l 
            testripe.c   Tests of hash function RIPEMD160 
            testsha1.c   Tests of hash function SHA-1     
            testcnst.cpp Tests of constructors of class LINT 
            testari.cpp  Tests of LINT arithmetic 
            testxgcd.cpp Tests of Extended Euclidean Algorithm 
            testchin.cpp Tests of LINT Function chinrest 
            testroot.cpp Tests of LINT Functions isprime, jacobi and root 
            testprrt.cpp Tests of LINT Function primroot 

            makefile     Makefile for running the testsuite with make 
                         under Unix and Linux 
            makefile.asm Makefile for running the testsuite with make 
                         under Unix/Linux with support of assembler functions 
            testvc.bat   Batch file for running the testsuite with Microsoft
                         Visual C/C++ under Windows
            testvca.bat  Batch file for running the testsuite with Microsoft
                         Visual C/C++ under Windows with assembler support
            testdll.bat  Batch file for running the testsuite with Microsoft
                         Visual C/C++ under Windows, testing the Flint DLL
            testgcc.bat  Batch file for running the testsuite with GNU compiler 
                         gcc under DOS or in a DOS box under Windows 
            testgcca.bat Batch file for running the testsuite with GNU compiler 
                         gcc under DOS or Windows with support of assembler
                         functions 
            testgcc.cmd  Batch file for running the testsuite with GNU compiler 
                         gcc under under OS/2 
            testgcca.cmd Batch file for running the testsuite with GNU compiler 

flint/test/testvals: 
            test1.bin, 
            test2.bin,
            test3.bin    Binaries, input files for testripe.c
            xxxxxnn.txt  Testvectors for testaes.c
                         gcc under OS/2 with support of assembler functions 

------------------------------------------------------------------------------- 

Many thanks to Vincent Rijmen, Antoon Bosselaers, Paulo Barreto and Brian 
Gladman for their permission to include their implementations of rijndael 
on this CD-ROM. The code is found in the following directories: 

rijndael/c_ref:          Reference C-implementation of Rijndael by 
                         Vincent Rijmen and Paulo Barreto 

rijndael/c_opt:          Optimized C-implementation of Rijndael by 
                         Vincent Rijmen, Antoon Bosselaers and Paulo Barreto 

rijndael/c_cpp:          Optimized C++-implemenation of Rijndael by 
                         Brian Gladman 

=============================================================================== 

For the programs in the directory flint and subdirectories the following legal 
statements apply: 

Copyright (C) 1998-2003 by Michael Welschenbach 
Copyright (C) 1998-2003 by Springer-Verlag, Berlin, Heidelberg 
Copyright (C) 2001-2003 by Apress L.P., Berkeley, CA 
Copyright (C) 2002-2003 by Mikom, Poland
Copyright (C) 2002-2003 by PHEI, China 
Copyright (C) 2002-2003 by InfoBook, Korea 
Copyright (C) 2002-2003 by Triumph Publishing, Russia 

The software may be used for noncommercial purposes and may be altered, as long 
as the following conditions are accepted without any qualification: 

(1) All changes to the sources must be identified in such a way that the 
    changed software cannot be misinterpreted as the original software. 

(2) The statements of copyright may not removed or altered. 

(3) The DISCLAIMER below is accepted. 

------------------------------------------------------------------------------- 

For statements of copyright and terms of usage for the programs in the 
directory rijndael and subdirectories please refer to the program code. In 
addition the following DISCLAIMER applies: 

------------------------------------------------------------------------------- 

DISCLAIMER: 

Within the DISCLAIMER, the term "copyright holders" refers to the authors and 
the publisher of the software contained on this CD-ROM. 

There is no warranty for the software contained on this CD-ROM, to the extent 
permitted by applicable law. The copyright holders provide the software `as is' 
without warranty of any kind, either expressed or implied, including, but not 
limited to, the implied warranty of fitness for a particular purpose.  The 
entire risk as to the quality and performance of the program is with you. 

In no event unless required by applicable law will the copyright holders, or 
any of the individual authors named in the source files, be liable to you for 
damages, including any general, special, incidental or consequential damages 
arising out of any use of the software or out of inability to use the software 
(including but not limited to any financial losses, loss of data or 
data being rendered inaccurate or losses sustained by you or by third parties 
as a result of a failure of the software to operate with any other programs), 
even if such holder or other party has been advised of the possibility of 
such damages. 

Before importing, exporting or using the cryptographic functions that are 
contained on this CD-ROM to, from or in any country, you are strictly advised 
to observe and to comply to any existing laws or regulations of such country 
referring to the import, export or usage of cryptographic software. If in doubt 
please apply for the consultancy of a legal expert in this field. 

Neither the authors of the software nor the publisher can be held responsible 
for any violations or the consequences of any voilations of such laws or 
regulations by you or by a third party within any country. 






⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -