I'm a little late chiming in and I must confess I don't have as much experience 
with crypto on z/VSE.  z/VSE may have changed, but in the past it has not 
provided a facility like ICSF which provides the interface to the CEX cards.

Going back to the original post, I suspect that the customer is using locally 
written assembler code to invoke the crypto instructions on the CPACF to 
encrypt the data before writing it to disk.  

How does the customer expect to drive work to the CEX card?  Is there a product 
that they plan on using?

z/VSE can use Total Storage devices which can provide encryption, but the 
encryption is done on the device, not on the CPACF hardware.  In this case, the 
Crypto Express card can be used to protect (encrypt) the symmetric key, using 
public key APIs,  and then that symmetric key is used in the device to encrypt 
or decrypt the data depending on whether it's a write or read operation.

In addition, z/VSE supports the Encryption Facility for z/VSE (a z/VSE 
implementation of the Encryption Facility for z/OS).  It can also provide 
similar support, using a public key to wrap the symmetric key that is then used 
to protect the data within the file.  As with the TotalStorage hardware, the 
CEX can 
perform these public key operations, but the encryption of the data is done 
elsewhere (not on the card).

But to use the CEX card to actually encrypt/decrypt the data a rest, would a) 
probably not provide acceptable performance and b) require another product to 
invoke the APIs that would be executed on the cards.

So, why is the customer considering installing the CEX card?  Is it to provide 
more security for their data at rest?  If so, what product do they expect to 
use to perform the encryption.  Bottom line, the CPACF and CEX are compatible, 
and in fact you must have the CPACF enabled to use the CEX cards, but using
the cards requires software that will leverage the cards.

Or is it for SSL operations?  The card can provide a significant performance 
boost for SSL operations and the real benefit is for authenticating the network 
communication sessions.  In this case, these public key operations are done on 
the CEX card instead of using software routines (MVC, SLL, Multiple 
instructions, etc.).

Along those lines, I want to clarify Todd Arnold's comments:
"If you use ICSF as the interface, it automatically selects the most 
appropriate crypto to use - for example, if you are doing clear-key encryption, 
it will automatically use CPACF because it knows that will be faster than the 
CEX ..."

Actually, the specific API that you implement in your code, not ICSF, 
determines which device will perform the work.  For example, CSNBSAE is the 
Symmetric Algorithm Encipher API and is a secure key API.  When you invoke that 
API, ICSF will always route the work to a CEX card (and there better be a 
card available to service that request or the API will fail).  On the other 
hand, if you invoke CSNBSYE, the Symmetric Key Encipher API, then ICSF will use 
the assembler instructions on the CPACF to perform that operation.  So ICSF is 
not deciding where the operation is performed, your choice of APIs is.

I hope that helps.
Greg Boyd
Mainframe Crypto
www.mainframecrypto.com

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to