If you are going to do this sort of thing, there is a DICOM
standard for it, rather than making it up as you go along.
Specifically, see:
http://dicom.nema.org/medical/dicom/current/output/chtml/part03/sect_C.12.html#sect_C.12.1.1.4
This was demonstrated in an OFFIS project for RSNA, so is probably
implemented in dcmtk if you want to test against another
implementation.
The background is in Supp 55 Attribute Level Confidentiality, but
the standard has been updated since then with more attributes and
more algorithms.
ftp://medical.nema.org/medical/dicom/final/sup55_ft.pdf
The CMS stuff is shared with media encryption, by the way, and
if you need a Java implementation, there is one in BouncyCastle:
https://www.bouncycastle.org/
I mention media because of the CMS approach, but also because
if you are going to encrypt the entire data set to store and
forward (rather than just using transport layer security with
TLS), there is a DICOM standard for that too. See:
http://dicom.nema.org/medical/dicom/current/output/chtml/part15/chapter_D.html
David