You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I got performance issue with DICOM objects anonymization. Setup should process relatively large load about thousand studies per hour. DICOM values encryption used and CTP running on Linux computer. Processing time down to minutes per study after some small amount of studies processed with good performance. Issue is Linux specific and can't be reproduced on Windows computer.
I found the issue reason after application profiling. Encryption calls getCipher method from org.rsna.util.CipherUtil for each value need to be encrypted and getCipher method obtains SecureRandom
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN"); byte[] seed = random.generateSeed(8); random.setSeed(seed);
Default SecureRandom implementation on Linux uses /dev/random and may block program until enough entropy will be collected in /dev/random to generate next strong random value. This process may get tens of seconds. Workaround is switch implementation to use less secure but faster /dev/urandom by java properties.
However SecureRandom generation may be removed from getCipher method because
SecureRandom not required for Blowfish cipher and third parameter in cipher.init(mode, skeySpec, random);
call ignored.
I did this fix locally and it working well. I can submit it if you would like
The text was updated successfully, but these errors were encountered:
I got performance issue with DICOM objects anonymization. Setup should process relatively large load about thousand studies per hour. DICOM values encryption used and CTP running on Linux computer. Processing time down to minutes per study after some small amount of studies processed with good performance. Issue is Linux specific and can't be reproduced on Windows computer.
I found the issue reason after application profiling. Encryption calls getCipher method from org.rsna.util.CipherUtil for each value need to be encrypted and getCipher method obtains SecureRandom
SecureRandom random = SecureRandom.getInstance("SHA1PRNG", "SUN");
byte[] seed = random.generateSeed(8);
random.setSeed(seed);
Default SecureRandom implementation on Linux uses /dev/random and may block program until enough entropy will be collected in /dev/random to generate next strong random value. This process may get tens of seconds. Workaround is switch implementation to use less secure but faster /dev/urandom by java properties.
However SecureRandom generation may be removed from getCipher method because
SecureRandom not required for Blowfish cipher and third parameter in
cipher.init(mode, skeySpec, random);
call ignored.
I did this fix locally and it working well. I can submit it if you would like
The text was updated successfully, but these errors were encountered: