function plotSmallSlices(allDiffs::smallDict,key::String,bytes::Integer)
# one round, as more would look like noise
sl=Figure(size=(1189,841))
slax=Axis3(sl[1,1],
title=(@sprintf "Wring differential cryptanalysis, %s, %d bytes" key bytes),
xlabel="Output bit",
ylabel="Input bit",
zlabel="Probability same")
xs=0:bytes*8-1
for inbit in 0:bytes*8-1
zs=OffsetArrays.no_offset_view(allDiffs[key][bytes,1][:,inbit])
#band!(slax,Point3d.(xs,inbit,0),Point3d.(xs,inbit,zs),transparency=true,alpha=0.2)
lines!(slax,Point3d.(xs,inbit,zs))
end
filename=@sprintf "smallDiffs-%s-%d.svg" key bytes
save(filename,sl)
end
function plotSmallDiffs()
allDiffs=readAllSmallDiffs()
plotSmallSlices(allDiffs,"96_0",3)
end
I run this and I get an SVG file which shows a 3D box in a not quite isometric view with lots of lines in it. The z-axis goes from 0.04 to around 0.135. I’d like to see for each line a card with the line at top, so I add the band! line, here commented out. It takes a lot longer to plot, and the entire plot is black. What happened? Does band! work only with GLMakie?
The code is at GitHub - phma/WringTwistreeCryptanalysis.jl: Cryptanalysis of the Wring cipher and Twistree hash function , but it takes 30 hours (on my laptop, which has 32 CPU threads) to generate all the data files.